Слои (места расположения модулей) Joomal (Mambo)

Оригинал Вы можете найти на 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, развивается каждый день будем ждать больше интересных функций для использования в шаблонах. Как они будут, появятся, я буду добавлять их в этот учебник.