WEXAR

Описание работы модуля и плагина


Модуль предназначен для изменения полей и вкладок на странице редактирования документа, а так же их порядок.
Можно изменить/удалить:

  • Названия всех полей и добавить к ним описание либо всплывающую подсказку, видимость полей
  • Названия вкладок и их видимость

Так же можно менять вкладки местами, создавать новые или удалять, поля удалять нельзя но так же можно менять местами и переносить на другие вкладки, для скрытия поля достаточно изменить его видимость.

Вкладка "Общие" не удаляется и не изменяется её видимость, вкладки "Права доступа" и "Мета теги" - игнорируются !

При создании нового ТВ параметра он появляется на владке "Общие", после создания его можно перенести на нужную вкладку в режиме редактирования шаблонов (см. ниже).

При удалении ТВ параметра он так же удаляется из вывода шаблона документа.

При создании нового шаблона, расположение его вкладок и полей берётся из шаблона 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>");