我如何在引导程序中分配一次页面标题(所以我不必在每个控制器中都这样做)?是否有链接可以为我指明正确的方向?
使用引导程序是否正确?
我目前在每个控制器中都有这个:
public function indexAction()
{
$this->view->title = 'Cut It Out';
}
layout.phtml 有这个:
<h1><?php echo $this->escape($this->title); ?></h1>
我如何在引导程序中分配一次页面标题(所以我不必在每个控制器中都这样做)?是否有链接可以为我指明正确的方向?
使用引导程序是否正确?
我目前在每个控制器中都有这个:
public function indexAction()
{
$this->view->title = 'Cut It Out';
}
layout.phtml 有这个:
<h1><?php echo $this->escape($this->title); ?></h1>
您可以为此使用视图助手将标题回显到 layouts/layout.phtml 中的布局脚本中。
创建文件 /application/views/helpers/SiteTitle.php :-
<?php
class Zend_View_Helper_SiteTitle extends Zend_View_Helper_Abstract
{
public function siteTitle()
{
$siteTitle = getTitleFromDbSomehow();
return $this->view->escape(siteTitle);
}
}
然后在您的布局头部分中,您将拥有:-
<title><?php echo $this->siteTitle(); ?></title>
如果你想把它放在身体的某个地方:-
<h1><?php echo $this->siteTitle(); ?></h1>
首选方法是使用视图助手:
在 application/views/helpers/Title.php 中:
<?php
class Zend_View_Helper_Title extends Zend_View_Helper_Abstract
{
public function title()
{
$title = 'cut it out'; // or from database
return $this->view->escape($title);
}
}
在您的 layout.phtml 中:
echo $this->title();
但是,如果您必须使用引导程序(例如,您想在控制器操作中覆盖):
<?php
class Bootstrap extends Zend_Application_Bootstrap_Bootstrap
{
protected function _initTitle()
{
$this->bootstrap('layout');
$layout = $this->getResource('layout');
$view = $layout->getView();
$view->title = 'Cut It Out';
}
}