Как я могу отобразить модули Joomla внутри компонента? - PullRequest
1 голос
/ 28 октября 2010

У меня есть компонент с несколькими категориями игр, и я хочу отображать другой баннер в зависимости от категории.Мне нужно, чтобы баннер (и ссылка) были настраиваемыми, чтобы это не просто показ categoryX.jpg или чего-либо еще.

Я видел эту страницу справки Joomla по другому вопросу, но это толькопохоже, отображает тип модуля, а не один конкретный модуль.Я хотел бы использовать различные mod_custom модули и отображать тот, который соответствует категории (я могу сохранить идентификатор каждого модуля при необходимости).

Есть идеи?

Ответы [ 4 ]

5 голосов
/ 29 октября 2010

Это можно сделать в 2 этапа:

  1. Используйте плагин " Загрузка модуля в статью ", чтобы позволить себе доступ к модулю с помощью вызова плагина, например:

    {module [* mod_id *]} // где * mod_id * - идентификатор модуля

  2. Теперь, когда вы можете вызвать плагин для размещения вашего модуля где угодно, вам нужно перейти к коду просмотра вашего / компонента, к которому вы хотите добавить модуль, и добавить этот код:

    echo JHTML :: _ ('content.prepare', '{module [* mod_id *]}');

Пожалуйста, смотрите эту ссылку - http://www.alltogetherasawhole.org/group/developers/forum/topics/running-joomla-content-plugins - относительно пункта № 2. Я пытался сделать то же самое, и я обнаружил, что это не работает, и причиной этого был комментарий, который вы можете найти на ссылка на страницу выше:

"Я заметил, что некоторые плагины действительно ожидают, что option = com_content для них обрабатывает onPrepareContent должным образом, поэтому вы можете захотеть" обмануть "их, вызвав JRequet :: setVar и восстановив правильные значения после триггера."

3 голосов
/ 27 февраля 2015

Если вы хотите показать модуль в коде PHP, используйте этот код, он работает для меня:

<?php echo   JHTML::_('content.prepare', '{loadposition position-2}');  ?>

Если вы хотите показать модуль внутри html-контента, просто поместите этот код туда, где вы хотите показать модуль.

{loadposition position-2}

Загружает все модули, которые назначены на позицию 2.

0 голосов
/ 01 ноября 2010

Joomla имеет эту встроенную функциональность. Вы можете использовать команду {loadposition XX} в своих элементах контента.Вы можете указать пользовательские позиции модулей, которые не отображаются в вашем шаблоне, чтобы гарантировать, что у вас есть правильный модуль в правильной статье.

http://docs.joomla.org/How_do_you_put_a_module_inside_an_article%3F

0 голосов
/ 29 октября 2010

Вы могли бы создать новый модуль?

Если каждая категория появляется в строке запроса (catid = X), вы можете использовать аналогичный подход к https://support.pillwax.com/open-source/doku.php?id=joomla:header_image.

Кроме того, эта ссылка может сделать это для вас.

...