Переопределение шаблонов вывода компонентов и модулей
Для того что бы изменить вывод определенных компонентов в Joomla нужно разобраться в структуре компонента. В качестве примера можно рассмотреть стандартный компонент отображения материалов com_content.
/components /com_content /views /article /tmpl default.php (разметка или шаблон компонента) form.php (разметка) view.html.php (вид, который выводит HTML) view.pdf.php (вид, который выводит PDF) /category /tmpl blog.php (разметка) blog_items.php (дочерняя разметка) default.php (разметка) view.html.php (HTML вид) view.feed.php (RSS вид)
Из структуры видно, что каждый вид имеет свою директорию (articles, category, ...). В каждом виде есть директория tmpl, в которой хранятся разметки вывода содержимого (или просто шаблоны). В виде материала (/article) это /tmpl/default.php - разметка используемая для вывода материала по умолчанию и /tmpl/form.php - разметка используемая для добавления материала с сайта. В виде категории (/category) так же присутствует две разметки /tmpl/blog.php - для вывода материалов из категории в виде блога и /tmpl/default.php - для вывода материалов в виде списка. При создании пункта меню, выбирая тип "материалы" получается следующая картина.
Так же можно заметить что существуют дополнительные файлы разметки, которые отсутствуют в списке, при создании пункта меню (например article/tmpl/pagebreak.php). Это связано с инструкциями, которые описаны в pagebreak.xml, в которых скрывается данная разметка из списка для пункта меню. Но это отдельная тема и ее затрагивать пока не стоит. Так же есть дочерние шаблоны (например category/tmpl/blog_item.php и другие) о них немного позже.
Создание своей разметки в шаблоне Joomla для компонентов
Переопределение разметки вывода происходит в самом шаблоне в директории /html. Например, для стандартного шаблона rhuk_milkyway это будет {root}/templates/rhuk_milkyway/html/. Здесь важно понимать, что если вы переопределили вывод разметки в одном шаблоне, то он не будет переопределяться для других шаблонов.
Структура переопределения разметки вывода будет выглядеть следующим образом (для примера используется стандартный шаблон rhuk_milkyway):
/templates /rhuk_milkyway /html /com_content (эта директория совпадает с названием компонента) /articles (эта директория совпадает с названием вида (представления) компонента) default.php (этот файл совпадает с названием файла, разметку которого нужно переопределить) form.php ...
Можно разобрать конкретный пример на стандартном шаблоне rhuk_milkyway. Изначально в шаблоне нет никакого переопределения и нужно поменять разметку в стандартном виде материала. Для этого нужно просто скопировать файл из стандартного компонента {root}/components/com_content/views/article/tmpl/default.php в созданную директорию /templates/rhuk_milkyway/html/com_content/article/default.php и дальше менять уже разметку в вашем шаблоне, не затрагивая основные файлы компонента.
Так можно переопределять вывод любого компонента, если он это поддерживает.
Переопределение дочерних разметок
В некоторых видах могут быть дочерние разметки, допустим если взять стандартный вид категории, можно увидет 3 файла, которые начинаются одинаково (blog.php, blog_item.php и blog_links.php). На самом деле это одна разметка, просто она разбита на 3 части, оснавная - blog.php и две дочерние которые она использует. Если открыть blog.php, то можно увидеть использование метода LoadTemplate, где потключаются дополнительные разметки.
Переопределение их происходить точно так же как и обыной разметки. Допустим если нужно переопределить разметку материала в блоге, копируем {root}/components/com_content/views/category/tmpl/blog_item.php в нужный шаблон /templates/rhuk_milkyway/html/com_content/category/blog_item.php.
12
Комментарии
12.07.2013 11:24
12.12.2014 11:25
13.12.2014 08:47
09.08.2016 16:15
RSS лента комментариев этой записи