[EVO] templatesEdit — модуль и плагин для изменения вида документов в админ панели MODX
Описание работы модуля и плагина
Модуль предназначен для изменения полей и вкладок на странице редактирования документа, а так же их порядок.
Можно изменить/удалить:
- Названия всех полей и добавить к ним описание либо всплывающую подсказку, видимость полей
- Названия вкладок и их видимость
Так же можно менять вкладки местами, создавать новые или удалять, поля удалять нельзя но так же можно менять местами и переносить на другие вкладки, для скрытия поля достаточно изменить его видимость.
Вкладка "Общие" не удаляется и не изменяется её видимость, вкладки "Права доступа" и "Мета теги" - игнорируются !
При создании нового ТВ параметра он появляется на владке "Общие", после создания его можно перенести на нужную вкладку в режиме редактирования шаблонов (см. ниже).
При удалении ТВ параметра он так же удаляется из вывода шаблона документа.
При создании нового шаблона, расположение его вкладок и полей берётся из шаблона blank, по этому желательно сразу после установки и подключения плагина, нужно зайти в любой документ с шаблоном blank и выставить желательное расположение полей которое будет использоваться в других шаблонах по умолчанию.
Если в документе с шаблоном blank нажать "Сбросить шаблон по умолчанию", то расположение вернётся в первозданному виду.
Если настроили вид шаблона blank, и лень во всех шаблонах делать одно и тоже, можно на странице модуля нажать Установить шаблоны по шаблону blank и тогда все шаблоны перезапишутся по маске шаблона blank.
Последняя версия на GitHub
Установка модуля и плагина
Устанавливаете модуль с кодом
//<?php
/*
* Управление шаблонами
*
* templatesEdit
*/
include_once(MODX_BASE_PATH.'assets/modules/templatesEdit/module.templatesedit.php');
Устанавливаете плагин templatesEdit ,
События OnDocFormTemplateRender, OnTVFormDelete, OnTVFormSave, OnTempFormDelete, OnTempFormSave
Настройки плагина &editableTemplate=Редактировать шаблоны;list;true,false;true &altRenderTemplate=Альтернативный вывод шаблона (div);list;true,false;false
//<?php
/* templatesEdit
* plugin
* @events OnDocFormTemplateRender, OnTVFormDelete, OnTVFormSave, OnTempFormDelete, OnTempFormSave
* @settings &editableTemplate=Редактировать шаблоны;list;true,false;true &altRenderTemplate=Альтернативный вывод шаблона (div);list;true,false;false &loadJquery=Load JQuery;list;true,false;true
*/
require_once MODX_BASE_PATH."assets/modules/templatesEdit/plugin/plugin.templatesedit.php";
Для включения режима редактирования шаблонов, в настройках плагина "Редактировать шаблоны" - true,
для использования альтернативного вывода шаблонов (на div-ах) "Альтернативный вывод шаблона (div)" - true
Далее нужно добавить событие OnDocFormTemplateRender в ядро MODX.
В файле manager/actions/mutate_content.dynamic.php перед строчкой
<!-- General -->
ставите
<?php
$evtOut = $modx->invokeEvent('OnDocFormTemplateRender', array(
'id' => $id
));
if (is_array($evtOut)) {
echo implode('', $evtOut);
} else {
?>
и после строчки
</div><!-- end #tabSettings -->
ставите
<?php } ?>
После изменений плагин начнёт работать.
При выборе Алтернативного шаблона в настройках плагина возможны проблемы с виджетами плагина ManagerManager, к примеру виджет mm_widget_showimagetvs не показывает картинку, для исправления достаточно изменить немного код самого виджета.
В файле assets/plugins/managermanager/widgets/showimagetvs/showimagetvs.php изменить строчку
$j("#tv'.$tv['id'].'").parents("td").append("<div class=\"tvimage\" id=\"tv'.$tv['id'].'PreviewContainer\"><img src=\""+url+"\" style=\""+'.$style.'+"\" id=\"tv'.$tv['id'].'Preview\"/></div>");
заменить на ( замена parents("td") на parent() )
$j("#tv'.$tv['id'].'").parent().append("<div class=\"tvimage\" id=\"tv'.$tv['id'].'PreviewContainer\"><img src=\""+url+"\" style=\""+'.$style.'+"\" id=\"tv'.$tv['id'].'Preview\"/></div>");