Условия публикации модулей в Joomla 1.5.x

Мне встречались следующие условия вывода:

<?php if($this->countModules('позиция_для_публикации')) : ?>
	<div id="search2">
		<jdoc:include type="modules" name="позиция_для_публикации" />
	</div>
<?php endif; ?>

Стандартное условие вывода модулей. Дословный смысл:
Если есть опубликованный модули в позиции «позиция_для_публикации», то выводить контейнер div с модулем внутри.

<?php if(!$tmpTools->isFrontPage()) : ?>
	<div id="pathway">
		<jdoc:include type="module" name="позиция_для_публикации" />
	</div>
<?php endif ; ?>

Это условие на главную страницу. То есть если мы загрузили/не загрузили главную страницу, то выводить/не выводить
модуль в позиции «позиция_для_публикации».

Примеры:

<?php if(!$tmpTools->isFrontPage()) : ?>
	<div id="pathway">
		<jdoc:include type="module" name="breadcrumbs_advanced" />
	</div>
<?php endif ; ?>

Смысл: не выводить «pathway» (он же «путь по сайту») на главной странице, что вполне логично.

<?php if(!$tmpTools->isFrontPage()) : ?>
	<jdoc:include type="component" />
<?php endif ; ?>

Не выводить компоненты на главной. Например, для создания вместо «главной» промо-страницы, без статей, блогов и прочего.

Как скрыть колонку и показать модуль только на страницах определенного типа

Небольшая инструкция:
В начальной части index.php шаблона (можно сразу после тега и обязательно после строчки defined( '_JEXEC' ) or die( 'Restricted access' );) объявить следующие параметры:

<?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('right') ) && ($option!='com_fireboard' && $option!=
'com_artforms' && !($view=='article' && $task=='edit') && !($option=='com_content' 
&& $view=='article' && $layout=='form'))) : ?>
<div id="right"><jdoc:include type="modules" name="right" style="xhtml" /></div></div>
<?php endif; ?>

В результате правая колонка не показывается если активный компонент либо FireBoard либо ArtForms или статья находится в режиме редактирования.

Этот пример может быть применен во многих других ситуациях если разобраться какие части URL определяют параметры option, task, view and/or layout. Для примера приведем URL с параметрами использованными в нашем условии чуть выше:

/index.php?Itemid=62&option=com_fireboard
/index.php?task=edit&Itemid=71&option=com_content&id=56%3Amyarticletitle&view=article

Версия на английском: Hide column to avoid width issues

Еще пример: как показать модуль только на странице полного просмотра статьи:

<?php if ($view != 'article') { ?>
<jdoc:include type="modules" name="footer" />
<?php } else {} ?>

Комментариев: 2

  • 29.03.2010 Кирилл:

    Вариант для проверки сразу двух условий:

    <?php if($this->countModules('user4') and $this->countModules('user4')) : ?>
    <div id="top">
    	<div id="search">
    		<jdoc:include type="modules" name="user4" />
    	</div>
    	<div id="pillmenu">
    		<jdoc:include type="modules" name="user4" />
    	</div>
    	<div class="clr"></div>
    </div>
    <?php endif; ?>
  • 02.12.2011 rusweber:

    иногда просто необходимые условия


Добавление комментария:

 css.php