2013-05-29 8 views
5

Capisco e amo i template sovrascritti. Ho bisogno di apportare alcune modifiche più pesanti all'output del menu (fondamentalmente facendo funzionare meglio l'output con Bootstrap) - ma solo per alcuni menu.Come creare una sovrascrittura template per mod_menu con layout alternativi per le uscite di collegamento?

Attualmente in Joomla 3 vi sono le seguenti nella cartella mod_menu/tmpl:

default.php 
default_component.php 
default_heading.php 
default_separator.php 
default_url.php 

Se voglio cambiare le classi che avevo copiare il default.php nel mio mytemplate/html/mod_menu e cambiarlo. Ottimo, nessun problema.

Se voglio modificare le uscite di collegamento per andare avanti con quello posso copiare il default_component.php a mytemplate/html/mod_menu e cambiarlo. Ottimo, nessun problema.

Se voglio avere la scelta di avere una diversa "layout alternativo" Mi piacerebbe rinominare il mytemplate/html/mod_menu/default.php a newlayout.php, quindi selezionare nel modulo di amministrazione responsabile per quel menu. Ottimo, nessun problema.

Ecco il problema: se voglio avere l'uscita di collegamento cambiato per alcuni menu, ma non tutti li immagino che vorrei cambiare default_component.php-newlayout_component.php come ho fatto in precedenza che corrisponderebbe alla newlayout.php ... ma che doesn lavorare

Domande:

1) Come avere layout alternativi per ciascuna delle default_component.php, default_heading.php, default_separator.php, file default_url.php template (non solo una sovrascrittura)?

2) Penso che lo default_url.php sia quello che influisce sulle uscite di collegamento ma sembra che sia default_component.php. Quindi cosa fa ognuno di questi? Non sono riuscito a trovare alcuna informazione su joomla.org a riguardo.

Grazie!

risposta

6
  1. La funzionalità di layout alternativa funziona solo per il file principale (default.php), non per i sublayouts (default_component.php, ...). Quindi devi creare il tuo newlayout.php che poi può caricare newlayout_component.php, o usare il default_component.php. In effetti, lo default_component.php verrà utilizzato come fallback se non viene trovato newlayout_component.php.
  2. Il codice cambia su $item->type del collegamento. 'separator', 'url', 'component' e 'heading' vengono gestiti dallo 'default_'.$item->type, tutto il resto utilizzerà default_url. Pertanto, un semplice URL dovrebbe essere generato da default_url.php, non default_component.php. Se si comporta in modo diverso, è probabile che sia un bug.
+0

Wow .... a volte la risposta è proprio così semplice. Cambia la maledetta chiamata. Sospiro. – Gisto

+0

E totalmente dimenticato di aggiungere - tu rock, grazie !! – Gisto

Problemi correlati