脚本宝典收集整理的这篇文章主要介绍了php – CodeIgniter中一致的主题和内容,脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。
我的网站将具有一致的标题,导航和页脚.基本上,唯一会通过subnav改变的内容是页眉和页脚之间的一些文本和/或图像.这是一个非常典型的简单网站,但我想弄清楚如何在视图/控制器的上下文中处理它.
根据我在这种情况下的理解,您希望在视图中创建一个“主题”文件夹,其中包含随每个页面加载的“主”视图.我的印象是,由于能够在单个控制器中加载多个视图,我实际上只需要一个“主”控制器来加载“主”视图以及与导航关联的任何视图.例如,Nav:Home |关于|联系.我点击“关于”,然后通过适当的家庭控制器方法加载关于视图的主要内容.
这是我目前正在尝试采取的方法,但我想在尝试这个时我会得到一些反馈.
我不一定在寻找一步一步的教程,但更多的是接受或最常见的方法.非常感谢,如果这是在我面前盯着我的2个帖子,我会提前道歉.
谢谢
-Jay
你会希望它设置如下:
$route['(:any)'] = "home/$1"; $route['default_controller'] = "home";
所以它匹配第一段中的任何(:any)并将其路由到home / $1(控制器/函数)……然后如果第一段中没有任何内容它将它映射到home /(隐含的索引函数) ).看看路径文件的文档,这样你就可以了解你可以用它做什么(你可以运行正则表达式,高级路由等),这一点非常重要.
这种方式在你的home.PHP控制器(controllers / home.PHP或你想要的任何调用它)中你可以拥有与你的url匹配的函数
在这种情况下,在其他帖子中提到的关于扩展基本控制器的内容并不是必需的.但是有一个功能可以为您查看加载是很好的
这样您就不必为每个函数重复$this-> load-> view(header)和$this-> load-> view(footer)等.
我喜欢做的是使用我的页眉,页脚,导航等创建一个包含文件夹.创建一个功能,只有这样…具有私人可访问性,如下所示:
PRivate function viewloader($view,$data) { $this->load->view('includes/header',$data); $this->load->view('includes/nav',$data); $this->load->view($view,$data); $this->load->view('includes/footer',$data); }
…或者在函数之前使用codeigniter的内置下划线,使其无法通过URL访问
function _viewloader($view,$data); }
function about() { /* put any application LOGic here */ $this->viewloader('about',$data); /* or $this->_viewloader('about',$data); if you went with CI's style visibility */ } function contact() { /* put any application logic here */ $this->viewloader('contact',$data); /* or $this->_viewloader('contact',$data); if you went with CI's style visibility */ }
所以现在正如你所看到的那样,viewloader函数现在加载了header,nav的视图,无论是$view是什么,然后是一次性的页脚…非常好.
您还可以记住,可以在视图文件本身(嵌套视图)中加载您需要的任何视图,它们并不总是必须从控制器加载,尽管保持这种方式是好的,所以你不要如果要进行重大更改,必须编辑单个视图文件.
这是最后的样子:
<?PHP if (! defined('BASEPATH')) exit('No direct script access'); class home extends CI_Controller { //PHP 5 constructor function __construct() { parent::__construct(); } function index() { $data['title'] = "Welcome To Our Site" $this->viewloader('home',$data); } function contact() { $data['title'] = "Contact Us" $this->viewloader('contact',$data); } function about() { $data['title'] = "About Us" $this->viewloader('about',$data); } private function viewloader($view,$data) { $this->load->view('includes/header',$data); $this->load->view('includes/nav',$data); $this->load->view($view,$data); $this->load->view('includes/footer',$data); } }
以上是脚本宝典为你收集整理的php – CodeIgniter中一致的主题和内容全部内容,希望文章能够帮你解决php – CodeIgniter中一致的主题和内容所遇到的问题。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。