PDA

Zobacz pełną wersję : Instalacja dwa razy tego samego modułu



hecz
13-05-2013, 13:44
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

Jola
13-05-2013, 14:25
Dodać parametr do modułu, który będzie decydował o wyborze szablonu. :)
I dopisać dodatkowy szablon (szablony).

hecz
16-05-2013, 19:07
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?

KES
16-05-2013, 22:02
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"
/>

hecz
16-05-2013, 22:50
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?!

Jola
16-05-2013, 23:06
Podejrzyj moduł Migawki (mod_articles_news)

hecz
16-05-2013, 23:29
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...

KES
17-05-2013, 10:23
@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' ) );

hecz
18-05-2013, 13:47
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.

KES
18-05-2013, 13:56
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' ) );

hecz
18-05-2013, 14:14
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!