Код (PHP): $menu = & JSite::getMenu(); if ($menu->getActive() == $menu->getDefault()) { // на главной } else { // тут всё что не на главной } Вывести модуль везде, кроме просмотра полной текста статьи Код (PHP): <?php if( ($this->countModules('banner') && (JRequest::getString('view')!=='article') ) : ?> <jdoc:include type="modules" name="banner" style="xhtml" /> <?php endif; ?> Вывести модуль везде, кроме указанных в условиях категорий VirtueMart Код (PHP): <?php $option = JRequest::getCmd('option'); $category_id = JRequest::getCmd('category_id'); if ((($option == 'com_virtuemart') and ($category_id != '1')) and (($option == 'com_virtuemart') and ($category_id != '2')) ) : ?> тут позиция твоего модуля <?php endif; ?> Скрывается позиция модуля в нужных категориях все просто дописываются условие через and заключая в скобки Код (PHP): (($option == 'com_virtuemart') and ($category_id != '1')) это скрыть в категории id 1 Ограничить количество товаров в запросе, в точке входа в компонент /components/com_virtuemart/virtuemart.php Код (PHP): $limit = JRequest::getVar('limit'); if($limit > 1053) $mainframe->redirect('index.php'); Если запрос больше чем 1053 товаров, то будет срабатывать редирект на главную страницу сайта. Код (PHP): <?php $Itemid = JRequest::getInt( 'Itemid', 1, 'get' ); if ($Itemid == '115') $jname='itemprop="name"'; ?> Вывод,задание значение переменной по условию нужной категории, ITemid смотрим в менеджере пунктов меню п.с. Условия для Джумла 1.5-2.5 . Для Джумла 3 изменен класс доступа к параметрам в URI И так для Джумла 3, вывод по условию для определенной категории Код (PHP): <? //application $app = JFactory::getApplication(); $category_id = $app->input->getCmd('catid',''); if ($category_id == '2') : ?> <jdoc:include type="modules" name="banner" style="xhtml" /> <? endif; ?> Также можно указать сразу ID категории по умолчанию Код (PHP): $category_id = $app->input->getCmd('catid','ID категории по умолчанию');
И так для Джумла 3, вывод по условию для определенной категории Код (PHP): <? //application $app = JFactory::getApplication(); $category_id = $app->input->getCmd('catid',''); if ($category_id == '2') : ?> <jdoc:include type="modules" name="banner" style="xhtml" /> <? endif; ?> Также можно указать сразу ID категории по умолчанию Код (PHP): $category_id = $app->input->getCmd('catid','ID категории по умолчанию'); --- добавлено: 31.05.2015, первое сообщение размещено: 12.05.2015 --- Еще вариант для подключения плагина, Джумла 2.5, в плагине проверка на запрашиваемый компонент Применялся для отключения плагина в Джумла,и запуска в Virtuemart Код (PHP): //draff $input = JFactory::getApplication()->input; $option = $input->getCmd('option', ''); if($option != 'com_virtuemart'){ return true; } --- добавлено: 07.07.2015 --- Шаблон sj_megashop с yt_framework, скрыть модуль в позиции баннер в карточке товара JoomShopping Путь к файлу /plugins/system/yt/includes/site/lib/yt_template.php Код (PHP): //render position with type: modules function renModulePos ($position, $elementstyle, $elementclass='', $more_attr='', $positionnamesuffix='', $yorn='1' ) { if($yorn == '1'){ //draff $input = JFactory::getApplication()->input; $controller = $input->getCmd('controller', ''); ?> <div <?php if($position['value'] =='banner' && $controller == 'product') :?>style="display:none"</style><?php endif; ?> id="<?php echo $position['value']; ?>" <?php echo $elementstyle; ?> <?php echo $elementclass; ?> <?php echo $more_attr;?>> <jdoc:include type="modules" name="<?php echo ($positionnamesuffix=='')?$position['value']:$positionnamesuffix; ?>" style="<?php echo $position['style'];?>" /> </div> --- добавлено: 20.08.2015 --- Вывод модуля на страницах К2, но не в материале Код (PHP): <? $app = JFactory::getApplication(); $option = $app->input->getCmd('option', ''); $view = $app->input->getCmd('view',''); if ($view != 'item' && $option == 'com_k2') : ?> <jdoc:include type="modules" name="banner" style="xhtml" /> <? endif; ?> --- добавлено: 28.10.2015 --- Задача вывести модуль в отдельном файле.Проверено на Джумла 3.4.4 Код (PHP): <?php define( '_JEXEC', 1 ); defined('_JEXEC') or die('Ok'); define('JPATH_BASE', dirname(__DIR__)); define('DS', DIRECTORY_SEPARATOR); $path = JPATH_BASE . DS . 'includes' . DS; // once использовать необязательно, не думаю, что вы подключите файлы фреймворка дважды require($path . 'defines.php'); require($path . 'framework.php'); $app = JFactory::getApplication('site'); $app->initialise(); $document = JFactory::getDocument(); $module = JModuleHelper::getModule('mod_rapid_contact'); echo JModuleHelper::renderModule($module); Источник --- добавлено: 15.11.2015 --- Условие для одной статьи Код (PHP): <?php $article_id = JRequest::getCmd('id'); if($article_id == x) :?> <div id="login"> <jdoc:include type="modules" name="login" /> </div> <?php endif ?> Где х id нужной статьи --- добавлено: 10.07.2016 --- Задача не выводить модуль IceVmFilter в категории Virtuemart 1.1.9, где нет товара В файле модуля mod_ice_vmfilter.php, добавляем условие показа модуля Код (PHP): //draff $category_id = (int)JRequest::getVar('category_id'); require_once( CLASSPATH. 'ps_product_category.php' ); $ps_product_category = new ps_product_category; $count_product = $ps_product_category::product_count($category_id); if( $option == 'com_virtuemart' && ($category_id >0 && $count_product > 0)) { Есть еще моя разработка для улучшения фильтрации товаров по параметрам с этим модулем. А именно,если есть пагинация, то при выборе другой страницы, фильтрация товара очищается. Код (javascript): //jQuery.noConflict(); jQuery(function(){ var filter = window.location.search; filter = filter.slice(1); //var linkpagin = jQuery('.pagination .pagenav').attr('href'); filter = filter.replace(/(limit=\d+)&(limitstart=\d+)/," "); if(filter !== "") { jQuery('.pagination .pagenav').click(function(el) { var linkpagin = jQuery(this).attr('href'); jQuery(location).attr('href', linkpagin+filter); //console.log(linkpagin+"&"+filter); el.preventDefault(); }); } }); Если у кого нет хака для для конфликта яваскриптов, раскоментировать Код (javascript): jQuery.noConflict(); --- добавлено: 18.06.2018 --- В новых версиях Джумла ошибка Код (PHP): Strict Standards: Non-static method Joomla\CMS\Application\CMSApplication::getMenu() should not be called statically, assuming $this from incompatible context in D:\xampp\htdocs\joomla35\libraries\src\Application\SiteApplication.php on line 275 Меняем на Код (PHP): $menu = JFactory::getApplication()->getMenu(); --- добавлено: 08.03.2020 --- Проверка на главную страницу и карточку товара в JoomShopping Код (PHP): <?php $app = JFactory::getApplication(); $controller = $app->input->getCmd('controller'); $menu = JFactory::getApplication()->getMenu(); if($menu->getActive() == $menu->getDefault() && $controller != 'product') { echo "Main page , not product"; } ?>