Goldensites | CMS Joomla | Joomla 1.5 | Статьи Joomla | Разный вывод категорий Joomla или делаем свой шаблон для вывода категории Joomla

Разный вывод категорий 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.


Комментарии 

 
0 #13 Алексей 21.12.2017 16:07
Привет, а как сделать чтобы для категорий был один шаблон, а в самих статьях другой?
Цитировать
 
 
0 #12 Константин 19.06.2017 14:03
Подскажите, как сделать отображение блога категории, чтобы картинка была слева, и справа от нее текст название статьи и текст?
Цитировать
 
 
-2 #11 Маркус 21.12.2016 15:25
Цитирую Маркус:
Автор, пожалуйста предоставь файлы для скачки. Все сделал 2 раза, но на странице категории показывает белый экран. не могу понять где не так сделал. Заранее спасибо.

Joomla 3.6
Цитировать
 
 
-1 #10 Маркус 21.12.2016 15:24
Автор, пожалуйста предоставь файлы для скачки. Все сделал 2 раза, но на странице категории показывает белый экран. не могу понять где не так сделал. Заранее спасибо.
Цитировать
 
 
+1 #9 Антон 08.04.2014 13:37
Подскажите, в каком файле править надо:
Пункт меню у меня ссылается на Материалы-Категории, выводится одна категория, нужно чтобы слева от названия материала была картинка одна и та же. Хэлп. ася 250880759
Цитировать
 
 
+1 #8 orthneer 19.03.2014 16:57
Лично меня статья спасла. Т.к. при создании пункта меню "Блог" нельзя выбрать свой шаблон отображения материала. А если для трёх категорий нужны разные шаблоны? Только так.
Цитировать
 
 
0 #7 Андрей 29.01.2014 15:37
Бесполезная статья украденная с другого сайта!!!! :-x
Цитировать
 
 
+1 #6 Андрей 28.10.2013 21:24
А не проще ли просто присвоить шаблон к нужному пункту меню. Куда ваc несёт?
Цитировать
 
 
-8 #5 Наталия 02.08.2013 22:29
Покупайте готовые профессиональны е шаблоныhttp://extantion.ru/shop или вступайте в партнерскую программу по продаже шаблонов сайтов (20% от продаж)http://www.mytemplatestora ge.com/?aff=extantion1
Цитировать
 
 
+1 #4 Монтажник 12.07.2013 12:54
Статья ни о чем вообще.
Цитировать
 
 
+6 #3 Анатолий 18.06.2013 18:41
Бесполезная и тупая статья. почему бы всё подробно не описать, ведь задумка хорошая, но мысль не доведена до конца.
Цитировать
 
 
+2 #2 ру 24.12.2012 21:32
установи php на компьютер и сервер apache сначала)
Цитировать
 
 
0 #1 Blader 03.12.2012 11:33
Подскажите что я не так сделал.Я создал новый документ на notepad++ выбрал php открываю с помощью браузера Chrome но выходит текст php
Цитировать