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

Таблица menu_link_content_revision

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

Поля

Поле Тип данных Описание
id int Первичный ключ, уникальный идентификатор ревизии. Ссылается на id из таблицы menu_link_content_data.
revision_id int Уникальный идентификатор конкретной ревизии. Первичный ключ этой таблицы.
langcode varchar(12) Код языка для многоязычной поддержки (например, 'en', 'ru').
enabled tinyint Флаг активности пункта меню: 1 - включен, 0 - отключен.
title varchar(255) Заголовок пункта меню, который отображается пользователям.
description varchar(255) Описание пункта меню, которое может отображаться в виде всплывающей подсказки.
menu_name varchar(255) Машинное имя меню, к которому принадлежит пункт (например, 'main', 'footer').
link__uri varchar(2048) URI ссылки пункта меню в формате 'internal:/path' или 'entity:node/1'.
link__title varchar(255) Текст ссылки, который может отличаться от основного заголовка.
link__options longblob Дополнительные опции ссылки в сериализованном формате (атрибуты, классы и т.д.).
external tinyint Флаг внешней ссылки: 1 - внешняя, 0 - внутренняя.
rediscover tinyint Флаг, указывающий что система должна переопределить этот пункт меню.
weight int Вес пункта меню, определяющий его порядок относительно других пунктов.
expanded tinyint Флаг развернутого меню: 1 - показывать дочерние элементы, 0 - скрывать.
parent varchar(255) Идентификатор родительского пункта меню в формате 'menu_link_content:uuid'.
changed int Временная метка Unix последнего изменения этой ревизии.
default_langcode tinyint Флаг языка по умолчанию: 1 - язык по умолчанию, 0 - перевод.
revision_default tinyint Флаг, указывающий является ли эта ревизия текущей опубликованной версией.
revision_translation_affected tinyint Флаг, указывающий затронута ли данная языковая версия ревизией.

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

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

Таблица тесно связана с основной таблицей menu_link_content_data, которая содержит текущие опубликованные версии пунктов меню. Поле id связывает ревизии с конкретным пунктом меню, а поле revision_id uniquely идентифицирует каждую версию.

Drupal использует эту систему ревизий для предоставления функциональности отмены изменений и просмотра истории. Администраторы могут просматривать предыдущие версии пунктов меню и восстанавливать их при необходимости.

Поле revision_default указывает какая из ревизий является текущей опубликованной версией. При создании новой ревизии предыдущая помечается как неактивная (revision_default = 0), а новая становится активной (revision_default = 1).

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

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

SELECT m.id, m.revision_id, m.title, m.link__uri, m.changed, FROM_UNIXTIME(m.changed) as changed_date, m.revision_default FROM menu_link_content_revision m WHERE m.id = 123 ORDER BY m.revision_id DESC;

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

  • таблицу menu_link_content_data,
    которая содержит текущие версии пунктов меню
  • таблицу menu_tree,
    которая хранит иерархическую структуру меню
  • таблицу node_revision,
    которая хранит ревизии материалов (нод)
  • таблицу node_field_revision,
    которая хранит ревизии полей материалов
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить