Элемент меню имеет стандартный шаблон материала. anysite/index.php?option=com_content&view=article&id=16&Itemid=4 Ссылка с seo: anysite/news/ В шаблоне прописана позиция "X", сразу после основного контента, в которой модуль отображает список материалов раздела: Код (PHP): <jdoc:include type="component" /> <?php if($this->countModules('portfolio-list')) : ?> <jdoc:include type="modules" name="X" style="xhtml4" /> <?php endif; ?> При переходе по ссылке из списка материалов раздела - ссылки становятся вида: anysite/index.php?option=com_content&view=article&id=19%3Aresizeing&catid=4%3Ahotnewst&Itemid=4 Ссылка с seo: anysite/news/resizing/ Задача состоит в том, чтобы позиция "X" отображалась только по ссылке: anysite/news/ anysite/news/ - позиция "X" - да anysite/news/resizing/ - позиция "X" - нет anysite/news/resizing/area/ - позиция "X" - нет anysite/news/pop/ - позиция "X" - нет Сейчас позиция отображается во всех вложениях после /news/../../../../../ Пытался что-то сделать с этим: Код (PHP): <?php $option = JRequest::getVar('option', null); $view = JRequest::getVar('view', null); $task = JRequest::getVar('task', null); $layout = JRequest::getVar('layout', null); ?> <?php if($this->countModules('portfolio-list')) : ?> <?php if ($option=='com_content' && $task=='view') : ?> <jdoc:include type="modules" name="X" style="xhtml4" /> <?php endif; ?> <?php endif; ?> Получается только отобразить, если статья полностью открыта. Но во вложениях позиция остается так или иначе.
Вот эту ссылку нормально пропишите в тегах Код (CODE): сюда нормальную ссылку , а то лишних символов полно. Или она реально так у вас отображается? - anysite/index.php?option=com_content&view=article&id=19%3A resizeing&catid=4%3Ahotnewst&Itemid=4
Именно так отображается без SEF, чтобы посмотреть id статей и прочее. С SEF ссылка имеет вид: Код (CODE): http://anysite/news/
Можно попробовать выводить модуль только на заданном id меню. Например так: Код (PHP): <?php $Itemid = JRequest::getInt( 'Itemid', 1, 'get' ); ?> <?php if ($Itemid == '4') { ?> <jdoc:include type="modules" name="X" style="xhtml4" /> <?php } ?> Хотя будет выводить на всех, наверное. Потому что itemID получается ведь тот же?.. Или может быть попробовать по адресу (ссылке) в браузере? Например так: Код (PHP): <?php $uri = &JFactory::getURI(); $url = $uri->toString(array('path', 'query', 'fragment')); ?> <?php if ($url == 'anysite/index.php?option=com_content&view=article&id=16&Itemid=4') { ?> <jdoc:include type="modules" name="X" style="xhtml4" /> <?php } ?>
ДА, получилось методом урла. Только нужно указывать путь таким образом: Код (PHP): <?php $uri = &JFactory::getURI(); $url = $uri->toString(array('path', 'query', 'fragment')); ?> <?php if ($url == '/news') : ?> <jdoc:include type="modules" name="X" style="xhtml4" /> <?php endif; ?>