2009 23 октября

Структура шаблона com_content

Структура шаблона com_content Рассмотрим по очереди все заложенные возможности шаблона стандартных материалов компонента com_content. Для затравки можно взять содержимое папки \templates\beez\html\com_content\ и положить в свой шаблон. Там конечно не все идеально, но данный стандартный шаблон построен на div и имеет все вьюшки контента. Кому есть чем дополнить (либо поправить если где ошибаюсь) - милости просим
Содержимое данного каталога представлено в виде 4-х папок с соответствующими шаблонами представлений
  • article
    • default.php - - собственно оконечная страница материала (view=article), отрабатывает плагины на событие afterDisplayContent
    • form.php - стандартная форма добавления материала с фронтенда
  • category
    • blog.php - материалы категории в формате блога как бы общий каркас (view=category&layout=blog): описание категории, разбиение на колонки, ссылки типа "еще", постраничная навигация
    • blog_item.php - связан напрямую с blog.php - показывает непосредственно элемент статьи формата блог: заголовок, даты, автор, вступительный текст, подробнее, отрабатывает плагины на событие afterDisplayContent
    • blog_links.php - связан напрямую с blog.php, показывает ссылки типа "еще", по умолчанию в формате UL LI
    • default.php - список материалов категории (view=category): заголовок категории, описание, вывод материалов категории в виде таблицы
    • default_items.php - связан напрямую с default.php - формирует таблицу материалов (номер, заголовок, дата, хиты), фильтры над таблицей, постраничную навигацию
  • frontpage - шаблон только главной страницы, что работает по умолчанию
    • default.php - аналог category\blog.php
    • default_item.php - аналог category\blog_item.php
    • default_links.php - аналог category\blog_links.php
  • section
    • blog.php - материалы раздела в формате блога (view=section&layout=blog), аналогичен category\blog.php
    • blog_item.php - аналогичен category\blog_item.php, отображает каждый элемент блога раздела
    • blog_links.php - аналогичен category\blog_links.php, показывает ссылки типа "еще" в блоге раздела
    • default.php - стандартный шаблон раздела (view=section), показывает заголовок категории, описание, кол-во элементов. По нажатию на заголовок категории дальнейшая страница обрабатывается шаблоном category\default.php
Если каталог \templates\ВашШаблон\html\com_content\ отсутствует в шаблоне, значит отрабатывают оригинальные темплейты компонента, находится в components\com_content\views\НужноеПредставление\tmpl (там есть еще и archive, используется редко такой вывод, потому не рассматривал, разобраться по аналогии несложно) И последний на этот раз аспект (вопрос уж очень часто поднимается на форуме). Как нам добавить дополнительные данные к стандартному контенту (к примеру количество хитов в формат блога категории либо любое другое)? Для этого нам необходимо работать с моделью, каталог com_content\models\, в нем 4 нужных нам файла (архив не рассматриваю) - article.php - category.php - frontpage.php - section.php Посмотрев на названия и прочитав пару абзацев выше понятно кто за что отвечает. Потому в данном примере мы заходим в category.php и находим там глобальный SQL запрос (в каждой моделе он находится в функции function _buildQuery) и добавляем в выборку нужный элемент.
1
SELECT ......, a.hits AS articlehits, .....
Все, после этого отправляемся в шаблон category\blog_item.php и в нужном месте дописываем
1
<?php echo $this->item->articlehits; ?>
P.S. прошу прощения, но на вопросы 1-го класса как работать с sql запросами, показать элемент языкового файла, расстановка кавычек и подобные не отвечаю Тема на joomlaforum

Комментарии

0 Lic пишет нам 24.10.2009 00:55
Петя, вот это в точку!!!! Доступно, лаконично и понятно. Огромное тебе спасибо.
Цитировать Сообщить модератору
0 Beliyadm отвечает 24.10.2009 02:25
Рад что понравилось :)
Цитировать Сообщить модератору
0 Макс пишет нам 05.12.2009 15:23
Если каталог \\\\templates\\\\ВашШаблон\\\\html\\\\com_content\ \\\ отсутствует в шаблоне, то как сделать так, что бы он использовался? Использую components\\\\com_content\\\\views\\\\ для задания заголовкам тегов Н1...Н3, так вот при обновлении джумлы, придется опять заменять эти файлы. Было бы не плохо заставить шаблон использовать свой каталог html\\\\com_content\\\\, где это прописать, или просто скопировать?
Цитировать Сообщить модератору
0 Beliyadm отвечает 05.12.2009 17:08
В таком случае создайте каталог на уровне шаблона ht,;/com/content/нужное название модели (article, category - смотрите названия из оригинального шаблона в components) и копируйте туда файлы из view соответствующие вьюшкам данной модели
Цитировать Сообщить модератору
0 Uran пишет нам 23.12.2009 11:10
+1 автору, решил мне проблему :) я какбэ вчерашний вечер этому посвятил.. но вот в шаблон заглянуть не догадался
Цитировать Сообщить модератору

Оставить коммент

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