Создание шаблона

Структура шаблона по сравнению с версией 1.0.х практически не изменилась.

Шаблоны лежат в папке templates

В папке вашего шаблона обязательно должны находится файлы

index.php и templateDetails.xml (именно так с D в верхнем регистре).

Папки для CSS и описания своих типов вывода модулей (см. ниже) называются css и html соответственно

Структура выглядит так:

  • templates
  • my_template
  • css
  • html
  • index.php
  • templateDetails.xml

Файл templateDetails.xml содержит описательную часть шаблона (имя автора,дату создания и т.п.) и список файлов содержащихся в шаблоне (необходимо для установки шаблона через инсталлятор). Открыв файл templateDetails.xml из существующего шаблона почитайте. Там все предельно ясно Файл index.php – это собственно и есть шаблон

Листинг пустого index.php выглядит так

Код

<?php echo ‘<?xml version=»1.0″ encoding=»utf-8″?’ .’>’; ?>
<!DOCTYPE html PUBLIC «-//W3C//DTD XHTML 1.0 Transitional//EN» «http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd»&gt;
<html xmlns=»http://www.w3.org/1999/xhtml&#187; xml:lang=»{LANG_TAG}» lang=»{LANG_TAG}» dir=»{LANG_DIR}» >
<head>
<jdoc:include type=»head» />
<link rel=»stylesheet» href=»templates/{TEMPLATE}/css/template.css» type=»text/css» />
</head>
<body>

</body>
</html>

Внутри тегов <body> </body> находится html содержимое шаблона (возможны включения PHP кода)

Модули

В Joomla! 1.0.x модули выводились так

Код:

<?php mosLoadModules ( ‘left’,-1); ?>

Где left : позиция модуля , -1 : тип вывода модуля.

В Joomla! 1.5 вывод модулей осуществляется так

Код:

<jdoc:include type=»modules» name=»right» style=»-1″ />

type=»modules» говорит о том, что выводится модуль

name=»right» указывает на позицию модуля

style=»-1″ указывает тип вывода модуля

для style=»…» появилась возможность указания типа вывода не только цифрами, но и ключевыми словами

style=»table» – стандартный вывод модуля в ячейке таблицы

Код:

<table cellpadding=»0″ cellspacing=»0″ class=»moduletable»>
<tr>
<th valign=»top»>Module Title</th>
</tr>
<tr>
<td>Module Content</td>
</tr>
</table>

style=»horz» – горизонтальный вывод

Не увидел разницы со style=»table» , хотя в официальном мануале сказано, что формируется горизонтальный вывод модуля

style=»xhtml» – вывод модуля в одном DIV с заголовком H3

Код: </pre>
Module Title
Module Content

</pre>

style=»rounded» – вывод модуля в четырех вложенных DIV ( используется для создания закругленных углов ).

Код:

<div class=»module»>
<div>
<div>
<div>
<h3>Module Title</h3>
Module Content
</div>
</div>
</div>
</div>

style=»raw»

будет выведено содержимое модуля без заголовка ,таблиц и DIVов

В Joomla 1.5 добавлена возможность создавать свои типы вывода модулей Описание типа вывода модуля находится в файле templates/template_folder/html/modules.php Имя функции обязательно должно начинаться с modChrome_

Создадим тип вывода style=»example» В котором модули будут выводиться в таблице шириной 180px, Заголовок модуля имеет красный фон, текст заголовка выводится в тегах <H3> </H3> Тело модуля имеет серый фон. Весь текст в верхнем регистре.

Листинг простейшего файла modules.php будет таким

Код:

<?php
defined(‘_JEXEC’) or die(‘Restricted access’);
function modChrome_example($module, & $params)
{ ?>
<table width=»180px» border=»0″ cellspacing=»0″ cellpadding=»0″>
<tr>
<td style=»background-color:red;»><h3><?php echo $module->title ?></h3></td>
</tr>
<tr>
<td style=»background-color:gray; text-transform:uppercase;»><?php echo $module->content ?></td>
</tr>
</table>
<?php
}
?>

Контент

Вывод контента осуществляется так

В Joomla! 1.0.x

Код:

<?php mosMainBody(); ?>

В Joomla! 1.5

Код:

<jdoc:include type=»component» />

Листинг простейшего index.php трехколоночного шаблона

Код:

<?php echo ‘<?xml version=»1.0″ encoding=»utf-8″?’ .’>’; ?>
<!DOCTYPE html PUBLIC «-//W3C//DTD XHTML 1.0 Transitional//EN» «http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd»&gt;
<html xmlns=»http://www.w3.org/1999/xhtml&#187; xml:lang=»{LANG_TAG}» lang=»{LANG_TAG}» dir=»{LANG_DIR}» >
<head>
<jdoc:include type=»head» />
<link rel=»stylesheet» href=»templates/{TEMPLATE}/css/template.css» type=»text/css» />
</head>
<body>
<table width=»100%» border=»0″ cellspacing=»0″ cellpadding=»0″>
<tr>
<td class=»left»><jdoc:include type=»modules» name=»left» style=»raw»/></td>
<td class=»center»><jdoc:include type=»component» /></td>
<td class=»right»><jdoc:include type=»modules» name=»right» style=»raw»/></td>
</tr>
</table>
</body>
</html>

Оставьте комментарий