---
title: "Совет о Joomla: использование FileLayout для рендера элементов макета. - WebTolk"
description: "FileLayout в Joomla API. Использование FileLayout  для отображения макетов, шаблонов, layouts    при разработке своих расширений для joomla. Возможность переопределения созданного макета."
url: "https://web-tolk.ru/blog/sovet-o-joomla-ispolzovanie-filelayout-dlya-rendera-elementov-maketa"
date: "2024-09-17T09:01:14+00:00"
language: "ru-RU"
---

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

 Автор: Сергей Толкачев Создано: 17 сентября 2024 Обновлено: 01 сентября 2025 Просмотров: 1216    ![использование FileLayout для рендера элементов макета Joomla](https://web-tolk.ru/blog/images/blog/sovet-o-joomla-ispolzovanie-filelayout-dlya-rendera-elementov-maketa/header.webp)

Этот механизм используется под капотом 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();
```

Это означает что в папке `site.ru/path/to/your/layout` находится файл `layout_file_name.php`. В нём находится HTML-вёрстка нашей кнопки. Внутрь файла передаются данные и параметры для рендера. Получить эти данные можно следующим образом.

```
<?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>
```

Примечательно, что использование этого класса позволяет переопределять ваш лейаут стандартным для Joomla способом - в папке `html/layouts` активного шаблона.

- [Пост в Telegram-канале WebTolkRu](https://t.me/webtolkru/316)
- [Пост на Хабре](https://habr.com/ru/posts/843984/)

## Об авторе

![Толкачев Сергей Юрьевич](https://web-tolk.ru/images/uslugi/sergey-tolkachyov-apr-2023.webp)

### Толкачев Сергей Юрьевич

Joomla-разработчик. [Контрибьютер ядра Joomla](https://github.com/joomla/joomla-cms/pulls?q=is%3Apr+author%3Asergeytolkachyov+). Один из ведущих Telegram-канала русскоязычного Joomla-сообщества [JoomlaFeed](https://t.me/joomlafeed), один из модераторов [чата русскоязычного Joomla-сообщества](https://t.me/joomlaru). Мои расширения в официальном маркетплейсе расширений Joomla - [Joomla Extensions Directory](https://extensions.joomla.org/profile/profile/details/528051/). Имею публикации в [официальном журнале международного Joomla-сообщества - Joomla Community Magazine](https://magazine.joomla.org/authors/sergeytolkachyov) и на [официальном сайте русскоязычного Joomla-сообщества](https://joomlaportal.ru/users/sergey-tolkachyov).

Муж. Отец 3 детей.

Россия, Саратов.

## JSON-LD Schema

```json
{
    "@context": "https://schema.org",
    "@type": "BreadcrumbList",
    "@id": "https://web-tolk.ru/#/schema/BreadcrumbList/17",
    "itemListElement": [
        {
            "@type": "ListItem",
            "position": 1,
            "item": {
                "@id": "https://web-tolk.ru/",
                "name": "Главная"
            }
        },
        {
            "@type": "ListItem",
            "position": 2,
            "item": {
                "@id": "https://web-tolk.ru/blog",
                "name": "Блог"
            }
        },
        {
            "@type": "ListItem",
            "position": 3,
            "item": {
                "name": "Совет о Joomla: использование FileLayout для рендера элементов макета."
            }
        }
    ]
}
```

```json
{
    "@context": "https://schema.org",
    "@graph": [
        {
            "@type": "Organization",
            "@id": "https://web-tolk.ru/#/schema/Organization/base",
            "name": "WebTolk",
            "url": "https://web-tolk.ru/",
            "logo": {
                "@type": "ImageObject",
                "@id": "https://web-tolk.ru/#/schema/ImageObject/logo",
                "url": "images/webtolk-1080p.jpg",
                "contentUrl": "images/webtolk-1080p.jpg",
                "width": 1920,
                "height": 1080
            },
            "image": {
                "@id": "https://web-tolk.ru/#/schema/ImageObject/logo"
            },
            "sameAs": [
                "https://github.com/WebTolk",
                "https://github.com/sergeytolkachyov",
                "https://vk.com/web_tolk",
                "https://vk.com/webtolkru",
                "https://tenchat.ru/sergeytolkachyov",
                "https://t.me/sergeytolkachyov",
                "https://t.me/webtolkru"
            ]
        },
        {
            "@type": "WebSite",
            "@id": "https://web-tolk.ru/#/schema/WebSite/base",
            "url": "https://web-tolk.ru/",
            "name": "WebTolk",
            "publisher": {
                "@id": "https://web-tolk.ru/#/schema/Organization/base"
            }
        },
        {
            "@type": "WebPage",
            "@id": "https://web-tolk.ru/#/schema/WebPage/base",
            "url": "https://web-tolk.ru/blog/sovet-o-joomla-ispolzovanie-filelayout-dlya-rendera-elementov-maketa",
            "name": "Совет о Joomla: использование FileLayout для рендера элементов макета. - WebTolk",
            "description": "FileLayout в Joomla API. Использование FileLayout  для отображения макетов, шаблонов, layouts \r\n при разработке своих расширений для joomla. Возможность переопределения созданного макета.",
            "isPartOf": {
                "@id": "https://web-tolk.ru/#/schema/WebSite/base"
            },
            "about": {
                "@id": "https://web-tolk.ru/#/schema/Organization/base"
            },
            "inLanguage": "ru-RU",
            "breadcrumb": {
                "@id": "https://web-tolk.ru/#/schema/BreadcrumbList/17"
            }
        },
        {
            "@type": "Article",
            "@id": "https://web-tolk.ru/#/schema/com_content/article/105",
            "isPartOf": {
                "@id": "https://web-tolk.ru/#/schema/WebPage/base"
            }
        }
    ]
}
```
