Шаблон joomla - набор файлов, отвечающих за оформление сайта - разметка, таблицы стилей, изображения.
Содержимое joomla выводится с помощью компонентов (основные расширения, без большинства из которых невозможно существование сайта) и модулей (вспомогательные расширения), для чего в основном шаблоне прописываются соответствующие позиции. Для модулей можно прописать неограниченное количество позиций, в каждую позицию можно вывести сколько угодно модулей (меню, форма входа и многое другое). Для компонентов (материалы) прописывается одна позиция. У большей части модулей и компонентов есть собственные шаблоны, однако их изменение в большинстве случаев не требуется.
Основные шаблоны расположены в каталоге /templates, шаблоны компонентов в /components/каталог_компонента, шаблоны модулей в /modules/каталог_модуля.
Для интеграции в шаблон компонентов необходимо прописать следующее:
<jdoc:include type="component" />
Это прописывается в шаблоне один раз. Так же незабываем прописать следующую строчку:
<jdoc:include type="message" /> - служит для вывода различных системных сообщений. В итоге мы должны получить следующее:
<jdoc:include type="message" />
<jdoc:include type="component" />
Для вывода модуля прописываем следующую строку:
<jdoc:include type="modules" name="mod-position-name" />
Модулей может быть сколько угодно и где угодно, главное – указать имя позиции модуля. Для каждой позиции можно задать уникальное имя и тем самым разместить различные модули в разных блоках. Так же в двух разных блоках можно разместить один и тот же модуль (дублировать), присвоив одинаковые имена позициям в этих блоках.
Все позиции рекомендую прописывать в «описании к шаблону» - файле “templatedetails.xml”.
К примеру, если у нас есть позиции:
<jdoc:include type="modules" name="position-0" style="xhtml" />
<jdoc:include type="modules" name="position-1" style="xhtml" />
<jdoc:include type="modules" name="position-2" style="xhtml" />
<jdoc:include type="modules" name="position-3" style="xhtml" />
Вtemplatedetails.xml необходимо прописать:
<positions>
<position> position-0</position>
<position> position-1</position>
<position> position-2</position>
<position> position-3</position>
</positions>
Это сообщит joomla, какие позиции для модулей есть в нашем шаблоне и позволит при добавлении модуля выбрать нужную из списка, не вспоминая каждый раз какие имена мы им присвоили.
Кроме модулей и компонентов так же необходимо вывести на сайт метаданные, для чего внутри <head></head> вставляем <jdoc:include type="head" />
Пример простейшего шаблона joomla. Без какого-либо оформления, только самое необходимое. Есть четыре позиции для модулей, две до контента, две после.
В каталоге «css» - таблицы стилей
В каталоге «html» могут быть размещены шаблоны модулей и компонентов, отличные от оригинала.
index.php – здесь прописываются позиции, разбиваются на блоки
template-details.xml – описание шаблона
Файл index.php
<?php
defined('_JEXEC') or die;
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="<?php echo $this->language; ?>" lang="<?php echo $this->language; ?>" dir="<?php echo $this->direction; ?>">
<head>
<link rel="stylesheet" href="<?php echo $this->baseurl ?>/templates/<?php echo $this->template; ?>/css/template.css" type="text/css" />
<jdoc:include type="head" />
</head>
<body>
<jdoc:include type="modules" name="position-0" />
<jdoc:include type="modules" name="position-1" style="xhtml" />
<jdoc:include type="message" />
<jdoc:include type="component" />
<jdoc:include type="modules" name="position-2" style="xhtml" />
<jdoc:include type="modules" name="position-3" style="xhtml" />
</body>
</html>
style="xhtml" – дает возможность отображения заголовка модуля
Файл template-details.xml
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE install PUBLIC "-//Joomla! 2.5//DTD template 1.0//EN" "http://www.joomla.org/xml/dtd/2.5/template-install.dtd">
<extension version="3.0" type="template" client="site">
<name>shablon</name>
<version>1.0</version>
<creationDate>5/16/2013</creationDate>
<author>Vl</author>
<authorEmail>vl@WebRazrab.ru</authorEmail>
<copyright>Copyright (C) melarossa</copyright>
<description>простейшийшаблондля joomla</description>
<files>
<filename>index.php</filename>
<filename>templateDetails.xml</filename>
<folder>css</folder>
<folder>html</folder>
<folder>images</folder>
</files>
<positions>
<position>position-0</position>
<position>position-1</position>
<position>position-2</position>
<position>position-3</position>
</positions>
</extension>