2

複数のレイアウトを使用する方法を知っています (コントローラーごとおよびモジュールごと)。

私は5つの異なるレイアウトを持っており、異なるモジュールを呼び出すたびにうまく切り替わります。しかし問題は、それらすべてに共通コードの一部 (doctype、スタイルシートなど) があることです。

Zend で複数のレイアウトを使用できるが、それらに共通のルートを設定できるかどうか教えていただけますか? スタイルシートを追加したい場合は、5 つの異なるレイアウトを変更する必要があります。

前もって感謝します。

4

2 に答える 2

1

私は通常、サブレイアウトでコンテンツをレンダリングするラッパー レイアウトを作成します。

  1. サブレイアウトと呼ばれるレイアウトに新しいフォルダーを作成する
  2. 1 つのデフォルトで必要な数のサブレイアウトを作成できるため、必要がなければ設定する必要はありません。

    /application /layouts wrapper.phtml /sublayouts default.phtml

wrapper.phtml で:

$sublayout = $this->layout()->sublayout ? $this->layout()->sublayout : 'default';
echo $this->render('sublayouts/' . $sublayout . '.phtml');

sublayouts/default.phtml で (何でも追加):

<?= $this->layout()->content ?>
于 2012-08-02T23:17:54.493 に答える
0

There are view helpers that are used for these situations. headScript and headLink.

In your layouts all you need to do is

echo $this->headScript(), $this->headStyle();

Then, in your bootstrap add:

public function _initScriptsAndStyles()
{
  //get the view object
  $this->bootstrap('view');
  $view = $this->getResource('view');

  //add javascript
  $view->headScript()
       ->appendFile('/js/your-js.js')
       ->appendFile('/js/another-js.js');

  //add css files
  $view->headLink()
       ->appendStylesheet('/styles/basic.css');
}
于 2012-08-02T15:15:51.427 に答える