{% extends '@adminx/main.twig' %} {% block title %}Размещения · Публичный сайт{% endblock %} {% block content %} {% set public_site_tab = 'placements' %} {% include '@public_site/_tabs.twig' %} {% if rebuilt %}
Карта обновлена

Все сохранённые шаблоны и ссылки на компоненты прочитаны заново.

{% endif %}
{{ placement_map.stats.total }}Подключений
{{ placement_map.stats.sources }}Источников
{{ placement_map.stats.modules }}Модульных тегов
{{ placement_map.stats.broken }}Битых ссылок
{{ placement_map.stats.unused }}Не используется
Это безопасная карта действующего сайта

Она читает уже сохранённые теги и ничего не переключает в публичной части. Изменения по-прежнему выполняются в штатных редакторах.

{% set filter_suffix = '&q=' ~ filters.q|url_encode ~ '&area=' ~ filters.area|url_encode ~ '&type=' ~ filters.type|url_encode ~ '&state=' ~ filters.state|url_encode %} {% if placement_view == 'placements' %} {% set section_icon = 'ti-route-square' %} {% set section_eyebrow = 'Области страницы' %} {% set section_title = 'Подключённые компоненты' %} {% set section_desc = placement_map.stats.filtered ~ ' связей соответствует текущему фильтру.' %} {% elseif placement_view == 'usage' %} {% set section_icon = 'ti-link' %} {% set section_eyebrow = 'Где используется' %} {% set section_title = 'Компоненты в текущей выборке' %} {% set section_desc = 'Сводка помогает найти повторно используемые и потерянные компоненты.' %} {% elseif placement_view == 'dependencies' %} {% set section_icon = 'ti-hierarchy-2' %} {% set section_eyebrow = 'Состав страниц' %} {% set section_title = 'Зависимости источников' %} {% set section_desc = 'Какие поля, блоки, подборки, меню и модули нужны каждому сохранённому шаблону.' %} {% else %} {% set section_icon = 'ti-file-off' %} {% set section_eyebrow = 'Очистка структуры' %} {% set section_title = 'Неиспользуемые компоненты и шаблоны' %} {% set section_desc = 'Элементы без назначений и ссылок. Перед удалением их всё равно нужно проверить вручную.' %} {% endif %}
{{ section_eyebrow }}

{{ section_title }}

{{ section_desc }}

{% if filters.q or filters.area or filters.type or filters.state %} Сбросить {% endif %}
{% if placement_view == 'placements' %}
{% for item in placement_map.rows %} {% else %} {% endfor %}
Область Где подключено Компонент Состояние
{{ item.area_title }} {{ item.source_part_title }}
{{ item.source_title ?: item.source_type_title ~ ' #' ~ item.source_id }} {{ item.source_type_title }} · ID {{ item.source_id }}
{{ item.component_title }} {{ item.tag }} {% if item.occurrences > 1 %}Повторяется {{ item.occurrences }} раза{% endif %}
{% set state_class = item.component_status == 'broken' ? 'badge-red' : (item.component_status == 'disabled' ? 'badge-gray' : (item.component_status == 'module' ? 'badge-violet' : 'badge-green')) %} {{ item.component_status_title }}
{% if item.source_url %} {% endif %} {% if item.component_url %} {% endif %}
Размещений не найдено Измените фильтры или добавьте компонент штатным тегом в шаблон.
{% include '@public_site/_placement_pagination.twig' %}
{% elseif placement_view == 'usage' %}
{% for item in placement_map.usage %} {% else %} {% endfor %}
Компонент Тип Подключений Источников Состояние
{{ item.component_title }} {{ item.component_key }}
{{ placement_map.options.types[item.component_type]|default(item.component_type) }} {{ item.placements }} {{ item.sources }} {% set state_class = item.component_status == 'broken' ? 'badge-red' : (item.component_status == 'disabled' ? 'badge-gray' : (item.component_status == 'module' ? 'badge-violet' : 'badge-green')) %} {{ item.component_status_title }} {% if item.component_url %}
{% endif %}
Компонентов в текущей выборке нет.
{% include '@public_site/_placement_pagination.twig' %}
{% elseif placement_view == 'dependencies' %}
{% for item in placement_map.dependencies %} {% else %}{% endfor %}
ИсточникЧто требуетсяСсылокПроблемы
{{ item.source_title ?: item.source_type_title ~ ' #' ~ item.source_id }}{{ item.source_type_title }} · ID {{ item.source_id }}
{% for component in item.components %}{{ component.title }}{% endfor %}
{{ item.references }} {% if item.broken %}{{ item.broken }} ошибок{% else %}Проверено{% endif %} {% if item.source_url %}
{% endif %}
Зависимостей в текущей выборке нет.
{% include '@public_site/_placement_pagination.twig' %}
{% else %}
{% for item in placement_map.unused %} {% else %}{% endfor %}
НаименованиеТипAliasИспользование
{{ item.title ?: item.type_title ~ ' #' ~ item.id }}ID {{ item.id }}
{{ item.type_title }} {{ item.alias ?: '—' }} Нет ссылок {% if item.url %}
{% endif %}
Неиспользуемых элементов нетВсе найденные компоненты и шаблоны имеют назначения.
{% include '@public_site/_placement_pagination.twig' %}
{% endif %}
{% endblock %}