Блог

Все события и новости нашей студии

Идеальная платформа для админки вашего сайта

Эта статья о том, как мы искали идеальное решение для административных задач веб-приложений. Для кого статья: для инженеров-программистов, находящихся "в поиске"; администраторов интернет-магазинов; руководителей, планирующих создать какой-либо сервис с доступом из веб. для тех, у кого есть идея и ей предстоит выбрать платформу, достаточную для быстрого старта.

Наши поиски завершились отрицательно. Идеальной платформы под каждого вашего сотрудника / менеджера не существует. Такое заключение основано на опыте внедрения административных систем October CMS и Laravel Administrator.

Типовые задачи админки, CRUD

Когда ты маленький, ничего не умеющий инженер-программист, перед тобой стоит задача выбрать платформу, на которой cделать решение для бизнеса своего босса. Первый и зачастую неразумный вариант – начать писать "свое" решение, "с нуля". Ты участвуешь в создании чего-то нового и значимого - на таких началах можно написать много когда, который 50/50 будет работать. Но без должного опыта, умения использовать готовые инструменты, а так-же в отсутствии таланта писать работающий код – самопис рискует стать проблемой. Это затормозит дальнейшую работу, в то время, когда ваша команда разработчиков наберется опыта и вы начнете искать подходящие платформы для типовых задач администрирования - CRUD «Список (табличный листинг) / добавление / редактирование».

October CMS

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

Кроме того, что October CMS – молодая "замена WordPress", в ней есть возможность формировать административный интерфейс на основе конфигов yaml и моделей Eloquent от laravel.

Редактирование записи в October CMS Редактирование записи в October CMS - расширенный набор полей
Некоторые возможности October CMS:
  • CLI-интерфейс для создания моделей и конфигурационных файлов 1

  • Определение списка колонок при табличном листинге записей

  • Фильтры записей (checkbox, список объектов по реляции, пользовательские скопы из моделей Eloquent, полнотекстовый поиск) 2

  • Пользовательская настройка колонок, отображаемых в табличном листинге записей

  • Список полей при редактировании записи, возможность настроить их взаимное расположение слева, справа

  • Поддержка загрузки изображений, thumbnails, ресайзинг

  • Много предопределенных типов полей 3

  • Тип поля списка с выбором значений с поиском по связанной модели

  • Контроль доступа 4

1 Модели Eloquent это PHP-классы, определяющие некую сущность в системе, например "Дом". Каждая модель связана с таблицей в базе данных (MySQL, PostgreSQL, SQLite). Свойства объекта (площадь дома, площадь участка) – определяются в конфигурации полей с помощью синтаксиса YAML.

2 В административном интерфейсе October CMS не реализована возможность сохранять фильтры. По части фильтров могут помочь "скопы". Подробнее о скопах можно прочитать в официальной документации Laravel: Scopes

3 Плагина meta-box для WordPress предоставляет дополнительные типы полей, которых нет в October CMS. У meta-box нет dropdown-списков основанных на реляциях БД. Зато в нем есть поля "адрес" с поиском по карте google и multi-add текстовые поле.

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

Список записей в October CMS - дополнительная функциональность Листинг записей в October CMS - пользовательская настройка колонок

Orchestra Platform, Pyro CMS, Zurmo

Когда существует как минимум 2 разных технологии, решающих схожие задачи, необходимо выбрать, какую технологию использовать. Мы уже знаем "слабые стороны" тех решений, которые мы используем сейчас и хотим найти такой продукт, в котором реализовано все то, что мы уже знаем, а так-же учтены и новые требования На деле выходит так, что каждая платформа решает свои задачи. Мы искали подтверждение тому, что не только у October CMS есть развитая система автоматического построения админки, но и другие решения предоставляют не меньше функций. Попытавшись определить одно из этих решений, способных "из коробки" дать столько же функций для построения административного интерфейса, мы не нашли. Просматривали Orchestra Platform, Pyro CMS, пробовали работать с открытым исходным кодом CRM-системы, написанной на PHP и RedBean Model – Zurmo.

Laravel Administrator

Следующим опробованным ПО, для решения задач заказчика, стал пакет Laravel Administrator. По-сравнению с October CMS, LA не тянул за собой CMS, тем самым обещал стабильность работы и легкость интеграции в любое окружение. Можно задать набор полей для редактирования, список колонок при табличном листиге и определить фильтры для поиска записей.

Интерфейс Laravel Administrator основан на javascript-фреймворке Knockout. Бекенд системы функционален в меру. В нем нашлись и "слабые" стороны.

Небольшой список возможностей Laravel Administrator:
  • Ajax-интерфейс на knockout.

  • Компактный внешний вид оформления списка записей 1

  • "Быстрое" редактирование/добавление записей 2

  • Фильтры списка записей, в том числе фильтры по реляции

  • Вычисление SQL-выражений для вывода их значений при табличном листинге

  • Поддержка управления / загрузкой изображений "из коробки", ресайз

1 Внешний вид списка записей в административном интерфейсе играет важную роль. Можно сказать это лицо продукта, то с чем предстоит работать пользователям веб-приложения. В October CMS не позаботились о компактности табличного листинга. Это в свою очередь делает не удобным вывод таблиц с большим количеством колонок. В этом плане, Laravel Administrator не отличается особой находчивостью, так как не позволяет легко кастомизировать свои внутренние шаблоны для построения UI.

2 Окно редактирования / добавления записи "выезжает" сбоку, занимает мало места. Возможность изменить размер окна по-умолчанию отсутствует. При большом количестве полей для редактирования – окно редактирования выглядит не эргономично.

Административный интерфейс Laravel Administrator - фильтрация записей Админка Laravel Administrator - редактирование записи

Резюме

Опыт работы с системами для построения административных интерфейсов, показал идеального решения не нашлось. Во всех случаях не хватает тех или иных функций или интерфейс не отвечает требованиям отдельных пользователей системы. В каждом отдельном случае нужно сделать выбор, имея опыт работы с админками WordPress, October CMS и Laravel Administrator, подобрать подходящее решение.


Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

Календарь

Январь 2017
Пн Вт Ср Чт Пт Сб Вс
« Авг    
 1
2345678
9101112131415
16171819202122
23242526272829
3031