Совет о Joomla: использование FileLayout для рендера элементов макета.

Совет о Joomla: использование FileLayout для рендера элементов макета.

Этот механизм используется под капотом Joomla для рендера отображения почти всех элементов интерфейса как фронта, так и админки. Обычно переиспользуемые "запчасти" выносятся в отдельные файлы: кнопки, тулбары, меню, табы и т.д. Для унификации отображения каждого элемента нужны некие данные данные и/или параметры: например, заголовок таба, надпись или onclick для кнопки, CSS класс и т.д.

<?php use Joomla\CMS\Layout\FileLayout; /** * Method to instantiate the file-based layout. * * @param string $layoutId Dot separated путь к файлу, включая имя файла относительно base path * @param string $basePath Основной путь к папке с макетами * @param mixed $options Данные, нужные для работы макета. Registry или массив * * @since 3.0 */ $layout = new FileLayout('layout_file_name', JPATH_SITE . '/path/to/your/layout', ['buttonName' => 'Button name']); // Рендерим наш макет echo $layout->render();

Внутрь файла (/path/to/your/layout/layout_file_name.php в нашем случае) передаются данные и параметры для рендера. Получить эти данные можно следующим образом.

<?php // Это содержимое файла /path/to/your/layout/layout_file_name.php // Переданные данные приходят в формате Registry. Можно указать значение по умолчанию $buttonName = $this->options->get('buttonName', 'Default name if value is empty'); ?> <button class="btn btn-primary"><?php echo $buttonName;?></button>
11
Начать дискуссию