我正在向 SE4 中的默认布局编辑器添加一些页面。我所做的只是将页面添加到 core_pages 表并编辑 core_content 表以添加主容器和中间/右侧两列布局。一切正常,但现在我添加了默认的“创建视频”页面 (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)似乎没什么特别的,我真的不明白为什么它的渲染会破坏默认布局渲染。
任何社交引擎专家在这里帮助我?:)