Если выбрать какую-либо позицию для отображения, то содержимое модуля выводится на всех страницах сайта. Как сделать так, чтобы модуль выводился только на страницах с материалами сайта?
1 вы выберите те пункты меню где контент выводится! 2 если вам надо на детальной странице то выводите модуль в позиции поставив предварительно в шаблоне условия например для позиции position-6 Код (PHP): $_option = JRequest::getVar('option'); $_view = JRequest::getVar('view'); if ($_option == 'com_content' && $_view == 'article') { ?> <jdoc:include type="modules" name="position-6" style="beezDivision" headerLevel="3"/> <?php } ?>
Модули можно привязывать к пунктам меню, но если материал не привязан к пункту меню, тогда надо добавить модуль в страницу самого материала. Что делаем для этого. Находим файл: /templates/имя_шаблона/html/com_content/article/default.php. Если его нет, тогда создаем, скопировав его из: /components/com_content/views/article/tmpl/default.php - это шаблон вывода материала. Теперь находим нужно место, где у нас должен быть модуль, и вставляем код: Код (PHP): <?php $myblurb_modules = &JModuleHelper::getModules( 'intext' ); foreach ($myblurb_modules as $myblurb) { $_options = array( 'style' => 'xhtml' ); echo JModuleHelper::renderModule( $myblurb, $_options ); } ?> В данном случае, будет создана позиция с именем intext и стилем вывода xhtml.