DB Structure Viewer: Инструкция и описание к плагину для Cotonti Siena

Плагин для просмотра в админке структуры базы данных, полей в таблице, резервного копирования БД через панель управления и экспорта в SQL, CSV, JSON, PHP Array.

DB Structure Viewer: Полный гид по плагину для Cotonti Siena: от установки до продвинутого использования.

 

Плагин для просмотра в админке Cotonti структуры базы данных, полей в таблице, резервного копирования БД через панель управления и экспорта в форматы: JSON, SQL, CSV, PHP Array.

Введение: Зачем нужен плагин для просмотра структуры базы данных?

 

Представьте, что вы — администратор сайта на Cotonti Siena, или разработчик, который только-только начинает работать с этой CMS. База данных — это сердце вашего сайта: здесь хранятся все посты, пользователи, настройки, комментарии и многое другое. Но как же сложно разобраться в ней без специальных инструментов! Вы открываете phpMyAdmin, видите десятки таблиц с префиксом "cot_", и понимаете: "Где же мои данные? Что такое это поле 'user_theme'? Почему в таблице pages столько колонок, а я даже не знаю, для чего они?"

Вот здесь и приходит на помощь DB Structure Viewer — простой, но мощный плагин, который превращает хаос базы данных в понятную таблицу. Этот инструмент позволяет не только просмотреть структуру всех таблиц (имена полей, их типы, ключи, значения по умолчанию), но и экспортировать данные в удобные форматы: JSON для разработчиков, SQL для бэкапов, CSV для анализа в Excel, и даже PHP Array для быстрого переноса в код. А если нужно, плагин покажет первые 10 строк таблицы или конкретную строку по ID, чтобы вы могли быстро проверить, как данные выглядят на практике.

Плагин разработан специально для Cotonti Siena v.0.9.26 (и выше), работает на PHP 8.4+ и MySQL 8.0+, и не требует дополнительных библиотек. Он — как "рентген" для вашей базы: безопасный, быстрый и интуитивный. Если вы новичок, не волнуйтесь — мы разберём всё по шагам, от установки до тонкостей экспорта. А если вы опытный разработчик, вы оцените простоту кода и возможность легко доработать плагин под свои нужды.

В этой статье мы пройдём весь путь: от понимания, зачем это нужно, до практических примеров. Готовы? Давайте начнём!

 

 

Зачем администратору и разработчику инструмент для анализа БД?

 

Cotonti — отличная CMS, но её база данных может быть сложной для новичков. Представьте: вы добавили плагин, и вдруг сайт начал тормозить. Почему? Может, новая таблица конфликтует с существующей? Или поле в таблице users имеет неправильный тип, и данные не сохраняются? Без визуального инструмента вы вынуждены писать SQL-запросы вручную или копаться в документации.

DB Structure Viewer решает эти проблемы:

  • Для администраторов: Быстрый осмотр — и вы знаете, сколько строк в таблице pages, какие поля в users (и есть ли там email с индексом для поиска). Нет нужды в phpMyAdmin — всё в админке Cotonti.
  • Для разработчиков: Экспорт структуры в JSON или PHP — это готовый шаблон для документации. Хотите мигрировать данные на новый сервер? CSV-файл — и импорт в секунды. Плюс, просмотр данных по ID помогает отлаживать: "Почему пользователь с ID 123 не видит пост?"

В общем, этот плагин экономит часы работы. Если вы когда-нибудь тратили время на "что такое эта таблица?", то DB Structure Viewer — ваш спаситель. А теперь разберём, как он устроен внутри.

 

Ключевые возможности: Что плагин умеет делать?

 

DB Structure Viewer — не просто "список таблиц". Это полноценный инструмент с тремя вкладками–который сочетает просмотр, анализ и экспорт. Давайте разберём по пунктам, чтобы даже новичок понял, как это работает.

1. Автоматический поиск и отображение таблиц

Плагин сразу сканирует вашу базу и показывает только ваши таблицы (с префиксом "cot_"). Нет лишнего мусора — только то, что нужно для Cotonti. Для каждой таблицы вы видите:

  • Название: Короткое имя без префикса (например, "users").
  • Количество полей: Сколько колонок в таблице.
  • Движок: InnoDB или MyISAM — важно для производительности.
  • Количество строк: Сколько записей (полезно для мониторинга роста данных).

Это как "карта сокровищ" — один взгляд, и вы знаете, где что лежит.

2. Детальный анализ полей таблицы

Выберите таблицу из выпадающего списка — и плагин покажет каждое поле с полной информацией:

  • Имя поля: Например, "user_name" или "page_title".
  • Тип данных: varchar(255), int(11), text — чтобы понять, что хранится.
  • NULL: Может ли поле быть пустым? (YES/NO).
  • Ключ: PRIMARY (первичный), UNIQUE, INDEX — для понимания связей.
  • Значение по умолчанию: Что подставляется, если ничего не указано.
  • Дополнительно: auto_increment (автоинкремент) или on update.

Это идеально для отладки: "Почему поле email не индексировано? Вот почему поиск медленный!"

3. Просмотр реальных данных

Не просто теория — плагин показывает живые данные:

  • Первые 10 строк: Быстрый взгляд на содержимое (без риска выгрузить всю базу).
  • Конкретная строка по ID: Введите ID — и увидите только её. Полезно для проверки: "Что в профиле пользователя 42?"

Данные отображаются в удобной таблице, с экранированием (чтобы HTML не сломался).

4. Экспорт: Гибкий и безопасный

Экспорт — сердце плагина. Выберите таблицы, формат и режим:

  • Только структура: Имена таблиц и полей (для документации).
  • 10 строк: Для теста или примера.
  • Все строки: Полный дамп (кроме PHP — там слишком много данных).

Форматы:

  • JSON: Для API или JavaScript.
  • SQL: Для бэкапа или миграции.
  • CSV: Для Excel, анализа данных.
  • PHP Array: Для кода (только с малыми данными).

Файл сохраняется в export/ и скачивается автоматически. Плюс — логи: "Кто экспортировал, когда, что?"

5. Логирование и история

Если включите логи, плагин запишет каждый экспорт в таблицу. Вкладка "Логи" — это журнал:

  • Файл, формат, количество таблиц.
  • Включены ли данные.
  • Дата и время.

С пагинацией — удобно для больших логов.

 

 

Структура директорий: Как плагин устроен внутри?

 

Плагин следует стандартам Cotonti — всё логично и предсказуемо. Вот дерево файлов:

 

plugins/dbviewstructure/
├── dbviewstructure.setup.php          # Основной файл регистрации плагина
├── dbviewstructure.tools.php          # Логика админ-панели (вкладки, формы)
├── inc/
│   └── dbviewstructure.functions.php  # Функции: работа с базой, экспорт
├── tpl/
│   └── dbviewstructure.tools.tpl      # HTML-шаблон интерфейса
├── export/                            # Папка для файлов экспорта, установить права 755
├── lang/
│   ├── dbviewstructure.ru.lang.php    # Русские переводы
│   └── dbviewstructure.en.lang.php    # Английские переводы
└── setup/
   ├── dbviewstructure.install.sql    # SQL для создания таблицы логов
   └── dbviewstructure.uninstall.sql  # SQL для удаления таблицы

 

Подробное описание каждого файла

dbviewstructure.setup.php — "Входная точка" плагина. Здесь указаны метаданные: имя, версия, автор, лицензия. Cotonti читает этот файл, чтобы понять, как зарегистрировать плагин. Также здесь настраивается создание папки export/ с правами 755 (чтение/запись для владельца).

dbviewstructure.tools.php — Сердце админки. Этот файл обрабатывает GET/POST-запросы: определяет вкладку (structure/export/logs), загружает данные, рендерит шаблон. Здесь же логика экспорта: валидация формата, таблиц, режимов данных. Использует XTemplate для вывода HTML.

inc/dbviewstructure.functions.php — "Мозг" плагина. Содержит функции:

  • dbview_get_tables() — сканирует базу, возвращает список таблиц.
  • dbview_get_table_info() — для одной таблицы: поля, движок, данные.
  • dbview_export_tables() — экспорт структуры + 10 строк.
  • dbview_export_tables_full() — полный экспорт всех строк.

tpl/dbviewstructure.tools.tpl — Шаблон интерфейса. XTemplate Cotonti: блоки для вкладок, таблиц, форм. Bootstrap 5 для стиля, адаптивность.

lang/dbviewstructure.ru.lang.php и en.lang.php — Переводы. Все тексты вынесены в $L['ключ'] — меняете файл, меняется весь интерфейс.

setup/dbviewstructure.install.sql — Создаёт таблицу cot_dbviewstructure_logs для истории экспортов. Индексы для быстрого поиска.

setup/dbviewstructure.uninstall.sql — Удаляет таблицу при деинсталляции (не трогает ваши данные в export/).

export/ — Автоматическая папка. Создаётся при установке, файлы сохраняются сюда.

 

 

Установка: Пошагово для новичков

Если вы новичок в Cotonti, не пугайтесь — установка простая, как копирование файлов.

  1. Скачайте архив с GitHub: перейдите на репозиторий, загрузите ZIP.
  2. Распакуйте в папку plugins/ вашего сайта. Должно получиться plugins/dbviewstructure/ с всеми файлами.
  3. Проверьте права: Папка export/ должна быть доступна на запись. В SSH выполните:

 

chmod 775 plugins/dbviewstructure/export/
chown www-data:www-data plugins/dbviewstructure/export/
  1. (www-data — пользователь веб-сервера; замените на свой).
  2. Установите плагин: Зайдите в админку → ПлагиныУстановить. Найдите "DB Structure Viewer", нажмите Установить.
  3. Проверьте: Перейдите в ДругиеDB Structure Viewer. Если всё OK — увидите список таблиц.

Если ошибка "Таблицы не найдены" — проверьте префикс в config.php (Cot::$db_x). Если база пустая — плагин ничего не покажет.

 

 

Настройка: Что можно изменить?

После установки перейдите в ПлагиныDB Structure ViewerНастройки. Три параметра:

  • export_path: Путь к папке файлов. По умолчанию plugins/dbviewstructure/export/. Измените, если хотите хранить в другом месте (например, /backup/db/).
  • log_enabled: Вкл/выкл логи. Включите — и каждый экспорт запишется в историю (полезно для аудита).
  • max_rows_per_page: Сколько записей в логах на странице. 10 — для маленьких сайтов, 50 — для больших.

Сохраните — и плагин готов. Нет сложных настроек — всё просто.

 

 

Использование: Пошаговое руководство

Плагин — в админке по пути Другие → DB Structure Viewer. Три вкладки, каждая решает свою задачу.

Вкладка "Структура": Исследуем базу

  1. Список таблиц: Откройте вкладку — увидите таблицу с колонками:
    • Таблица: Имя (без "cot_").
    • Поля: Количество колонок (например, 15 для users).
    • Движок: InnoDB (быстрый) или MyISAM (старый).
    • Строк: Сколько записей (например, 5000 пользователей).
  2. Выбор таблицы: Внизу — форма с выпадающим списком (все таблицы) и полем "ID строки" (опционально).
  3. Нажмите "Показать":
    • Поля: Таблица с деталями каждого поля (имя, тип, NULL, ключ, дефолт, extra).
    • Данные: Если ID указан — одна строка. Иначе — первые 10. В удобной таблице с HTML-экранированием.

Пример: Выберите "users", ID 1 — увидите профиль первого пользователя. Полезно для отладки: "Почему пароль хэширован неправильно?"

Вкладка "Экспорт": Сохраняем данные

  1. Выберите формат: Dropdown: JSON (для API), SQL (бэкап), CSV (Excel), PHP Array (код).
  2. Режим данных: Радио-кнопки:
    • Только структура: Имена таблиц и полей (маленький файл).
    • 10 строк: + примеры данных (для теста).
    • Все строки: Полный дамп (осторожно с большими базами!).
  3. Выберите таблицы: Чекбоксы (есть "Выделить все").
  4. Нажмите "Экспорт":
    • Файл сохраняется в export/.
    • Появляется кнопка "Скачать" (файл удаляется после скачивания).

Пример: Выберите "pages" + "users", CSV + все строки — получите .csv для анализа в Excel.

Вкладка "Логи": Следим за историей

Если логи включены — здесь журнал:

  • Файл: Имя (например, db_export_20251031_1430.csv).
  • Формат: JSON, SQL и т.д.
  • Таблиц: Сколько выбрали.
  • Данные: Да/Нет (10 строк или все).
  • Дата: Когда экспортировали.

Пагинация (по 10 записей). Клик по файлу — скачивание (если не удалён).

 

 

Форматы экспорта: Что выбрать и зачем?

Экспорт — главная фича. Вот breakdown:

  • JSON: Универсальный. Структура + данные в JSON — идеально для API или JS. Пример: {"users": {"fields": [...], "data": [...]}}. Для "все строки" — большой файл, но читаемый.
  • SQL: Для бэкапа. Генерирует CREATE TABLE + INSERT. Полный дамп — готовый .sql для восстановления. Внимание: "все строки" = огромный файл!
  • CSV: Для анализа. Первая строка — заголовки, дальше — данные. Импорт в Excel/Google Sheets. Для "все строки" — миллионы строк, но Excel справится (с лимитом).
  • PHP Array: Для кода. return ['users' => [...]]; — вставь в config. Только для "структура" или "10 строк" (PHP не потянет миллионы строк в var_export()).

Совет: Для больших баз — CSV + "10 строк" для теста, SQL для полного.

 

 

Безопасность: Почему плагин не сломает вашу базу?

Безопасность — приоритет. Вот как защищён:

  • Доступ: Только админы (cot_auth('plug', 'dbviewstructure', 'A')).
  • SQL: Подготовленные запросы (? + параметры), экранирование имён (dbview_quote_identifier()).
  • Валидация: Проверка формата, таблиц, ID (intval).
  • Ошибки: Логи в Cotonti (cot_log()), нет утечек.
  • Файлы: В export/ (не в корне), удаляются после скачивания.
  • Нет AJAX: Чистый PHP — никаких JS-уязвимостей.

Плагин не меняет данные — только читает и экспортирует.

 

 

Технические детали: Под капотом

Требования

  • Cotonti: Siena v.0.9.26+ (XTemplate, cot_* функции).
  • PHP: 8.4+ (JSON, PDO).
  • MySQL: 8.0+ (InnoDB/MyISAM).
  • Права: 775 на export/.

Как работает экспорт?

  1. dbview_get_tables() — сканирует базу (SHOW TABLES LIKE 'cot_%').
  2. dbview_get_table_info() — для таблицы: SHOW FULL COLUMNS + SELECT * LIMIT 10.
  3. dbview_export_tables() — генерирует файл по формату.
  4. Для "все строки" — dbview_export_tables_full() (без LIMIT).

Логи в cot_dbviewstructure_logs (с индексами для поиска).

Локализация

Все тексты в $L[] — меняйте в lang/*.lang.php.

 

 

Возможные улучшения: Что можно добавить?

Плагин уже хорош, но вот идеи для доработки:

  • YAML-экспорт: Если установить расширение PHP, добавить yaml_emit().
  • Поиск по полям: Строка поиска по имени/типу поля.
  • Сравнение баз: "До/после" — для миграций.
  • Импорт: Обратный экспорт — загрузка SQL/JSON.
  • Графики: Диаграмма размеров таблиц (с Chart.js).
  • API: Эндпоинт /api/db/structure для внешних вызовов.
  • Кэш: Сохранять структуру в Redis на 1 час.
  • PostgreSQL: Адаптация под другую БД.

Если нужно — форкните и добавьте!

 

Лицензия

BSD 3-Clause License
Copyright (c) 2025, webitproff
All rights reserved.

GitHub: webitproff/cot-dbviewstructure Версия: 1.1.2 Дата: 31 октября 2025

Поддержка

Вопросы и проблемы, обсуждение плагина на форуме

Предложить разработчику задание или работу

9 минут чтения Sodium Carbonate

Комментарии (0)

Комментарии отсутствуют
Добавление комментариев доступно только зарегистрированным пользователям

Автор контента

webitproff

Оффлайн

Sodium Carbonate

Последняя авторизация: 20.07.2026 00:04

  • Страница размещена: 31.10.2025 15:14
  • Последнее обновление: 31.10.2025 16:01
  • Язык:

Похожие страницы

DB Structure Viewer - Общее описание
1 DB Structure Viewer для Cotonti Siena v.0.9.26Общее описаниеDB Structure Viewer — это мощный административный плагин
MStore Email Order для продавцов - Описание функционала плагина
2 Описание функционала плагина MStore Email Order для продавцовПлагин MStore Email Order помогает продавцам, которые
MStore Email Order для покупателей - Описание функционала плагина
3 Описание функционала плагина MStore Email Order для покупателейПлагин MStore Email Order помогает покупателям, которые
Настройка структуры сайта в Cotonti. Инструкция.
4 Типовое руководство с наглядным примером по созданию структуры категорий на сайте Cotonti. Конфигурация модулей и
Cotonti Siena CMF • 26.04.2024 10:43 webitproff
Файл structure.php в Cotonti
5 Файл structure.php в системной папке Cotonti CMF отвечает за манипуляции с категориями структуры сайта, то есть, за