Joomla 1.5 предлагает ряд продвинутых функций шаблонов, которые существненно расширяют их возможности. Мы уже видели один из примеров в этом цикле статей — возможность создания «chrome», или кастомизированного отображения модулей.
Давайте теперь рассмотрим следующие функции:
Параметры шаблонов
Переопределения шаблонов
Параметры шаблонов
В Joomla 1.5 добавлена новая возможность — параметры для шаблона. Это позволяет вам присваивать значения переменным, передаваемым шаблону, в административном интерфейсе.
Мы можем использовать относительно простой вариант использования параметра в нашем шаблоне. В файле templateDetails.xml добавьте следующее:
<params> <paramname="template_width"type="list"default="fluid"label="Template Width"description="Width style of the template"> <optionvalue="fluid">Fluid with maximum and minimum</option> <optionvalue="medium">Medium</option> <optionvalue="small">Small</option> </param> </params>
Вам также понадобится файл params.ini в папке шаблона. Он может быть пустым, но он необходим Joomla для сохранения ваших настроек. Например, INI-файл для примера, приведенного выше, мог бы выглядеть следующим образом:
template_width=2
Вы должны выставить права доступа на запись для того, чтобы сервер мог сохранять значения параметров. Также необходимо добавить этот файл в список файлов в templateDetails.xml.
В Менеджере Шаблонов вы увидите опции для параметра, как это показано на рисунке:
Мы видим, что это простой список с тремя вариантами выбора:
<paramname="template_width"type="radio"default="0"label="Template Width"description="Change width setting of template"> <optionvalue="0">800x600</option> <optionvalue="1">1024x756</option> <optionvalue="2">fluid (min/max with FF and IE7, 80% with IE6)</option> </param>
После этого мы изменяем тег body в index.php на следующий:
Все это дает нам три варианта: фиксированная узкая страница, фиксированная широкая страница и растягивающаяся страница.
Использование параметров шаблона — это возможность предоставить администратору сайта гибкость при настройке почти любых элементов шаблона: ширина, цвет и т.д., все это контролируется с помощью условных выражений PHP, устанавливающих CSS-стили.
Переопределение шаблонов
Пожалуй, наиболее мощная новая возможность в Joomla 1.5 — это возможность легкого переопределения вывода ядра. Это делается с помощью новых файлов вывода (файлов шаблона), которые соответствуют макетам отображений (views) компонентов и модулей. Joomla проверяет каждый раз, существует ли соответствующий файл в папке шаблона, и если он есть, использует его для вывода вместо стандартного.
Структура переопределения
Все макеты отображения и шаблоны ядра находятся в папке /tmpl/. Расположение немного отличается для компонентов и для модулей, поскольку модули, по сути, имеют только одно отображение. Например:
Базовая структура для всех компонентов и модулей — это Отображение>Макет>Шаблон
Ниже в таблице показаны некоторые примеры. Обратите внимание, что модули имеют только одно отображение.
Отображение
Макет
Шаблоны
Category
Blog.php
blog_item.php blog_links.php
Category
default.php
default_items.php
(Newsflash module)
default.php horz.php vert.php
_item.php
Обычно существуют несколько файлов шаблонов, отвечающих за определенный макет. У этих файлов есть общепринятое наименование:
Наименование файла
Описание
Пример
layoutname.php
Основной шаблон макета
blog.php
layoutname_templatename.php
Дочерний шаблон макета, вызываемый из основного
blog_item.php blog_links.php
_templatename.php
Общий шаблон макета, используемый в разных макетах
_item.php
Переопределение модулей
Каждый модуль содержит новую папку с названием tmpl, в которой находятся его шаблоны. Внутри нее находятся PHP-файлы, который отвечают за вывод. Например:
Первые три файла — это три макета модуля Newsflash, которые используются в зависимости от того, какие выбраны опции у модуля, а файл _item.php — это общий шаблон макета, который используется всеми тремя вариантами. Внутри этого файла мы видим следующее:
<?php// no direct access defined('_JEXEC') or die('Restricted access'); ?> <?phpif($params->get('item_title')):?>
Эти папки соответсвуют четырем возможным отображениям контента: archive, article, category и section. Внутри каждого отображения мы найдем папку tmpl, в которой могут находиться несколько макетов.
Обратите внимание, что в случае компонента com_content, макет default.php отвечает за стандартный вариант, в котором статьи отображаются в виде ссылок.
Если мы откроем blog_item.php, мы увидим, что там сейчас используются таблицы. Если мы хотим переопределить этот вывод, мы должны положить то, что нам нужно, в папку template/html, например:
Это относительно простой процесс — копирование и вставка отображений из папок /components/ и /modules/ в папку templates/yourtemplate/html.
Функциональность переопределения предоставляет мощный механизм кастомизации сайта на Joomla с помощью шаблонов. Вы можете создавать шаблоны вывода, орентированные на SEO, доступность или конкретные нужды клиента.
Что необходимо знать
Joomla 1.5 предлагает новые возможности для шаблонов, которые позволяют разработчикам полностью управлять кодом и отображением веб-сайта на Joomla.
Бестабличная Joomla
Дистрибутив Joomla содержит шаблон Beez, который является рабочим примером переопределения шаблонов. Команда Дизайна и Доступности создала полный набор переопределений, содержащихся в папке html. Наш финальный пример — это шаблон, который использует эти переопределения, чтобы удалить все таблицы из вывода Joomla.
CSSTemplateTutorialStep4
Итак, у нас есть шаблон, сделанный на основе дизайна. В нем добавлено оформление шрифтов, но более важно то, что мы создали чистый CSS-шаблон с динамически убирающимися колонками и приятным меню из ярлыков. Затем мы переопределили вывод Joomla таким образом, чтобы в нем больше не использовались таблицы. Я сделал инсталлируемый шаблон, который вы можете найти в нашей библиотеке [примечание переводчика: все шаблоны из данного руководства доступны для скачивания по ссылке: www.compassdesigns.net/downloads/file/21-csstemplatetutorials1-4.html].
Резюме
В этом цикле статей мы прошли через четыре примера шаблонов, постепенно усложняя их и добавляя функции.
Современные веб-сайты отделяют контент от отображения с помощью технологии, называемой «Каскадные Таблицы Стилей» (CSS). В Joomla отображением контента управляет шаблон.
При создании шаблона вам нужно проинсталлировать Joomla на сервер, чтобы вносить изменения и обновлять отображение страниц.
Создание валидного шаблона — это способ, а не цель. Идея заключается в том, чтобы сделать ваш шаблон настолько доступным, насколько это возможно, для людей и поисковых систем, а не просто для того, чтобы получить значок валидности.
Самый базовый шаблон просто загружает модули Joomla и компонент mainbody. За расположение элементов и дизайн отвечает CSS, а не Joomla.
Современный веб-дизайн использует CSS вместо таблиц для позиционирования элементов. Это непросто изучить, но это хорошая инвестиция. Существует множество ресурсов (кроме Joomla), которые могут помочь вам в этом.
Joomla отображает конкретные элементы, объекты и классы в коде веб-страницы. Это можно предвидеть и использовать для изменения оформления с помощью CSS.
В версии 1.5 вывод модулей можно полностью кастомизировать, либо вы можете использовать предопределенный вывод. Все эти опции называются «module chrome».
Лучше всегда использовать вывод меню в виде списка или в плоском виде. В результате вы можете использовать массу доступных на Web ресурсов с уже готовыми стилями CSS для меню.
Такие элементы, как колонки или места для модулей, могут быть спрятаны (или свернуты), когда для них нет контента. Это делается с помощью условных выражений PHP, которые связаны с определенным CSS-стилями.
Создание рабочего шаблона Joomla — это в большей степени вопрос графического дизайна и манипуляций с CSS, нежели какое-то специально «знание Joomla».
Joomla 1.5 предоставляет новые возможности для шаблонов, которые позволяют разработчикам полностью управлять кодом и отображением веб-сайта на Joomla.