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

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

Если экспериментов со стилями, 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 Применение альтернативных параметров вместо параметров по умолчанию. Продолжить чтение.