Не показывать страницу просмотра - PullRequest
0 голосов
/ 17 октября 2011

Я не уверен, как это сделать, потому что это не повторяет мой HTML. Это показывает тег div в firebug, но не что-нибудь еще после него, которое должно быть либо страницей индекса (домашней страницей), либо моей страницей 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>

РЕДАКТИРОВАТЬ: что я пытаюсь сделать, это взять идентификатор активного шаблона и индекс строки для функции 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: Я все еще не могу получить нужную страницу для просмотра.

Ответы [ 3 ]

1 голос
/ 17 октября 2011

Вы загружаете представления для индекса и 404 в переменную $page неправильно. Чтобы сохранить результат вызова $this->load->view(), необходимо включить true в качестве третьего параметра.

Из руководства пользователя CI

Возврат представлений в виде данных

Существует третий необязательный параметр, позволяющий изменить поведение функции, чтобы она возвращала данные в виде строки, а не отправляла их в браузер. Это может быть полезно, если вы хотите обработать данные каким-либо образом. Если вы установите для параметра значение true (логическое значение), он вернет данные. Поведение по умолчанию - false, что отправляет его в ваш браузер. Не забудьте назначить его переменной, если вы хотите, чтобы данные возвращались:

$string = $this->load->view('myfile', '', true);

Кроме того, последний бит вашего кода, второе определение $page происходит после вызова ->set('page', $page) и ->build('kow');, что, следовательно, не изменит выход.

1 голос
/ 17 октября 2011

Этот "$ this-> kow-> pageStatus ('index', $ activeTemplate [0] -> id)" возвращает массив. Не могу сравнить это так, как вы это делаете. Конечно, он вернет 1, что можно интерпретировать как ИСТИНА, но что, если для status_id установлено значение 0 или 2 или что-то еще, он все равно вернет «ИСТИНА».

Надеюсь, это поможет

1 голос
/ 17 октября 2011

Я ничего не знаю о коде воспламенителя, но, как я вижу это.Я думаю, что $ page может быть объектом TEMPLATE, и он не предназначен для отображения с использованием ECHO naturaly ...

ИЛИ

Ваш шаблон не может отображаться из-за фатальной ошибки php, но так вотпочему ваш буфер содержит начальный DIV, но больше ничего.(Или при обработке вашей ECHO $ ​​PAGE был вызван EXIT / DIE)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...