1

Zend-Framework アプリケーションがあります。提供するモジュール構造を使用していZend_Controller_Frontます。これは私のディレクトリ構造からの小さな抜粋です(この質問の重要な部分のみ):

root-directory
- modules
  - blog
    - views
      - scripts
        - index_index.phtml
- views
  - pagination_control.phtml

ご覧のとおり、モジュール/コントローラー/アクションに固有のビュー スクリプトがあります。これらのビューは対応するパスにあります (この場合はmodules/blog/views.

私が今やっていることは、PaginationControl-ViewHelperを呼び出すことですmodules/blog/views/scripts/index_index.phtml。ただし、この View-Helper は、ご存知のように部分ビューをレンダリングします。ViewHelper は、同じディレクトリ内で部分ビューを見つけようとします (つまり、modules/blog/views/scripts. 別のモジュールで同じビュー部分スクリプト ( pagination_control.phtml) を使用したいので、このビュー部分部分に各モジュールからアクセスできるようにしたいと思います。だから私はしたいそのファイルをviewsルート ディレクトリの一般的なフォルダに置きます。

ただし、これは機能しません。ViewHelper は常に、対応するモジュール フォルダーでビュー スクリプトを探します。

誰でも私の一般的なディレクトリからアクセスできるようにすることができますviewsか?

4

1 に答える 1

3

ここでわかるように、ZF 1.6.2 ページネーション コントロールは部分引数の文字列の代わりに配列を取ることができるため、この配列で 1 番目に部分の名前を設定し、2 番目にモジュール名を設定します。これはまだ文書化されていません。

配列を使用して、使用するパーシャルのモジュール (「共通」?) を指定できます。

実際の呼び出しは次のようになります ( $partial を使用して、 paginationControl()ビュー ヘルパーへの 3 番目の引数を指定します):

$this->view->partial($partial[0], $partial[1], $pages);

これは、「共通」モジュールがある場合に役立ちます。

ここでは、共有フォルダーを使用しています。この方法で Zend_View の共有フォルダーとしてインストールする必要があります (Boostrap またはリソース コードで)。

$view->addScriptPath("/root-directory/views");

またはそれ以上:

$view->addScriptPath("/root-directory/views/partials");

そして、モジュールディレクトリを指定する必要はありません。Zend_View は、このフォルダー内のパーシャルを常にチェックする必要があります。

于 2011-05-21T12:58:58.587 に答える