Переопределение

Благодарим за вклад: 

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

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

Предположим, что Вы хотите изменить верстку или содержание страницы вывода результатов поиска. У компонента поиска есть макет по умолчанию для этой страницы: default.php. Он храниться в папке /components/com_search/views/search/tmpl/. Благодаря коду и тексту в этом файле страница результатов поиска выглядит именно так, как она выглядит. Предлагаю добавить в него что-нибудь от себя и сохранить. Результат будет виден немедленно. Я добавил в тринадцатую строку следующее:

<strong>Вот мои изменения :)</strong>

Результат — на рис. 1.

Рис. 1. Изменения на странице результатов поиска.

Этот эксперимент — отличное средство мотивации, потому что результаты видны сразу и не исчезают, если выбрать другой шаблон. Однако, с практической точки зрения подобный способ не оправдан, потому что после следующего обновления CMS внесенных Вами изменений Вы уже не увидите.

Правильная альтернатива подобному решению — создание переопределения в шаблоне. Скопируйте измененный файл в папку /templates/название_шаблона/html/com_search/search/, а затем отмените изменения в оригинале. Результат — тот же [если используется шаблон, в папку которого Вы скопировали файл переопределения], но достигается он принудительным использованием Вашего файла вместо файла по умолчанию. Так можно вносить изменения в содержание и оформление страниц, не меняя кода компонентов — отличный способ!

Возможность переопределений появилась в полуторной версии Joomla!, в 2007 году.

Альтернативные макеты

В версии 1.7 появился еще один, более продвинутый способ переопределения — альтернативные макеты. Уверен, что Вы обратили внимание на поле для их выбора на страницах редактирования статей, а также на страницах настроек модулей и категорий (рис. 2).

Рис. 2. Выбор альтернативных макетов на странице редактирования статьи.

Зачем нужны альтернативные макеты? Представьте себе, что Вы администрируете сайт, шаблон которого предполагает три варианта вывода материалов: статья, страница товара и страница книги. Все, что требуется, — это выбрать тот, который нужен Вам. Отличная функция, не правда ли? Безусловно. И практика это подтверждает.

Для создания альтернативного макета, как и для переопределения в шаблонах необходимо создать для компонента или модуля папку, название которой совпадает с папкой файла-оригинала [например, com_content]. В ней — папку для варианта представления [например, article]. Очевидно, что файл альтернативного макета должен называться иначе, чем файл, на основе которого он построен. В противном случае он будет восприниматься системой как файл переопределения. Также, само собой разумеется, что он не будет применяться автоматически [т. е. его необходимо выбирать].

Для альтернативных макетов можно создавать собственные типы пунктов меню. Набор параметров, значения которых будут задаваться на страницах редактирования «альтернативных» пунктов, формируется при помощи файлов в формате XML с такими же названиями как и у файлов альтернативных макетов (рис. 3).

Рис. 3. Типы пунктов меню для альтернативных макетов.

Создание «альтернативных» типов пунктов меню — занятие требующее значительного опыта. Эта функция востребована не столько начинающими, сколько разработчиками шаблонов.

Рис. 4. Альтернативные макеты на странице редактирования статьи.


1 Применение альтернативных параметров вместо параметров по умолчанию. Продолжить чтение.