3

现在我必须在我的所有视图中分别添加标题,如下所示:

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

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

现在,如果我想更改标题的TestProject部分,那么我必须在我的所有视图中更改它。我如何在BootStrap.php中提到这一点并将其添加到所有视图中?每当我必须改变它时,我都会在一个地方改变它。

4

5 回答 5

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() ?>
于 2011-05-14T13:42:05.133 回答
4

研究使用布局占位符。布局适用于您的所有视图,您可以在那里设置标题。然后,在您的控制器中,您可以将“主页”或“仪表板”部分设置为布局将使用的占位符。

于 2011-05-14T13:30:55.440 回答
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();
?>
于 2011-05-15T02:11:05.283 回答
2

这是将页面标题设置到控制器中的最佳方式。如果要设置新标题,请使用..

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

如果您想在标题前面加上现有标题,请使用

$this->view->headTitle()->setSeparator(' - ')->prepend('Manager'); 
于 2015-05-16T10:20:34.050 回答
1

我认为您可以使用 js 来执行此操作,因为您只需将标题 =TestProject 放在每个页面中,您就可以使用 javascript 读取标题然后连接额外的标题

如果您使用的是母版页之类的东西

于 2011-05-14T13:34:41.347 回答