Перекрытие вывода компонентов и модулей в шаблоне Joomla! Joomla переопределение шаблона материала


Переопределение макета блога категории в Joomla 3

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

Что такое блог категории думаю объяснять не стоит, но на всякий случай чтобы стало понятнее посмотрите на скриншот с небольшим примером того как могут выглядеть материалы выведенные в виде блога:

Пример вывода материалов категории в виде блога

Статью я решил построить следующим образом - для начала мы поговорим о том, для чего может потребоваться переопределять макет блога категории, затем рассмотрим код стандартного файла отвечающего за вывод блога категорий. После чего сократим данный файл, удалив из него весь ненужный для нас код тем самым пусть незначительно, но ускорим скорость загрузки страницы. И в заключении внесем определенные корректировки и изменим стандартный вид при выводе материалов категории.

Зачем переопределять макет блога категории?

Ответ на данный вопрос достаточно простой – чтобы сократить размер страницы либо кардинально поменять внешний облик макета блога категории на страницах сайта.

С внешним видом все понятно, а как влияет переопределение на размер страницы? Все просто, допустим нам необходимо чтобы в блоге, материалы выводились следующим образом – изображение, заголовок, краткий текст, кнопка подробнее и более для нас ничего не интересно. Но стандартный файл, отвечающий за макет блога категории, содержит гораздо больше кода, чем может потребоваться для большинства сайтов, следовательно, его размер можно значительно сократить.

Таким образом, сократив размер файла, мы уменьшим размер страницы, а так же пусть незначительно, но сократим нагрузку на сервер, ведь ему потребуется выполнять меньше действий.

Файлы, отвечающие за макет блога категории

За макет блога категории отвечает сразу несколько файлов расположенных в папке /components/com_content/views/category/tmpl:

Есть в данной папке и другие файлы, но они нас сейчас не интересуют.

Стандартные файлы, отвечающие за макет блога категории и их код

Прежде чем начать переопределение макета блога категории не лишним будет разобраться в коде оригинальных файлов, это поможет избежать ошибок при внесении в них изменений. Но для начала давайте скопируем оригинальные файлы (нам потребуются файлы blog.php и blog_item.php) с вышеупомянутой папки в папку /templates/имя_шаблона/html/com_content/category.

Файл blog.php отвечающий за макет блога категории в Joomla 3.8.1

Как я уже говорил файл blog.php отвечает за макет блога категории целиком – за отображение заголовка пункта меню (если используется), заголовка категории, списка материалов, меток, пагинацию и так далее.

Давайте откроем данный файл (с папки html/com_content/category текущего шаблона) и посмотрим на его код. В самом начале (строки с 1 по 30) идет информация по лицензии и авторских правах, следом за ней строка, отвечающая за безопасность и объявление переменных.

Далее начинается код, отвечающий за вывод контента. Первые 5 строчек отвечают за вывод заголовка страницы, если быть точнее, то в качестве такого заголовка будет выступать заголовок пункта меню (если установлено «показать»). Чтобы было понятнее, я решил внести комментарии в код и показать его в виде скриншотов:

Код файла blog.php отвечающий за отображение (или скрытие) заголовка пункта меню в макете блога категории

Далее идет код, отвечающий за вывод заголовка категории. Если в настройках макета блога стоит запрет на показ заголовка категории тогда данный код пропускается:

Код файла blog.php отвечающий за отображение (или скрытие) заголовка категории в макете блога Joomla 3

Далее отображаются (если установлено) метки категории:

Код отвечающий за вывод меток в блоге категории Joomla 3

Следом за метками идет (опять же если установлено в настройках) описание и изображение категории:

Код отвечающий за вывод описания и изображение категории в Joomla 3

Теперь начинается проверка на наличие в данной категории материалов, если материалов нет, то будет выведено соответствующее сообщение:

Проверка категории на наличие материалов, если материалов нет, то будет выведено сообщение об их отсутствие

Вот теперь уже начинается самая интересная часть – вывод материалов категории. Причем для вывода материалов в блоге используется три различных, указанных в настройках макета блога: во всю ширину, в колонках и в виде ссылок. И для каждого из этих вариантов имеется три различных блока кода.

В начале идет код, отвечающий за вывод материалов во всю ширину, их количество указывается в настройках макета блога:

Код отвечающий за вывод материалов в блоге Joomla 3 во всю ширину страницы

Следующий блок кода отвечает за вывод материалов в колонках, количество таких материалов и количество колонок так же указывается в настройках макета блога Joomla:

Код отвечающий за вывод материалов в виде колонок, количество колонок и материалов указывается в настройках макета блога

Завершается файл blog.php кодом, который отвечает за вывод материалов в виде обычных ссылок, которые идут после главных материалов, а в самом конце файла идет код, отвечающий за пагинацию (навигация по страницам):

Блок кода отвечающий за вывод материалов в виде ссылок и пагинацию

Файл blog_item.php отвечающий за внешний вид материалов в блоге

Следующий файл, который формирует макет страницы блога, называется blog_item.php. С помощью данного файла задается внешний облик материалов – выводится изображение вступительного текста, сам текст, кнопка подробнее, дополнительная информация, такая как дата создания, автор и прочее.

Как и в предыдущем файле в самом начале файла blog_item.php содержится информация об авторских правах, и объявляются необходимые переменные. Далее идет основной код, отвечающий за внешний вид материала. Чтобы разобраться, что к чему смотрите на скриншот:

Содержимое файла blog_item.php который отвечает за внешний вид материалов в блоге категории

На скриншоте показан не полный код, но все что ниже нас не интересует. Для того чтобы изменить внешний облик выводимых материалов мы будем работать исключительно с этими строками кода. Файлы blog_children.php и blog_links.php рассматривать более детально не вижу смысла, их переопределяют крайне редко.

На этом, пожалуй, я закончу статью, она получилась довольно большой. В следующей части статьи я расскажу, как редактировать макет блога категорий и в частности файлы blog.php и blog_item.php для придания уникальности блогу категорий.

joom4all.ru

Переопределение в Joomla: руководство для начинающих - JoomSpider

Внесение изменений в файлы ядра Joomla! часто необходимо, но есть как правильный, так и неправильный способ это сделать.

 

Неправильный способ - это напрямую редактировать файлы Joomla. Если вы поступаете именно так, то вы потеряете все ваши изменения при следующем обновлении вашего сайта.

Правильный путь заключается в использовании переопределение. В этой статье мы покажем вам, что такое переопределение результатов и как вы можете использовать его, чтобы безопасно редактировать компоненты, модули и языки.

Введение в Переопределение 1) Переопределение модуля

Вот модуль формы входа, и именно на его примере мы собираемся произвести изменение. Мы собираемся удалить кнопку Запомнить меня.

                                 1

                                 2

        3

Теперь Вы можете редактировать файл макета. На этом примере, закомментируйте линии с 49 по 54 из default.php.Сохраните файл и ваши изменения будут видны:

                                            4

2) Переопределение компонента

Давайте посмотрим на почти такую же задачу, но на этот раз с компонентом. Мы собираемся удалить кнопку Запомнить меня в логин окне нашего компонента.

            5

         6

           7

Теперь Вы можете редактировать файл макета. В этом примере, закомментируйте линии от 47 до 50 из default_login.php.Сохраните файл и ваши изменения будут видны:

                                          8

3) Переопределение языка

В то время как модули и компоненты должны быть изменены с помощью файла, язык на вашем сайте вы можете изменить с помощью Joomla администратора.В этом примере мы собираемся изменить пункт "Нет учетной записи?"

                                        9

                            10

                    11

           12

                                        13

joomspider.com

Переопределение пагинации в шаблоне

05/10/2010 Документация Joomla 1.5

Пагинация - это разбиение на страницы. Изначально в Joomla пагинация выглядит как показано на рисунке.

article_list_pagination

Можно переопределить, заменить вывод, пагинации в вашем шаблоне. Для этого возьмем файл из стандартного шаблона Joomla {joomla root}\tamplates\rhuk_milkyway\html\pagination.php и скопируем его в ту же директорию своего шаблона.

В этом файле представленны 4 функции:

Таким образом, если не устраивают стандартные элементы используемые в 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>"; } ?>  

www.joomla-code.ru

Переопределение Joomla 2.5 или как правильно редактировать файлы ядра -

class="eliadunit">

 

Вступление

Переопределение Joomla 2.5 основано на следующем базовом правиле: Файлы рабочего шаблона, переопределяют аналогичные файлы системы Joomla.

Часто бывает нужно, вносить изменения файлы ядра Joomla. Но я уверен, что не все знают, как редактировать файлы ядра, чтобы эти изменения не обнулялись после каждого обновления системы.

Можно редактировать файлы напрямую, то есть открываете файл системы в текстовом редакторе, вносите изменения, сохраняете его и заливаете обратно. При таком редактировании, все ваши изменения исчезнут после обновления Joomla. Конечно, такой вариант изменений имеет право на существование, только нужно следить за обновлением своих багов, вместе с обновлением версии сайта.

Но есть другой способ, правильный, редактирования файлов ядра. Называется этот способ замещение или переопределение файлов Joomla 2.5. С его помощью можно изменять модули, компоненты и макеты системы.

Что такое переопределение Joomla 2.5

Переопределение Joomla 2.5 это создание нового файла в шаблоне сайта, аналогичного файлу ядра, который будет загружаться вместо файла системы. Переопределение файлов производится в рабочем шаблоне сайта.

Общий принцип переопределения

Общий принцип переопределения достаточно прост. Если нужно изменить какой, либо файл ядра, вы не «лезете» в его код и там ничего не меняете. Вы создаете дубль этого файла, помещаете его в специально созданную папку в шаблоне и уже его редактируете. Система при вызове этого модуля, «возьмет» файл из шаблона, а не из ядра сайта.

Переопределение модулей

Для примера, поменяем модуль "Поиска на сайте".

Войдите в корневую папку сайта и откройте каталог по адресу: /modules/mod_seach/tmpl/.

joomla-pereopredelenie-1

Если таких папок нет, это значит, что редактируемый вами модуль, не поддерживает форматирование, и его изменить не получится.

class="eliadunit">

joomla-pereopredelenie-2

joomla-pereopredelenie-3

joomla-pereopredelenie-4

Переопределение компонента

Та же задача, но переопределять будем файл компонента.

Теперь этот файл во вновь созданных каталогах можно редактировать.

Вывод

На простом примере я показал, как принципиально делать переопределение фалов Joomla.

Замечание

В Joomla 3 процесс переопределения упрощен. В административной панели сайта появился внутренний файловый редактор шаблонов с инструментом «Создать переопределение». Переопределение любого файла модуля или компонента или макета создается в один клик. На этом все.

©Joomla-abc.ru

Статьи близкие по теме

 

 

class="eliadunit">

joomla-abc.ru

Перекрытие вывода компонентов и модулей в шаблоне Joomla!

Перекрытие вывода компонентов и модулей в шаблоне Joomla!

Что главное при разработке сайта на базе готовой CMS системы? Никогда не редактировать файлы ядра! Если внести изменения в ядро, тогда либо следует отказаться от его дальнейшего обновления при выходе новых версий, либо возможны проблемы с измененным функционалом в системных файлах при каждом таком обновлении. Отказавшись от обновлений CMS, сайт рискует быть взломанным злоумышленниками, поскольку обновления не только добавляют новые функциональные возможности, но и исправляют ошибки в существующем коде. Если же обновлять ядро системы, то есть риск переопределения измененных файлов. Это также может вызвать проблемы при дальнейшей поддержке и доработке сайта.

Стандартной задачей при разработке сайта является переопределение вывода какого-либо блока. Но в это же время нельзя изменять системные файлы. Как же при этом изменить вывод? Рассмотрим такую задачу на примере CMS Joomla! и ее системы управления шаблонами.

В CMS Joomla! шаблоны выполняют ряд важных задач, одной из которых является возможность перекрытия макетов компонентов и модулей. Если вы хотя бы раз создавали сайт под управлением Joomla!, то наверняка вам известно, что шаблоны хранятся в директории templates корневой директории сайта, и что в административной панели есть менеджер шаблонов, позволяющий управлять и настраивать каждый из них. Внутри папки templates находятся непосредственно папки шаблонов. Например, для Joomla! 3+ версии стандартным шаблоном является templates/protostar. И уже внутри папки шаблона расположена директория html, которая и позволяет перекрывать стандартный вывод, как предоставляемых с CMS, так и дополнительно устанавливаемых компонентов и модулей независимых разработчиков.

Где хранятся файлы макетов компонентов и модулей

Файлы макетов отвечают за формирование результирующего html кода страницы или ее части. Они всегда хранятся в папке tmpl представления. Рассмотрим, например, путь к стандартному макету статьи:

components/com_content/views/article/tmpl/default.php

Здесь components – стандартная папка всех компонентов Joomla!, com_content – папка компонента управления материалами, который предоставляется в коробке с CMS системой, views – папка, содержащая все представления компонента, article – папка конкретного представления, отвечающего за показ статей, tmpl – папка с макетами статей. Аналогичная структура и в административной части сайта для этого компонента, за исключением корневой директории administrator. В модулях Joomla! папка tmpl зачастую находится непосредственно в корне папки модуля. Например, modules/mod_articles_news/tmpl.

Как перекрывать макеты в шаблонах Joomla!

Любой макет вы можете переопределить в шаблоне. Для этого нужно расположить файл макета по пути

templates/имя_шаблона/html/имя_компонента/имя_представления/имя_макета.php

для компонентов и

templates/имя_шаблона/html/имя_модуля/имя_макета.php

для модулей соответственно. Например, для приведенного выше примера пути компонента управления статьями этот путь будет:

templates/protostar/html/com_content/article/default.php

Если у вас нет какой либо папки из этого пути, то ее необходимо создать. Сам макет default.php проще всего скопировать из папки компонента в шаблон. Для примера с модулем этот путь может быть:

templates/protostar/html/mod_articles_news/default.php

В папке tmpl компонента или модуля могут располагаться несколько макетов. Любой из них или все сразу вы можете перенести в соответствующую папку в шаблоне для дальнейшего изменения. Перед тем, как вывести содержимое указанного макета CMS Joomla! проверит его наличие в директории html текущего шаблона и, если он там есть, то выведен будет именно этот макет, а не макет из папки компонента или модуля. Отметим также, что для любого из пунктов меню в Joomla! можно указать шаблон для вывода, отличный от используемого по умолчанию. Соответственно и путь к папке с перекрытыми макетами для этого пункта меню будет использовать название выбранного шаблона.

Аналогично можно перекрывать макеты и в административной части сайта. Для этого используется отдельный шаблон из папки administrator/templates.

Переопределение вывода через менеджер шаблонов

В Joomla! 3+ разработчики дополнили менеджер шаблонов новой функцией, которая позволяет выполнять все необходимые действия для перекрытия макета компонента или модуля прямо из административной панели сайта. Для этого вам нужно зайти в Менеджер шаблонов,

Менеджер шаблонов перейти на вкладку Шаблоны вкладка Шаблоны и нажать на название текущего шаблона. Редактирование шаблона

Или на вкладке Стили нажать на название нужного шаблона в колонке Шаблон.

Редактирование шаблона на вкладке стили

Далее нужно перейти на вкладку Создать переопределение в верхней части страницы.

Создание переопределения

Здесь достаточно выбрать один из модулей или компонентов, и CMS сама создаст необходимую папку, скопирует туда все стандартные файлы макета и сообщит к ней путь.

Как видите, здесь есть еще столбец с названием Макеты. Сама система управления макетами (layout) тоже недавно появилась в Joomla! и заслуживает отдельной статьи. Здесь лишь упомянем, что принцип их переопределения в шаблоне аналогичен, а путь имеет следующий вид:

templates/имя_шаблона/html/layouts/joomla/имя_макета/

Внутри этой папки находится ряд папок и файлов, относящихся к выводу этого макета.

Таким образом, вы можете изменить внешний вид страниц сайта, не меняя внутреннюю структуру системы управления контентом.

Это стандартный механизм перекрытия макетов в шаблоне, но здесь тоже могут быть исключения. Например, при использовании шаблонов от компании YOOtheme на базе их собственной Warp Framework. Конечно, эта система тоже опирается на структуру и функциональные особенности шаблонов Joomla!, но также имеет свои собственные внутренние стили оформления в каждом из которых можно переопределить вывод макетов. Подробнее об этом механизме мы расскажем в одной из будущих статей.

boxapp.net

Руководство для начинающих по переопределениям в Joomla

Руководство для начинающих по переопределениям в Joomla

Введение в переопределения

1) Переопределение модулей

В нашем примере мы будем модифицировать модуль входа на сайт (Login Form). Мы уберем чекбокс "Запомнить меня":

Руководство для начинающих по переопределениям в Joomla - Login Form

Руководство для начинающих по переопределениям в Joomla - шаблон mod_login

Руководство для начинающих по переопределениям в Joomla - переопределенный mod_login

Руководство для начинающих по переопределениям в Joomla - код mod_login

Руководство для начинающих по переопределениям в Joomla - измененная Login Form

2) Переопределение компонента

Давайте посмотрим на почти такую же задачу, но только с компонентом. Мы уберем чекбокс "Запомнить меня" из формы входа на сайт:

Руководство для начинающих по переопределениям в Joomla - форма входа

Руководство для начинающих по переопределениям в Joomla - шаблон формы входа

Руководство для начинающих по переопределениям в Joomla - переопределенная форма фхода

Руководство для начинающих по переопределениям в Joomla - код формы входа

Руководство для начинающих по переопределениям в Joomla - измененная форма входа

3) Переопределения строк в языковых файлах

В то время как модули и компоненты должны быть переопределены через файлы, языковые строки вы можете переопределить используя панель управления Joomla. В нашем примере, мы переопределим фразу "Ещё нет учетной записи?":

Руководство для начинающих по переопределениям в Joomla - фраза

Руководство для начинающих по переопределениям в Joomla - список результатов

Руководство для начинающих по переопределениям в Joomla - текстовое поле

Руководство для начинающих по переопределениям в Joomla - список констант

Руководство для начинающих по переопределениям в Joomla - измененная фраза

cmscafe.ru

Как создать переопределение макета для меток Joomla

Joomla позволяет вам настроить практически любой функционал с помощью переопределений. Переопределение макетов (Layout) позволяет нам настраивать мелкие элементы, такие как автор статьи и дата публикации. В этом уроке я покажу вам как создать макет для переопределения тегов Joomla.

Изображение ниже показывает, как метки выглядят по умолчанию в статьях Joomla, используя шаблон Протостар:

Здесь метки являются активными ссылками. В этом примере, я хочу сохранить теги, но удалить ссылки.

Шаг #1. Создаем переопределение макетов

Сопируем некоторые файлы из ядра Joomla в наш шаблон, так мы можем изменить их безопасно.

Перейдите в Расширения -> Менеджер шаблонов -> Менеджер шаблонов: Шаблоны

Кликните на название вашего шаблона.

Кликните на вкладку "Создать переопределение".

Нажмите на "content" в столбце макетов.

Этот шаг создаст набор файлов в папке /templates/ваш-шаблон/html/layouts/joomla/content/.

Шаг #2. Настраиваем макет меток

Возвращаемся во вкладку "Редактор". Переходим на html > layouts > joomla > content > tags.php

Здесь вы можете изменить код, который отображает метки в материалах. В этом примере, я хочу удалить ссылки и оставить только метки, а вы можете изменять код в зависимости от ваших потребностей.

В строках 24 и 26, я нахожу открывающую и закрывающую часть тэга <a> и заменяю их на элемент <span>.

На следующем изображении видно, как код будет выглядеть после моего небольшого изменения:

Нажмите кнопку "Сохранить и закрыть", когда вы закончите.

Шаг #3. Конечный результат

Посетите один из ваших материалов на фронт-энд и посмотрите, как теги по-прежнему есть, но уже не без ссылок.

 

Автор материала Valentín García, оригинал находится здесь.

joomlaportal.ru


Prostoy-Site | Все права защищены © 2018 | Карта сайта