Шаблоны Joomla. Часть 4.
(Дизайн модулей. Применение функции mosLoadModules)
Уровень: Пользователь - Веб-мастер
Здравствуйте, уважаемые подписчики. Сегодня мы продолжаем тему прошлого выпуска №23. Создание шаблона с табличной резиновой версткой и начинаем разговор о возможностях вариаций дизайна модулей в шаблонах для Joomla. А такие вариации в Joomla предусмотрены на любой вкус.
Контейнеры для модулей в шаблонах для Joomla
Что мы подразумеваем под контейнером? Сейчас мы рассматриваем табличную верстку. Значит, в самом простом случае, модули будут располагаться в ячейках таблицы, то есть контейнером для модуля будет являться таблица. Однако в Joomla возможны дополнительные варианты.
Как Вы знаете из прошлого выпуска, модули в шаблон выводятся с использованием функции mosLoadModules('имя_позиции'); Однако это упрошенный синтаксис ее вызова, а может использоваться еще один параметр: mosLoadModules('имя_позиции', 'стиль_контейнера');
Прежде чем говорить об этом параметре подробнее, небольшое пояснение. Разработчик модуля может сам написать код контейнера для модуля, Вы можете этот сделать, создав новый модуль в админке и в окне ввода его содержимого написать любой html-код. НО! Обратите внимание: ДЛЯ СОДЕРЖИМОГО! Вывод заголовка модуля из админки не настроишь и не изменишь. Мы имеем ввиду html-верстку! Css-стили заголовков настраиваются элементарно, только надо знать названия этих стилей :)
Параметр 'стиль_контейнера' может принимать следующие ЧИСЛОВЫЕ значения:
-1. Облегченный вариант. Joomla НЕ добавляет никакого html-кода (контейнера) для модуля и НЕ ВЫВОДИТ ЗАГОЛОВОК модуля :(
-2. Joomla вставляет модуль в контейнер в виде слоя (тег <div>).
-3. Joomla вставляет модуль в контейнер из НЕСКОЛЬКИХ СЛОЕВ. Что позволяет дизайнерам делать такие украшательства для модулей, как рамки с закругленными краями.
По умолчанию. Если второй параметр не задавать или задать число, отличное от -1, -2, -3, то Joomla вставляет модуль в контейнер в виде таблицы.
Все эти чудеса :) происходят в файле /includes/frontend.html.php Ничто Вам не мешает определить в нем дополнительное значение для Вашего собственного контейнера, если понадобится, или подправить существующий вывод! В нашем учебном шаблоне mosLoadModules вызывается без второго параметра, поэтому каждый выводимый в шаблон модуль будет вставляться в дополнительную таблицу, генерируемую Джумлой, а выглядит это так (приводим кусок кода из файла frontend.html.php):
/* * standard tabled output */ function modoutput_table( $module, $params, $Itemid, $moduleclass_sfx, $type=0 ) { global $mosConfig_live_site, $mosConfig_sitename, $mosConfig_lang,
$mosConfig_absolute_path; global $mainframe, $database, $my; ?>
<!-- Начало таблицы и ОПРЕДЕЛЕНИЕ ее класса --> <table cellpadding="0" cellspacing="0" class="moduletable<?php echo $moduleclass_sfx; ?>"> <?php if ( $module->showtitle != 0 ) { ?> <tr>
<!-- Вывод заголовка модуля --> <th valign="top"> <?php echo htmlspecialchars( $module->title ); ?> </th> </tr> <?php } ?> <tr> <td>
<!-- Вывод содержимого модуля --> <?php if ( $type ) { modules_html::CustomContent( $module, $params); } else { include( $mosConfig_absolute_path . '/modules/' . $module->module . '.php' );
Таблица-контейнер имеет класс с фиксированным именем "moduletable" + cуффикс, если он задан для модуля (что позволит модулю определить уникальный стиль)
Заголовок модуля находится в теге <th> (table header)
Содержимое модуля находится в ячейке таблицы
Модули в таблице. СТИЛЬНЫЙ дизайн :)
Из вышеизложенного делаем вывод, что для дизайна таблиц, обрамляющих модуль, необходимо настраивать следующие стили:
Пример с конкретными стилями разберем в следующем выпуске, а сейчас предлагаем...
off topic или Отдых круглый год!
Ехать на зарубежный курорт для того, чтобы все время лежать в шезлонге или барахтаться в море... Мало у кого есть такие планы. Незабываемые впечатления складываются от экскурсий или других необычных удовльствий. Предлагаем исчерпывающую информацию о прокате автомобилей на Кипре (прайс-лист на текущий туристический сезон). "Реальная" тема - проехаться на машине по острову, если Вы собираетесь там отдыхать. Читайте Кипр аренда
авто на сайте нашего проекта "Отдых круглый год!"
Автор данной статьи: Леонид Мальков
www.efft.ru, 2008 г. Все права защищены
При воспроизведении материалов статьи указание имени автора
и активная ссылка на сайт http://www.efft.ru/ ОБЯЗАТЕЛЬНЫ!