![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 896 Pomógł: 76 Dołączył: 15.11.2003 Skąd: Sosnowiec/Kraków Ostrzeżenie: (0%) ![]() ![]() |
Witam,
od niedawna uczę się pracować na CodeIgniterze i próbuję zrealizować na nim pierwszy nieduży projekt. Jak to zwykle bywa w takich sytuacjach mam problem z rzeczami, które pewnie są oczywiste ale prawdopodobnie dlatego nigdzie nie mogę znaleźć na ten temat żadnej konkretnej informacji. Chcę zrobić prosty system administracyjny, który będzie miał 3-poziomowe menu. Po wybraniu kategorii (np. zarządzanie stroną) w głównym menu wyświetli się menu drugiego poziomu z którego wybiorę moduł (np. newsy) i wtedy pojawi się menu przypisane do modułu z opcjami np. "dodaj news", "lista newsów". Po wybraniu opcji zostanie załadowany odpowiedni widok, na przykład formularz dodawania newsa. Ale jak w tym momencie miałyby wyglądać kontrolery dla takiej aplikacji? Jeżeli kontrolery będą odpowiednikami modułów, czyli np. News (z metodami "add", "delete", etc.) to kompletnie nie rozumiem co miałoby być uruchamiane po kliknięciu w menu pierwszego poziomu (oraz trzeciego). A przecież to menu trzeciego poziomu ostatecznie ma decydować co się wyświetli użytkownikowi. Nie wiem czy jestem w stanie to jasno opisać. Jednym słowem nie mam doświadczenia i chciałbym żeby ktoś mnie nakierował na rozwiązanie. Drugi problem jest podobny: załóżmy że mam stronę, na której jest jednopoziomowe menu z pozycjami "news", "products" i "contact". I mam kontrolery News, Products i Contact. A teraz załóżmy, że przy każdym produkcie jest link do formularza w którym można zadać pytanie dotyczące tego przedmiotu. Czy on powinien być obsługiwany przez kotroler Products czy może już Contact i jakąś jego metodę w stylu "askProduct"? Czy takie problemy rozwiązuje się arbitralnie i nie ma to większego znaczenia, czy są jakieś standardy? Nie mogę nigdzie znaleźć przykładów na trochę bardziej skomplikowanych projektach... Z góry dzięki za pomoc. Ten post edytował Foxx 11.08.2008, 21:41:06 |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 896 Pomógł: 76 Dołączył: 15.11.2003 Skąd: Sosnowiec/Kraków Ostrzeżenie: (0%) ![]() ![]() |
Aż tak źle ze mną nie jest (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)
Znam ten kurs, a także oficjalny ale nie znajduję w nich odpowiedzi na moje pytania. To jest raczej pytanie o model MVC niż o konkretny framework. Najbardziej chciałbym usłyszeć jak ktoś by rozwiązał takie dwa przykłady w praktyce. Może inaczej sformułuję pytanie: Załóżmy że mam menu dwupoziomowe. W pierwszym poziomie wybieram pomiędzy "administracja konfiguracją" a "administracja stroną". Jeżeli wybiorę administrację stroną to pojawia się menu drugiego poziomu z opcjami na przykład "newsy" i "produkty". Jeżeli kliknę na "produkty" to pojawia się menu trzeciego poziomu z opcjami "dodaj" i "lista". Po wybraniu "dodaj" pojawia się formularz dodawania produktu. I teraz: logiczne wydaje się, żeby w tym momencie obsługiwał to kontroler "produkty" i wyświetlał mi widok "dodaj_produkt". A więc w url'u mam "products/add/". Wszystko jasne. Ale to dopiero po wybraniu opcji z ostatniego menu. Ale nie wiem co miałoby się dziać wcześniej, po kliknięciu na "administracja stroną" pierwszego menu a potem po wybraniu modułu z drugiego menu. Podczas gdy normalnie załatwiłbym to odpowiednimi parametrami przekazywanymi w url'u, który wyglądałby jakoś tak: "?cat=2&mod=2&option=1" to teraz nie mam pojęcia jak to rozwiązać. Jeszcze inaczej: zanim nie dokonam wyboru w ostatnim menu nie wyświetlam żadnego widoku i wobec tego nie wiem jaki kontroler miałby obsługiwać operacje na menu pierwszego i drugiego poziomu. A może już w momencie wybrania opcji z pierwszego menu powinienem uruchamiać kontroler "administracja_strona", który byłby taką wielką klasą, która swoimi metodami robi wszystko? Ale jeden kontroler to brzmi jak zły pomysł. |
|
|
![]() ![]() |
![]() |
Aktualny czas: 5.10.2025 - 13:55 |