创建codeigniter动态模板

时间:2012-03-01 22:10:28

标签: php codeigniter templates

我想将登录表单放在导航(模板)中,以便它将显示在所有页面中。 并将检查数据库中的用户名和密码,而无需转到其他页面。如果失败,导航中将显示错误,如果成功,将使用特定的costomizations重新加载页面。请告诉我如何使用代码和详细信息。

我在模板中有这些部分:

  1. NAV
  2. 页脚
  3. 以及将在当前控制器中添加的内容
  4. 我想在每个控制器中执行此操作:

    $this->load->view('templates/header');
    $this->load->view('templates/nav');
    $this->load->view('related_view');
    $this->load->view('templates/footer');
    

    但我的导航应该包含一个登录表单,该表单不会通过提交转到另一个页面。

3 个答案:

答案 0 :(得分:0)

我通常做这样的事情:

<?php
$this->load->view('templates/header');

if ($this->user_model->isLoggedIn())
{
    // Logged-in users should see this view
    $this->load->view('templates/nav-registered');
}
else
{
    // Guests should see this
    $this->load->view('templates/nav-guest');
}

$this->load->view('related_view');
$this->load->view('templates/footer');

如果您覆盖Loader类以自动获取页眉/页脚,而不必在 EVERY 控制器方法中进行编码,那么您会感谢自己。只是一个想法..

答案 1 :(得分:0)

使用会话检查已记录的用户,并将其放在导航视图中,但首先要确保您已从auload或控制器加载会话

if($this->session->userdata('user_loged')){
      //code to put some navigation when use is loged
}else{
    //code to put login form
}

答案 2 :(得分:0)

我找到的解决方案是扩展Controller类。所以在这种情况下,我们应该创建一个扩展控制器(例如MY_Controller)并将动态操作(此处为身份验证)作为方法放入其中。

然后我们应该在每个控制器中扩展这个自制的控制器,这样就可以简单地处理模板中的认证。