我不知道该怎么做,因为它没有回应我的HTML。它在firebug中显示div标签,但在它之后没有任何其他东西应该是索引页面(主页)或我的404页面。应该发生的是它应该找出它应该通过if语句加载哪个页面视图,然后在内容页面中加载该视图。
控制器:
$siteInfo = $this->kow->getSiteTitleAndSlogan();
$activeTemplate = $this->kow->getTemplate();
if ($this->kow->pageStatus('index', $activeTemplate[0]->short_name) == 1){
$page = $this->load->view($activeTemplate[0]->short_name.'/pages/index');
} else {
$page = $this->load->view($activeTemplate[0]->short_name.'/pages/404');
}
$footerLinks = $this->kow->getFooterNav();
$this->template
->title($siteInfo[0]->site_name,$siteInfo[0]->site_slogan)
->prepend_metadata('<link rel="stylesheet" type="text/css" href="http://www.kansasoutlawwrestling.com/assets/css/'.$activeTemplate[0]->short_name.'.css" />')
->set('footerLinks', $footerLinks)
->set('page', $page)
->set_partial('header', $activeTemplate[0]->short_name.'/header')
->set_partial('navigation', $activeTemplate[0]->short_name.'/navigation')
->set_partial('content', $activeTemplate[0]->short_name.'/content')
->set_partial('footer', $activeTemplate[0]->short_name.'/footer')
->build('kow');
if ($this->kow->pageStatus('index', $activeTemplate[0]->short_name) == 1){
$page = $this->load->view($activeTemplate[0]->short_name.'/pages/index');
} else {
$page = $this->load->view($activeTemplate[0]->short_name.'/pages/404');
}
查看:
<div id="content">
<?php
echo $page;
?>
</div>
编辑:我要做的是将活动模板的id和字符串索引带到pageStatus函数,并查看页面状态是否为1。当我运行print_r函数时下面我明白了:
Array ( [0] => Array ( [status_id] => 1 ) )
控制器
if ($this->kow->pageStatus('index', $activeTemplate[0]->id) == 1){
$page = $this->load->view($activeTemplate[0]->short_name.'/pages/index', '', true);
} else {
$page = $this->load->view($activeTemplate[0]->short_name.'/pages/404', '', true);
}
print_r($this->kow->pageStatus('index', $activeTemplate[0]->id));
编辑2:我仍然无法查看正确的页面。
答案 0 :(得分:1)
我对代码点火器一无所知,但正如我所看到的那样。我认为$ page可能是一个TEMPLATE对象,并不意味着使用ECHO naturaly显示...
OR
由于php致命错误,您的模板无法呈现,但这就是为什么您的缓冲区包含初始DIV但没有其他内容。 (或者在处理您的ECHO $ PAGE时调用了EXIT / DIE)
答案 1 :(得分:1)
您正在将索引和404的视图错误地加载到$page
变量中。要存储$this->load->view()
来电的输出,您必须将true
作为第三个参数。
来自CI用户指南
将视图作为数据返回
第三个可选参数允许您更改函数的行为,以便将数据作为字符串返回,而不是将其发送到浏览器。如果要以某种方式处理数据,这可能很有用。如果将参数设置为true(布尔值),它将返回数据。默认行为为false,将其发送到您的浏览器。如果要返回数据,请记住将其分配给变量:
$string = $this->load->view('myfile', '', true);
此外,代码的最后一位,$page
的第二个定义发生在调用->set('page', $page)
和->build('kow');
之后,因此不会更改输出。
答案 2 :(得分:1)
这个“$ this-&gt; kow-&gt; pageStatus('index',$ activeTemplate [0] - &gt; id)”返回一个数组。不能以你的方式比较它。当然它会返回1,可以解释为TRUE,但如果status_id设置为0或2或其他什么,那么它仍将返回“TRUE”。
希望这有帮助