我正在使用 joomla MVC,我想构建一个具有不同选项卡的表单,这些选项卡是表单的不同部分,其中包含输入。我需要包含一些其他表单共有的选项卡。
我希望能够从单独的文件或 View 中加载这些常见的内容,这样我就没有重复的代码,而且当我需要更改表单时更容易,所以我不必在所有文件中都这样做形式。这就像在另一个 View 中显示一个 View 。
有没有办法做到这一点?
最佳答案
Joomla!为 View 提供 loadTemplate
方法。
因此,如果您当前处于为布局 edit
加载的 tmpl
文件中(即 tmpl/edit.php
),您可以调用$this->loadTemplate('tab1');
和 Joomla!将在与 edit.php
相同的 View 中加载 tmpl/edit_tab1.php
文件。
在同一个 View 中,如果你想包含 tmpl/other_tab1.php
,你必须临时将布局设置为 other,例如。在 Run 模板期间我们的一个组件中,我们需要一个来自 Edit 模板的选项卡,因此我们使用:
<?php $this->setLayout('edit'); // This is ugly
echo $this->loadTemplate('plan');
$this->setLayout('run'); ?>
要从另一个 View 一起加载模板,我认为您必须暂时覆盖 view
值,加载模板然后恢复 View 。例如。
$jinput = JFactory::getApplication()->input;
$jinput->set('view', 'other');
$this->loadTemplate('tab2');
$jinput->set('view', 'original');
注意:这最后一点我没有时间测试,但它应该可以工作。
关于model-view-controller - joomla 将 View 添加到另一个 View 中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9068661/