3

今のところ、次のようにすべてのビューにタイトルを個別に追加する必要があります。

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

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

タイトルのTestProject部分を変更したい場合は、すべてのビューで変更する必要があります。これをBootStrap.phpで言及し、すべてのビューに追加するにはどうすればよいですか? これを変更する必要があるときはいつでも、これを 1 か所で変更します。

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

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 に答える
4

レイアウトプレースホルダーの使用を検討してください。レイアウトはすべてのビューに適用され、そこでタイトルを設定できます。コントローラーで、「ホーム」または「ダッシュボード」部分を、レイアウトで使用されるプレースホルダーに設定できます。

于 2011-05-14T13:30:55.440 に答える
2

これは、コントローラーにページ タイトルを設定する最良の方法です。新しいタイトルを設定したい場合は、..

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

タイトルの前に既存のタイトルを追加する場合は、次を使用します

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

タイトル = TestProject を配置するだけで、各ページで javascript を使用してタイトルを読み取り、追加のタイトルを連結できるため、js でこれを行うことができると思います

これは、マスターページのようなものを使用している場合

于 2011-05-14T13:34:41.347 に答える