现在我必须在我的所有视图中分别添加标题,如下所示:
<head>
<title>TestProject - Home</title>
</head>
和
<head>
<title>TestProject - Dashboard</title>
</head>
现在,如果我想更改标题的 TestProject 部分,那么我必须在所有视图中更改它。我怎么能在 BootStrap.php 中提到这一点并在所有视图中添加它?每当我必须改变它时,我会在一个地方改变它。
答案 0 :(得分:10)
您应该查看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() ?>
答案 1 :(得分:4)
使用layouts和placeholders。布局应用于您的所有视图,您可以在那里设置标题。在控制器中,您可以将“主页”或“仪表板”部分设置为布局将使用的占位符。
答案 2 :(得分:4)
在 Bootstrap.php
中protected function _initViewHelpers() {
$view = new Zend_View();
$view->headTitle('Main Title')->setSeparator(' - ');
}
在任何视图/ .phtml
中<?php
$this->headTitle()->prepend('Page Title');
echo $this->headTitle();
?>
答案 3 :(得分:2)
这是将页面标题设置到控制器中的最佳方法。如果您想设置新标题,请使用..
public function init()
{
$this->view->headTitle('My title');
}
如果您想使用现有标题添加标题,请使用
$this->view->headTitle()->setSeparator(' - ')->prepend('Manager');
答案 4 :(得分:1)
我认为你可以用js做这个,因为你只是站点title = TestProject然后在每个页面你可以用javascript读取标题然后连接额外的标题
如果您使用的是母版页