Мысли вслух
Основные команды для Joomla 1.5, которые должны быть в файле index.php абсолютно любого шаблона Печать
Добавил Administrator   
Понедельник, 16 Август 2010

Достаточно регулярно создаю шаблоны, но иногда забываю самое элементарное. Вот, что-то типа шпаргалки для разработчика шаблонов под Joomla 1.5.

Итак, все файлы в Joomla 1.5 с расширением php должны начинаться с проверки запуска этих файлов именно в среде Joomla:
<?php defined( '_JEXEC' ) or die( 'Текст сообщения, которое отобразиться если файл вызвать в обход Joomla' ); ?>

Далее нужно определиться с DOCTYPE и самый подходящий для Joomla вот такой:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

Теперь открываем тег html и в нем зададим три атрибута, которые необходимы для нормального функционирования Joomla 1.5:
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="<?php echo $this->language; ?>" lang="<?php echo $this->language; ?>" >

Для тега head в Joomla 1.5 предусмотрена команда:<jdoc:include type="head" />
На странице сайта вместо этой строчки будут выведены все системные, а также дополнительные теги и скрипты, с которыми работают приложения Joomla (модули, компоненты, плагины).

Работая с библиотекой mootools обнаружил, что она в некоторых компонентах не подключается и соответственно все скрипты, которые написаны с ее использованием перестают работать.
Чтобы избежать возможных проблем в работе с mootools я дописываю еще одну строчку к предыдущей:
<?php JHTML::_( 'behavior.mootools' ); ?>
Данный код не будет дублировать второе подключение базы mootools, а сработает, только в том случае если до нее база mootools не была определена.
Этот прием отлично работает с плагином "System - Mootools Upgrade", который подключает новую версии mootools 1.2.4.

Далее обязательно нужно подсоединить файл таблицы стилей (css) шаблона:
<link rel="stylesheet" href="<?php echo $this->baseurl ?>/templates/Название шаблона/css/название файла.css" type="text/css" />
Также желательно подключать и системные таблицы стилей:
<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" />

В этом коде <?php echo $this->baseurl ?> Joomla 1.5 выведет путь к корню сайта (т.е. туда где она установлена).

Все, тег head минимально полон и вот как он выглядит в итоге:
<head>
<jdoc:include type="head" />
<?php JHTML::_( 'behavior.mootools' ); ?>
<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/Название шаблона/css/название файла.css" type="text/css" />
</head>


В теге body  минимум, о котором всегда нужно помнить – это 4 команды:
1. <jdoc:include type="modules" name="позиция модуля" style="стиль отображения" />
Выведет модуль, который будет установлен в позицию модуля, а само тело модуля будет обрамлено в стиль отображения модуля.
Позиция модуля задается в файле шаблона templateDetails.xml в теге position:
<positions>
<position>Имя позиции модуля</position>
</positions>

Указанные позиции будут доступны во всех установленных модулях Joomla.
Стили отображения модуля можно посмотреть в файле: templates/ system/ html/ modules.php
К примеру стиль "rounded" выглядит следующим образом:
<?php
function modChrome_rounded($module, &$params, &$attribs)
{ ?>
        <div class="module<?php echo $params->get('moduleclass_sfx'); ?>">
            <div>
                <div>
                    <div>
                        <?php if ($module->showtitle != 0) : ?>
                            <h3><?php echo $module->title; ?></h3>
                        <?php endif; ?>
                    <?php echo $module->content; ?>
                    </div>
                </div>
            </div>
        </div>
    <?php
} ?>

Где <?php echo $params->get('moduleclass_sfx'); ?> - выводить суффикс для класса "module"
<?php echo $module->title; ?> - выводит название модуля, а <?php echo $module->content; ?> - выведет код модуля (контент).

2. <jdoc:include type="message" /> - данная команда будет выводить системные сообщения Joomla. Типа, "спасибо за регистрацию" или "код с картинки введен не верно" и т.д.

3. <jdoc:include type="component" /> - сюда Joomla выведет отображение компонентов, которые закреплены за определенным пунктом меню.
На странице может быть только одно место для вывода системных сообщений и отображения компонентов. Если же у вас их несколько, то ошибки не будет, просто продублируется выводимый контент.

4.<?php echo $this->params->get('имя параметра') ?>
Этот код выводит значение параметра из настроек шаблона, которые прописываются в файле templateDetails.xml, вот пример записи:
<params>
<param name="имя параметра" type="тип строки (text, list или radio)" size="ширина строки" default="значение по умолчанию" label="Название поля с параметром" description="Описание значения параметра" />
</params>


Вот собственно и все, что нужно, минимум, знать для создания файла index.php шаблона под Joomla 1.5

 

Комментарии  

 
#1 Sadam_huseyn 03.09.2010 14:40
Хорошая статья, спасибо
Но есть вопрос: что такое системные таблицы стилей?
Цитировать
 
 
#2 SDemon 03.09.2010 15:20
В Joomla на все случаи жизни уже прописаны css стили, но эти стили не настроены, т.к. настраивать отображение контента возложено на плечи шаблона.
Но в папке templates/system/css/ находятся системные таблицы стилей, в которых прописаны css стили для системного контента, к примеру отображение системных сообщений Joomla.
Цитировать
 
 
#3 antyxweb 19.12.2010 15:45
Добрый день. Подскажите, пожалуйста, а как узнать не основные команды? В интернет не нашёл.
Цитировать
 
 
#4 SDemon 07.01.2011 00:14
Цитирую antyxweb:
Добрый день. Подскажите, пожалуйста, а как узнать не основные команды? В интернет не нашёл.

Из видео курса
Цитировать
 
 
#5 Sveta 17.02.2011 12:48
Большое человеческое спасибо! Очень все понятно даже для новичка :)
Пишите для нас чаще :)
Цитировать
 
 
#6 Axtem 18.02.2011 00:52
Большое спасибо за статью, очень полезная!
Цитировать
 
 
#7 KoT 08.07.2011 03:14
Спасибо огромное!
Цитировать
 
 
#8 Leo 24.08.2011 00:39
Спасибо огромное! Очень полезная! Выручили
Цитировать
 

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


Защитный код
Обновить

Хостинг «Джино»
SmartResponder