[modDevTools] Версия 1.0.0-pl. Права и ресурсы

Доделал первоначальные задумки для дополнения, которое, надеюсь, поможет разработчикам быстрее и проще работать в админке MODX Revolution. Что компонент умеет на момент релиза стабильной первой версии:
На странице редактирования чанка добавляются вкладки, в которых можно изменять связанные объекты:
«Шаблоны» — код шаблонов, в которых выводится данный чанк. Если установлен Ace, появляется выделение чанка в коде шаблонов.
«Чанки» — код чанков, которые вызываются в данном чанке. Параметры сниппетов, указанные при вызове и по умолчанию, и которые являются чанками, тоже выводятся здесь.
«Сниппеты» — код сниппетов, которые вызываются в данном чанке. Под кодом сниппетов можно развернуть описание их параметров по умолчанию.
«Ресурсы» (новое в 1.0.0-pl) — список ресурсов, в шаблоне или контенте которых вызывается тем или иным образом данный чанк. Можно перейти на редактирование ресурса, открыть его в браузере, быстро изменить шаблон, статус публикации или удалить в корзину.
На странице редактирования шаблона добавляются следующие вкладки:
«Чанки» — код чанков, которые вызываются в данном шаблоне.
«Сниппеты» — код сниппетов, которые вызываются в данном шаблоне.
«Ресурсы» — список ресурсов с данным шаблоном.
На странице редактирования сниппета добавляется вкладка с ресурсами, в шаблоне или контенте которых вызывается данный сниппет.(новое в 1.0.0-pl)
На странице редактирования ресурса добавляются так называемые «Хлебные крошки» (BreadCrumbs).
Они сделаны на основе ExtJS-компонента хлебных крошек из установщика пакетов дополнений и вписываются в общее оформление админки независимо от версии. Так же хлебные крошки показываются в «Обзоре ресурса» (его можно увидеть при клике правой кнопки на ресурсе в дереве, или просто не имея прав на редактирование ресурса, но имея на просмотр). В этом случае переход на обзор ресурса родителя, а не на его редактирование. Поддерживаются контексты, т.е. в каком контексте ресурс, в этом контексте показываются и его родители.
Поиск и замена строк в чанках и шаблонах.
Для этого появился подраздел modDevTools в меню «Приложения». Все довольно просто. Вводите строку и нажимаете кнопку «Найти». Ниже есть фильтры в контенте каких элементов осуществлять поиск.
После того, как поиск произошел, выводится код всех найденных элементов с подсветкой искомой строки. Замена производится в каждом элементе отдельно. Для этого после кода элемента идет панель с 3 кнопками: «Заменить», «Заменить все» и «Пропустить».
Кнопка «Заменить» меняет искомую строку, на которой установлен курсор (более темная подсветка), на строку замены. Кнопка «Пропустить» передвигает курсор на следующее совпадение. После первоначального поиска можно изменить строку поиска, и тогда кнопки замены оперируют уже с этой новой строкой только для конкретного элемента, после которого они расположены.
Права пользователей для доступа к функциям modDevTools:
Компонент сам не добавляет, но во всю использует стандартные права пользователей.
view_chunk и view_template
Для доступа к разделу поиска и замены строк (пункт меню modDevTools)
save_chunk
Для замены строк в чанках в этом разделе.
save_template
Для замены строк в шаблонах в этом разделе.
view_chunk
Для показа вкладки «Чанки»
view_template
Для показа вкладки «Шаблоны»
view_snippet
Для показа вкладки «Сниппеты»
resource_tree
Для показа вкладки «Ресурсы»
edit_document
Для показа кнопки «Редактировать» в таблице на вкладке «Ресурсы»
save_document
Для изменения шаблона ресурса в таблице на вкладке «Ресурсы»
publish_document
Для изменения статуса публикации в таблице на вкладке «Ресурсы»
delete_document
Для удаления ресурса в корзину в таблице на вкладке «Ресурсы»
save_chunk/save_template/save_snippet
Используются стандартные процессоры MODX, поэтому для редактирования элементов нужны соответствующие права.
Внимание: нет поддержки групп ресурсов (пока?), т.е. если какая-то группа ресурсов скрыта от менеджера в админке, то он сможет ее увидеть в списке ресурсов элементов.
Дополнительная информация:
- Если элемент, показывающийся в новых вкладках, находится в фокусе и изменен, то с помощью Ctrl-s сохраняется он, если не в фокусе — то родительский элемент (при этом изменения в дочернем потеряются).
- Кнопка «Сохранить» у родительского элемента неактивна, если дочерний элемент оказывался в фокусе для предотвращения случайного сохранения. Включается переходом на другую вкладку.
- Поддерживается AjaxManager
- Поддерживаются версии MODX Revolution 2.3.x (в первую очередь, разработка ведется на нем) и 2.2.x (минимальная поддержка, только чтобы все работало и выглядело не совсем страшно).
- Некоторые второстепенные функции поддерживаются только при наличии редактора Ace
Новая версия уже в репозитории SimpleDream. Заокеанские коллеги, в частности Райан Треш, попросили выложить и в официальный репозиторий, поэтому скоро компонент будет и там.
Документация, составленная из данного поста будет находиться в docs.modx.pro
Комментарии: 25
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
Единственное при установке происходит поиск чанков и сниппетов в контенте. Тестировал на сайте с ~15000 ресурсов, заняло это 20 секунд.
Классная идея, классная реализация. Спасибо!
Особенно, на незнакомых сайтах, где не знаешь структуру — только так теперь искать чанки.
Стандартная кнопка какая-то странная, завязана на скриптах, хотя действует как ссылка с target _blank.