0

SE4 のデフォルト レイアウト エディタにいくつかのページを追加しています。私がやっていることは、core_pages テーブルにページを追加し、core_content テーブルを編集して、メイン コンテナーと中央/右の 2 列のレイアウトを追加するだけです。すべて正常に動作しますが、デフォルトのビデオ作成ページ (videos_index_create) を追加すると、いくつかの問題が発生します。

このページを sql 経由で追加すると、デフォルトのレイアウト エディターでページ レイアウトを表示および編集できます。実際、変更を保存すると、これらはライブページに反映されません。コントローラー(Video/controllers/IndexController.php)に移動して追加すると

$this->_helper->content->setNoRender() 

ライブページには右側のサイドバーと中央のコンテンツが表示されますが、

$this->_helper->content->setEnabled() 

デフォルトのビデオ アップロード フォームのみが表示されます。

だから私はここでcreate.tplを編集しました

<?php if (($this->current_count >= $this->quota) && !empty($this->quota)):?>
<div class="tip">
<span>
  <?php echo $this->translate('You have already uploaded the maximum number of videos allowed.');?>
  <?php echo $this->translate('If you would like to upload a new video, please <a href="%1$s">delete</a> an old one first.', $this->url(array('action' => 'manage'), 'video_general'));?>
</span>
</div>
<br/>
<?php else:?>
<?php echo $this->form->render($this); ?>
<?php endif; ?>

else を変更して echo ステートメントを削除し、単純なecho 'foo';を追加します。. これで、ライブ ページに私のレイアウト (中央 + 右) がデフォルトのコンテンツ ("foo") で適切に表示されます。

したがって、問題はコントローラーの次の行に関するものであると考えました。

$this->view->form = $form = new Video_Form_Video();

しかし、これ以上先に進むことはできません... このカスタム フォーム クラス ( Video/Form/Video.php ) は特別なものではないようです。そのレンダリングがデフォルト レイアウト レンダリングをクラッシュさせる理由がわかりません。

私を助けてくれるソーシャルエンジンの専門家はいますか?:)

4

1 に答える 1

0

それが Zend_Form の場合、次のことを行う必要があると確信しています。

<?php echo $this->form;?>

あなたのビューでは、自分自身をレンダリングしないでください。それが Zend_Form でない場合は、フォームのコードを投稿してください。フォームにはおそらく css が含まれているか、レイアウトを壊しているものがあります。

于 2012-11-15T22:27:31.403 に答える