model-view-controller - joomla 将 View 添加到另一个 View 中

标签 model-view-controller view joomla joomla1.7

我正在使用 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/

相关文章:

javascript - Joomla 3.x : How to add or Link to a external javascript file

css - 如何在我的 Joomla 模板中将 2 个 span6 类堆叠在一起

java - 从 Controller 访问域对象

c# - MVC 在 EditorFor 中渲染局部 View

sql-server - 插入 View ,而不是触发器、身份、多个表?

android - 如何通过 Activity 绑定(bind)从抽屉标题布局中获取 View ?

javascript - 在 Ember.js 中用树形结构组织 MVC

java - 当我们在 spring mvc 中创建自定义处理程序映射时,默认处理程序映射是否会被覆盖?

java - MVC 和 Spring MVC 单元测试

html - Joomla 博客并列两个类别