arl*_*nos 3 model-view-controller joomla view joomla1.7
我使用joomla MVC,我想构建一个具有不同选项卡的表单,这些表单是表单的不同部分,其中包含输入.我需要包含一些与其他表单相同的选项卡.
我希望能够从单独的文件或视图加载此常见内容,所以我没有重复的代码,当我需要对表单进行更改时更容易,所以我不必在所有表单中执行此操作.这就像在另一个视图中显示视图一样.
有没有办法实现这个目标?
Joomla!提供loadTemplate视图的方法.
因此,如果你当前正在tmpl加载布局文件edit(即.tmpl/edit.php),你可以打电话给$this->loadTemplate('tab1');Joomla!将tmpl/edit_tab1.php在与您相同的视图中加载文件edit.php.
在同一视图中,如果您想要包括说tmpl/other_tab1.php您必须暂时将布局设置为其他,例如.在Run模板中的一个组件中,我们需要Edit模板中的一个选项卡,因此我们使用:
<?php $this->setLayout('edit'); // This is ugly
echo $this->loadTemplate('plan');
$this->setLayout('run'); ?>
Run Code Online (Sandbox Code Playgroud)
要从另一个视图加载模板,我认为您必须暂时覆盖该view值,加载模板然后恢复视图.例如.
$jinput = JFactory::getApplication()->input;
$jinput->set('view', 'other');
$this->loadTemplate('tab2');
$jinput->set('view', 'original');
Run Code Online (Sandbox Code Playgroud)
注意:最后一点我没有时间测试,但它应该工作.