В шаблонах для движка 1.5 вставка позиции модуля происходит следующим образом
<jdoc:include type="modules" name="left" style="xhtml" />
Если с полем name все понятно (имя позиции из списка созданных в XML файле шаблона), то вот с полем style частенько возникают вопросы - что это, зачем и что можно с ним делать.
Разберем сначала вывод хтмл по умолчанию при стиле XHTML - в исходном коде получается следующее
<div class="moduletable">
<h3>заголовок модуля</h3>
тело модуля
</div>
А что же нам делать, если хотим чуть усложнить структуру, дабы вписаться в разработанный дизайн либо иное? Все очень просто.
Мы идем в папку шаблона, в ней видим (и если не видим то создаем папку
html), в ней находим (а если не находим то создаем файл
modules.php). В нем к примеру пишем такую функцию
function modChrome_mycustomdiv($module, &$params, &$attribs)
{
$headerLevel = isset($attribs['headerLevel'])? (int) $attribs['headerLevel'] : 3;
if (!empty ($module->content)) : ?>
<div class="mycustomdiv<?php echo $params->get('moduleclass_sfx'); ?>">
<?php if ($module->showtitle) : ?>
<div class="mycustomdivtitle"><h3><?php echo $module->title; ?></h3></div>
<?php endif; ?>
<?php echo $module->content; ?>
</div>
<?php endif;
}
И в шаблоне index.php для style теперь указываем значение mycustomdiv. То есть имя функции обязательно должно начинаться с modChrome_ а то что после подчеркивания нужно использовать в качестве значения style при выводе в шаблоне
<jdoc:include type="modules" name="left" style="mycustomdiv" />
В итоге у нас хтмл вывод будет таким
<div class="mycustomdiv">
<h3>заголовок модуля</h3>
тело модуля
</div>
По порядку, что мы здесь видим:
$params->get('moduleclass_sfx') - суффикс модуля, заданный в его настройках
$module->showtitle - заголовок модуля и соответственно проверку условия, если в настройках отмечен к показу - то выводим в тегах h3
$module->content - тело модуля, зависит от хелпера модуля либо других вариаций вывода
Получается что в эту функцию мы можем добавить любую структуру контента модуля, хоть табличную, хоть дивную, зависит от потребностей для вывода данного модуля