Стили вывода модулей

Для определения каким образом выводить тот или иной модуль в Joomla используются стили для вывода модулей.

<jdoc:include type="modules" name="some_position" style="xhtml"</strong> /></p> <p>Стандартно в Joomla 1.6 есть 5 основных стиля:</p> <ul> <li> none - вывод содержимого модуля, без оформления и заголовка </li> <li> table - вывод модуля в виде таблицы </li> <li> horz - вывод модуля в теге <td> другой таблицы </li> <li> xhtml - вывод модуля в теге "div" и заголовка модуля в теге "h3" rounded - вывод модуля в 4-х "div", в основном используется для вывода модуля с закругленными углами outline - используется для отладочной информации

Каждый из этих стилей расписан в системном файле [Joomla root]/templates/system/html/modules.php и их можно использовать в любых шаблонах. Для того чтобы сделать собственный стиль вывода модуля, нужно создать аналогичный файл в шаблоне. Например, для вывода модулей стилем "mystyle"

<jdoc:include type="modules" name="some_position" style="mystyle" />

Нужно создать файл [Joomla root]/templates/[Используемый шаблон]/html/modules.php с функцией

<?php// защита от прямого доступа к файлуdefined('_JEXEC') or die; /* * Вывод модулей стилем mystyle */function modChrome_mystyle($module, &$params, &$attribs){ echo $module->title; echo $module->content; }

Объект $module содержит информацию о модуле. Основные свойства для него приведены в следующей таблице

Свойство Описание id ID модуля (индивидуальный номер) title Заголовок модуля content Содержимое модуля showtitle Параметр модуля, определяющий показывать или нет заголовок params Параметры модуля, в формате JSON module Используемый модуль, например mod_custom

Объект $params содержит параметры модуля. Для получения значения параметра, нужно использовать следующий метод

$params->get('имя параметра');

$attribs - это ассоциативный массив, содержит атрибуты вызываемой конструкции. С помощью него можно задать дополнительные свойства для вывода модуля. Например в конструкции

<jdoc:include type="modules" name="some_position" style="mystyle" myattribute="SomeTask" />

для получения значения "SomeTask" можно использовать этот массив, $attribs['myattribute']


Практические примеры

Практические примеры довольно сложно давать по этой теме, так как это зависит от конкретной ситуации. И для этого желательно знать синтаксис PHP. Здесь приводятся довольно часто встречающиеся решения.

Использование суффикса класса модуля

Практически во всех модулях используется "Cуффикс класса модуля". В зависимости от него можно контролировать вывод модулей опубликованных в одной позиции. Например, в каком-то модуле нужно выводить заголовок в теге "h4".

<?php// защита от прямого доступа к файлуdefined('_JEXEC') or die; /* * Вывод модулей стилем mystyle */function modChrome_mystyle($module, &$params, &$attribs){ switch ($params->get('moduleclass_sfx')) { case 'h4': $title = '<h4>'.$module->title.'</h4>'; break; default: case 'h3': $title = '<h3>'.$module->title.'</h3>'; break; } echo $title; echo $module->content; }

Если в модуле прописать "Суффикс класса модуля" - "h4", то заголовок этого модуля будет выводиться в теге "h4", хотя он будет опубликован в одной позиции с другими модулями, у которых заголовок будет в теге "h3"


Вывод модуля только для не авторизованных пользователей

Бывают ситуации, когда необходимо вывести модуль только для гостей. Это можно сделать через настройки прав групп пользователей в Joomla 1.6. Но и можно сделать через стиль позиций модуля. Например

<?php// защита от прямого доступа к файлуdefined('_JEXEC') or die; /* * Вывод модулей стилем mystyle */function modChrome_mystyle($module, &$params, &$attribs){ $user = JFactory::getUser(); if ($user->get('guest')) { modChrome_xhtml($module, $params, $attribs); } }

Как видно в этом файле так же можно использовать функции из [Joomla root]/templates/system/html/modules.php, не подключая его. Если нужно вывести какой-то определенный модуль можно добавить в условие свойство $module->id

$user = JFactory::getUser(); if ($user->get('guest') && $module->id == 'ID модуля') { modChrome_xhtml($module, $params, $attribs); }



Стили вывода модулей - Генератор расширений Joomla и многое другое на нашем сайте посвященном работе расширений, компонентов, модулей, плагинов для линейки Joomla. Отправляйте ссылку на страницу своим друзьям и в социальные сети воспользовавшись графическими иконками выше.

Блог

Календарь приёма объявлений

Небольшой пример из повседневной практики. Организация меняет реквизиты, и они вступят в силу через  пару недель. На сайте идет приём объявлений и объявления принимаются на несколько месяцев в...

Дырка в com_content

Сегодня у товарища, сайт которого находится на старой  Joomla 1.0.3, была сильная нагрузка на сервере, просматривая логи обнаружил не вежливый запрос такого порядка: http://сайт/index2...

Лечим вирус на сайте

  Первоначальный осмотр сайта обнаружил, что у клиента закрыт доступ по фтп, что сузило круг подозреваемых уязвимостей, стало быть отверстие в какомто скрипте движка joomla. Касперский яро...

Troj/JSRedir-MH

Снова грянул гром зарежения сайтов новым вирусом  Troj/JSRedir-MH.  И так в коротко по вирусу Troj/JSRedir-MH. Вирус или троян куда интереснее чем свои предшествиники, тепер...

Доработка расширения для рассылки Send Email JK

Сегодня поделюсь немного интересной информацией для владельцев сайтов собранных ан joomla.  Рано и поздно возникает задача подписки и рассылки информации с сайта, это может быть разная постановка зада...

Привет Ie 10 регулярка

И вот и мне пришлось столкнулся с проблемами перехода на win 8 в придачу с ie 10, некоторых постоянных пользователей моих сайтов. На многих сайтах  имеющих раздел по приёму объявлений, использ...

Kunena заменяем ссылку на профиль пользователя

Всем привет, снова снова кунена, получил задание на допиливание популярного форума Kunena, сегодня потребовалось поменять ссылку на профиль пользователя. Это связано с тем, что на сайте стоит социа...

Работает на Kunena - зачем на каждой странице?

  Все у кого стоит форум kunena мешает надпись с двумя ссылкам внизу форума "Работает на Kunena". Сея надпись висит на каждой странице форма, а также страница разработчиков содержит множество вн...

Kunena избавимся от лишних quote

Для тех кто действительно делает сайт для людей, моя следующая заметка. Расскажу вам, как избавиться от лишних quote в постах на форуме kunena. У меня несколько тематических сайтов с нормальной посеща...

Kunena решаем проблему с пропажей аватаров

Так и вот мы обновись до последней версии кунены, сразу видно компонент внутри сильно изменился, и вот незадача у некоторых пользователей пропали аватары, физически они есть но неотображаются. ...

Джомлавикам

Обработка параметров расширений joomla

При разработке расширений для CMS Joomla, таких как плагины, модули, компоненты или шаблоны, часто возникает необходимость получить параметры разрабатываемого или любого другого расширения. В этой ...

Кunena крамсаем шаблон

1. В папке \components\com_kunena\template\ваш_шаблон\ находим файл template.xml и вставляем в него такой кусок (чтобы была возможность выбора показывать это поле или нет): <param name="l...

Подключить свои классы и методы в Joomla?

Иногда случается, что набор собственных функций или библиотек нужно подключить в Joomla. Но иногда подключить их нужно так, чтобы они присутсвовали во всей системе, вне зависимо...

3 новых полезных класса в Joomla 2.5

В платформе Joomla 11.3 разработчики добавлил несколько полезных новых классов для разработчиков. Рассмотрю некоторый из них - JGrid (для построения HTML таблиц), JWebClient (для получения информац...

Репозиторий файлов на Joomla средствами Apache

Создадим две вложенные директории /files/files в корне сайта. Если вы пожелаете использовать другие имена директорий, то вам необходимо будет внести соответствующие правки в дальнейшем. ...