Goldensites. Создание сайтов. Разработка сайтов.

Новое на сайте

Редизайн сайта для Avantage, г.Новосибирск
Сайт на домене www.avantage-sib.ru; Разработка эксклюзивного дизайна в соответствии с
Создание сайта для оценочной компании Эстима, г.Барнаул
Сайт на домене www.estimacom.ru; Разработка эксклюзивного дизайна в соответствии с
Разработка сайта для ООО Алтай-Метран-Сервис
Сайт на домене www.ams-bar.ru; Разработка эксклюзивного дизайна для организации, занимающейся
Добавить сайт в каталог лучшихсайтов Joomla!

Вход в личный кабинет Goldensites

LiveZilla Live Chat Software

Портфолио по дизайну сайтов, разработке сайтов, созданию фирменного стиля

Разный вывод категорий Joomla или делаем свой шаблон для вывода категории Joomla

Часто возникают ситуации, когда нужно разные категории в Joomla! выводить с помощью индивидуальных шаблонов. Например, категория новостей выводится своим шаблоном, а категрия статей должна выводиться своим шаблоном, сильно отличающимся от шаблона вывода новостей Joomla. Здесь приводиться простой способ для того как это можно сделать на уровне шаблонов вывода стандартного com_content, не затрагивая ядра Joomla.

 

Рассмотрев структуру стандартного компонента com_content  в Joomla, скопируем файлы вывода шаблонов категорий в наш шаблон Joomla, если их еще там нет. Я рассмотрю только шаблон вывода блога категории:

  • {root}\templates\{ШАБЛОН}\html\com_content\category\blog.php - начальный шаблон
  • {root}\templates\{ШАБЛОН}\html\com_content\category\blog_item.php - шаблон материала
  • {root}\templates\{ШАБЛОН}\html\com_content\category\blog_links.php- шаблон ссылок на следующие материалы
Первым будет загружать шаблон вывода blog.php, который в свою очередь использует два других шаблона. Для решения задачи не понадобиться затрагивать файлы ядра Joomla, а будут использоваться только шаблоны.

Так как первым будет загружаться blog.php, то соответсвенно манипуляции нужно проводить с ним. Можно добавить в него нужное условие для проверки категории Joomla. После проверки запрета прямого доступа добавляем:

<?php // no direct access
defined('_JEXEC') or die('Restricted access');
//Задаем ID категорий
$categories = '3,1,31';
//Выбираем категории в массив
$categories = explode(',', $categories);
//Проверяем на соответствие категории и загружаем нужный шаблон
for ($i = 0; $i < count($categories); $i++) {    
 if ($this->items[0]->catid === $categories[$i]) {
 $this->_layout = 'myblog';
 $this->display();
 $check = true;
 break;
 }
}
// Если не совпадает условие выводим обычный шаблон
if (!isset($check)) :
$cparams =& JComponentHelper::getParams('com_media');
?>

И в конце файла закрываем условие:

<?php endif; ?>

Разберу немного код:

В переменную $categories задаем ID категорий, которые нужно выводить отдельным шаблоном, через запятую. Дальше соответсвенно это все дело упорядочиваем в массив и выбираем первый элемент, для того чтобы определить выводимую категорию. Затем сравниваем эту категорию с заданными в переменной $categories и если находиться совпадение устанавливаем наш шаблон и выводим его. Если совпадений не найдено, то переменная $check не устанавливается и выводиться обычный шаблон blog.php.

Все что осталось сделать это создать в той же директории файлы нашего шаблона:

  • {root}\templates\{ШАБЛОН}\html\com_content\category\myblog.php - начальный шаблон
  • {root}\templates\{ШАБЛОН}\html\com_content\category\myblog_item.php - шаблон материала
  • {root}\templates\{ШАБЛОН}\html\com_content\category\myblog_links.php- шаблон ссылок на следующие материалы

Таким образом можно контролировать шаблоны вывода для разных категорий, не затрагивая ядро Joomla.

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


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


Есть что почитать

Стандартные типы параметров для расширений Joomla!
Joomla! 1.6.x поддерживает 21 стандартный тип параметров расширений (шаблонов, плагинов,
Сайт-представительство
Корпоративный сайт — это полноценное представительство компании в интернете. В
Разработка сайтов-визиток
Сайт-визитка - небольшой сайт, который состоит из нескольких страниц. На
Создание сайта "На Базовом 7" (г. Барнаул)
Регистрация доменного имени bazov7.ru; Разработка эксклюзивного дизайна в соответствии с
Не работает Jquery на сайте Joomla - нужно отключить mootools!
Порой, чтобы ваши скрипты или библиотеки не конфликтовали (например, jQuery