Zobacz pełną wersję : Dodatkowy kontroler w komponencie
Czy ktos wie jak wywolac dodatkowy kontroler?
Dzieki.
udalo mi sie rozwiazac ten problem jak cos to PW
udalo mi sie rozwiazac ten problem jak cos to PW
A nie można tutaj? Będziesz odpowiadał na te setki PM w tej sprawie? ;) Nie lepiej raz krótko na forum.
Po pierwsze musisz mieć w głównym pliku komponentu coś w tym stylu.
if($controller = JRequest::getVar('controller'))
{
require_once(JPATH_COMPONENT.DS.'controllers'.DS.$ controller.'.php');
}
Funkcja require_once służy w tym przypadku do zaimportowania pliku z katalogu 'controllers' o nazwie wskazanej jako wartość klucza controller. Zanim będziesz wywoływał cokolwiek musisz mieć utworzony katalog controllers w katalogu głównym komponentu i utworzyć w nim nowy kontroler.
Jeśli chcesz wywołać kontroler możesz np. napisać tak
<a (http://december.com/html/4/element/a.html) href="index.php?option=com_mojkomonent&controller=new">Nowy komponent</a> lub np. w formularzu
<input type="hidden" name="controller" value="new" />
<input type="hidden" name="task" value="funkcja_kontrolera_new" />
Możesz również zrobić to na inne sposoby podając jako klucz 'controller' a jako wartość nazwę pliku bez rozszerzenia.
Też próbowałem z kilkoma kontrolerami ale doprowadziło to tylko do zamieszania.
Dzieki za info sam doszedlem jak to zrobic wystarczylo extendowac domyslnego kontrolera i wszytskie funkcje byly dostepne.
Moja aplikacja dzieki sie an 2 czesci wiec 2 kontroler ma swoje uzasadnienie.
Jak mozesz to wyslij mi swojego meila na PW mozemy sie wymienic doswiadczeniami.
Pozdr.
No co za anty społecznościowy człek ten Atomp3. Niczym się na forum nie podzieli, a tylko pyta. Nadużywa PW do dyskusji na temat, który powinien omówić w założonym przecież do tego celu wątku na forum. Natomiast w wątku wypisuje całkiem prywatne dyrdymały o chęci prywatnego kontaktu z innym uzytkownikiem.
Jak chcesz sobie z kimś prywatnie pogadać, to napisz do niego na to chol*rne ulubione przez Ciebie PW. Tej chęci kontaktu z kimś konkretnym akurat nie musisz wszystkim obwieszczać na forum.
Zachowujesz się tak jakby ktoś brał udział w dyskusji w pewnej grupie, gdzie gdy ktoś coś wie, wygłasza swoją opinię i dzieli się swą wiedzą. Ale trafi się taki Atomp3, który tylko pyta, a gdy się czegoś dowie, to zachowując się niekulturalnie szepcze tylko niektórym do ucha sugerujac jednocześnie, że coś wie. Jednak wszystkim zgromadzonym na forum, z jakiś wiadomych tylko sobie powodów, nie ma zamiaru tego powiedzieć.
Piszę na forum, a nie prywatnie do Atomp3, bo niestety taka praktyka anty forumowa, łamiąca de facto idee forów wcale nie jest taka rzadka.
No co za anty społecznościowy człek ten Atomp3. Niczym się na forum nie podzieli, a tylko pyta. Nadużywa PW do dyskusji na temat, który powinien omówić w założonym przecież do tego celu wątku na forum. Natomiast w wątku wypisuje całkiem prywatne dyrdymały o chęci prywatnego kontaktu z innym uzytkownikiem.
Jak chcesz sobie z kimś prywatnie pogadać, to napisz do niego na to chol*rne ulubione przez Ciebie PW. Tej chęci kontaktu z kimś konkretnym akurat nie musisz wszystkim obwieszczać na forum.
Zachowujesz się tak jakby ktoś brał udział w dyskusji w pewnej grupie, gdzie gdy ktoś coś wie, wygłasza swoją opinię i dzieli się swą wiedzą. Ale trafi się taki Atomp3, który tylko pyta, a gdy się czegoś dowie, to zachowując się niekulturalnie szepcze tylko niektórym do ucha sugerujac jednocześnie, że coś wie. Jednak wszystkim zgromadzonym na forum, z jakiś wiadomych tylko sobie powodów, nie ma zamiaru tego powiedzieć.
Piszę na forum, a nie prywatnie do Atomp3, bo niestety taka praktyka anty forumowa, łamiąca de facto idee forów wcale nie jest taka rzadka.
Nalezalo mi sie ;)
Generalnie jest jak kolega wyzej napisal. Kontroler mozna uruchomic bezposrednio odwolujac sie do niego w linku:
index.php?options=new_component&controller=new_controller
lub tez poprzez pole hidden w formularzu:
<input type="hidden" name="controller" value="new_controller">
Warto stosowac wiele kontrolerow jesli logika danej aplikacji tego wymaga przyklad:
-samochody kontroler1
dodaj()
usun()
edytuj()
-motocykle kontroler 2
dodaj()
usun()
edytuj()
W ten sposob nie musimy kombinowac w nazewnictwie.
W razie pytan prosze pisac na Forum :)
Pozdr.
Warto stosowac wiele kontrolerow jesli logika danej aplikacji tego wymaga przyklad:
-samochody kontroler1
dodaj()
usun()
edytuj()
-motocykle kontroler 2
dodaj()
usun()
edytuj()
"Warto' to troche za dużo powiedziane. Można przecież stworzyć kontroler pojazdy i w instrukcji if albo switch wykonać odpowiedni fragment kodu. Przecież od strony implementacji metody wskazane przez Ciebie nie będą się różnić poza importem innego modelu. Stosowanie kilku kontrolerów może mieć korzyści gdy mamy komponent, który składa się z dwóch lub większej ilości niezależnych części i ich metody znacząco się od siebie różnią. No ale każdy robi tak jak mu wygodniej :)
"Warto' to troche za dużo powiedziane. Można przecież stworzyć kontroler pojazdy i w instrukcji if albo switch wykonać odpowiedni fragment kodu. Przecież od strony implementacji metody wskazane przez Ciebie nie będą się różnić poza importem innego modelu. Stosowanie kilku kontrolerów może mieć korzyści gdy mamy komponent, który składa się z dwóch lub większej ilości niezależnych części i ich metody znacząco się od siebie różnią. No ale każdy robi tak jak mu wygodniej :)
No właśnie jest tak jak napisałeś jak komu wygodniej ale stosując switcha odchodzimy bardziej od MVC :) i kod staje sie mniej czytelny, przy bardziej rozbudowanej aplikacji.
vBulletin® v4.2.5, Prawa przedruku © 2024 vBulletin Solutions, Inc. Wszystkie prawa zastrzeżone.
Tłumaczenie: Polskie Centrum Joomla!