НОВИНКА!
Занимательная математика от Трепачёва. Присоединяйтесь к нам!
74 of 182 menu

Таблица menu_link_content_field_revision

Таблица menu_link_content_field_revision является таблицей ревизий для пользовательских пунктов меню в Drupal. Она содержит все версии данных полей для каждой сущности пункта меню, что позволяет отслеживать историю изменений и при необходимости возвращаться к предыдущим версиям.

Поля

Поле Тип данных Описание
id int Первичный ключ, идентификатор ревизии. Ссылается на menu_link_content.id.
revision_id int Уникальный идентификатор ревизии. Ссылается на menu_link_content_revision.revision_id.
langcode varchar(12) Код языка, для которого предназначена данная ревизия.
enabled tinyint Флаг, указывающий, включен ли пункт меню (1) или отключен (0).
title varchar(255) Заголовок пункта меню, который отображается пользователям.
description varchar(255) Описание пункта меню, которое может отображаться в виде всплывающей подсказки.
menu_name varchar(255) Машиночитаемое имя меню, в котором находится данный пункт (например, main, footer).
link__uri varchar(2048) URI ссылки пункта меню. Может быть внутренним (например, internal:/node/1) или внешним (https://example.com).
link__title varchar(255) Заголовок ссылки. Обычно совпадает с полем title.
link__options blob Сериализованный массив дополнительных опций для ссылки (атрибуты, параметры запроса и т.д.).
external tinyint Флаг, указывающий, является ли ссылка внешней (1) или внутренней (0).
rediscover tinyint Флаг, указывающий, должна ли система пытаться "переоткрыть" ссылку, если целевой путь изменился.
weight int Вес пункта меню, определяющий его положение относительно других пунктов в том же меню и уровне вложенности.
expanded tinyint Флаг, указывающий, должны ли дочерние элементы этого пункта меню быть развернуты по умолчанию.
parent varchar(255) Идентификатор родительского пункта меню в формате menu_link_content:uuid.

Как это работает

Когда создается новый пользовательский пункт меню через административный интерфейс Drupal, в таблице menu_link_content создается основная запись, а в menu_link_content_field_revision создается первая ревизия с данными полей.

При каждом изменении полей пункта меню (например, заголовка, ссылки, веса) создается новая ревизия. Все предыдущие версии сохраняются в этой таблице, что позволяет системе отслеживать историю изменений и предоставлять функционал отката к предыдущим версиям.

Для каждого языка сайта создаются отдельные ревизии, что позволяет управлять многоязычным контентом пунктов меню. Поле langcode определяет, для какого языка предназначена конкретная ревизия.

Таблица тесно связана с menu_link_content_revision, которая хранит метаданные ревизий, в то время как menu_link_content_field_revision хранит непосредственно данные полей.

Пример SQL-запроса

Получить историю изменений заголовка для конкретного пункта меню можно следующим запросом:

SELECT mf.revision_id, mf.title, mf.langcode, mr.revision_created, mu.name FROM menu_link_content_field_revision mf JOIN menu_link_content_revision mr ON mf.revision_id = mr.revision_id LEFT JOIN users_field_data mu ON mr.revision_user = mu.uid WHERE mf.id = 123 ORDER BY mr.revision_created DESC;

Смотрите также

  • таблицу menu_link_content,
    которая хранит основные данные пунктов меню
  • таблицу menu_link_content_revision,
    которая хранит метаданные ревизий пунктов меню
  • таблицу menu_tree,
    которая хранит иерархическую структуру меню
  • таблицу menu_tree_hash,
    которая хранит хэши для оптимизации работы с меню
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить