[英]Codeigniter template libraries editing
我为Codeigniter中的初学者模板找到了一个很棒的链接:
http://net.tutsplus.com/tutorials/php/an-introduction-to-views-templating-in-codeigniter/
真正地,这是我第一次能够逐步遵循该主题的教程,并且对逻辑有所了解。
但是,尽管它允许我指定模板(例如,默认模板),但它限制了我必须在该内容视图文件中包含所有HTML正文代码。 我想将其拆分为页眉,主要内容,可选的侧边栏和页脚。
我的某些网页是三栏式(带有左侧栏和右侧栏),有些网页是两栏式(带有相同的右侧栏),有些是单栏的(没有栏式)-因此我的想法是有3个相应的模板-但是我将不得不在许多不同的视图文件中为我的右侧栏重复代码,这将使编辑该行变得更加困难-并最终破坏了拥有模板系统的目的。
通过编辑现有代码是否可以实现我想要的功能,或者有人可以向我推荐另一个布局/模板库?
PS。 我考虑过这样一个事实,我可以在库文件中编辑以下行以实现已加载的页眉和页脚,但是主体代码和可选的侧边栏是我的主要障碍,因为如果不将侧边栏应用于所有模板-包括一个单列模板。
$this->ci->load->view('header_view, $data);
$this->ci->load->view('templates/'.$tpl_view, $data);
$this->ci->load->view('footer_view, $data);
您好,只需将您的侧边栏创建为视图并在您的布局视图中传递即可,在这里,我已经创建了一个简单的布局系统
首先在application / core目录下创建MY_Controller复制以下代码
class MY_Controller extends CI_Controller{
//all you default views
public $layout = 'default';
public $header = 'default_heder';
public $right_sidebar = 'default_right_sidebar';
public $left_sidebar = 'default_left_sidebar';
public $footer = 'default_footer';
public function __construct() {
parent::__construct();
}
public build($view,$data = array()){
$layout_data = array();
$layout_data['header'] = $this->load->view($this->header,$data,TRUE);
$layout_data['right_sidebar'] = $this->load->view($this->right_sidebar,$data,TRUE);
$layout_data['left_sidebar'] = $this->load->view($this->left_sidebar,$data,TRUE);
$layout_data['footer'] = $this->load->view($this->footer,$data,TRUE);
$layout_data['body_content'] = $this->load->view($view,$data,TRUE);
$this->load->view($this->layout,$layout_data);
}
}
2创建任何控制器,并使用MY_Controller扩展它,我创建了示例页面控制器
class Page extends MY_Controller{
public function __construct() {
parent::__construct();
}
public index(){
$data['content'] = 'content here';
$this->build('page_view',$data);
}
public one_coulmn(){
$this->layout = 'one_column'; // change layout view
$this->right_sidebar = 'inner_right_sidebar'; // change sidebar view
$data['content'] = 'content here';
$this->build('page_view',$data);
}
}
这是您的3列视图的示例
// three col layout
<div id="header"><? echo $header ?></div>
<div id="left_sidebar"><? echo $left_sidebar ?></div>
<div id="body_content"><? echo $body_content?></div>
<div id="right_sidebar"><? echo $right_sidebar ?></div>
<div id="footer"><? echo $footer ?></div>
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.