Оригинал Вы можете найти на jooomlart.com
1. Цели учебника.
Читая этот учебник Joomla (Mambo) вы приобретете следующие знания:
Обзор слоев дизайна Mambo.
Советы по наиболее оптимальной организации модулей Joomla(Mambo).
2. Обзор слоев Mambo.
Рис. 1: Обзор слоев Mambo
3. Описание слоев.
{mosimage}
Как вы видите на рис.1 слои Mambo организованы как и любые стандартные портальные вебстраницы из 5 основных частей:
1. Верх : модули <pathway>, <user3> и <user4>.
2. Лево :модули <left>.
3. Центр:модули <banner>, <user1>, <user2> и <mainbody>.
4. Право: <right> модули.
5. Низ: <footer> модули.
Это слои по умолчанию, все модули могут быть размещены где угодно, это описано в файле шаблона index.php. Синтаксис PHP кода для загрузки модулей следующий:
mosLoadModules( $имя_слоя [, $style] )
Для Mambo 4.5.2 и более поздних версий мы имеем 0 по умолчанию и значения -1,1,-2 или -3 для переменной $style Joomla(Mambo). В Mambo 4.5.2.1 значение "-3" не введено. Каким образом можно использовать разницу в стилях между значениями 0, -1, 1, -2 или -3? [ смотри (c) на Рис. 1 ]
0 = (по умолчанию). Модули показываются в колонке таблицы.
Следующий HTML код показывает каким образом будет выведен модуль браузеру:
<!-- Отдельный модуль --><table cellpadding="0" cellspacing="0" class="moduletable[suffix]">
<tr>
<th valign="top">Module Title</th>
</tr>
<tr>
<td>
Собственно сам модуль
</td>
</tr>
</table>
<!-- Отдельный модуль окончание -->
1 = модули показываются горизонтально. Каждый модуль выводится в ячейку окружающей его таблицы она называется wrapper или оболочка. Ниже приведенный код показан как пример вывода модуля:
<!-- Оболочка модуля -->
<table cellspacing="1" cellpadding="0" border="0" width="100%">
<tr>
<td align="top">
<!-- Отдельный модуль -->
<table cellpadding="0" cellspacing="0" class="moduletable[suffix]">
<tr>
<th valign="top">Заголовок модуля </th>
</tr>
<tr>
<td>
Собственно сам модуль
</td>
</tr>
</table>
<!-- Отдельный модуль окончание -->
</td>
<td align="top">
<!-- ...следующий модуль... -->
</td>
</tr>
</table>
-1 = Модули выводятся как строки без заголовков. Следующее примерно показывает как будет произведен вывод модулей.
Module 1 OutputModule 2 OutputModule 3 Output
-2 = Модули будут показваны в расширенном формате Mambo (X-Mambo).Пример вывода в этом случае:
<!-- Отдельный модуль -->
<div class="moduletable[suffix]">
<h3>Заголовок модуля</h3>
Вывод модуля
</div>
<!-- Отдельный модуль окончание -->
-3 = Модули выводятся в формате, который позволяет, например, применять скругленные углы.
<!-- Отдельный модуль -->
<div class="module[suffix]">
<div>
<div>
<h3> Заголовок модуля </h3>
Вывод модуля
</div>
</div>
</div>
</div>
<!-- Отдельный модуль окончание -->
Что касается меня, то мне очень нравится новый стиль "-3". Используя "-3" будет помогать вам для создания стилизованных скругленных углов в шаблонах для Mambo.
4. Подсказка как скрывать/показывать модули Joomla (Mambo)
Безусловно, при создании шаблона Mambo вы имеете зарезервированное место для показа модулей. Эта часть шаблона часто бывает фиксированной ширины посредством ширины тегов <table, <td> или <div>. Нежелательный случай происходит, когда модуль, который должен выводится не опубликован и пользователю предоставляется пустой бланк. Чтобы этого избежать, можно использовать простое условие IF {} + mosCountModules синтаксис можете посмотреть на рис. 1 (b)
The sample code you see in Picture 1 is a standard one, a more complex if {} will produce a better result and remove unnecessary HTML codes. For example:
<!-- START установка ширины тега td для слоев user1 и user2 -->
<?php
$numblock = 0;
if (mosCountModules( "user1" )>0 && mosCountModules( "user2" )>0) {
$numblock = 2;
$blockwidth = 50;
}else if (mosCountModules( "user1" )>0 || mosCountModules( "user2" )>0) {
$numblock = 1;
$blockwidth = 100;
}
?>
<!-- END установка ширины тега td для слоев user1 и user2 -->
<!-- START загрузка модуля user1 и user2 -->
<?php if ($numblock > 0) { ?>
<tr>
<?php if (mosCountModules( "user1" )) { ?>
<td width="<?php echo $blockwidth; ?>%" valign="top">
<div class="colorbox">
<div id="user1" class="roundblock">
<?php mosLoadModules ( "user1", -3 ); ?>
</div>
</div>
</td>
<?php } ?>
<?php if (mosCountModules( "user2" )) { ?>
<td width="<?php echo $blockwidth; ?>%">
<div id="user2" class="roundblock">
<div class="colorbox">
<?php mosLoadModules ( "user2", -3 ); ?>
</div>
</div>
<?php } ?>
</tr>
<?php } ?>
<!-- END загрузка модуля user1 и user2-->
Я использовал этот код в шаблоне MBT GREY для организации модулей user1 и user2. Условие if {} будет разделять слои user1 и user2 на 2 равные части 2 если оба опубликованы [Рис. 2]; и растянутый блок во всю ширину шаблона если один из них не опубликован [Рис. 3] и конечно же этот блок не выводится, когда оба модуля не опубликованы.
{mosimage}{mosimage}
Эти подсказки могут быть применены во всех слоях (особенно left, right, top, users), к некоторым стандартным слоям, которые относятся к категории «должны быть» так например поиск это (user4) , topmenu (user3), pathway (pathway), и mainbody (mosMainBody) когда простое условие if {} является выходом из положения. [ Смотри Рис. 1 ]
5. Подвал страницы.
Всего 2 наиболее используемые функции которые используются в мамбо шаблонах:
$mosConfig_sitename: используется для того чтобы показать заголовок сайта. Вы можете добавить этот код в зоны заголовока/лого. Для примера:
<?php
echo "$mosConfig_sitename!";
?>
$mosCurrentDate: используется для показа даты
<?php
echo mosCurrentDate();
?>
или:
<?php
echo mosFormatDate('2006-01-01 10:00:00');
?>
В заключении, этот учебник написан для Mambo 4.5.2.3 и также является действующим для современных версий Mambo и Joomla. Так как Mambo/Joomla, развивается каждый день будем ждать больше интересных функций для использования в шаблонах. Как они будут, появятся, я буду добавлять их в этот учебник.