0

ブートストラップでページタイトルを1回割り当てるにはどうすればよいですか(したがって、各コントローラーで割り当てる必要はありません)。私を正しい方向に導くリンクはありますか?

ブートストラップを正しい方法で使用していますか?

私は現在、各コントローラーにこれを持っています:

public function indexAction()
{
    $this->view->title = 'Cut It Out';
}

layout.phtmlには次のものがあります。

<h1><?php echo $this->escape($this->title); ?></h1>
4

2 に答える 2

2

このためにビュー ヘルパーを使用して、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>
于 2012-04-18T09:58:53.527 に答える
1

推奨される方法は、ビュー ヘルパーを使用することです。

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();

ただし、Bootstrap を使用する必要がある場合 (たとえば、コントローラー アクションでオーバーライドしたい場合):

<?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';
    }

}
于 2012-04-18T09:57:48.900 に答える