2012-04-28 3 views
2

Я неоднократно приходится включать одну переменную, когда я показываю свои взгляды:CodeIgniter - Общие переменные шаблона

$this->load->view('login', array('logged_in' => $this->auth->is_logged_in())); 
$this->load->view('somepage', array('logged_in' => $this->auth->is_logged_in())); 
$this->load->view('anotherpage', array('logged_in' => $this->auth->is_logged_in())); 

Как я могу включить эту одну переменную через все мои зрения результатов? Есть ли более простой метод, чем расширение класса шаблонов?

ответ

3

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

$params = array('logged_in' => $this->auth->is_logged_in()); 
$this->load->view('login', $params); 
$this->load->view('somepage', $params); 
$this->load->view('anotherpage', $params); 

Альтернативой было бы создать помощника, который возвращает ли зарегистрирован пользователь в. Помощники глобально доступны в контроллерах и мнения. См http://codeigniter.com/user_guide/general/helpers.html, а также

+2

Я пошел с помощником. Благодаря! – jSherz

0

как об использовании сессий?

$this->session->userdata($var); 

или печенье

$this->input->cookie($var, TRUE); 

спасибо.

+0

Обратите внимание, что текущие сеансы Codeigniter - это файлы cookie. – Eddie

0

Отличное решение, Gordon! Но, в зависимости от случая, также можно использовать Most Simple Template Library.

С уважением!

0

Вы также можете получить доступ к классу непосредственно из вашего зрения:

<?php if($this->auth->is_logged_in()): ?> 
    Hello! 
<?php endif; ?> 

Это не самое большое решение, но я считаю, что хорошо работает с пользователем условными.

Смежные вопросы