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 ) は特別なものではないようです。そのレンダリングがデフォルト レイアウト レンダリングをクラッシュさせる理由がわかりません。
私を助けてくれるソーシャルエンジンの専門家はいますか?:)