Pagine con parametri e breadcrumbs

Ciao a tutti.

Avrei bisogno di un aiuto per un problema inerente le breadcrumbs.

Ho una pagina che riceve per parametro il tipo di ordinamento. Siccome voglio che rientri anche nelle breadcrumbs ho dovuto aggiungere la pagina al navigation container tante volte quanti sono gli ordinamenti possibili... inizialmente avevo aggiunto solo quella con l'ordinamento per descrizione ma a quel punto non vedevo renderizzare le breadcrumbs se ne sceglievo uno diverso.

Esiste un modo per inserire la pagina una sola volta ed ottenere il render delle breadcrumbs con qualsiasi valore di parametro le venga passato ?

Ciao e grazie per l'aiuto!

inviato 7 anni fa
dacdam
X 0 X

Cio...tu vuoi cambiare la formattazione html delle breadcrumbs?

Puoi far vedere lo spezzone di codice che hai provato a creare?

risposto 7 anni fa
Mario Santagiuliana
X 0 X

No, la formattazione v bene...

Il problema che se ho una pagina a cui si accede passando un parametro:

www.sito/controller/ation/parametro/valore1

www.sito/controller/ation/parametro/valore2

www.sito/controller/ation/parametro/valore3

Sono costretto ad inserirela tre volte nel container di Zend_navigation, una per ogni possibile valore che assume il parametro.

Per esempio, se inserisco nel container solo la versione "www.sito/controller/ation/parametro/valore1", quando accedo alla pagina passando il valore2 o il valore3, le breadcrumbs non vengono visualizzate (perch zend non trova la pagina nel container).

Io vorrei un modo per aggiungere al container una sola volta la pagina: mi sembra assurdo doverlo fare una volta per ogni possibile valore del parametro passato...

risposto 7 anni fa
dacdam
X 0 X
Puoi far vedere lo spezzone di codice che hai provato a creare?
risposto 7 anni fa
Mario Santagiuliana
X 0 X

Questa la creazione della pagina 'padre' con le sottopagine, nota che nelle sottopagine metto tre volte la stessa ma passando ogni volta un valore di parametro differente (getListaClientiPortale un metodo di classe che crea la voce assegnando come parametro l'ordinamento e ritornando una istanza di page di Zend_navigation):

//Aggiunta della voce di gestione dei clienti

$vociMenuPers[] = models_menu_PagineSito::getListaClientiPortale('descrizione');

$vociMenuPers[] = models_menu_PagineSito::getListaClientiPortale('categoria,descrizione');

$vociMenuPers[] = models_menu_PagineSito::getListaClientiPortale('vf_attivo,descrizione');

//Creazione della pagina

$pagina = new library_EstensioneZend_CustomPaginaMVC(array('action'=> 'index',

'controller'=> 'Affiliato',

'label'=> $cliente['descrizione'],

'pages'=> $vociMenuPers,

'params' => $parametri));

Successivamente, nella view, faccio il render delle breadcrumbs:

echo $this->navigation()->breadcrumbs()->render();

La soluzione che cerco dovrebbe permettermi di non dover aggiungere 3 volte la pagina che vedi inserita nell'array $vociMenuPers...

Spero che sia chiaro: prima non ho postato il codice perch ho il sospetto che non sia d'aiuto nella spiegazione.

Ciao.

risposto 7 anni fa
dacdam
X 0 X

Il codice che hai dato non affatto esplicativo in effetti...inoltre istanzi degli oggetti che te hai creato e non sappiamo da cosa sono derivati e a cosa servano esattamente(si pu supporre si...).

Comunque te in poche parole, se ho capito, vuoi passare "valore1" o "valore2" o quello che e a seconda di quello che passa il controller deve creare una delle tre righe qui sotto:

$vociMenuPers[] = models_menu_PagineSito::getListaClientiPortale('descrizione');

$vociMenuPers[] = models_menu_PagineSito::getListaClientiPortale('categoria,descrizione');

$vociMenuPers[] = models_menu_PagineSito::getListaClientiPortale('vf_attivo,descrizione');

Giusto?

Perch non ci metti un "case"?

risposto 7 anni fa
Mario Santagiuliana
X 0 X

Purtroppo il codice che ho postato f parte di una classe statica che richiamo nel bootstrap... il dispatch non ancora stato eseguito e quindi non conosco ancora controller ed action richiesti.

Confermami se ho capito bene: il tuo consiglio di inserire nel container di volta in volta la pagina con il parametro a seconda della richiesta fatta dall'utente... mi andrebbe bene se non fosse per la posizione in cui si trova lo script. Il fatto che uno script che crea una struttura 'AlberoCompleto' che contiene l'alberatura di tutto il sito e poi la salva nel registry con la chiave 'Zend_Navigation' in maniera che venga poi usata in automatico dall'omonimo componente.

risposto 7 anni fa
dacdam
X 0 X
Il fatto che uno script che crea una struttura 'AlberoCompleto' che contiene l'alberatura di tutto il sito e poi la salva nel registry con la chiave 'Zend_Navigation' in maniera che venga poi usata in automatico dall'omonimo componente.

E l'omonimo componente non fa distinzione....

Non ho capito come hai costruito il tutto... :buck: :buck: scusami...

risposto 7 anni fa
Mario Santagiuliana
X 0 X

Scusami tu, mi rendo conto di non essere molto chiaro, ma non facile.

Intendevo dire che:

Nel bootstrap creo l'alberatura completa del sito (ovvero un container che la contiene).

Sempre nel bootstrap salvo questa alberatura nel registry usando la chiave 'Zend_Navigation'.

Cos facendo, in tutte le pagine del sito posso invocare i metodi del componente Zend_navigation in maniera piuttosto semplice.

Infatti quest'ultimo reperisce in maniera autonoma il container dal registry (proprio perch l'ho salvato usando quella particolare chiave) e mi f il render del men e delle breadcrumbs.

Nella risposta di prima volevo dire che, essendo la costruzione dell'albero nel file di bootstrap, non ho ancora accesso alle variabili ControllerName ed ActionName (in quanto il dispatch non ancora avvenuto)... quindi non posso fare come mi hai consigliato.

Spero di essere stato pi chiaro, scusami per la fatica che ti faccio fare e grazie mille per l'aiuto che mi stai dando.

Ciao.

risposto 7 anni fa
dacdam
modificato 7 anni fa
X 0 X

Ok...credo di aver capito...

Sinceramente al momento non mi viene in mente nessuna soluzione per... :-[ :-[

risposto 7 anni fa
Mario Santagiuliana
X 0 X
Effettua l'accesso o registrati per rispondere a questa domanda