Zend: Как добавить заголовок веб-страницы во все мои просмотры? - PullRequest
3 голосов
/ 14 мая 2011

Сейчас я должен добавить заголовок во все мои виды отдельно, как это:

<head>
       <title>TestProject - Home</title>
</head>

и

<head>
       <title>TestProject - Dashboard</title>
</head>

Теперь, если я хочу изменить TestProject часть заголовка, я должен изменить его во всех моих представлениях. Как я могу упомянуть об этом в BootStrap.php и добавить его во все представления? И всякий раз, когда мне нужно это изменить, я буду менять это в одном месте.

Ответы [ 5 ]

10 голосов
/ 14 мая 2011

Вы должны заглянуть в помощник вида headTitle. Вы можете поместить этот фрагмент ниже в свой файл начальной загрузки (из документации на http://framework.zend.com/manual/en/zend.view.helpers.html#zend.view.helpers.initial.headtitle).

// setting the controller and action name as title segments:
$request = Zend_Controller_Front::getInstance()->getRequest();
$this->headTitle($request->getActionName())
     ->headTitle($request->getControllerName());

// setting the site in the title; possibly in the layout script:
$this->headTitle('Test Project');

// setting a separator string for segments:
$this->headTitle()->setSeparator(' / ');

Затем вы можете установить заголовок каждой страницы индивидуально в контроллере следующим образом:

$this->view->headTitle('The page name')

Визуализированный заголовок будет выглядеть так:

<title>Test Project / The page name</title>

Да, и вам нужно это в вашем скрипте компоновки, куда будет добавлен тег:

<?php echo $this->headTitle() ?>
4 голосов
/ 15 мая 2011

В Bootstrap.php

protected function _initViewHelpers() {
    $view = new Zend_View();
    $view->headTitle('Main Title')->setSeparator(' - ');
}

В любом view / .phtml

<?php 
    $this->headTitle()->prepend('Page Title');
    echo $this->headTitle();
?>
4 голосов
/ 14 мая 2011

Изучите использование макетов и заполнителей .Макеты применяются ко всем вашим представлениям, вы можете установить заголовок там.В вашем контроллере вы можете затем установить часть "home" или "dashboard" в качестве заполнителя, который будет использоваться вашим макетом.

2 голосов
/ 16 мая 2015

Это лучший способ установить заголовок страницы в контроллере.Если вы хотите установить новый заголовок, используйте ..

public function init()
 {
    $this->view->headTitle('My title'); 
 }

Если вы хотите добавить заголовок к существующему заголовку, используйте

$this->view->headTitle()->setSeparator(' - ')->prepend('Manager'); 
1 голос
/ 14 мая 2011

Я думаю, что вы можете сделать это с помощью js, поскольку вы просто размещаете заголовок = TestProject только тогда, на каждой странице вы можете с помощью javascript прочитать заголовок и объединить дополнительный заголовок

, если вы используете что-то вроде masterстраниц

...