Вывести модуль в произвольном месте

  • 3 Ответов
  • 521 Просмотров

0 Пользователей и 1 Гость просматривают эту тему.

*

Оффлайн eugenex

Конкретно нужно вывести модуль Jshopping Categories внизу карточки товара JoomShopping.

Как я понял, нужно использовать плагин загрузки модулей. Для этого создать материал, не привязанный ни к какой категории и вставить в него код "{loadposition position-10}", где position-10 это позиция, в которой выводятся категории на главной.

Вопрос в том, как вставить этот материал в шаблон карточки товара. 




P.S. Кстати, создал модуль типа Custom HTML и вставил в него {loadposition position-10}, чтобы проверить как это работает. Когда назначил позицию этому модулю, в этой позиции просто вывелся текст {loadposition position-10}.

*

Оффлайн eugenex

Вот так выводятся названия категорий:
Цитировать
   $document = JFactory::getDocument();
   $renderer = $document->loadRenderer('module');
   $options = array('style' => 'raw');
   $dbo = JFactory::getDBO();
   $dbo->setQuery("SELECT * FROM #__modules WHERE id='91' ");
   $module = $dbo->loadObject();
   $module->params = "heading=2\nlimit=10";
   echo $renderer->render($module, $options);

Но почему-то без изображений.

*

Оффлайн eugenex

Попробовал так:
Цитировать
$modules =JModuleHelper::getModules('position-10');
foreach ($modules as $module){
   echo JModuleHelper::renderModule($module);
}

Почему-то именно модуль из этой позиции не выводится, передал в getModules позицию copyright-1 и копирайт вывелся.
То есть принцип вывода модуля понятен. Что-то не так именно с этой конкретной позицией или модулем.

*

Оффлайн eugenex

Оказывается, дело было в привязке модуля(вкладка "Привязка к пунктам меню"). У модуля категорий она была "Только на указанных страницах".
Если сделать "На всех страницах", то код
Цитировать
$modules =JModuleHelper::getModules('position-10');
foreach ($modules as $module){
   echo JModuleHelper::renderModule($module);
}
выводит модуль, но он выводится и на тех страницах где не нужен. А в карточке товара он выводится даже дважды: один раз приведённым кодом, а один раз просто в позицию 'position-10' данной страницы.

Так что пока самый адекватный результат даёт способ с SQL-запросом, только вот как там сделать вывод картинок.