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

时间:2011-04-04 22:44:12

标签: templates module joomla joomla1.5

我正在尝试创建自己的模块,我按照以下教程:LINK

文件“/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 个答案:

答案 0 :(得分:5)

JModuleHelper :: getLayoutPath有一个可选的布局参数。

http://api.joomla.org/Joomla-Framework/Application/JModuleHelper.html#getLayoutPath

所以......

require(JModuleHelper::getLayoutPath('mod_hello_world2', 'mylayout'));

答案 1 :(得分: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>

然后确保相应的文件default.php,default2.php,default3.php,default3.php在您的module / tmpl目录中。

该配置适用于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"