Отдельный верхний и нижний колонтитулы с MVC Codeigniter - PullRequest
2 голосов
/ 29 ноября 2010

Я ищу простой способ, чтобы один и тот же верхний и нижний колонтитулы отображались все время, пока я не мог отключить основную область контента.Я не уверен, как добиться этого с MVC.

Ответы [ 4 ]

10 голосов
/ 30 ноября 2010

Вы можете создать основной вид.

Вид / master.php

$this->load->view('header');
echo $content;
$this->load->view('footer');

А затем создайте базовый контроллер с методом для визуализации основного представления. Содержимое подпредставления загружается и передается в главное представление.

Библиотеки / MY_Controller.php

class MY_Controller extends Controller
{
    public function __construct()
    {
        parent::__construct();
    }

    public function master_view($content_view, $data)
    {
        $data['content'] = $this->load->view($content_view, $data, true);
        $this->load->view('master', $data);
    }
}

Затем расширьте этот базовый контроллер и вызовите метод базового контроллера из ваших методов действия.

Контроллеры / items.php

class Items extends MY_Controller
{
    public function __construct()
    {
        parent::__construct();
    }

    public function index()
    {
        $data['items'] = $this->item_model->get_items();
        $this->master_view('items/index', $data);
    }
}

Обычно он более СУХОЙ, чем загрузка верхнего и нижнего колонтитула в каждом представлении.

1 голос
/ 29 ноября 2010

Просто создайте представление для верхнего колонтитула и представление для нижнего колонтитула и выкладывайте их в верхней и нижней части каждой страницы. Или создайте представление шаблона и загрузите его, затем возьмите другие представления и вставьте их в область содержимого шаблона. В любом случае вы попадете туда, куда хотите. Если вы хотите, чтобы это происходило автоматически, вы можете создать представление шаблона в конструкторе контроллера и сохранить его для члена класса контроллера. Затем используйте его так, что, скажем, $ this-> template будет представлением шаблона.

0 голосов
/ 02 декабря 2010

Как и выше, я делаю это так:

$this->data['content']='your_content_view';
$this->load->vars($this->data);
$this->load->view('template');

Затем в представлении шаблона:

$this->load->view('header');
$this->load->view($content);
$this->load->view('footer');

Представления могут загружать другие представления, поэтому представление шаблона загружает заголовокпредставление, затем представление, указанное в содержимом, затем представление нижнего колонтитула.

Используя эту идею, вы можете загружать представления боковой панели в содержимое и т. д.

0 голосов
/ 29 ноября 2010

Попробуйте модульное разделение: http://codeigniter.com/forums/viewthread/121820/

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...