如何在Joomla模块中使用多个模板文件

3

我正在尝试创建自己的模块,我按照以下教程进行操作:链接

在文件“/modules/mod_hello_world2/mod_hello_world2.php”中包含以下代码。

// get the items to display from the helper
$items = ModHelloWorld2Helper::getItems($userCount);
 
// include the template for display
require(JModuleHelper::getLayoutPath('mod_hello_world2'));

这段代码显示了“/modules/mod_hello_world2/tmpl/default.php”的内容,并将$items的数据解析到其中。
现在我想知道如何调用不同的模板文件,以及如何实现这一点。我想为表单创建一个模板文件,另一个模板文件用于结果。由于最佳实践是将代码和HTML分离,因此我想这样做。
非常欢迎任何帮助!
2个回答

5

谢谢Kissaki,这正是我在寻找的。 - TheWolfNL

4

在您的mod_your_module.php中使用以下内容:

$layout = $params->get('layoutChoice'); 
require(JModuleHelper::getLayoutPath('mod_your_module', $layout ));

然后在mod_your_module.xml中编写以下内容:

<field name="layoutChoice" type="list" default="default" label="mod_layout_choice" description="mod_layout_choice_description" >
    <option value="default">default</option>
    <option value="default2">default2</option>
    <option value="default3">default3</option>
    <option value="default4">default4</option>
</field>

请确保在您的模块/tmpl目录中有相应的文件default.php,default2.php,default3.php,default3.php。

该配置适用于Joomla 2.5。

通过这种方式,您可以从高级或基本部分的模块管理菜单中选择不同的模板,具体取决于您在your_module.xml文件中编写的位置。

您可以在mod_your_module.xml文件中继续编写上述配置:

<field name="layoutChoice" type="list" default="default" label="MOD_LAYOUT_CHOICE" description="MOD_LAYOUT_CHOICE_DESC" >
    <option value="default">MOD_LAYOUT_CHOICE_DEFAULT</option>
    <option value="default2">MOD_LAYOUT_CHOICE_DEFAULT2</option>
    <option value="default3">MOD_LAYOUT_CHOICE_DEFAULT3</option>
    <option value="default4">MOD_LAYOUT_CHOICE_DEFAULT4</option>
</field> 

然后在您的en-GB.mod_your_module.ini中写入以下内容:

MOD_LAYOUT_CHOICE="Choose which Template to Use"
MOD_LAYOUT_CHOICE_DESC="Your discription for each template is written hire"
MOD_LAYOUT_CHOICE_DEFAULT="First Template"
MOD_LAYOUT_CHOICE_DEFAULT2="Second Template"
MOD_LAYOUT_CHOICE_DEFAULT3="Third Template"
MOD_LAYOUT_CHOICE_DEFAULT4="Forth Template"

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接