<?php
class View {
public function getView($default_template, $content_template, $left_template, $meta, $rows, $rows_left, $menu) {
if (file_exists(ROOT_PATH.PATH_VIEWS.$content_template.'_view.php')) {
include ROOT_PATH.PATH_VIEWS.$default_template.'_view.php';
}
else {
exit(file_get_contents(ROOT_PATH.'/404.html'));
}
}
}
А вот класс контрллера рандомной страницы.
<?php
class all_cat_Controller extends Controller {
function __construct($GET)
{
$this->view = new View();
$this->model = new all_cat_Model();
$this->model2 = new news_mini_Model($GET);
$this->model3 = new cat_Model($GET);
$this->model4 = new course_Model($GET);
}
public function action_index($meta, $GET) {
if (isset($GET['plvl1']) and $GET['plvl1']=='cat') {
if (isset($GET['plvl2']) and $GET['plvl2']=='course')
$this->full_course_view($meta, $GET);
else
$this->all_course_view($meta, $GET);
}
else
$this->all_cat_view($meta);
}
private function all_cat_view($meta, $menu=NULL) {
$rows_left=$this->model2->return_rows();
$rows=$this->model->return_rows();
$this->view->getView('default_template', 'all_cat', 'news_mini', $meta, $rows, $rows_left, $menu);
}
private function all_course_view($meta) {
$rows_left=$this->model2->return_rows();
$rows=$this->model3->return_rows();
$menu=$this->model3->return_menu();
$this->view->getView('default_template', 'cat', 'news_mini', $meta, $rows, $rows_left, $menu);
}
private function full_course_view($meta, $GET, $menu=NULL) {
$rows_left=$this->model2->return_rows();
$rows=$this->model4->return_rows($GET);
$this->view->getView('default_template', 'course', 'news_mini', $meta, $rows, $rows_left, $menu);
}
}
Прикол в том, что я из контроллера передаю в функцию getView как обязательные параметры, такие как default template, шаблон нужной страницы , шаблон левого блока, мета данные, так и не всегда нужные rows, menu и т.д , коих много может быть. То есть выходит, что если я перечисляю в getView все требуемые параметры, то и я должен их перечислить в каждом контроллере, хотя бы присвоив им NULL , иначе получается ругань, что не хватает параметров в вызванной функции. Как избавиться от этого, как логически перестроить представление?