Меняем вывод заголовков модулей Joomla

Понадобилось вывести модуль с заголовком H2, в настройках модуля выставил соответствующий заголовок, на сайте попрежнему H3, файл "modules.php" из шаблона заменил файлом из шаблона "system" - не помогло. Посмотрел варианты вывода модулей в modules.php, с отображением заголовков в соответствии со значением в настройках оказался только 1 - html5 (функция "modChrome_html5").

Теперь о том, как создать собственные варианты отображения.
Копируем из каталога "html" системного шаблона (/templates/system/html) файл "modules.php" в соответствующий каталог своего шаблона и откроем его для редактирования. 

Ниже - значения в настройках модуля (вкладка "дополнительные параметры") и их вывод:

В настройках Вывод
Суффикс CSS-класса модуля
$params->get('moduleclass_sfx')
HTML-тег модуля
$params->get('module_tag')
HTML-тег заголовка
$params->get('header_tag')
CSS-класс заголовка
$params->get('header_class')

Добавим вконце новую функцию - modChrome_mymod:

function modChrome_mymod($module, &$params, &$attribs)
{
//CSS-класс заголовка
$headerClass = $params->get('header_class');
//HTML-тег заголовка, если нет - будет DIV
$headerTag = $params->get('header_tag', 'div');
//Суффикс CSS-класса модуля
$moduleClass = $params->get('moduleclass_sfx');
//HTML-тег модуля, если нет - будет DIV
$moduleTag = $params->get('module_tag', 'div');
if ($module->content)
{
//Открываем модуль
echo "<" . $moduleTag . " class=\"mod " . $moduleClass . "\">";
//Заголовок модуля
echo "<" . $headerTag . " class=\"moduletitle " . $headerClass . "\">" . $module->title . "</" . $headerTag . ">";
echo $module->content;
//Закрываем модуль
echo "</" . $moduleTag . ">";
}
}

Только в настройках нет тега заголовка "div", при необходимости можно либо создать еще одну функцию либо в данной заменить:

" . $headerTag . "

на:

div

Т.е. должно получиться так:

//Заголовок модуля
echo "<div class=\"moduletitle " . $headerClass . "\">" . $module->title . "</div>";
Теперь новый стиль (mymod) можно указывать для позиций модулей в файле index.php шаблона (как правило, могут быть варианты..):
<jdoc:include type="modules" name="position-7" style="mymod" />

Добавить комментарий

Комментарии (0)