2013-05-29 19 views
5

Rozumiem i kocham szablon zastępuje. Muszę wprowadzić trochę cięższe zmiany w wynikach menu (zasadniczo sprawiając, że wyjście działa lepiej z Bootstrap) - ale tylko dla niektórych menu.Jak nadpisać szablon dla mod_menu z alternatywnymi układami dla wyjść łącza?

Obecnie w Joomla 3 Dostępne są następujące w folderze mod_menu/tmpl:

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

Jeśli chcę zmienić klas bym kopiują default.php do mojego mytemplate/html/mod_menu i zmienić go. Świetnie, bez problemu.

Jeśli chcę zmienić wyjściowe łącza, aby to umożliwić, mogę skopiować wartość default_component.php do mytemplate/html/mod_menu i zmienić ją. Świetnie, bez problemu.

Jeśli chcę mieć inny "Alternatywny układ", zmieniam nazwę mytemplate/html/mod_menu/default.php na newlayout.php, a następnie wybierz go w menedżerze modułu administratora dla tego menu. Świetnie, bez problemu.

Oto problem: Jeśli chcę mieć wyjście związek zmieniane menu dla niektórych, ale nie wszystkie z nich ja figura ja zmienić default_component.php do newlayout_component.php jak ja powyżej, które odpowiadają newlayout.php ... ale to nie robi nie działa.

Pytania:

1) Jak mieć alternatywne układy dla każdego z default_component.php, default_heading.php, default_separator.php, plików default_url.php szablonu (nie tylko nadpisywania)?

2) Myślę, że default_url.php to taki, który wpłynąłby na wyniki łącza, ale wygląda na to, że jest to default_component.php. Więc co robi każdy z nich? Nie mogłem znaleźć żadnych informacji na temat joomla.org na ten temat.

Dzięki!

Odpowiedz

6
  1. Funkcja działa tylko układ alternatywą dla głównego pliku (default.php), a nie dla sublayouts (default_component.php ...). Musisz więc stworzyć swój własny newlayout.php, który następnie może załadować newlayout_component.php lub użyć default_component.php. W rzeczywistości, default_component.php zostanie użyty jako rezerwowy, jeśli nie zostanie znaleziony plik newlayout_component.php.
  2. Kod przełącza się na $item->type łącza. 'separator', 'url', 'component' i są obsługiwane przez 'default_'.$item->type, wszystko inne będzie używać default_url. Dlatego zwykły URL powinien być generowany przez default_url.php, a nie default_component.php. Jeśli zachowuje się inaczej, prawdopodobnie jest to błąd.
+0

Wow .... czasami odpowiedź jest prosta. Zmień to cholerne połączenie. Westchnienie. – Gisto

+0

I zupełnie zapomniałem dodać - rocka, dziękuję !! – Gisto