В папке шаблона необходимо создать следующие файлы и папки:

файл templateDetails.xml

файл index.php

файл template_thumbnail.png

файл template_preview.png

файл favicon.ico

файл error.php

файл component.php

папка css, которая содержит файлы template.css и menu.css

папка images с графическими файлами

папка html содержит еще две папки mod_login и mod_search

Теперь подробнее о каждом файле и папке.

Файл templateDetails.xml   -структура шаблона описанная на языке XML. Файл используется Joomla для инсталляции любого расширения, в том числе и шаблонов.

Содержание:

 
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE install PUBLIC "-//Joomla! 2.5//DTD template 1.0//EN" "http://www.joomla.org/xml/dtd/1.7/template-install.dtd">
<extension version="2.5" type="template" client="site">
<name>Название шаблона</name>
<creationDate>Дата создания шаблона</creationDate>
<author>Автор шаблона</author>
<authorEmail>email автора шаблона</authorEmail>
<authorUrl>Сайт автора шаблона</authorUrl>
<copyright>Права на шаблон</copyright>
<license>GNU GPL</license>
<version>Версия шаблона</version>
<description>Краткое описание шаблона</description>
<files>
    <filename>favicon.ico</filename>
    <filename>index.html</filename>
    <filename>index.php</filename>
    <filename>template_preview.png</filename>
    <filename>template_thumbnail.png</filename>
    <filename>templateDetails.xml</filename>
    <folder>css</folder>
    <folder>html</folder>
    <folder>images</folder>
    <folder>js</folder>
</files>
<positions>
    <position>pos-1</position>
    <position>pos-2</position>
    .......................
    <position>pos-n</position>
</positions>
<languages folder="language">
        <language tag="en-GB">en-GB/en-GB.tpl_remont.ini</language>
        <language tag="en-GB">en-GB/en-GB.tpl_remont.sys.ini</language>
        <language tag="ru-GB">ru-GB/ru-GB.tpl_remont.ini</language>
        <language tag="ru-GB">ru-GB/ru-GB.tpl_remont.sys.ini</language>
 </languages>
</extension>

Назначение тегов до тега <files> прописаны мной в самих тегах и, кстати, при написании этого файла следите за кодировкой, кодировка должна быть UTF-8.

В секции <files> указываем файлы и папки, находящиеся в папке templates/ваш_шаблон, то есть таким образом описываем файлы шаблона.

В секции <positions> скрупулезно перечисляем все позиции модулей и будте внимательны, названия позиций должны абсолютно соответствовать названиям позиций в файле index.php вашего шаблона.

Во многих шаблонах вы можете увидеть такие секции, как <languages> и <config>. Если вы захотите добавить какие-то настройки, доступные из менеджера шаблонов, то секция <config> имеет смысл ибо именно в ней вы и пропишите все необходимые параметры. Если вам нужно выводить информацию о шаблоне, подписи к настройкам на нескольких языках, то в этом случае появится необходимость в секции <languages>

Файл index.php - это макет шаблона нашего сайта или структура макета в html тегах.

Основные команды в index.php:

 
<!--Защита от прямого доступа: -->
<?php
/**
 * @package        Joomla.Site
 * @copyright    Copyright (C) 2005 - 2013 Open Source Matters, Inc. All rights reserved.
 * @license        GNU General Public License version 2 or later; see LICENSE.txt
 */ defined('_JEXEC') or die;
?>

 
<!--Подключение Doctype и html с языком: -->
<!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; ?>">

 
<!--Подключение мета тегов: -->
<jdoc:include type="head" />

 
<!--Путь в корень домена: -->
<?php echo $this->baseurl ?>

 
<!--Конструкция подключения модуля: -->
<?php if($this->countModules('left')) : ?>
<jdoc:include type="modules" name="left" style="xhtml" />
<?php endif; ?>

 
<!--Подключение основного контента: -->
<jdoc:include type="component" />

 
<!--Подключение модуля вывода системных сообщений: -->
<jdoc:include type="message" /> 

 Файл component.php – это шаблон вывода страницы сайта для печати.

Пример:

<?php
/**
 * @package        Joomla.Site
 * @copyright    Copyright (C) 2005 - 2013 Open Source Matters, Inc. All rights reserved.
 * @license        GNU General Public License version 2 or later; see LICENSE.txt
 */ 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>
 <jdoc:include type="head" />
 <link rel="stylesheet" href="/<?php echo $this->baseurl; ?>/templates/system/css/system.css" type="text/css" />
 <link rel="stylesheet" href="/<?php echo $this->baseurl; ?>/templates/system/css/general.css" type="text/css" />
 <link rel="stylesheet" href="/<?php echo $this->baseurl . '/templates/' . $this->template; ?>/css/template.css" type="text/css" />
</head>
<body class="contentpane">
 <jdoc:include type="message" />
 <jdoc:include type="component" />
 
</body>
</html> 

Файл error.php – это шаблон вывода страницы ошибки.

Для вывода своей страницы 404 в joomla 2.5 можно создать так называемый статичный материал не принадлежащий ни одной категории. После этого сохраните данный материал и запомните его идентификатор (id). Его вы можете найти на странице создания материала: «ID Материала:» XX.После этого в строчке:  index.php?option=com_content&view=article&id=XX, замените XX на id того материала, который мы создавали для использования в качестве страницы 404. Сохраните файл. После этого все будет готово.:

 
<?php
/**
 * @package        Joomla.Site
 * @copyright    Copyright (C) 2005 - 2013 Open Source Matters, Inc. All rights reserved.
 * @license        GNU General Public License version 2 or later; see LICENSE.txt
 */ defined('_JEXEC') or die;
if (!isset($this->error)) {
    $this->error = JError::raiseWarning(404, JText::_('JERROR_ALERTNOAUTHOR'));
    $this->debug = false;
}
//get language and direction
$doc = JFactory::getDocument();
$this->language = $doc->language;
$this->direction = $doc->direction;
?>
<!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; ?>"> <?php
if ($this->_error->get('code') == '404') {
header("HTTP/1.0 404 Not Found");
header('Location: index.php?option=com_content&view=article&id=XX');
exit;} ?> 

Добавить комментарий