Zobacz pełną wersję : Instalacja dwa razy tego samego modułu
W jaki sposób można zainstalować dwa razy ten sam moduł? Jest możliwość skopiowania modułu poprzez zaplecze ale w moim przypadku moduł ma wyglądać inaczej i poprzez dostosowanie stylów nie da się tego wykonać.
marian_mk
13-05-2013, 14:09
zastosowac nadpsywanie szablonem
Dodać parametr do modułu, który będzie decydował o wyborze szablonu. :)
I dopisać dodatkowy szablon (szablony).
Stworzyłem dwie wersje modułu, pierwsza domyślna wersja jest w folderze modułu, druga w szablonie. Teraz jak wskazać w zapleczu która wersja my być w danej pozycji wyświetlana?
Jeżeli jest to standardowy moduł, to ustawiasz "Alternatywny układ [Opcje rozszerzone]" jeżeli nie nadpisujesz domyślnego szablonu default.php.
Jeżeli nie masz takiej opcji to możesz dodać do .xml modułu taki oto kod:
<field
name="layout"
type="modulelayout"
label="JFIELD_ALT_LAYOUT_LABEL"
description="JFIELD_ALT_MODULE_LAYOUT_DESC"
/>
Dzięki za pomoc, jestem krok dalej. Moduł w ogóle nie miał opcji zaawansowanych, dodałem więc
<fieldset name="advanced">
<field
name="layout"
type="modulelayout"
label="JFIELD_ALT_LAYOUT_LABEL"
description="JFIELD_ALT_MODULE_LAYOUT_DESC" />
</fieldset>
W zapleczu pojawiła się zakładka Opcje rozszerzone i opcja 'Alternatywny układ' ale jest tylko jedna opcja 'z modułu -> default', nie ma z szablonu. Samo nadpisywanie działa ale nie ma wyboru. Szablon nie obsługuje takiej opcji?!
Podejrzyj moduł Migawki (mod_articles_news)
Problem rozwiązany. Plik w szablonie musi mieć inną nazwę niż domyślny w module. Po zmianie jest możliwość wyboru w zapleczu. Dzięki za pomoc!
- - - Updated - - -
Jednak nie do końca...:blink: Po wybraniu pliku z szablonu i tak wyświetla domyślny wygląd z modułu...
@hecz jeżeli masz jeszcze problem to może wina w pliku .php - mod_nazwa_modułu.php - chodzi mi czy wszystko maszok z kodem do wczytywania "układów":
require JModuleHelper::getLayoutPath( 'mod_nazwa_modułu', $params->get( 'layout', 'default' ) );
Ten kod, a dokładnie
require JModuleHelper::getLayoutPath( 'mod_nazwa_modułu') ); mam tylko w pierwotnym folderze modules w pliku mod_nazwa_modułu.php.
Czyli wszystko jasne :) dodaj opcję do metody :
$params->get( 'layout', 'default' )
Co tak naprawdę oznacza ten fragment. Pobierz wartość 'layotu' (czyli 'Alternatywny układ' ) z paramter modułu ( czyli tego z xml ) , jeżeli nie będzie takiej wartości lub będzie pusta użyj 'default'.
całość powinna być:
require JModuleHelper::getLayoutPath( 'mod_nazwa_modułu', $params->get( 'layout', 'default' ) );
Walczę z tym kilkadziesiąt minut. Po dodaniu ww. kodu pojawiał się błąd na stronie, okazało się że wystarczyło usunąć tag zamykający php z pliku mod_nazwa_moduły.php i wszystko działa. Dzięki barti za pomoc!
vBulletin® v4.2.5, Prawa przedruku © 2024 vBulletin Solutions, Inc. Wszystkie prawa zastrzeżone.
Tłumaczenie: Polskie Centrum Joomla!