Как я могу отобразить модули Joomla в компоненте?

Как я могу отобразить модули Joomla в компоненте?

28.10.2010 07:10:15 Просмотров 58 Источник

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

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

Есть идеи?

У вопроса есть решение - Посмотреть?

Ответы - Как я могу отобразить модули Joomla в компоненте? / How can I display Joomla modules within a component?

Jeepstone

29.10.2010 12:57:46

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

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

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

Является ответом!
Martin

29.10.2010 01:09:04

Это можно сделать в процессе 2 шагов:

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

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

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

    echo JHTML::_('content.подготовка', ' {module [*mod_id*]}');

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

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

https://stackoverflow.com/questions/4044216/how-can-i-display-joomla-modules-within-a-component/4050477#comment24044311_4050477
+1, работал на меня в 2013 году, а также;) Joomla 3 теперь имеет такой плагин как часть ядра, поэтому echo JHTML::_('content.prepare', '{loadposition contact-banner}');отлично сработало для меня.
Brent Friar

01.11.2010 07:31:31

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

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

Umesh

27.02.2015 10:41:28

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

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

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

{loadposition position-2}

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

https://stackoverflow.com/questions/4044216/how-can-i-display-joomla-modules-within-a-component/28759872#comment72263956_28759872
Отлично работает в Joomla 3.6.* (благодаря)
Mohd Abdul Mujib

24.07.2019 07:38:17

Вы также можете использовать модуль визуализации Joomla

$doc = JFactory::getDocument();
$renderer = $doc->loadRenderer('modules');
$position = 'custom_position_name';
$options  = array('style' => 'raw');
echo $renderer->render($position, $options, null); 

Просто голова вверх, наряду с назначением позиции модуля, этот модуль также должен быть установлен на "отображение на всех страницах".

Закрыть X