В Joomla есть одна существенная недоработка модульной части — отсутствует возможность контролирования отображения модулей через компонент.
К примеру:
Модуль «Меню Страны».
Он должен отображаться только тогда когда мы находимся в разделе Информация о Стране, но никак не на странице «Список Стран». А так как, это все один и тот же Компонент, то через настройки отображения модулей — разграничить не получится. Соответственно т.к. модуль отображен — выводится один заголовок, в нашем случае «Меню Страны» и далее пусто… вобщем, не очень эстетично выглядит…
Давайте решим эту проблему.
Есть один метод который позволяет с легкостью исправить этот глюк без внесения изменений в ядро Joomla — через шаблон.
Для примера допустим название нашего шаблона: «my_template», соответственно путь до папки с шаблоном:
/templates/my_template
Шаг первый — Создание шаблона модуля
переходим в папку с шаблоном и создаем там подпапку html (если ее еще нет)
/templates/my_template/html
в ней создаем фаил modules.php (опять же, если его еще нет) следующего содержания:
<?php
// no direct access
defined('_JEXEC') or die('Restricted access');
function modChrome_hideempty($module, &$params, &$attribs)
{
$style = isset($attribs['modulestyle']) ? $attribs['modulestyle'] : 'none';
if (!empty ($module->content)) :
$functionName = 'modChrome_'.$style;
echo $functionName($module, $params, $attribs);
endif;
}
?>
Если фаил уже присутствует, то просто в конец его добавляем функцию modChrome_hideempty.
Шаг второй — Вносим изменения в текущий шаблон
открываем фаил для редактирования
/templates/my_template/index.php
и ищем в нем описания модуля… примерно такая строчка:
<jdoc:include type="modules" name="left" />
ее то нам и надо изменить на:
<jdoc:include type="modules" name="left" <b>style="hideempty"</b> />
добавив параметр
style=«hideempty», причем если в строке уже присутствует другой стиль (к примеру, rounded) — его значение мы переносим в соседний параметр
modulestyle… получается так:
<jdoc:include type="modules" name="left" <b>style="hideempty"</b> <b>modulestyle="rounded"</b> />
Сохраняем, заходим на страницу и радуемся — пустые модули больше не отображаются.
Комментарии (0)
RSS свернуть / развернутьТолько зарегистрированные и авторизованные пользователи могут оставлять комментарии.