Групповое редактирование ресурсов (документов) с помощью MIGXDB. Групповое редактирование ресурсов modx
Групповое редактирование ресурсов (документов) с помощью MIGXDB
Групповое редактирование ресурсов (документов) с помощью MIGXDB / Хабр
{ "formtabs":[ { "MIGX_id":1, "caption":"Основные данные", "print_before_tabs":"0", "fields":[ { "MIGX_id":1, "field":"pagetitle", "caption":"Заголовок", "description":"", "description_is_code":"0", "inputTV":"", "inputTVtype":"", "configs":"", "sourceFrom":"config", "sources":"[]", "inputOptionValues":"", "default":"" }, { "MIGX_id":10, "field":"alias", "caption":"Псевдоним", "description":"", "description_is_code":"0", "inputTV":"", "inputTVtype":"", "configs":"", "sourceFrom":"config", "sources":"[]", "inputOptionValues":"", "default":"" }, { "MIGX_id":6, "field":"introtext", "caption":"Краткое описание", "description":"", "description_is_code":"0", "inputTV":"", "inputTVtype":"textarea", "configs":"", "sourceFrom":"config", "sources":"[]", "inputOptionValues":"", "default":"" }, { "MIGX_id":7, "field":"image", "caption":"Картинка", "description":"", "description_is_code":"0", "inputTV":"image", "inputTVtype":"", "configs":"", "sourceFrom":"config", "sources":"[]", "inputOptionValues":"", "default":"" }, { "MIGX_id":4, "field":"price", "caption":"Цена", "description":"", "description_is_code":"0", "inputTV":"price", "inputTVtype":"", "configs":"", "sourceFrom":"config", "sources":"[]", "inputOptionValues":"", "default":"" }, { "MIGX_id":5, "field":"context_key", "caption":"Контекст", "description":"", "description_is_code":"0", "inputTV":"", "inputTVtype":"listbox", "configs":"", "sourceFrom":"config", "sources":"[]", "inputOptionValues":"catalog||web", "default":"catalog" }, { "MIGX_id":2, "field":"template", "caption":"Шаблон", "description":"", "description_is_code":"0", "inputTV":"", "inputTVtype":"hidden", "configs":"", "sourceFrom":"config", "sources":"[]", "inputOptionValues":"", "default":5 }, { "MIGX_id":8, "field":"show_in_tree", "caption":"Показывать в дереве?", "description":"", "description_is_code":"0", "inputTV":"", "inputTVtype":"listbox", "configs":"", "sourceFrom":"config", "sources":"[]", "inputOptionValues":"no==0||yes==1", "default":"" }, { "MIGX_id":9, "field":"published", "caption":"Опубликован", "description":"", "description_is_code":"0", "inputTV":"", "inputTVtype":"hidden", "configs":"", "sourceFrom":"config", "sources":"[]", "inputOptionValues":"", "default":1 } ] }, { "MIGX_id":2, "caption":"Подробное описание", "print_before_tabs":"0", "fields":[ { "MIGX_id":1, "field":"content", "caption":"Описание", "description":"", "description_is_code":"0", "inputTV":"", "inputTVtype":"richtext", "configs":"", "sourceFrom":"config", "sources":"[]", "inputOptionValues":"", "default":"" } ] } ], "contextmenus":"recall_remove_delete", "actionbuttons":"addItem||bulk||toggletrash", "columnbuttons":"update||publish||unpublish||recall_remove_delete", "filters":[ { "MIGX_id":1, "name":"search", "label":"search", "emptytext":"Поиск...", "type":"textbox", "getlistwhere":{ "pagetitle:LIKE":"%[[+search]]%", "OR:longtitle:LIKE":"%[[+search]]%", "OR:content:LIKE":"%[[+search]]%" }, "getcomboprocessor":"", "combotextfield":"", "comboidfield":"", "comboparent":"", "default":"" } ], "extended":{ "migx_add":"Добавить", "formcaption":"Дочерний ресурс", "update_win_title":"", "win_id":"child_resources", "maxRecords":"", "addNewItemAt":"bottom", "multiple_formtabs":"", "extrahandlers":"", "packageName":"", "classname":"modResource", "task":"resconnections", "getlistsort":"id", "getlistsortdir":"desc", "use_custom_prefix":"0", "prefix":"", "grid":"", "gridload_mode":1, "check_resid":"0", "check_resid_TV":"", "join_alias":"", "has_jointable":"yes", "getlistwhere":"", "joins":"", "cmpmaincaption":"", "cmptabcaption":"", "cmptabdescription":"", "cmptabcontroller":"", "winbuttons":"", "onsubmitsuccess":"", "submitparams":"" }, "columns":[ { "MIGX_id":1, "header":"ID", "dataIndex":"id", "width":50, "sortable":true, "show_in_grid":1, "renderer":"", "clickaction":"", "selectorconfig":"", "renderchunktpl":"", "renderoptions":"[]" }, { "MIGX_id":2, "header":"Заголовок", "dataIndex":"pagetitle", "width":300, "sortable":true, "show_in_grid":1, "renderer":"this.renderRowActions", "clickaction":"", "selectorconfig":"", "renderchunktpl":"", "renderoptions":"[]" }, { "MIGX_id":3, "header":"Цена", "dataIndex":"price", "width":100, "sortable":true, "show_in_grid":1, "renderer":"", "clickaction":"", "selectorconfig":"", "renderchunktpl":"", "renderoptions":"[]" }, { "MIGX_id":4, "header":"Опубликован", "dataIndex":"published", "width":100, "sortable":"false", "show_in_grid":1, "renderer":"this.renderCrossTick", "clickaction":"", "selectorconfig":"", "renderchunktpl":"", "renderoptions":"[]" }, { "MIGX_id":5, "header":"Удален", "dataIndex":"deleted", "width":"", "sortable":"false", "show_in_grid":"0", "renderer":"", "clickaction":"", "selectorconfig":"", "renderchunktpl":"", "renderoptions":"[]" } ] }modDevTools в помощь MODX разработчику
Доделал первоначальные задумки для дополнения, которое, надеюсь, поможет разработчикам быстрее и проще работать в админке MODX Revolution. Что компонент умеет на момент релиза стабильной первой версии:На странице редактирования чанка добавляются вкладки, в которых можно изменять связанные объекты: «Шаблоны» — код шаблонов, в которых выводится данный чанк. Если установлен Ace, появляется выделение чанка в коде шаблонов. «Чанки» — код чанков, которые вызываются в данном чанке. Параметры сниппетов, указанные при вызове и по умолчанию, и которые являются чанками, тоже выводятся здесь. «Сниппеты» — код сниппетов, которые вызываются в данном чанке. Под кодом сниппетов можно развернуть описание их параметров по умолчанию. «Ресурсы» — список ресурсов, в шаблоне или контенте которых вызывается тем или иным образом данный чанк. Можно перейти на редактирование ресурса, открыть его в браузере, быстро изменить шаблон, статус публикации или удалить в корзину.
На странице редактирования шаблона добавляются следующие вкладки: «Чанки» — код чанков, которые вызываются в данном шаблоне. «Сниппеты» — код сниппетов, которые вызываются в данном шаблоне. «Ресурсы» — список ресурсов с данным шаблоном.
На странице редактирования сниппета добавляется вкладка с ресурсами, в шаблоне или контенте которых вызывается данный сниппет.
На странице редактирования ресурса добавляются так называемые «Хлебные крошки» (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
modx.ru