PDA

Zobacz pełną wersję : Jak przełączyć template linkiem z modułu?



sickman
15-12-2009, 17:42
Witam wszystkich użytkowników forum, witam również szanownego Zwiastuna (po latach).

Trapi mnie pewien techniczny kłopot, dlatego zwracam się do was z pytaniem jak go rozwiązać.

Strona, nad którą pracuję składa się z trzech głównych templatek. Templatki są zmieniane zależnie od kliknięcia w pozycje menu, dla porządku ponumerujmy templatki numerami 1 2 3. Wszystko działa bez zarzutu, jednak zaszła potrzeba przełączenia na templatkę 2 z modułu umieszczonego w templatce nr1. Komponent, którego moduł (akurat karuzela ofert) znajduje się w templatce nr1, wszystkie dane standardowo kieruje do templatki nr2 (bo tak jest przypisane). Wydawało by się, że sprawę załatwi zmodyfikowanie w module kawałka kodu odpowiedzialnego za składanie linku:


$link = JRoute::_( 'index.php?option=com_properties&view=property&cid ='.$row->catslug.'&tid='.$row->typeslug.'&id='.$row->slug);na:


$link = JRoute::_( 'index.php?option=com_properties&view=property&cid ='.$row->catslug.'&tid='.$row->typeslug.'&id='.$row->slug.'&template=templatka2');

Jednak wszystko byłoby w porządku gdyby nie to, że po przełączeniu na templatkę nr2 (bo ów trick działa) i poprawnym wyświetleniu danych (dana karta z oferty), nie ładuje sie moduł (inna wyszukiwarka) osadzony w templatce nr2. Co ciekawe moduł wyszukiwarki pracujący z tym komponentem umieszczony w templatce nr1, po uruchomieniu wyszukiwania przełącza templatkę i wszystko działa bez zarzutu.

SOLVED

Dla komponentu przypisanego do template nr2, zaznaczenie wyświetlania felernego modułu dla wszystkich pozycji menu rozwiązało problem. Zachodzi pewne prawdopodobieństwo, że niektóre komponenty posiadające wiele własnych template (a,b...), mogą zakłócać wyświetlanie modułów (w szczególności tych przypisanych konkretnym pozycjom menu) w momencie kiedy wewnętrzny template jest wymieniany podczas generowania strony.

krok1: template główny (moduł jest) + template(a) komponentu, krok2: template główny (modułu nie ma) + template(b) komponentu (renderowanie wywołane z template(a))

Nie wiem czy wyraziłem się dość obrazowo. Być może jest to przypadek incydentalny, ale jeżeli ktoś znalazł by chwilę czasu na zbadanie zjawiska przy użyciu różnych template i innych komponentów (w tym wypadku com_properties_2.x + moduły) i podzielił się spostrzeżeniami, możliwe by było określenie czy jest to bug w silniku Joomla czy bug akurat w danym komponencie.