👩💻 WT Layout select - плагин выбора файла макета (layout) Joomla.
Плагин пользовательского поля Joomla: выпадающий список PHP-лейаутов из указанных папок с учетом переопределений активного шаблона сайта.
Поле Joomla:
- сканирует указанные папки с PHP-лейаутами;
- показывает в выпадающем списке варианты с учетом переопределений шаблона (/templates/<template>/html/...);
- сохраняет выбранное значение в rawvalue поля с layout и basePath (JSON);
- отдает вычисленное значение в value (layout_id), пригодное для Joomla LayoutHelper::render() вида com_content.article.sections.pricelist (для файла JPATH_ROOT/layouts/com_content/article/sections/pricelist.php).
Зачем это нужно?
Поле удобно, когда нужно дать контент-менеджеру выбор варианта верстки без правки шаблона:
- материалы (com_content): секции статьи, карточки, блоки CTA;
- контакты (com_contact): разные шаблоны карточки контакта;
- категории и списки: разные макеты частей страницы под контекст;
- зоны вывода модулей: включение контента/модулей в нужном варианте макета.
- возможность создавать переиспользуемые блоки вёрстки для создания ледингов на Joomla.
- использовать в своих блоках-layouts вывод модульных позиций.
Скачать плагин выбора лейаутов Joomla
/html/...); 👉 Зачем это нужно? Один из вариантов использования в коде переопределений: $field = $this->item->jcfields[14] ?? null; if ($field && !empty($field->rawvalue)) { if (!empty($raw->layout) && !empty($raw->basePath)) { Скачать плагин выбора лейаутов Joomla @joomlafeed
- сохраняет выбранное значение в rawvalue поля с layout и basePath (JSON);
- отдает вычисленное значение в value (layout_id), пригодное для Joomla LayoutHelper::render() вида com_content.article.sections.pricelist (для файла JPATH_ROOT/layouts/com_content/article/sections/pricelist.php).
Поле удобно, когда нужно дать контент-менеджеру выбор варианта верстки без правки шаблона:
- материалы (com_content): секции статьи, карточки, блоки CTA;
- контакты (com_contact): разные шаблоны карточки контакта;
- категории и списки: разные макеты частей страницы под контекст;
- зоны вывода модулей: включение контента/модулей в нужном варианте макета.
- возможность создавать переиспользуемые блоки вёрстки для создания ледингов на Joomla.
- использовать в своих блоках-layouts вывод модульных позиций.
use Joomla\CMS\Layout\LayoutHelper;
$raw = json_decode($field->rawvalue);
echo LayoutHelper::render($raw->layout, ['item' => $this->item], $raw->basePath);
}
}