UMIhelp

Разработка сайта на UMI.CMS => Настройка системы и модулей => Тема начата: atach от 12 Апреля 2016, 11:43:16

Название: Вопрос по кастомизации админчасти
Отправлено: atach от 12 Апреля 2016, 11:43:16
Подскажите такой вопрос.
Хочу что бы при редактировании к примеру "объекта каталога", кастомизировать шаблон "form.modify.xsl", только не для всех "объектов каталога", а для определенных дочерних типов "шаблонов данных" от объекта каталога. Вообще с определенным typeId.

Как это правильно сделать (если конечно понятен вопрос)?
Название: Re: Вопрос по кастомизации админчасти
Отправлено: aghigay от 12 Апреля 2016, 13:10:51
Общий концепт такой:
- создаете файл расширения для текущего form.modify.xsl
- копируете в него самый маленький кусок, который только можно использовать для расширения функционала админки
- дописываете в этот функционал свое условие на проверку типов и дальше расширяете как угодно

Или нужны конкретные "А какой файл делать и что копировать"? :-)
Название: Re: Вопрос по кастомизации админчасти
Отправлено: atach от 12 Апреля 2016, 13:29:04
Общая схема мне понятно, у меня вопрос был больше по проверки. Т.е. Как правильно проверить шаблон данных ( тип данных),  что бы отдать нужный шаблон для него.
Название: Re: Вопрос по кастомизации админчасти
Отправлено: aghigay от 12 Апреля 2016, 14:30:36
Не нужно думать, что тут есть какие-то магические элементы.

Вы просто работаете с административным представлением, которое такое же, как и обычное.
Оно так же подчиняется правилам: "допиши в конец .xml и увидишь какие данные есть на входе" и "ты просто делаешь представление для данных на входе".

Соответственно, исходя из данных на входе нужно смотреть какой именно параметр подставлять в проверку и какой результат при этом будет.
Название: Re: Вопрос по кастомизации админчасти
Отправлено: e.ioffe от 12 Апреля 2016, 22:30:44
Не знаю, как в новой админке, а в старой обычно переопределяю

<xsl:template match="page|object" mode="form-modify">
<xsl:apply-templates select="properties/group" mode="form-modify" />
</xsl:template>

Например:
<xsl:template match="page[@type-id="82"]" mode="form-modify">
<xsl:apply-templates select="properties/group" mode="form-modify" />
</xsl:template>

Стандартные шаблоны найдете в файле /styles/skins/mac/data/form.modify.xsl
Название: Re: Вопрос по кастомизации админчасти
Отправлено: atach от 31 Мая 2016, 17:48:28
А подскажите, как правильно кастомизировать основной шаблон "form.modify.xsl", который лежит:
/styles/skins/modern/data/form.modify.xsl,
файл: /styles/skins/modern/data/form.modify.custom.xsl - не подключает, только кастомы внутри модулей.

Если размещать в папке шаблона "/templates/mysite/admin/data/form.modify.xsl", то всё прекрасно работает, но из-за большого кол-ва доменом на лицензии (доработки прописаны не у всех), редакторы стали путаться. Поэтому решил перенести всё в системную папку с кастомами.
Название: Re: Вопрос по кастомизации админчасти
Отправлено: atach от 01 Июня 2016, 15:39:45
Получил ответ от "СБ" - данный шаблон не кастомизируется.
Название: Re: Вопрос по кастомизации админчасти
Отправлено: aghigay от 01 Июня 2016, 16:06:14
А кому сейчас легко? :-)
Название: Re: Вопрос по кастомизации админчасти
Отправлено: atach от 12 Июня 2016, 14:24:23
Подскажите по синтаксису. Как правильно записать логическое выражение "И". Что бы шаблон обрабатывался для определенного "object-type-id" и "Наименования поля".
<xsl:template match="object[@type-id = '138'] and field[@name = 'mtbase_city']" mode="form-modify">1</xsl:template>
Понятно то ошибка в "and", т.к. по отдельности условия отрабатывают.
Название: Re: Вопрос по кастомизации админчасти
Отправлено: e.ioffe от 12 Июня 2016, 16:32:03
<xsl:template match="object[@type-id = '138']//field[@name = 'mtbase_city']" mode="form-modify">1</xsl:template>
Название: Re: Вопрос по кастомизации админчасти
Отправлено: aghigay от 12 Июня 2016, 22:19:15
Я бы спросил, что именно вы хотите обрабатывать?

Если field - то вариант e.ioffe подходит.

Если object - то вариант должен быть такой:
<xsl:template match="object[@type-id = '138' and field/@name = 'mtbase_city']" mode="form-modify">1</xsl:template>
или такой
<xsl:template match="object[@type-id = '138'][field/@name = 'mtbase_city']" mode="form-modify">1</xsl:template>