Witam. Mam problem. Spójrzcie na poniższy kod:
  1. class Layout {
  2. function index()
  3. {
  4.  
  5. global $OUT;
  6.  
  7. $CI =& get_instance();
  8. $view = $output = $CI->output->get_output();
  9. $default = APPPATH.'views/default.php';
  10. $layout = (isset($CI->layout))?$CI->layout:'default';
  11.  
  12. if ($layout !== false){
  13. $layout .= (!preg_match('/(.+).php$/', $layout))?'.php':'';
  14. $requested = APPPATH.'views/' . $layout;
  15. if (file_exists($requested)){
  16. $layout_output = $CI->load->file($requested, true);
  17. $view = str_replace("{content}", $output, $layout_output);
  18. }
  19. }
  20.  
  21. $OUT->_display($view);
  22. }
  23. }

Otóż chodzi o to, że to jest obsługa szablonu (mój hooks). I w moim szablonie dałem tylko w miejsce treści {content} i w kontrolerach daje public $layout = 'default'; i tyle. Chodzi o to, w jaki sposób dodać, żebym w tym głównym szablonie (default.php) mógł dać jeszcze np. {box}, i żeby on wczytał tam jeden dany kontroler (localhost/index.php/categories/index) na stałe. Ogólnie chodzi o to, że ma coś w jednym miejscu pobierać z bazy danych (to jest właśnie zrobione w tym kontrolerze). Pozdrawiam i liczę na pomoc.

Doszedłem do tego, że dopisałem:
  1. $view = str_replace("{box}", $box, $view);

Jednakże, co mam wrzucić w $box? Jak daje zwykły string (treść) no to śmiga, ale co mam wrzucić, żeby tam załadować dany kontroler?


@edit: metodą prób i błędów poradziłem sobie.