Создание шаблона - PullRequest
       4

Создание шаблона

0 голосов
/ 14 августа 2011

Работа с библиотекой шаблонов Здесь , и я все еще немного запутался в том, где я должен хранить файлы верхнего и нижнего колонтитула и как они формируются до сих пор.

Контроллер:

class Kowmanager extends CI_Controller {

public function __construct()
{
    $this->load->helper('url');
    $this->load->library('tank_auth');
    $this->load->library('template');
    parent::__construct();

}

function index()
{
    if (!$this->tank_auth->is_logged_in()) {
        redirect('/auth/login/');
    } else {
        $data['user_id']    = $this->tank_auth->get_user_id();
        $data['username']   = $this->tank_auth->get_username();
        $this->load->view('welcome', $data);
    }
}

}

/* End of file kowmanager.php */
/* Location: ./application/controllers/kowmanager.php */

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

Редактировать: я просто запутался, куда помещать файлы нижнего колонтитула

У кого-нибудь есть идеи по этому поводу?

1 Ответ

1 голос
/ 14 августа 2011

Если я правильно понимаю, вы хотите загрузить представление между верхним и нижним колонтитулом?

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

Я создал файл libraries/render.php с чем-то вроде:

class render
{
    private $CI;
    function __construct ()
    {
        parent::__construct();
        $this->CI &= get_instance();
    }
    function view ($activeView, $params, $title)
    {
        $this->CI->load->view('template/header.php', array('title'=>$title));
        $this->CI->load->view($activeView, $params);
        $this->CI->load->view('template/footer.php', array('navbar'=>$this->RenderFooterNavBar()));
    }

    private function RenderFooterNavBar ()
    {
        $bits = array('Home','About Us', 'Contact'); //You could get these from anywhere
        return $this->CI->load->view('template/modules/footernavbar', array('bits'=>$bits), TRUE); //returns the rendered output of that view
    }
}

С такими файлами, как:
template/header.php:

<html>
<head>
    <title><?php echo $title; ?></title>
</head>
<body>

template/footer.php:

</body>
</html>

template/modules/footernavbar

<ul>
<?php
foreach ($bits as $item)
    echo "<li>$item</li>";
?>
</ul>

Затем использовать:

function index ()
{
    $this->render->view('post', $data, 'Blog Post');
}

Обратите внимание, это должно работать с любой системой шаблонов, просто настройте load->view с тем, что использует ваша система шаблонов. Это также отличный способ визуализации данных, которые необходимы для верхнего или нижнего колонтитула, если вы хотите извлечь данные из базы данных, просто отразите то, что я сделал с функцией RenderFooterNavBar ().

Надеюсь, что это поможет,
Max

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