Как я могу использовать несколько файлов шаблонов для модуля Joomla - PullRequest
3 голосов
/ 05 апреля 2011

Я пытаюсь создать свой собственный модуль, следуя следующему руководству: 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', в котором анализируются данные $ элементов.

Теперь мне интересно, если и какЯ могу использовать разные файлы шаблонов.Я хотел бы создать один для формы, а другой для результата.Поскольку рекомендуется хранить код и HTML отдельно, я бы хотел это сделать.

Любая помощь приветствуется!

Ответы [ 2 ]

5 голосов
/ 05 апреля 2011

JModuleHelper :: getLayoutPath имеет необязательный дополнительный параметр для макета.

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

Итак…

require(JModuleHelper::getLayoutPath('mod_hello_world2', 'mylayout'));
4 голосов
/ 16 марта 2013

Используйте в своем 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:затем напишите в своем 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"
...