код воспламенитель :: включает в себя? - PullRequest
0 голосов
/ 17 ноября 2010

Я новичок в коде воспламенителя и все еще изучаю лучшие практики.

На моем сайте есть два меню,

Одно для пользователей, которые вошли в систему.

Один для пользователей, которые вышли из системы.

У меня они есть в двух файлах в папке представлений.

Мой вопрос:

Как мне включить эти?

мое лучшее предположение -

при вызове контроллера

if($loggedin)
  $menu = $this->load->view('loggedin', true);
else
  $menu = $this->load->view('loggedout', true);
$this->load->view('main', array('menu' => $menu));

Так что, в принципе, передайте правильный код меню в представление и просмотрите его.

Есть ли лучший способ сделать это?

Ответы [ 3 ]

2 голосов
/ 17 ноября 2010

вы можете нарушить строгий MVC и иметь что-то вроде этого в вашем представлении:

<?php
// in your controller or when the user logs in:
$this->session->set_userdata('logged_in', 'true');
?>

ваше мнение:

<?php
  // Logged in?
  if ( ! $this->session->userdata('logged_in') {
      $this->load->view('loggedout');
  } else {
      $this->load->view('loggedin');
  }
?>

помните, что MVC - это концепция, она не установлена ​​вкамень.

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

Вы можете загрузить столько представлений, сколько пожелаете в функции. Так, например:

if($loggedin){
  $this->load->view('loggedin');
} else {
  $this->load->view('loggedout');
}

$this->load->view('main');

Делает это немного чище, но, вероятно, незначительно экономит эффективность.

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

Я бы предложил вам использовать плагины.

вставьте это в плагин

if($loggedin)
  $menu = $this->load->view('loggedin', true);
else
  $menu = $this->load->view('loggedout', true);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...