Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [Kohana] Wczytanie kontrolera w kontolerze, możliwe ?
Forum PHP.pl > Forum > PHP > Frameworki
Onliner
Witam.
Mam następujący problem : musze napisać stronę, która musi posiadać budowę, że tak powiem modułową. Tzn. że klient sam ustala, jaki moduł chce wczytać tu, a jaki tam. I tu pojawia się problem, jak z kontrolera strony głównej mogę się odwołać, przykładowo do kontrolera newsów ? Biblioteki raczej też odpadają, bo nie wiem z kótej klasy będę dziedziczyć. Proszę o pomoc i z góry dziękuję
marcio
O ile cie dobrze zrozumialem to mozesz zrobic jeden glowny kontroler z glownym widokiem i modelem i potem do widoku bedziesz ladowal inne kontrolery ktore ci zwroca widok.
phpion
Możesz wykorzystać Komponenty a'la Symfony i manipulować osadzaniem ich w wybranych miejscach.
Onliner
Dziękuję, udało mi sie rozwiązać problem na podstawie artykułu, temat do zamknięcia. Jeżeli ktoś ma podobny problem, podaje poniżej rozwiązanie

[system/libraries/Controller.php] - dodajemy funkcję
  1. protected function load_module($name)
  2. {
  3. try{
  4. if(!file_exists('application/controllers/modules/' . $name . '.php'))
  5. {
  6. throw new Exception ('Nie można zaladować modułu ' . $name . ', ponieważ plik nie istnieje <br />' . url::base() . 'application/controllers/modules/' . $name . '.php');
  7.  
  8. }
  9. }
  10.  
  11. catch(Exception $wyjatek)
  12. {
  13. die($wyjatek);
  14. }
  15. require_once('application/controllers/modules/' . $name . '.php');
  16. $obj = new $name;
  17. return $obj;
  18. }

Następnie w kontrolerze możemy sie odwołać do naszego modułu w poniższy sposób
Cytat
$test = parent::load_module('testowy');
echo $test->metoda();
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.