CMS Joomla одна из лучших систем по настраиваемости и наличию уже готовых решений шаблонов, модулей и компонентов.
И, наверное каждый, кто пытался персонализировать подходящий для своего сайта шаблон, сталкивался с проблемой вывода модуля, в нужном для себя месте.
Прежде всего, чтобы определить название своего модуля, нужно прописать его в файле www/templates/ваш_шаблон/templateDetails.xml
Кроме описания и настроек шаблона, секция positions как раз и отвечает за перечень позиций:
... <positions> <position>left</position> <position>right</position> ... <position>my_module</position> </positions> ...
После добавления своей позиции в перечень, можно приступать к размещению блока в www/templates/ваш_шаблон/index.php
Начиная с Joomla 1.5 поддерживается 5 стандартных стилей вывода модулей. Также есть возможность создания своего варианта, но в этой статье мы его рассматривать не будем.
В шаблоне, где мы решили оформить свой блок, указываем подходящий по стилю код :
- <jdoc:include type="modules" name="my_module" style="xhtml" /> - выводит модуль, заключенный в div, которому задан класс модуля с указанным в настройках модуля суффиксом "_suf" и с заголовком h3:
<div class="moduletable_suf"> <h3>Название модуля</h3> Содержимое модуля </div>
- <jdoc:include type="modules" name="my_module" style="rounded" /> - выводит модуль, заключенный в четыре div(для создания закругленных уголков), которому задан класс модуля с указанным в настройках модуля суффиксом "_suf" и с заголовком h3:
<div class="module_suf">
<div>
<div>
<div>
<h3>Название модуля</h3>
Содержимое модуля
</div>
</div>
</div>
</div>
- <jdoc:include type="modules" name="my_module" style="table" /> - выводит модуль, заключенный в отдельную таблицу, которой задан класс модуля с указанным в настройках модуля суффиксом "_suf" и с заголовком в отдельной ячейкеth:
<table cellspacing="0" cellpadding="0" class="moduletable_suf"> <tbody> <tr> <th valign="top">Название модуля</th> </tr> <tr> <td>Содержимое модуля</td> </tr> </tbody> </table>
- <jdoc:include type="modules" name="my_module" style="horz" /> - то же, что и в предыдущем варианте, но заключенный ещё в одну таблицу:
<table cellspacing="1" cellpadding="0" border="0" width="100%">
<tbody>
<tr>
<td valign="top">
<table cellspacing="0" cellpadding="0" class="moduletable_suf">
<tbody>
<tr>
<th valign="top">Название модуля</th>
</tr>
<tr>
<td>Содержимое модуля</td>
</tr>
</tbody>
</table>
</td>
</tr>
</tbody>
</table>
- <jdoc:include type="modules" name="my_module" style="none" /> или <jdoc:include type="modules" name="my_module" /> - выводит только содержимое модуля, без каких либо блоков и заголовка.
Если модуль планируется выводить не на всех страницах сайта, будет целесообразней заключить его в php-код, который проверяет наличие модуля на странице:
<?php if($this->countModules('my_module')) : ?>
<div class="my_module">
<jdoc:include type="modules" name="my_module" style="xhtml" />
</div>
<?php endif; ?> 