PDA

Zobacz pełną wersję : wywołanie modułu nie przez <jdoc:include



mackal
07-08-2010, 13:23
Z problemem zmagam się już jakiś czas i w obecnej chwili skończyły się mi już pomysły.

Mianowicie czy można wywołać jakiś moduł w inny sposób niż przez <jdoc:include

Dokładnie rzecz ujmując chciał bym wywołać usermenu w module logowania virtuemarta
Efekt który chciał bym osiągnąć miał by wyglądać w ten sposób

http://screenshooter.net/35722896/sxkhnkh/thumb (http://screenshooter.net/35722896/sxkhnkh)

Problem polega na tym, iż Zarządanie kontem jest standardowo wpisane na twardo do modułu, natomiast dodatek googar został napisany przeze mnie i rowniez wklepany na stałe do modułu.
Wszystko ok jednak pomyślałem, iż w przyszłości może byc problem z aktualizacją skryptu.

Najlepiej było by dodatkowe linki umieszczać w menu uzytkownika, problem jednak w tym, iż ze względów estetycznych lepiej było by umieścić go przed buttonem WYLOGUJ :D

Niestety wywołanie <jdoc:include type="modules" name="usermenu" /> działa jedynie w pliku szablonu. Nie da sie wywołać modułu z poziomu innego modułu w przypadku takiego zapisu:

http://screenshooter.net/35722896/kbnuprs/thumb (http://screenshooter.net/35722896/kbnuprs)

Pytanie zasadnicze jest takie: Czy istnieje inny sposób wywołania modułu ??

Będę bardzo wdzięczny za pomoc i wszelkie sugestie

moje
07-08-2010, 13:28
Skoro to jest tylko link, to nie możesz skorzystać z nadpisywanie szablonem i tam dla modułu logowania VM dodać ten link albo przenieść przycisk Wyloguj na dół listy?

mackal
07-08-2010, 13:43
nie możesz skorzystać z nadpisywanie szablonem i tam dla modułu logowania VM dodać ten link

ale jak z nadpisywania szablonem?? mógł byś tak mniej więcej opisać jak to zrobić, bo jeszcze nie wiem za bardzo o co może chodzić


A co do przycisku wyloguj, to jest to ostateczność, w module mogę za komentować button WYLOGUJ i umieścić go w menu jako pozycję, jednak wówczas stracę właśnie wizualnie ten brązowawy button. Co prawda można w opcjach pozycji menu nadać nazwę klasy, ale ona jak się dowiedziałem odnosi się do otwieranej strony, a nie do danej pozycji.

moje
07-08-2010, 14:03
Na wiki.joomla.pl jest opisane nadpisywanie szablonem (podmiana).

mackal
07-08-2010, 18:41
OK dzięki zaraz sobie to rozpracuje

---------- Post dodany o 18:41 ---------- Poprzedni post był o 14:05 ----------

No to rozpracowałem to podmienianie i faktycznie niezłe to jest, jednak spowoduje to tylko tyle, że podczas aktualizacji mój plik nie zostanie skasowany.

Jest to już jakiś postęp ;)

Problem z wstawieniem menu nadal jednak pozostaje.
Nie chcę bowiem wstawiać stałych linków, które będę musiał zmienić ręczne w przypadku gdyby zmieniony został system skracania linków.
Przykładowo sama joomla ma wbudowane narzędzie do skracania, jednak ja używam komponentu sh404sef, który generuje trochę inne strukturalnie linki.
W przypadku dyby udało się wstawić moduł do modułu że tak sie wyrażę to odpada nam problem każdorazowej zmiany.

moje
07-08-2010, 18:46
Polecam użyć dosc.joomla.org + JRoute ;)

a_m
07-08-2010, 18:51
Polecam użyć dosc.joomla.org + JRoute ;)

a prościej się nie da? nowa pozycja modułów ,do niej ładuję moduł logowania i usermenu; wrzucam w szablon za pomocą <jdoc:include ....., który osadzam w divie o klasie "bleble", w css kontenerowi "bleble" daję {position: relative;} zaś dla .bleble .button{position: absolute;left: 10px;bottom: 10px;} - mam go na samym dole;
to samo można zrobić stosując modules anywhere

moje
07-08-2010, 18:56
Użycie JRoute jest najprostsze, ogranicza się do dopisania kilku znaków przez i kilku po łączu do komponentu CooGAR.

mackal
07-08-2010, 19:52
nowa pozycja modułów ,do niej ładuję moduł logowania i usermenu; wrzucam w szablon za pomocą <jdoc:include ....., który osadzam w divie o klasie "bleble", w css kontenerowi "bleble" daję {position: relative;} zaś dla .bleble .button{position: absolute;left: 10px;bottom: 10px;} - mam go na samym dole;


Rozwiązanie dobre jednak tylko dla stron gdzie nie ma rozsuwania pod względem ilości treści, bo u mnie jak otwarlem strone gdzie bylo ciut wiecej tekstu to button przesunął się wyżej

http://screenshooter.net/35722896/xdnwsxb/thumb (http://screenshooter.net/35722896/xdnwsxb)



to samo można zrobić stosując modules anywhere

modules anywhere, to jak wyczytałem moduł umozliwiający wklejenie dowolnego modułu, ale do artykułu, a nie do innego modułu


Wracam do kombinowania nad JRoute

a_m
07-08-2010, 20:00
Rozwiązanie dobre jednak tylko dla stron gdzie nie ma rozsuwania pod względem ilości treści, bo u mnie jak otwarlem strone gdzie bylo ciut wiecej tekstu to button przesunął się wyżej bez linka nie powiem Ci co nie tak masz zrobione

co do modules anywhere, to się mylisz, niedoczytałeś widocznie - pozwala nie tylko na publikację mod w artykułach ale kilku modułów w jednym

moje
07-08-2010, 20:20
Użycie JRoute jest proste: JRoute::_('Twój link'); wtedy Joomla sama zawsze zamieni go na "ten ładny" ;)

mackal
07-08-2010, 20:59
co do modules anywhere, to się mylisz, niedoczytałeś widocznie - pozwala nie tylko na publikację mod w artykułach ale kilku modułów w jednym

OK faktycznie mea culpa - masz rację co do tego modułu, wcześniej oparłem się na opiniach z dwóch pierwszych blogów gdzie autorzy pisali, to co pisali, ale fakt da się wstawić w moduł wszystko tak jak ma być i z tego chyba skorzystam

Co do stylów to nie dawało mi to spokoju że się tak jakoś dziwnie wyświetla i po sprawdzeniu definicji i dokładnego działania składowych doszedłem w czym był problem, ale minus tego rozwiązania jest taki, iż faktycznie button jest na dole jak chciałem, jednak pomiędzy pierwszymi dwoma pozycjami w miejscu gdzie dawniej był guzik pozostała luka, ale przypuszczam, że manewrując jeszcze trochę css dało by sie ja trochę zniwelować.



Użycie JRoute jest proste: JRoute::_('Twój link'); wtedy Joomla sama zawsze zamieni go na "ten ładny" ;)

Rozgryzłem już ten sposób i daje on oczekiwane efekty, jednak posiada jeden niewielki minusik. W razie ewentualnych zmian trzeba w kodzie się pobawić ;)
Minusik to jednak bardzo niewielki ;)

Teraz zaczynam testować moduł polecony przez a_m i zobaczymy jakie efekty mozna osiągnąć.

Oczywiście wszystkie podane rozwiązania są poprawne :P

a_m
07-08-2010, 21:05
tym modułem osiągniesz podobny efekt jak wrzuceniem w jedną pozycję, zabawa css-em też będzie potrzebna; jest to rozwiązanie wtedy wygodne gdy np. w jednej pozycji mamy kilka modułów, a "łączony" chcemy/musimy wrzucić gdzieś "w środku"

mackal
08-08-2010, 00:09
Muszę stwierdzić, iż najprostszą metodą jest użycie tego modułu o którym mówiliśmy wcześniej + troszkę zabawy z css ;)

Dzięki chłopaki za dobre rady :up: