Joomla User Manual

Manual Index

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

Введение

Расширения Joomla определяют свой внешний вид с помощью файлов шаблонов, которые содержат HTML и PHP, создающие HTML-разметку, и CSS-файлов, которые определяют макет, цветовую схему, шрифты и так далее. Это может полностью соответствовать вашим требованиям, особенно так как вы можете изменить внешний вид с помощью собственных CSS-стилей. Иногда вам нужно показать дополнительную информацию или, возможно, меньше информации. Для этого вам нужно создать переопределение шаблона.

Многие расширения Joomla имеют довольно сложные шаблоны вывода, которые трудно читать. Чтобы справиться с некоторыми из них, вам нужно хорошо разбираться в HTML, PHP и CSS. Поэтому эта статья иллюстрирует процесс создания переопределения для формы выхода, которая фактически находится в модуле входа, mod_login. Владелец сайта хотел бы, чтобы форма выхода показывала время, через которое произойдет автоматический выход после периода бездействия.

Пример: Переопределение шаблона для mod_login

Начните с выбора Система → Шаблоны → Шаблоны сайта в меню Администратора, затем выберите элемент Cassiopeia Детали и Файлы. Это откроет форму Шаблоны: Настройка (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. Обратите внимание на кнопки в правом верхнем углу: "Показать оригинальный файл" и "Показать различия". В последнем случае установлено "Да" для следующего скриншота, чтобы показать несколько строк кода, добавленных в верхней части файла. Эти строки кода рассчитывают, когда сессия пользователя завершится после загрузки страницы с формой выхода.

изображение настроек шаблонов cassiopeia вкладка переопределений

Область различий (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 вкладка переопределений

Вы должны увидеть изменения в форме выхода каждый раз, когда страница перезагружается. Но что если вы передумаете? Или у вас есть разные варианты для различных групп пользователей? Добро пожаловать в "Макеты" — тема отдельной статьи.

Другие Переопределения

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

вкладка переопределений настроек шаблонов Cassiopeia

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

Небольшие файлы макетов часто используются для отдельных элементов страниц 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