Универсальный редактор данных
Привет!Однажды webscout написал пост про универсальную админку (редактор данных) «Модеринка». Тему эту не развили, но, я думаю, она заслуживает внимания. Попробую рассказать, почему. Многие разработчики, в том числе и я, сталкиваются с вопросом экономии времени при разработке сайтов. Согласитесь, создание админской части сайта достаточно трудозатратно, последующая модификация структуры данных тоже требует не мало времени. Сейчас многие CMS предоставляют разработчику возможности визуального редактирования структуры таблиц БД, но проблема в том, что эти инструменты привязаны к CMS. В коробочных CMS много модулей с уже готовыми интерфейсами, но начинаются проблемы, когда функционала этих модулей недостаточно. Подправить шаблон, выводящий информацию на сайт легко, а вот подправить структуру данных и допилить админку уже сложнее.
Так случилось, что я тоже писал универсальный редактор данных для своих личных целей. На его примере я и попытаюсь объяснить, что это такое (в моем представлении) и почему его не надо сравнивать с phpMyAdmin.
По сути, универсальная админка — это инструмент, предназначенный для управления хранящимися в БД и файловой системе данными. Состоит он из двух частей, назовем их конструктором и редактором данных. Конструктор данных предназначен для визуального управления структурой данных (Создание таблиц БД, редактирование таблиц, управление типами полей и т.д.). Редактор данных предназначен для управления контентом. Все данные в редакторе представляются в удобной для восприятия человеком форме (В phpMyAdmin вы увидите image.jpg, а в этом редакторе само изображение). То есть, основная задача редактора — преобразование данных для отображения, а также построение форм для ввода данных.
Перейду к наглядным примерам.
Конструктор данных состоит из списка созданных таблиц и формы для редактирования:

Тут я нажал на «Редактировать колонку image». Каждую колонку можно называть на русском/другом языке. Ее можно скрывать в сводной таблице редактора. Можно управлять зависимостями отображения. Например, можно сделать, что бы в форме добавления лота автоматически появлялось поле «Тип аукциона», если выбрать форму продажи «Аукцион» и исчезало при прямой продаже. У каждого типа поля есть и индивидуальные параметры:

Это форма добавления новой таблицы. Думаю тут все понятно:

А вот так выглядит редактор данных. Можете сопоставить поля с первым примером. Тут тоже новости. Некоторые поля можно редактировать не открывая всю новость:

Нажал «Редактировать новость». Форма сгенерировалась:

Таблицы можно связывать между собой. В конструкторе имеются два типа данных (ссылка на строку из другой таблицы, ссылка с другой таблицы) для связи таблиц между собой. На примере имеются две связи:
1. Родительская группа — связь с идентификатором и названием этой же таблицы
2. Объявления — связь с таблицей объявлений

Содержимое таблицы можно фильтровать и сортировать. В данном примере найдены все новости, связанные с Иркутском и Путиным. Новости отсортированы по количеству просмотров в порядке увеличения:

Количество типов данных ограничивается лишь фантазией программиста и требованиями заказчика, так как каждый тип описан отдельным классом. Есть возможность управлять доступом к таблицам. Она не зависит от выбранной CMS. На указанном примере рассмотрена админка довольно функционального сайта (посмотрите размер скролла в списке таблиц) и она вполне справляется. Конечно, все задачи ей не решить, но элементарное управление данными — легко.
Это лишь одна из реализаций такой админки. Она достаточно функциональна и быстра, но далеко не идеальна. Как вы думаете, насколько заслуживает жизни эта концепция? Мне очень интересно Ваше мнение.
UPD: Можете попробовать, что это такое. В архиве есть краткая инструкция по установке. Имя: admin Пароль: admin. Скачать



комментарии (82)