Joomla User Manual
Manual Index
Переопределение Шаблонов
Введение
Расширения Joomla определяют свой внешний вид с помощью файлов шаблонов, которые содержат HTML и PHP, создающие HTML-разметку, и CSS-файлов, которые определяют макет, цветовую схему, шрифты и так далее. Это может полностью соответствовать вашим требованиям, особенно так как вы можете изменить внешний вид с помощью собственных CSS-стилей. Иногда вам нужно показать дополнительную информацию или, возможно, меньше информации. Для этого вам нужно создать переопределение шаблона.
Многие расширения Joomla имеют довольно сложные шаблоны вывода, которые трудно читать. Чтобы справиться с некоторыми из них, вам нужно хорошо разбираться в HTML, PHP и CSS. Поэтому эта статья иллюстрирует процесс создания переопределения для формы выхода, которая фактически находится в модуле входа, mod_login. Владелец сайта хотел бы, чтобы форма выхода показывала время, через которое произойдет автоматический выход после периода бездействия.
Пример: Переопределение шаблона для mod_login
Начните с выбора Система → Шаблоны → Шаблоны сайта в меню Администратора, затем выберите элемент Cassiopeia Детали и Файлы. Это откроет форму Шаблоны: Настройка (Cassiopeia):
Важно: не редактируйте любые файлы, предоставленные в составе шаблона Cassiopeia. При следующем обновлении Joomla эти файлы могут быть перезаписаны, и ваши правки будут утеряны.
Папка html – это место, где находятся переопределения. Если вы развернете папку html, вы увидите, что уже имеются переопределения для макетов, mod_custom, mod_menu и tinymce. Разверните каждую из них, чтобы увидеть их содержимое. На данный момент переопределения для mod_login нет.
Создание переопределений
Выберите вкладку "Создание переопределений", чтобы увидеть список модулей, компонентов, плагинов и макетов, для которых вы можете создавать переопределения:
Выберите элемент mod_login
. Шаблонные php-файлы mod_login
будут
скопированы в папку html
, и вы вернетесь на вкладку редактора.
Расширьте папки html
и mod_login
. Вы увидите файлы default.php
и
default_logout.php
.
Вам не нужен файл default.php
, так как это переопределение для
формы входа. Выберите его, а затем нажмите кнопку Удалить файл на
панели инструментов. В диалоговом окне подтверждения подтвердите, что хотите удалить файл.
Обратите внимание, как легко удалять файлы, если вы передумаете. С помощью кнопки "Управление папками" вы также можете удалить целые папки. Будьте осторожны, чтобы не удалить что-то, что вы не создавали самостоятельно.
Редактирование default_logout.php
На вкладке "Редактор" выберите файл default_logout.php. Обратите внимание на кнопки в правом верхнем углу: "Показать оригинальный файл" и "Показать различия". В последнем случае установлено "Да" для следующего скриншота, чтобы показать несколько строк кода, добавленных в верхней части файла. Эти строки кода рассчитывают, когда сессия пользователя завершится после загрузки страницы с формой выхода.
Область различий (Diff) показывает добавленные строки с зеленым фоном и удаленные строки с красным фоном. В данном случае удаленных строк нет. Код показан ниже, если вы захотите скопировать его и попробовать самостоятельно.
use Joomla\CMS\Factory;
date_default_timezone_set('Europe/London');
$config = Factory::getContainer()->get('config');
$lifetime = $config->get('lifetime', 0);
$time = time() + $lifetime * 60;
$endTime = date('H:i:s', $time); // time() возвращает время в секундах
Ниже по файлу переопределения, на строке 36, добавлены еще несколько строк для вывода нужного сообщения:
<p class="text-center">
Ваша сессия завершится в <br><?php echo $endTime; ?>
</p>
Сохраните и перезагрузите страницу сайта, содержащую форму для выхода.

Вы должны увидеть изменения в форме выхода каждый раз, когда страница перезагружается. Но что если вы передумаете? Или у вас есть разные варианты для различных групп пользователей? Добро пожаловать в "Макеты" — тема отдельной статьи.
Другие Переопределения
Вкладка Создать Переопределения в форме Шаблоны: Настройка (Cassiopeia) используется для создания любого из элементов вывода Joomla, для которых можно создать переопределения. Имена папок переопределений в основном начинаются с com_, mod_ или plg_. Обратите внимание, что вторая часть имени папки переопределения плагина обозначает группу плагинов. Вот пример выбора папок переопределений:

Переопределение макета
Небольшие файлы макетов часто используются для отдельных элементов страниц Joomla! Кнопка «Читать далее» в статьях, вступительное изображение и полное изображение — это все примеры элементов, которые генерируются с помощью их собственных файлов макетов. Эти микро-макеты находятся в папке /layouts. Например, в представлении блога категории, файл blog_item.php содержит код для размещения заголовка статьи, вступительного изображения, вводного текста, а также различных других соответствующих частей страницы. Это достигается с помощью вызова LayoutHelper, передающего макет в качестве параметра. Примером этого является вызов для вставки заголовка статьи в макет блога:
<?php echo LayoutHelper::render('joomla.content.blog_style_default_item_title', $this->item); ?>
Местоположение файла для этого конкретного элемента определяется заменой символов точки на символы слеша, добавляя перед началом /layouts/ и .php в конец:
JOOMLAROOT/layouts/joomla/content/blog_style_default_item_title.php
Когда создается файл для переопределения, он находится в:
JOOMLAROOT/templates/cassiopeia/html/layouts/joomla/content/blog_style_default_item_title.php
Дополнительная информация
- Основы шаблона
- Папки и файлы шаблона Cassiopeia
- Настройка шаблона Cassiopeia
- Переопределения шаблона
- Макеты шаблона
- Упрощенный шаблон Cassiopeia - пример исследования - простой шаблон, основанный на Cassiopeia
Переведено с помощью openai.com