Переопределение пагинации в шаблоне
05.10.2010 →Пагинация - это разбиение на страницы. Изначально в Joomla пагинация выглядит как показано на рисунке.
Можно переопределить, заменить вывод, пагинации в вашем шаблоне. Для этого возьмем файл из стандартного шаблона Joomla {joomla root}\tamplates\rhuk_milkyway\html\pagination.php и скопируем его в ту же директорию своего шаблона.
В этом файле представленны 4 функции:
- pagination_list_footer - в ней можно переопределить выпадающий список, использующийся для отображения количества объектов на странице.
- pagination_list_render - эта функция для переопределяет вывод количества страниц, а так же ссылки "Первая", "Предыдущая", "Последняя" и "Следующая"
- pagination_item_active - определяет вид ссылок, кроме текущей страницы (на картинке это 2,3,4...)
- pagination_item_inactive - определяет вид ссылок текущей страницы (на картинке это << Start, < Prev и 1)
Таким образом, если не устраивают стандартные элементы используемые в Joomla для пагинации, можно их переопределить в своем шаблоне.
Пример файла pagination.php
<?php defined('_JEXEC') or die('Restricted access'); function pagination_list_footer($list) { // Initialize variables $lang =& JFactory::getLanguage(); $html = "<ul class=\"list-footer\">\n"; $html .= "\n<div class=\"limit\">".JText::_('Display Num').$list['limitfield']."</div>"; $html .= $list['pageslinks']; $html .= "\n<div class=\"counter\">".$list['pagescounter']."</div>"; $html .= "\n<input type=\"hidden\" name=\"limitstart\" value=\"".$list['limitstart']."\" />"; $html .= "\n</div>"; return $html; } function pagination_list_render($list) { // Initialize variables $lang =& JFactory::getLanguage(); $html = "<ul class=\"pagination\">"; // Если выбрана первая страния то не показываем ссылки "Первая" и "Предыдущая" if ($list['start']['active']) { $html .= $list['start']['data']; $html .= $list['previous']['data']; } foreach( $list['pages'] as $page ) { if($page['data']['active']) { // $html .= '<strong>'; } $html .= $page['data']; if($page['data']['active']) { // $html .= '</strong>'; } } // Если выбрана последняя страния то не показываем ссылки "Следующая" и "Последняя" if ($list['end']['active']) { $html .= $list['next']['data']; $html .= $list['end']['data']; } $html .= "</ul>"; return $html; } function pagination_item_active(&$item) { return "<li><a href=\"".$item->link."\" title=\"".$item->text."\" class=\"pagination\">".$item->text."</a></li>"; } function pagination_item_inactive(&$item) { return "<li><span>".$item->text."</span></li>"; } ?>
Структура шаблонов в Joomla
05.10.2010 →Общая структура для шаблонов Joomla практически идентична
{root}\templates\{шаблон}\ - основная директория шаблона
- component.php - это отдельный шаблон вывода компонента, без модулей и всего прочего. Если в сылке будет указано ".../index.php?tmpl=component", то будет вместо общего шаблона загружаться этот файл. Используется, в частности, при нажнатии на иконку "версия для печати".
- index.php - сам шаблон
- params.ini - файл для хранения параметров шаблона
- templateDetails.xml - файл описания шаблона
- template_thumbnail.png - превью шаблона (для административной панели Joomla)
- offline.php - шаблон, который загружается при выключенном сайте
- error.php - шаблон, для вывода ошибок
- favicon.ico - иконка шаблона
- index.html - файл для запрета листинга
{root}\templates\{шаблон}\html\ - директория для шаблонизации расширений
- modules.php - файл описания вывода стилей модулей
- pagination.php - шаблон пагинации (файл можно взять из стандартного rhuk_milkyway)
Если каких-то файлов у вас нет в шаблоне, вы можете скопировать их из директории {root}\templates\system\ в ваш шаблон и изменять их уже, непосредственно, в вашем шаблоне.
Простейший шаблон в Joomla
05.10.2010 →Самый простой шаблон для Joomla будет состоять всего из трех файлов.
XML файл описывающий шаблон:
{root}\templates\{шаблон}\templateDetails.xml
<?xml version="1.0" encoding="utf-8"?> <!DOCTYPE install PUBLIC "-//Joomla! 1.5//DTD template 1.0//EN" "http://www.joomla.org/xml/dtd/1.5/template-install.dtd"> <!--указываем версию Joomla и тип устанавливаемого расширения--> <install version="1.5" type="template"> <name>Мой первый шаблон</name> <creationDate>01.01.2010</creationDate> <author>Автор</author> <authorEmail>my@email.ru</authorEmail> <authorUrl>http://мой-сайт.ру</authorUrl> <copyright>Копирайт</copyright> <license>GNU/GPL</license> <version>1.0</version> <description>Описание шаблона</description> <files> <filename>index.php</filename> <filename>index.html</filename> <filename>templateDetails.xml</filename> </files> <positions> <position>myposition</position> </positions> </install>
В этом файле указывается информация о шаблоне и авторе. А так же какие файлы содержаться в шаблоне, Joomla автоматически копирует перечисленные файлы из архива в нужную папку при установке шаблона. Так же в нем перечисляются позиции, которые используются в данном шаблоне. Есть еще ряд настроек для этого файла, но я пока их опущю.
Непосредственно сам шаблон:
{root}\templates\{шаблон}\index.php
<?php // защита от прямого доступа defined( '_JEXEC' ) or die( 'Restricted access' ); ?> <!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; ?>" > <head> <jdoc:include type="head" /> </head> <body> <jdoc:include type="modules" name="myposition" style="xhtml"/> <jdoc:include type="message" /> <jdoc:include type="component" /> </body> </html>
<jdoc:include type="head" /> - здесь Joomla автоматически выводит, то что должно быть в заголовке страницы. Title, meta данные, подключает нужные скрипты и т.д.
<jdoc:include type="modules" name="myposition" style="xhtml" /> - эта конструкция служит для вывода модулей, опубликованных в данной позиции.
- name - позиция модулей
- style - стиль выводимых модулей, о нем поговорим позже
<jdoc:include type="message" /> - конструкция для вывода сообщений Joomla. Например, если при авторизации вы ввели неверный логин или пароль.
<jdoc:include type="component" /> - конструкция для вывода компонента (как правило это основное содержимое страницы).
И пустой файл index.html для запрета листинга файлов в директории.
Plus
04.10.2010 →Если шаблон является бесплатным, то это не означает, что он должен быть низкого качества. Качество шалона Plus сравнимо с платными шаблонами от этого разработчика.
Если вам нужен бесплатный шаблон высокого качества для блога, портала или потрфолио, то Plus от Shape является правильным выбором.