Таблицы базы данных Joomla

Стандартные таблицы базы данных Joomla 6.x и их назначение

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

Знание структуры базы данных CMS Joomla полезно при разработке, аудите и сопровождении сайтов. В частности, эталонный список стандартных таблиц позволяет быстро определить, какие таблицы относятся к ядру системы, а какие были созданы сторонними расширениями. Это может понадобиться после удаления компонентов, при поиске устаревших данных, очистке базы данных или анализе проекта, разработанного другими специалистами.

Ниже приведён полный список таблиц, создаваемых после чистой установки Joomla 6.1 без дополнительных расширений. Для каждой таблицы приведено краткое описание её назначения и типов данных, которые в ней хранятся. Это поможет не только выявлять нестандартные таблицы, но и быстрее ориентироваться в структуре базы данных во время разработки, интеграции или настройки сайта.

Полный список стандартных таблиц Joomla 6.x

Таблица Назначение Компонент Joomla
#__action_log_config Настройка журнала действий com_actionlogs
#__action_logs Журнал действий пользователей com_actionlogs
#__action_logs_extensions Связь журнала действий с расширениями com_actionlogs
#__action_logs_users Связь журнала действий с пользователями com_actionlogs
#__assets Структура прав доступа ACL com_content / system
#__associations Языковые ассоциации контента com_associations
#__banner_clients Клиенты баннеров com_banners
#__banner_tracks Статистика просмотров баннеров com_banners
#__banners Баннеры com_banners
#__categories Категории контента com_categories
#__contact_details Контакты com_contact
#__content Материалы статей com_content
#__content_frontpage Материалы главной страницы com_content
#__content_rating Рейтинги статей com_content
#__content_types Типы контента system / com_content
#__contentitem_tag_map Связь контента с тегами com_tags
#__extensions Список установленных расширений system
#__fields Пользовательские поля com_fields
#__fields_categories Связь полей и категорий com_fields
#__fields_groups Группы пользовательских полей com_fields
#__fields_values Значения пользовательских полей com_fields
#__finder_filters Фильтры Smart Search com_finder
#__finder_links Индексируемый контент поиска com_finder
#__finder_links_terms Связь контента с терминами com_finder
#__finder_logging Логи поисковых запросов com_finder
#__finder_taxonomy Таксономия поиска com_finder
#__finder_taxonomy_map Карта таксономии com_finder
#__finder_terms Поисковые термины/запросы com_finder
#__finder_terms_common Частые слова com_finder
#__finder_tokens Токены индексации com_finder
#__finder_tokens_aggregate Агрегированные токены com_finder
#__finder_types Типы контента для поиска com_finder
#__guidedtours Гайд-туры администратора com_guidedtours
#__guidedtour_steps Шаги гайд-туров com_guidedtours
#__history История изменений контента com_contenthistory
#__languages Языки сайтау com_languages
#__mail_templates Шаблоны писем com_mailto / system
#__menu Пункты меню com_menus
#__menu_types Типы меню com_menus
#__messages Внутренние сообщения com_messages
#__messages_cfg Настройка уведомлений com_messages
#__modules Модули com_modules
#__modules_menu Привязка модулей к меню com_modules
#__newsfeeds RSS ленты com_newsfeeds
#__overrider Переопределение строк языка com_languages
#__postinstall_messages Системные сообщения после установки system
#__privacy_consents Согласия пользователей com_privacy
#__privacy_requests Запросы GDPR com_privacy
#__redirect_links Редиректы URL com_redirect
#__scheduler_logs Логи планировщика com_scheduler
#__scheduler_tasks Задачи планировщика com_scheduler
#__schemaorg Schema.org данные system
#__schemas Схемы структурированных данных system
#__session Сессии пользователей system
#__tags Теги com_tags
#__template_overrides Переопределение шаблонов com_templates
#__template_styles Стили шаблонов com_templates
#__tuf_metadata Метаданные обновлений system
#__ucm_base UCM базовые данные system
#__ucm_content UCM контент system
#__update_sites Серверы обновлений system
#__update_sites_extensions Связь обновлений и расширений system
#__updates Обновления Joomla system
#__user_keys Токены пользователей com_users
#__user_mfa Многофакторная аутентификация com_users
#__user_notes Заметки о пользователях com_users
#__user_profiles Профили пользователей com_users
#__user_usergroup_map Связь пользователей и групп com_users
#__usergroups Группы пользователей com_users
#__users Пользователи com_users
#__viewlevels Уровни доступа com_users
#__webauthn_credentials WebAuthn ключи com_users
#__workflow_associations Связи workflow com_workflow
#__workflow_stages Этапы workflow com_workflow
#__workflow_transitions Переходы workflow com_workflow
#__workflows Рабочие процессы com_workflow

Этот список поможет определить стандартные таблицы Joomla 6.x, найти остатки удалённых расширений, провести аудит базы данных или подготовить сайт к миграции.

Важно!

Перед удалением каких-либо таблиц из базы данных всегда создавайте полную резервную копию сайта.

Таблицы пользователей и прав доступа

В Joomla 6.x подсистема пользователей и управления доступом построена на основе разделённой структуры таблиц. Она разделяет учетные данные, группы пользователей, уровни доступа и дополнительные механизмы аутентификации. Такой подход позволяет реализовать сложную модель ACL без изменения ядра и обеспечивает масштабируемость для проектов любой сложности.

Список основных таблиц пользователей и прав доступа:

  • #__users — основная таблица учётных записей пользователей (логин, адрес электронной почты, пароль, статус учетной записи, базовые параметры).
  • #__usergroups — группы пользователей и их иерархия (ролевая модель доступа).
  • #__user_usergroup_map — связь пользователей с группами (many-to-many структура).
  • #__viewlevels — уровни просмотра контента и привязка к группам доступа.
  • #__user_profiles — дополнительные структурированные поля профиля пользователя.
  • #__user_notes — служебные заметки администратора о пользователе.
  • #__user_keys — токены доступа для сеансов и внешних механизмов авторизации.
  • #__user_mfa — настройка многофакторной аутентификации (MFA).
  • #__webauthn_credentials — учётные данные WebAuthn (аппаратные ключи, биометрия).

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

При разработке, миграции или аудите базы данных необходимо учитывать эти зависимости, поскольку нарушение связей между таблицами может привести к некорректной работе ACL или потере доступа к административной части сайта.

Таблицы материалов и категорий

В Joomla 6.x структура хранения контента построена на основе двух ключевых уровней — самих материалов и их иерархической классификации. Такой подход позволяет отделить контент от логики его группировки, что важно для масштабируемых сайтов с большим количеством страниц и различными сценариями отображения.

Список основных таблиц материалов и категорий:

  • #__content — основная таблица материалов, в которой хранятся тексты статей, метаданные публикаций, статусы, авторы и параметры отображения.
  • #__categories — универсальная таблица категорий, которая используется не только для статей, но и для других компонентов Joomla.
  • #__content_frontpage — связь материалов с отображением на главной странице (legacy-механизм или совместимость).
  • #__content_rating — хранение оценок и рейтинговых данных материалов.
  • #__history — версионность материалов, включая возможность восстановления предыдущих редакций.
  • #__ucm_content — универсальная модель контента, которая синхронизирует материалы между различными компонентами.
  • #__ucm_base — базовые связи UCM, обеспечивающие обобщённую работу с контентными сущностями.

Эта структура показывает, что Joomla не ограничивается просто хранением текстов в таблице материалов, а использует дополнительные механизмы для отслеживания истории изменений, обеспечения универсальной совместимости и расширяемой классификации.

В итоге работа с материалами и категориями в Joomla требует понимания не только #__content, но и сопутствующих таблиц, которые влияют на отображение, версионирование и интеграцию контента в различные части системы. Это особенно важно при миграции, оптимизации или разработке пользовательских компонентов, взаимодействующих со стандартной моделью контента.

Таблицы меню и модулей

Таблицы меню и модулей являются одними из ключевых элементов архитектуры Joomla, поскольку именно они определяют структуру навигации по сайту и логику отображения значительной части контента. В отличие от многих других CMS, в Joomla пункты меню не только формируют навигацию, но и часто определяют маршрутизацию URL, набор параметров страницы, шаблон отображения и активный контекст компонента.

  • #__menu — основная таблица пунктов меню. Содержит тип пункта меню, URL, параметры компонента, иерархию вложенности, SEO-псевдонимы (alias), статус публикации и служебные параметры маршрутизации.
  • #__menu_types — хранит информацию обо всех созданных меню на сайте. Каждая запись соответствует отдельному меню, например «Главное меню» или «Меню пользователя».
  • #__modules — содержит настройки всех модулей сайта, включая их тип, расположение в шаблоне, параметры, порядок сортировки, статус публикации и правила доступа.
  • #__modules_menu — обеспечивает связь между модулями и пунктами меню. Именно эта таблица определяет, на каких страницах должен отображаться конкретный модуль.

Для разработчиков особенно важно понимать, что некорректные изменения в таблицах #__menu или #__modules_menu могут привести к нарушению маршрутизации, появлению ошибок 404 или некорректному отображению модулей на страницах сайта. При миграции, импорте данных или разработке собственных расширений рекомендуется работать с меню и модулями через API Joomla, поскольку система использует дополнительные внутренние механизмы кэширования и построения маршрутов, которые не всегда очевидны при прямом редактировании базы данных.

Таблицы тегов и связей контента

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

  • #__tags — основная таблица тегов. Содержит название тега, псевдоним (alias), описание, уровень вложенности, метаданные и служебные параметры.
  • #__contentitem_tag_map — промежуточная таблица, которая реализует связь «многие ко многим» между тегами и различными типами контента. Именно она определяет, какие теги присвоены конкретному объекту.
  • #__associations — таблица языковых ассоциаций, используемая для сопоставления эквивалентных объектов на разных языках на многоязычных сайтах.

Разработчикам важно учитывать, что Joomla использует универсальный механизм привязки тегов, поэтому таблица #__contentitem_tag_map может содержать ссылки на записи из различных компонентов, а не только из статей. При импорте данных, создании собственных компонентов или реализации многоязычности необходимо корректно работать с этими связями, иначе система может потерять навигационные зависимости, фильтрацию по тегам или языковые ассоциации между объектами.

Таблицы собственных полей

Таблицы пользовательских полей позволяют расширять стандартную модель данных Joomla без внесения изменений в структуру базы данных ядра. Благодаря механизму Custom Fields разработчик может добавлять дополнительные атрибуты к материалам, контактам, пользователям и другим объектам, сохраняя совместимость с будущими обновлениями CMS. Это особенно полезно при создании каталогов, справочников, корпоративных порталов и других проектов с нестандартной структурой данных.

  • #__fields — содержит описание всех созданных полей, включая их тип, название, контекст использования, параметры отображения и правила валидации.
  • #__fields_groups — сохраняет группы полей, используемые для логического объединения и упорядочивания полей в административном интерфейсе.
  • #__fields_values — содержит фактические значения полей, привязанные к конкретным объектам. Именно эта таблица, как правило, содержит наибольшее количество записей.
  • #__fields_categories — определяет связь между полями и категориями, позволяя ограничивать отображение полей только для определенных категорий контента.

При разработке следует учитывать, что значения пользовательских полей не хранятся непосредственно в таблицах компонентов, например в #__content. Поэтому при написании SQL-запросов, создании импорта/экспорта или реализации собственных API необходимо дополнительно обрабатывать таблицу #__fields_values. Для высокозагруженных проектов также стоит обращать внимание на производительность запросов, поскольку большое количество пользовательских полей может существенно увеличить количество JOIN-операций при извлечении данных.

Технология Smart Search в Joomla использует отдельный набор таблиц для построения полнотекстового индекса и быстрого поиска по сайту. В отличие от стандартного поиска, Smart Search не выполняет запросы непосредственно к таблицам контента при каждом обращении пользователя. Вместо этого система предварительно индексирует данные, формирует поисковые токены и сохраняет их в специализированных таблицах. Именно благодаря этому обеспечивается высокая скорость поиска, поддержка фильтрации и ранжирования результатов.

  • #__finder_links — основная таблица проиндексированного контента, содержащая информацию обо всех проиндексированных объектах независимо от их типа.
  • #__finder_terms — сохраняет отдельные поисковые термины, выделенные в ходе индексации контента.
  • #__finder_tokens — содержит токены, используемые механизмом поиска для построения индекса.
  • #__finder_tokens_aggregate — хранит агрегированные токены, необходимые для оптимизации поисковых операций.
  • #__finder_links_terms — обеспечивает связь между индексированными объектами и поисковыми запросами.
  • #__finder_taxonomy — содержит таксономическую структуру, используемую для классификации индексированных данных.
  • #__finder_taxonomy_map — обеспечивает связь между элементами индекса и таксономией.
  • #__finder_types — определяет типы контента, участвующие в индексации.
  • #__finder_filters — хранит информацию о фильтрах, применяемых при поиске.
  • #__finder_logging — используется для регистрации поисковых запросов пользователей.
  • #__finder_terms_common — содержит список часто употребляемых слов, которые могут исключаться из процесса индексации.

Разработчикам следует учитывать, что таблицы Smart Search могут очень быстро увеличиваться в размере на сайтах с большим объемом контента. После массового импорта материалов, изменения структуры данных или разработки собственных компонентов обычно необходимо выполнить повторную индексацию через компонент Smart Search. Кроме того, при создании собственных расширений для поддержки полнотекстового поиска необходимо реализовывать соответствующие индексационные плагины, иначе контент расширения не будет доступен в результатах поиска.

Таблицы журналов и системных событий

Журналы действий и системные события играют важную роль в мониторинге работы Joomla, аудите безопасности и анализе изменений, внесённых пользователями. В отличие от стандартных лог-файлов веб-сервера, эти журналы хранят информацию о событиях непосредственно на уровне CMS. Благодаря этому администратор или разработчик может определить, кто, когда и какие изменения внес в систему, а также отслеживать активность расширений, поддерживающих механизм ведения журналов.

  • #__action_logs — основная таблица журнала действий, в которой хранятся записи о событиях, выполненных пользователями или системой.
  • #__action_log_config — содержит настройки ведения журнала для отдельных типов событий и компонентов.
  • #__action_logs_users — используется для привязки записей журнала к конкретным пользователям системы.
  • #__action_logs_extensions — хранит информацию о расширениях, которые участвуют в механизме ведения журнала или генерируют записи в журнале.

Для разработчиков эти таблицы могут оказаться особенно полезными при расследовании инцидентов безопасности, поиске причин неожиданных изменений контента или отладке собственных расширений. В то же время следует учитывать, что на активных сайтах таблица #__action_logs может быстро увеличиваться в размере, поэтому в рамках технического обслуживания целесообразно контролировать период хранения записей и регулярно выполнять очистку устаревших данных в соответствии с политикой аудита проекта.

Таблицы контактов

Компонент «Контакты» в Joomla (com_contact) использует отдельную таблицу #__contact_details, предназначенную для хранения структурированной контактной информации. В отличие от обычных материалов, контакты представляют собой отдельный тип сущностей со своим набором полей, параметров отображения и механизмов интеграции.

В таблице #__contact_details хранятся имя контактного лица, должность, адрес, телефоны, электронная почта, веб-сайт, географические координаты, служебные примечания, параметры публикации и SEO-данные. Кроме того, контакт может быть связан с конкретным пользователем Joomla через поле user_id, что позволяет автоматически синхронизировать часть информации или использовать контакт в качестве профиля сотрудника.

Разработчикам важно учитывать, что компонент «Контакты» поддерживает собственные параметры отображения, которые хранятся в формате JSON непосредственно в записи таблицы. Именно поэтому при импорте или миграции контактов недостаточно просто перенести базовые поля — необходимо также корректно обрабатывать параметры (params) и метаданные (metadata), иначе часть настроек может быть утрачена.

На практике таблица #__contact_details часто используется не только для стандартной страницы контактов, но и в качестве источника данных для каталогов сотрудников, корпоративных справочников, интеграции с CRM-системами и создания пользовательских API. Поэтому при разработке собственных расширений целесообразно использовать стандартные модели и API Joomla, а не работать с таблицей напрямую, что обеспечит совместимость с будущими обновлениями CMS.

Таблицы баннеров

Баннерная система Joomla (com_banners) предназначена для управления рекламными кампаниями, учета статистики показов и взаимодействия с рекламодателями. Несмотря на то, что многие современные сайты используют сторонние рекламные платформы, встроенный компонент баннеров остаётся полезным инструментом для корпоративных порталов, информационных ресурсов и проектов с собственной системой размещения рекламы.

  • #__banners — основная таблица компонента, в которой хранятся баннеры, их параметры публикации, ссылки, лимиты показов, сроки действия и служебные настройки.
  • #__banner_clients — содержит информацию о рекламодателях или организациях, которым принадлежат баннеры. Один клиент может быть связан с несколькими рекламными кампаниями.
  • #__banner_tracks — используется для сбора статистики просмотров и кликов. Именно эта таблица позволяет анализировать эффективность рекламных кампаний и формировать отчеты.

Разработчикам важно учитывать, что таблица #__banner_tracks может очень быстро увеличиваться в размере на сайтах с высокой посещаемостью. Поэтому во время технического обслуживания целесообразно контролировать объём накопленной статистики и, при необходимости, выполнять архивирование или очистку устаревших записей. Кроме того, при интеграции с внешними рекламными сервисами рекомендуется использовать события и API Joomla, а не изменять данные непосредственно в базе, чтобы сохранить совместимость с будущими обновлениями CMS.

Таблицы новостных лент

Компонент новостных лент (com_newsfeeds) предназначен для интеграции внешних RSS- и Atom-каналов с сайтом на Joomla. Несмотря на то, что современные веб-проекты часто используют API сторонних сервисов, механизм News Feeds остаётся полезным инструментом для агрегаторов новостей, корпоративных порталов и тематических ресурсов, которые автоматически публикуют информацию из внешних источников.

  • #__newsfeeds — основная таблица компонента, содержащая адреса RSS- или Atom-каналов, названия лент, их псевдонимы (alias), параметры кэширования, настройки публикации, категории, метаданные и другие служебные параметры.

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

Таблицы конфиденциальности и безопасности

Начиная с Joomla 3.9, в CMS были реализованы механизмы защиты персональных данных и соблюдения требований GDPR. В Joomla 6.x эти функции продолжают развиваться и используют отдельные таблицы базы данных для хранения информации о согласии пользователей, запросах на обработку персональных данных и параметрах современных механизмов аутентификации. Для разработчиков понимание назначения этих таблиц важно при создании форм, интеграции с внешними сервисами и проведении аудита безопасности сайта.

  • #__privacy_consents — хранит информацию о согласиях пользователей на обработку персональных данных, включая дату предоставления согласия и версию политики конфиденциальности.
  • #__privacy_requests — содержит запросы пользователей на экспорт или удаление персональных данных в соответствии с требованиями GDPR и других нормативных актов.
  • #__user_mfa — используется для хранения настроек многофакторной аутентификации (MFA) пользователей.
  • #__webauthn_credentials — содержит учётные данные WebAuthn, необходимые для аутентификации с помощью аппаратных ключей безопасности или биометрических устройств.
  • #__user_keys — хранит служебные токены, которые используются для различных процессов аутентификации, подтверждения действий и восстановления доступа.

При разработке и сопровождении сайтов не рекомендуется изменять записи в этих таблицах напрямую с помощью SQL-запросов, поскольку это может нарушить работу механизмов аутентификации или привести к потере юридически значимых данных, касающихся обработки персональных данных. Для работы с такими данными целесообразно использовать стандартные API Joomla и встроенные инструменты административной панели.

Таблицы обновлений Joomla

Механизм обновлений в Joomla 6.x построен таким образом, чтобы автоматически получать информацию о новых версиях ядра и установленных расширений с удалённых серверов разработчиков. Для этого CMS использует отдельный набор служебных таблиц, в которых хранятся источники обновлений, результаты проверок и метаданные, необходимые для безопасного обновления системы. Понимание структуры этих таблиц особенно важно при диагностике проблем с обновлениями, переносе сайтов или разработке собственных расширений.

  • #__update_sites — содержит список серверов обновлений, с которых Joomla получает информацию о доступных новых версиях ядра и расширений.
  • #__update_sites_extensions — обеспечивает связь между установленными расширениями и соответствующими серверами обновлений.
  • #__updates — сохраняет результаты последней проверки обновлений, включая информацию о доступных новых версиях.
  • #__extensions — содержит информацию обо всех установленных расширениях, их состоянии, версии, типе и служебных параметрах.
  • #__tuf_metadata — используется механизмом безопасных обновлений для проверки целостности и подлинности пакетов в соответствии с концепцией The Update Framework (TUF).

Разработчикам важно учитывать, что повреждение или некорректное редактирование этих таблиц может привести к невозможности получения обновлений или появлению ложных сообщений об их наличии. При создании собственных расширений рекомендуется реализовывать стандартный XML-манифест обновлений и использовать штатный механизм Joomla, поскольку это обеспечивает автоматическую интеграцию с системой обновлений и совместимость с будущими версиями CMS.

Таблицы планировщика задач

Таблицы планировщика задач в Joomla 6.x обеспечивают работу встроенного механизма автоматизации фоновых процессов. С помощью компонента com_scheduler администратор или разработчик может настраивать периодическое выполнение различных операций, таких как очистка кэша, отправка сообщений, запуск собственных скриптов или синхронизация данных с внешними сервисами. Использование планировщика позволяет сократить количество ручных операций и централизовать управление служебными задачами в пределах CMS.

  • #__scheduler_tasks — основная таблица планировщика, в которой хранятся все созданные задачи, их типы, параметры выполнения, расписание запуска, статус активности и служебные настройки.
  • #__scheduler_logs — таблица журналов выполнения задач. Содержит информацию о времени запуска, результате выполнения, сообщениях об ошибках и других диагностических данных.

Разработчикам важно учитывать, что планировщик Joomla работает через систему задач (Tasks API), поэтому при создании собственных автоматизированных процессов рекомендуется использовать стандартные плагины типа task вместо реализации отдельных CRON-скриптов. Такой подход упрощает сопровождение проекта, обеспечивает интеграцию с административной панелью и позволяет использовать встроенные механизмы ведения журнала и контроля выполнения задач.

Таблицы рабочих процессов

Таблицы рабочих процессов (Workflow) в Joomla 6.x обеспечивают управление жизненным циклом контента — от создания материала до его окончательной публикации или архивирования. Этот механизм особенно полезен для крупных редакционных проектов, где над контентом работают авторы, редакторы и модераторы с разными уровнями доступа. Благодаря системе рабочих процессов можно реализовать контроль утверждения материалов без использования сторонних расширений.

  • #__workflows — содержит определения всех созданных рабочих процессов, их названия, описания, статус публикации и параметры конфигурации.
  • #__workflow_stages — сохраняет этапы каждого рабочего процесса, например «Черновик», «На проверке», «Опубликовано» или «Архивировано».
  • #__workflow_transitions — определяет допустимые переходы между этапами и правила их выполнения. Именно эта таблица контролирует, какие пользователи могут изменять состояние материала.
  • #__workflow_associations — используется для привязки конкретных элементов контента к соответствующим рабочим процессам и их текущим этапам.

Разработчикам важно понимать, что система Workflow тесно интегрирована с ACL Joomla и механизмом событий ядра. Поэтому при разработке собственных компонентов или автоматизации публикации контента необходимо учитывать состояние рабочего процесса, а не только значение поля state в таблице контента. Игнорирование логики Workflow может привести к ситуациям, когда материал формально опубликован, но фактически недоступен для дальнейшего редактирования или не соответствует утверждённому редакционному сценарию.

Таблицы структурированных данных Schema.org

Таблицы структурированных данных в Joomla 6.x отвечают за хранение информации, используемой для формирования семантической разметки в соответствии со стандартом Schema.org. Этот механизм позволяет передавать поисковым системам дополнительный контекст о содержании страниц, что может положительно повлиять на отображение сайта в результатах поиска. Для разработчиков важно понимать, что система структурированных данных интегрирована непосредственно в ядро Joomla и может использоваться без установки сторонних SEO-расширений.

  • #__schemaorg — содержит конфигурацию структурированных данных, привязанных к отдельным материалам или другим объектам контента. В таблице хранятся типы схем, настроенные свойства и служебные параметры, необходимые для генерации разметки JSON-LD.
  • #__schemas — используется для хранения описания доступных схем и их структуры. Эта таблица обеспечивает работу механизма построения и валидации структурированных данных в административной части Joomla.

При разработке собственных компонентов или SEO-решений следует учитывать, что структурированные данные должны соответствовать актуальной спецификации Schema.org и рекомендациям поисковых систем. Некорректно сформированная разметка может не только не принести пользы, но и привести к появлению предупреждений в сервисах для веб-мастеров. Поэтому при интеграции с таблицами #__schemaorg и #__schemas рекомендуется использовать стандартные API Joomla, что обеспечивает корректную генерацию JSON-LD и совместимость с будущими обновлениями CMS.

Другие системные таблицы Joomla

Помимо таблиц, связанных с конкретными компонентами, Joomla 6.x создаёт ряд системных таблиц, обеспечивающих базовую работу CMS. Они отвечают за управление расширениями, шаблонами, языками, сессиями пользователей, кэшированием настроек и другими внутренними механизмами. Именно эти таблицы чаще всего используются ядром Joomla независимо от типа сайта, поэтому их наличие в базе данных является обязательным для корректной работы системы.

  • #__assets — сохраняет иерархию ресурсов и права доступа ACL для всех объектов сайта.
  • #__extensions — содержит информацию обо всех установленных компонентах, модулях, плагинах, шаблонах и библиотеках.
  • #__languages — используется для хранения данных об установленных языках сайта и панели администратора.
  • #__session — содержит информацию об активных сессиях пользователей и администраторов.
  • #__template_styles — хранит стили шаблонов и их параметры настройки.
  • #__template_overrides — используется для управления переопределениями шаблонов в административной части.
  • #__mail_templates — содержит шаблоны системных электронных писем, которые используются Joomla для отправки сообщений.
  • #__messages — хранит внутренние сообщения между администраторами сайта.
  • #__messages_cfg — содержит персональные настройки внутренней системы уведомлений.
  • #__postinstall_messages — используется для отображения служебных сообщений после установки или обновления Joomla.
  • #__overrider — хранит переопределения языков, созданные через менеджер языков.
  • #__guidedtours — содержит информацию об интерактивных турах по панели управления.
  • #__guidedtour_steps — хранит отдельные этапы интерактивных туров.

Разработчикам следует помнить, что большинство системных таблиц тесно связано с внутренними API Joomla. Прямое редактирование их содержимого с помощью SQL возможно только при полном понимании архитектуры CMS, поскольку ошибки могут привести к сбоям в авторизации, некорректной работе расширений или потере доступа к административной панели.

При аудите базы данных именно эти таблицы целесообразно использовать в качестве эталона для выявления записей и структур, добавленных сторонними расширениями.

Как определить таблицы сторонних расширений

В ходе аудита, оптимизации или переноса сайта на Joomla разработчику часто необходимо определить, какие таблицы были созданы сторонними расширениями, а какие принадлежат ядру CMS. Это особенно актуально после удаления компонентов, миграции между серверами или очистки базы данных от устаревших данных. Наличие неиспользуемых таблиц не только затрудняет сопровождение проекта, но и может негативно влиять на резервное копирование, производительность и безопасность сайта.

  • Сравните список таблиц текущего сайта со списком таблиц «чистой» установки Joomla той же версии.
  • Ознакомьтесь с таблицей #__extensions, чтобы узнать, какие компоненты, модули и плагины установлены в системе.
  • Обращайте внимание на префиксы в названиях таблиц. Во многих расширениях используются собственные сокращения, например #__akeeba_*, #__kunena_*, #__hikashop_* або #__jcomments_*.
  • Проанализируйте XML-манифесты установленных расширений в каталоге /administrator/components/, так как они часто содержат описание создаваемых таблиц.
  • После удаления расширения проверьте, не осталось ли в базе данных неиспользуемых таблиц, поскольку далеко не все разработчики обеспечивают полную очистку при удалении.
  • Если назначение таблицы неизвестно, выполните поиск её названия в коде сайта или в исходных файлах расширений.
  • Перед удалением любой таблицы обязательно создайте резервную копию базы данных и убедитесь, что таблица не используется активными расширениями или собственным кодом проекта.

Следует учитывать, что некоторые сторонние расширения интегрируются с ядром Joomla и могут использовать как собственные таблицы, так и стандартные таблицы CMS. Поэтому решение об удалении неизвестных таблиц должно приниматься только после комплексного анализа структуры сайта. Практика сравнения базы данных с чистой установкой Joomla является одним из самых эффективных способов выявления сторонних или «осиротевших» таблиц в ходе технического аудита.

Main Menu