Динамические заголовки в моем codeigniter header.php - PullRequest
4 голосов
/ 28 июня 2011

У меня есть header.php, который я загружаю в свои контроллеры для каждой страницы.Однако я хочу иметь динамические заголовки для каждой страницы.Моя идея состояла в том, чтобы передать переменную $ title в представление при загрузке:

//Home Controller
function index()
{

    $data['title'] = "Dynamic Title";

    $this->load->view('header', $data);
    $this->load->view('layouts/home');
    $this->load->view('footer');

}

, а затем проверить наличие переменной $ title в моем header.php

<title>
    <?php if ($title)
        { 
            echo $title; 
        }
    else
        { 
            echo 'Default Title'; 
        }
    endif; ?>       
</title>

Однако это не работает, и я получаю пустую страницу.Я думаю, что это мой синтаксис для header.php, но я не могу понять, почему.

Ответы [ 2 ]

8 голосов
/ 28 июня 2011

Правильный if Синтаксис

Ваш синтаксис на if-statement немного отключен.Вы можете использовать:

if (condition) {
  // do a
} else {
  // do b
}

Или

if (condition) :
  // do a
else : 
  // do b
endif;

Вы, кажется, перенесли окончание последнего на первое.

Использование троичного оператора в заголовке

После внесения этого изменения ваш заголовок можно распечатать так же просто, как:

<title><?php echo isset($title) ? $title : 'Default Title' ; ?></title>

Загрузка альтернативного представления

Другой способ загрузки представлений - работа содин файл шаблона:

$data['title'] = 'Foo Bar';
$data['content'] = 'indexPage';

$this->load->view('template', $data);

. Загружает файл template.php для просмотра.В этом файле вы загружаете ваши последующие части:

<?php $this->load->view("_header"); ?>
<?php $this->load->view($content); ?>
<?php $this->load->view("_footer"); ?>

Это ни в коем случае не является необходимым, но это может помочь вам сохранить краткость в вашем контроллере.

2 голосов
/ 28 июня 2011

Ну, я бы попробовал сделать дамп переменной $ title в представлении, просто чтобы посмотреть, передается ли он вообще.

Кроме того, вам не нужен "endif"; поскольку вы заканчиваете оператор if последней фигурной скобкой.

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