PDA

Zobacz pełną wersję : Dodatkowy kontroler w komponencie



atomp3
28-07-2008, 15:57
Czy ktos wie jak wywolac dodatkowy kontroler?

Dzieki.

atomp3
28-07-2008, 18:30
udalo mi sie rozwiazac ten problem jak cos to PW

inkos
28-07-2008, 18:52
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.

vego007
29-07-2008, 12:14
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.

atomp3
04-08-2008, 12:53
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.

isteata
07-08-2008, 11:11
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.

atomp3
26-10-2008, 00:38
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.

vego007
26-10-2008, 13:22
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 :)

atomp3
02-11-2008, 14:01
"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.