Struktura katalogow:
Kod
|www|
|frontcontroller|
|components|
|controllers|
|views|
|models|
|plugins|
|controllers|
|views|
|models|
|libraries|
|controllers|
|views|
|models|
|config|
|interfaces|
|frontcontroller|
|components|
|controllers|
|views|
|models|
|plugins|
|controllers|
|views|
|models|
|libraries|
|controllers|
|views|
|models|
|config|
|interfaces|
Mam routing ktory przekazuje do Dispatchera i ten zatem odpala kontroler i jego akcje czyli tak jak powinno byc.
Jednak system modulow chce zrobic tak jak zrobilem kiedys czyli chcialbym miec zawsze kilka glownych kontrolerow ktore bd mialy glowny widok ten sam Home.php i model Home_Model.php(ktory bd wczytywal moduly na podstawie glownego kontrolera), gdzie widok jak wiadomo bd zrobiony na podstawie DIV'ow gdzie kazdy div ma swoje id a w bazie bd mial info do jakiego div'a jaki modul(jego widok,model i kontroler) ma byc ladowany.
Czyli jesli site bd: index.php/Home odpali sie glowna strona Home z defaultowa akcja Index() lub inna jesli bedzie 2 parametr z modulami dla tej podstrony
SIte: index.php/Forum odpali sie strona forum z jego modulami w sumiej jak wyzej etc...
Gdzie akcja Index() bd pobierala moduly z glownego modelu podstrony.Problem polega na tym ze jak bd mial index.php/Home i na Home bd modul news i bd link by przeczytac caly news nie wiem jak ma to wygladac by wewnatrz glownrgo kontrolea HOme obsluzyc akcje pod kontrolera News testowe dzis zaczne robic prosty system news'ow z pluginem komentarzy i zobaczy sie co z tego wyjdzie
Jesli ktos ma troche czasu i ochote tu jest kilka podstawowych plikow:
Dispatcher -> http://3paste.com/hash/c967351be511c557ae4713963f7e94b4
Router -> http://3paste.com/hash/7c46322bb64b1ba1c9b69e7a1055ee1f
Glowny controller -> http://3paste.com/hash/0f1f1fd18c2e2ab6b9f9b6ed0ad0015d
I jak ktos che wiecej info to niech napisze, napewno jak zrobie prosty system news'ow bd juz wszystko wiedzxial co i jak jednak chcialem zapytac.
Jakies propozycje?

Myslalem zrobic cos na wzor tego w glownym kontrolerze:
protected function LoadComponents() { /*Szukamy componentow na dany glowny kotroler*/ $GetComponents = $this -> db -> SetQuery('select name from components where controller = '.mysql_real_escape_string($this -> routing -> getController())); $ModulesName = $this -> db -> DbSqlRecordsAssoc($GetComponents); $home = $this -> View; /*Robimy glowny obiekt widoku dla glownego kontrolera*/ foreach($ModulesName as $module) { $mods = $this -> module; /*Tworzymy obiekt moduly poniewa kontroler jest taki sam dla moduly jak i jego pluginy zmieniaja sie tylko widoki i modele*/ $plugins = $this -> db -> SetQuery('select plugin_name from plugin where module = '.$module); /*Szukamy pluginow dla kazdego componentu ktory znajduje sie na stronie*/ if(mysql_num_rows($plugins) > 0) { /*Jesli znaleziono plugin wlaczamy go zamiast modelu i widoku componentu*/ require_once($this -> cfg -> PathPlugins.$this -> cfg -> PathModels.$module.'.php'); $PluginModel = $module.'_Model'; $PluginAction = $this -> routing -> getParams(); $code = $mods -> $PluginModel -> $PluginAction(); $view = $this -> View; $view -> SetVars($code); $html[$module] .= $view -> ParseTemplate(true, $this -> cfg -> PathPlugins.$this -> cfg -> PathViews.$module.'.php'); } } else { /*Jesli nie znaleziono pluginu wlaczamy component*/ require_once($this -> cfg -> PathModules.$this -> cfg -> PathModels.$module.'.php'); $ComponentModel = $module.'_Model'; $ComponentAction = $this -> routing -> getParams(); $code = $mods -> $ComponentModel -> $ComponentAction(); $view = $this -> View; $view -> SetVars($code); $html[$module] .= $view -> ParseTemplate(true, $this -> cfg -> PathModules.$this -> cfg -> PathModels.$module.'.php'); } } } /*Wypelniamy glowny szablon widokami z componentu/pluginu i wyswietlamy wszystko*/ $home -> SetVars($html); $home -> ParseTemplate(true, $this -> routing -> getController()); }
Co o tym sadzicie?