現在、異なるモジュールのパーシャルを複製し続ける必要があることに気づいています。
すべてのパーシャルにアクセスするためのケースディレクトリが欲しいのですが。
誰かがこれを行う良い方法を持っていますか?
ありがとう
現在、異なるモジュールのパーシャルを複製し続ける必要があることに気づいています。
すべてのパーシャルにアクセスするためのケースディレクトリが欲しいのですが。
誰かがこれを行う良い方法を持っていますか?
ありがとう
$this->partial('directoryOfPartials/partial.phtml', $model);
$this->partialを3つの引数で使用することもできると思います。2番目の引数はモジュール名で、3番目の引数がモデルになります。
取得元:http : //framework.zend.com/manual/en/zend.view.helpers.html
例10他のモジュールでのパーシャルのレンダリングパーシャルが別のモジュールに存在する場合があります。モジュールの名前がわかっている場合は、それを2番目の引数としてpartial()またはpartialLoop()に渡し、$model引数を3番目の位置に移動できます。たとえば、「list」モジュールに使用したいポケットベルパーシャルがある場合は、次のように取得できます。
<?php echo $this->partial('pager.phtml', 'list', $pagerData) ?>
このようにして、他のモジュール用に特別に作成されたパーシャルを再利用できます。とはいえ、再利用可能なパーシャルを共有ビュースクリプトパスに配置することをお勧めします。
編集-コントローラーのアクションスコープ内からビューパーシャルにアクセスする
$this->view->getHelper('partial')->partial('comments.phtml');
素晴らしいありがとう:)
ただし、コントローラーを介してこれを行うにはどうすればよいですか?私はfancyboxを持っていて、ajaxレイアウトを設定しました:
$this->view->layout()->setLayout('ajax');
$errors = array('You have lost your rights to download this clip, you have downloaded it the maximum amount of times.');
$this->render($this->view->partial('partials/errors.phtml', 'default', array('errors' => $errors)), NULL, true);
必要に応じてポップアップウィンドウが表示されますが、次のエラーが発生します。
Problem: Method "partial" does not exist and was not trapped in __call()
$ this->view->partialはビューテンプレート内で$this->partialを使用するのと同じだと思いましたが、そうではないと思います。アイデア?
解決済み:
ブートストラップinitView、追加:
$view->addScriptPath('../application/layouts/partials');
パーシャルをそのディレクトリに移動しました。次に、私のコントローラーで次のことを行います。
$this->view->layout()->setLayout('ajax');
$this->view->form = $form;
$this->renderScript('login.phtml');
#zftalksSmartSsaに感謝します