Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [CodeIgniter] HMVC- podział aplikacji na moduły
webmaniak
post
Post #1





Grupa: Zarejestrowani
Postów: 371
Pomógł: 30
Dołączył: 14.04.2010

Ostrzeżenie: (0%)
-----


Witam,
zaczynam swoją przygodę z CodeIgniter'em i mam pewien kłopot. Mianowicie chciałbym od początku podzielić apliakcję na moduły. Znalazłem parę poradników, pobrałem dodatek HMVC. Wszystko jest ok, gdy moduły umieszczam w katalogu modules, Problem jednak pojawia się jeśli chce zmienić nazwę tego katalogu na jakiś inny, np. cms. Dodałem do config.php:
  1. $config['modules_locations'] = array(
  2. APPPATH.'cms/' => '../cms/',
  3. );

dodatkowo dałem też w routerze:
  1. $route['default_controller'] = "cms/welcome";

No i gdy wpiszę localhost/nazwa_projektu/ to jest ok, wczytuje się widok tak jak trzeba, ale nie działa mi adres: localhost/nazwa_projektu/nazwa_modulu. Pojawia się komunikat:
Kod
404 Page Not Found
The page you requested was not found.

Chciałbym zrozumieć zasadę działania tych modułów w CI, dlatego proszę o pomoc.

Ten post edytował webmaniak 25.12.2012, 17:35:11


--------------------
Pomogłem - kliknij , wprowadziłem w błąd - poinformuj niżej lub na pm.
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 17)
mieszkos
post
Post #2





Grupa: Zarejestrowani
Postów: 78
Pomógł: 11
Dołączył: 1.04.2009

Ostrzeżenie: (0%)
-----


y, nie bardzo kminię.

nie ładujesz modułu, tylko kontroler czyli

jakieswww.pl/kontroler

a nie model.

w modelu obsługujesz bazy.

a $route['default_controller'] = "cms/welcome"; dajesz samo cms nie cms/welcome

bo cms w towim przypadku to będzie kontroler a welcome to będzie akcja kontrolera cms
Go to the top of the page
+Quote Post
webmaniak
post
Post #3





Grupa: Zarejestrowani
Postów: 371
Pomógł: 30
Dołączył: 14.04.2010

Ostrzeżenie: (0%)
-----


Ok, dzięki za odpowiedź. Zobaczę to co napisałeś i dam znać smile.gif

Ten post edytował webmaniak 27.12.2012, 09:53:35


--------------------
Pomogłem - kliknij , wprowadziłem w błąd - poinformuj niżej lub na pm.
Go to the top of the page
+Quote Post
mieszkos
post
Post #4





Grupa: Zarejestrowani
Postów: 78
Pomógł: 11
Dołączył: 1.04.2009

Ostrzeżenie: (0%)
-----


aha i jak nie masz zrobionego htaccess, to dajesz adres jakisadres.pl/index.php/kontroler
Go to the top of the page
+Quote Post
webmaniak
post
Post #5





Grupa: Zarejestrowani
Postów: 371
Pomógł: 30
Dołączył: 14.04.2010

Ostrzeżenie: (0%)
-----


No właśnie okazuje się że problem był też w .htaccess, niby go miałem ale reguły nie były do końca prawidłowe smile.gif Teraz jest ok smile.gif Dzięki. Skoro już jesteśmy przy temacie modułów to gdzie trzymać szablony/templatki? W osobnym module i wczytywać je z innego modułu? Zapewne rozwiązań jest kilka, mógłby ktoś przedstawić mi swoje?


--------------------
Pomogłem - kliknij , wprowadziłem w błąd - poinformuj niżej lub na pm.
Go to the top of the page
+Quote Post
mieszkos
post
Post #6





Grupa: Zarejestrowani
Postów: 78
Pomógł: 11
Dołączył: 1.04.2009

Ostrzeżenie: (0%)
-----


ja zawsze robie sobie w folderze views folder includes w ktorym mam 3 pliki: header.php, footer.php, template.php


i w headerze ofc daje header, w template daje :

  1. <?php
  2. $this->load->view('includes/header');
  3. $this->load->view($content);
  4. $this->load->view('includes/footer');
  5. ?>


a w footer już stopka i zamkniecie body html.

potem nomrlanie w folderze powiedzmy robie sobie plik widoku dla strony glownej czyli np. home.php i napisze sobie tam: Witaj !

i teraz robie kontroler a w nim w funkcji (akcji) index() daje
  1. $data['content'] = 'home';
  2. $this->load->view('includes/template',$data);


i tyle ;>
Go to the top of the page
+Quote Post
webmaniak
post
Post #7





Grupa: Zarejestrowani
Postów: 371
Pomógł: 30
Dołączył: 14.04.2010

Ostrzeżenie: (0%)
-----


Ok, chciałbym jeszcze dodatkowo mieć osobny szablon dla panelu administracyjnego. Czy robić np. blog- i w katalogu views tak jak opisałeś, a dla panelu, np. dashboard i tam tak samo?


--------------------
Pomogłem - kliknij , wprowadziłem w błąd - poinformuj niżej lub na pm.
Go to the top of the page
+Quote Post
mieszkos
post
Post #8





Grupa: Zarejestrowani
Postów: 78
Pomógł: 11
Dołączył: 1.04.2009

Ostrzeżenie: (0%)
-----


zrób sobie includes_admin i tam zrób to samo tylko dla admina i potem w adminie w kontrolerze ładuj po prostu includes_admin zamist includes ktory bedzie dla normlaniej strony
Go to the top of the page
+Quote Post
szok
post
Post #9





Grupa: Zarejestrowani
Postów: 165
Pomógł: 20
Dołączył: 2.03.2006

Ostrzeżenie: (0%)
-----


Po co utrudniać sobie życie? I składać szablon z kilku plików zamiast użyć layoutów?

https://github.com/EllisLab/CodeIgniter/wiki/layout-library



--------------------
Go to the top of the page
+Quote Post
mieszkos
post
Post #10





Grupa: Zarejestrowani
Postów: 78
Pomógł: 11
Dołączył: 1.04.2009

Ostrzeżenie: (0%)
-----


a jakie to utrudnienie ?
Go to the top of the page
+Quote Post
webmaniak
post
Post #11





Grupa: Zarejestrowani
Postów: 371
Pomógł: 30
Dołączył: 14.04.2010

Ostrzeżenie: (0%)
-----


Każdy preferuje co innego -tak jak sądziłem smile.gif Zobaczę oba rozwiązania i zapewne sam wybiorę jedno z nich smile.gif Dziękuję.


--------------------
Pomogłem - kliknij , wprowadziłem w błąd - poinformuj niżej lub na pm.
Go to the top of the page
+Quote Post
qrooel
post
Post #12





Grupa: Zarejestrowani
Postów: 306
Pomógł: 42
Dołączył: 25.03.2010
Skąd: Kraków

Ostrzeżenie: (0%)
-----


Cytat(mieszkos @ 27.12.2012, 16:41:06 ) *
a jakie to utrudnienie ?


Takie, że w jednym pliku otwierasz tag (html, body), a w drugim go zamykasz, co sprawia problemy z podświetlaniem tagów/bloków w edytorach tekstowych chociażby. Albo człowiek gubi się i nie wie w końcu co zamyka jaki tag.


--------------------
Strony WWW: http://arscreo.pl
Go to the top of the page
+Quote Post
szok
post
Post #13





Grupa: Zarejestrowani
Postów: 165
Pomógł: 20
Dołączył: 2.03.2006

Ostrzeżenie: (0%)
-----


Cytat(qrooel @ 27.12.2012, 18:06:58 ) *
Takie, że w jednym pliku otwierasz tag (html, body), a w drugim go zamykasz, co sprawia problemy z podświetlaniem tagów/bloków w edytorach tekstowych chociażby. Albo człowiek gubi się i nie wie w końcu co zamyka jaki tag.



+ 1 smile.gif

+ 2 - mniej plików do ładowania dla requesta.


--------------------
Go to the top of the page
+Quote Post
webmaniak
post
Post #14





Grupa: Zarejestrowani
Postów: 371
Pomógł: 30
Dołączył: 14.04.2010

Ostrzeżenie: (0%)
-----


Cytat(mieszkos @ 27.12.2012, 01:00:40 ) *
$route['default_controller'] = "cms/welcome"; dajesz samo cms nie cms/welcome
bo cms w towim przypadku to będzie kontroler a welcome to będzie akcja kontrolera cms

Jeszcze wrócę do początku wątku. Wpisując cms jako default_controller niestety nie działa mi:
Kod
404 Page Not Found
The page you requested was not found.

Wpisując cms/welcome, samo welcome albo jakiś inny moduł to wszystko działa.


--------------------
Pomogłem - kliknij , wprowadziłem w błąd - poinformuj niżej lub na pm.
Go to the top of the page
+Quote Post
mieszkos
post
Post #15





Grupa: Zarejestrowani
Postów: 78
Pomógł: 11
Dołączył: 1.04.2009

Ostrzeżenie: (0%)
-----


a masz zrobiony taki kontroler z taką akcja ?
Go to the top of the page
+Quote Post
webmaniak
post
Post #16





Grupa: Zarejestrowani
Postów: 371
Pomógł: 30
Dołączył: 14.04.2010

Ostrzeżenie: (0%)
-----


Nie mam, ponieważ to jest katalog z modułami. Czyli pobrałem ten HMVC i utworzyłem katalog modules, a później zmieniłem jego nazwę na cms, stąd ta linijka:
  1. $config['modules_locations'] = array(
  2.  
  3. APPPATH.'cms/' => '../cms/',
  4.  
  5. );

A w katalogu cms tak jak pisałem będę przechowywał moduły, więc users, pages, blog, navigation itd. Więc jako default_controller mam wpisać moduł który ma być odczytywany domyślnie? Dobrze to rozumiem?


--------------------
Pomogłem - kliknij , wprowadziłem w błąd - poinformuj niżej lub na pm.
Go to the top of the page
+Quote Post
phpion
post
Post #17





Grupa: Moderatorzy
Postów: 6 072
Pomógł: 861
Dołączył: 10.12.2003
Skąd: Dąbrowa Górnicza




Cytat(mieszkos @ 27.12.2012, 21:00:04 ) *
a masz zrobiony taki kontroler z taką akcja ?


Cytat(webmaniak @ 28.12.2012, 08:55:57 ) *
Nie mam, ponieważ to jest katalog z modułami.


Routing kieruje na kontroler/akcja, niepotrzebnie mieszasz tutaj z modułami. Wskaż domyślny kontroler oraz akcję dla routera, a nie katalog z modułami (router miałby wylosować odpowiedni kontroler i metodę?).
Go to the top of the page
+Quote Post
webmaniak
post
Post #18





Grupa: Zarejestrowani
Postów: 371
Pomógł: 30
Dołączył: 14.04.2010

Ostrzeżenie: (0%)
-----


Ok, chyba rozumiem, zamiast cms/users mam wpisywać samo users ponieważ tam będzie kontroler users, więc dodatek cms jest zbędny. Dziękuję za pomoc w zrozumieniu smile.gif


--------------------
Pomogłem - kliknij , wprowadziłem w błąd - poinformuj niżej lub na pm.
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 21.08.2025 - 12:38