Zend:如何在我的所有视图中添加网页标题



现在我必须在所有视图中单独添加标题,如下所示:

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

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

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

您应该查看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() ?>

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

In Bootstrap.php

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

在任何视图中/.phtml

<?php 
    $this->headTitle()->prepend('Page Title');
    echo $this->headTitle();
?>

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

public function init()
 {
    $this->view->headTitle('My title'); 
 }
如果要在标题

前面加上现有标题,请使用

$this->view->headTitle()->setSeparator(' - ')->prepend('Manager'); 

我认为你可以用js来做到这一点,因为你只是在每一个页面中放置标题=TestProject,然后你可以在每个页面中使用javascript阅读标题,然后连接额外的标题

如果您使用的是母版页之类的东西,则此内容

最新更新