Хочу представить вам своё iOS приложение, которое управляет сайтом на MODX Revolution.
Кратко, что умеет:
- Работа с ресурсами: создание, редактирование, удаление
- Работа с элементами: шаблоны, чанки, ТВ, плагины и их категории
- Работа с файлами через источники медиа: создание, редактирование, удаление.
- Просмотр журнала событий системы
- Просмотр и очистка журнала ошибок
- Очистка кэша сайта
- Русский и английский интерфейс
- Auto-layout, вертикальный и горизонтальный режим работы
- Никакие данные не собираются и никуда на сторону не отправляются, вообще.
Для нетерпеливых сразу ссылка на AppStorе, а кто хочет подробностей и картинок прошу под кат.
Принцип работы
Для работы необходимо установить компонент mxManager из официального репозитория.
Компонент принимает запросы внутри админки, как системный плагин на событие OnManagerPageInit. Где у вас находится manager, вы указываете сами, в настройках подключения.
Конечно, вы можете использовать https и Basic Authentication веб-сервера. Более того, я от всей души рекомендую вам их использовать!
Все запросы отправляются с указанием параметров mx_action и version методом POST — в лог веб-сервера никаких команд и паролей не попадает. Плагин срабатывает только если видит mx_action в $_REQUEST.
Исходный код серверной части открыт, вы можете изучить его на предмет потенциальных уязвимостей. Компонент везде использует систему безопасности самого MODX и проверку прав доступа. Вывод доступных пунктов меню приложения также зависит от них.
Работа с ресурсами
Как видите, поддерживаются все основные параметры ресурсов MODX. Можно переключать тип документов, назначать разные шаблоны, редактировать содержимое и другие поля. Также поддерживаются все основные типы ТВ параметров, включая выбор ресурсов.
Чего нет, но планирую добавить:
- Rich text редактор для контента
- Поддержка дополнительных полей дополнений. Для начала, Tickets и miniShop2.
Работа с элементами
Почти в полном объёме поддерживаются все основные функции элементов. Если это шаблон, то у него будет пункт назначения системных событий. Если это ТВ параметр — то выбор шаблонов, типа ввода и вывода.
По техническим причинам я не могу реализовать работу с необычными ТВ параметрами, потому что их внешний вид в админке MODX программируется на php + html и javascript, но вы всё равно можете использовать такие типы с показом их «сырого» кода.
Также нет поддержки статичности элементов, и не думаю, что её стоит добавлять — в админке то редко кто этим пользуется.
Работа с файлами
Вы можете создавать, переименовывать и удалять директории и файлы. Если файл текстовый — то можно его и редактировать, есть простенькая подсветка кода, которая отключается на файлах свыше 50Кб.
Картинки показываются, у неизвестных типов файлов поле content просто пустое. Содержимое файлов, которые весят более 1 мегабайта, не загружается — но вы можете их переименовывать и удалять.
Чего нет, но планирую добавить
- Защиту системных файлов и директорий от удаления и переименования. Сейчас, также как и через родную админку MODX, можно поломать сайт одним неловким движением в директории core.
- Загрузку файлов из медиатеки iOS устройства
Прочее
Еще есть просмотр журнала событий, работа с логом ошибок и очистка системного кэша. Как и все остальные разделы, эти выводятся только если вам разрешен к ним доступ в системе прав MODX.
Здесь я планирую добавить только поиск по журналу событий.
Общие возможности
Во всех гридах, где это возможно, используется ленивая загрузка при прокрутке и меню «свайпом влево».
Через свайп доступно редактирование настроек подключения к сайтам, действия с ресурсами, элементами и файлами.
Трафик, передаваемый на сайт и обратно, я старался минимизировать. По отзывам пользователей, приложение «летает», по сравнению с обычной админкой.
Для передачи данных используется JSON, когда дело доходит до бинарных файлов — они кодируются base64.
Заключение
К выпуску этого приложения я шел полтора года. 4 месяца чистой работы, остальное время на изучение Objective-C, потом Swift, потом правил работы AppStore и прохождения модерации.
Само приложение бесплатное, но содержит одну платную покупку — разблокировка работы с несколькими сайтами одновременно за 599 рублей. Покупается только один раз на все устройства.
При этом, количество редактирований настроек одного сайта никак не ограничено. Вы можете менять адрес подключения, логин и пароль сколько угодно раз.
На данный момент я слежу за отзывами и планирую новый функционал. В первую очередь это будет работа с системными настройками сайта и пользователями. Затем редактор контента и поддержка некоторых дополнений.
На данный момент это приложение — единственное, что находится по запросу «modx» в AppStore.
Разрешение на использование логотипа и торговой марки MODX получено от Ryan Thrash — главы MODX, LLC.