Создание шаблонов заявок. Часть 1 (обновл. для v.4.x)

Только для готовых решений! Пожалуйста, не используйте для вопросов и обсуждений!

Модератор: ykolesnikov

Ответить
firebolt
OTRS Новобранец
Сообщения: 177
Зарегистрирован: 13 сен 2012, 13:46

Создание шаблонов заявок. Часть 1 (обновл. для v.4.x)

Сообщение firebolt » 05 ноя 2012, 14:18

Создаем шаблоны заявок на странице создания новой телефонной заявки в агентской части OTRS.
screen.png
screen.png (21.7 КБ) 22816 просмотров
Для того, чтобы включить кнопки на странице создания телефонной заявки в агентской части делаем следующее:

Создаем файл кастомного перевода - переходим в ./otrs/Kernel/Language и копируем xx_Custom.pm в ru_Custom.pm. В созданном файле в первых строках меняем имя пакета с xx на ru и вставляем свой код (я привожу свой):

Код: Выделить всё

 $Self->{Translation}->{'Templates'} = 'Шаблоны служебок';		
 $Self->{Translation}->{'Sysblock'} = 'Ремонт системного блока';
 $Self->{Translation}->{'Periphery'} = 'Ремонт периферийного оборудования';
 $Self->{Translation}->{'BodySysblock'} = 'Прошу вас произвести ремонт системного блока компьютера...';
 $Self->{Translation}->{'BodyPeriphery'} = 'Прошу вас произвести ремонт (вместо этого текста указать...';
Если у вас уже имеется файл кастомного перевода от версии OTRS 3.х, то примите во внимание вот это

Затем делаем следующие изменения

Для версии 3.х

Открываем файл ./otrs/Kernel/Output/HTML/Standard/AgentTicketPhone.dtl и снимаем комментирование с секции, начинающейся со слов

Код: Выделить всё

# example template for customizations, see hidden form at the end of the file
У меня это была строка №44
Заполняем нужным нам содержимым. Не забывайте изменять номер шаблона в строке указания действия onclick="$('#Template1').submit(). Я вставляю свое готовое c созданными двумя кнопками.

Код: Выделить всё

# example template for customizations, see hidden form at the end of the file
 <label>$Text{"Templates"}:</label>
 <div class="Field">
 <button type="button" onclick="$('#Template1').submit()" value="$Text{"Sysblock"}">$Text{"Sysblock"}</button>
 <button type="button" onclick="$('#Template2').submit()" value="$Text{"Periphery"}">$Text{"Periphery"}</button>
 </div>
 <div class="Clear"></div>
Строки $Text{"Sysblock"} и другие мы берем из созданного файла кастомного перевода ru_Custom.pm. Вместо этих ключей на сформированной странице будет вставлено содержимое, указанное в этом файле перевода.

Как указано в начале секции, переходим в конец этого файла и снимаем комментирование c секции

Код: Выделить всё

# example template form for customizations
<form action="$Env{"CGIHandle"}" method="post" enctype="multipart/form-data" id="Template1">
 <input type="hidden" name="Action" value="$Env{"Action"}"/>
 <input type="hidden" name="Subaction" value="StoreNew"/>
 <input type="hidden" name="FormID" value="$QData{"FormID"}"/>
 <input type="hidden" name="ExpandCustomerName" value="1"/>
 <input type="hidden" name="Subject" value="$Text{"Sysblock"}"/>
 <input type="hidden" name="Body" value="$Text{"BodySysblock"}"/>
 <input type="hidden" name="TypeID" value="2"/>
</form>
Здесь описаны действия, которые будут выполняться при нажатии на созданные прежде кнопки. Копируем нужное количество форм и заполняем нужным нам содержимым, не забывая изменять Template id.

Код: Выделить всё

<form action="$Env{"CGIHandle"}" method="post" enctype="multipart/form-data" id="Template1">
Строка <input type="hidden" name="TypeID" value="2"/> была добавлена для автовыбора типа заявки. Этот хитрый трюк был осуществлен путем инспектирования средствами вэб-браузера элемента "Тип" на сформированной html-странице, определения типа элемента и поиска этого типа в коде страницы. Таким образом мы определили, что вписать в name="TypeID" и какое значение выставить в value="2"


Для версии 4.0

Читайте инструкцию для версии 3.х. Отличия заключаются в следующем:

Редактировать нужно будет файл ./otrs/Kernel/Output/HTML/Standard/AgentTicketPhone.tt
Правка начинается со строки №62
Вместо значения "$Text{"Sysblock"}" нужно вводить значение "[% Translate("Sysblock") | html %]". Отличия выделены красным цветом.

Примеры созданных кнопок:

Код: Выделить всё

<button type="button" onclick="$('#Template1').submit()" value="[% Translate("Sysblock") | html %]">[% Translate("Sysblock") | html %]</button>
<button type="button" onclick="$('#Template2').submit()" value="[% Translate("Periphery") | html %]">[% Translate("Periphery") | html %]</button>
Примеры выполняемых кнопками действий:

Код: Выделить всё

# example template form for customizations
<form action="[% Env("CGIHandle") %]" method="post" enctype="multipart/form-data" id="Template1">
   <input type="hidden" name="Action" value="[% Env("Action") %]"/>
   <input type="hidden" name="Subaction" value="StoreNew"/>
   <input type="hidden" name="FormID" value="[% Data.FormID | html %]"/>
   <input type="hidden" name="ExpandCustomerName" value="1"/>
   <input type="hidden" name="Subject" value="[% Translate("Sysblock") | html %]"/>
   <input type="hidden" name="Body" value="[% Translate("BodySysblockAgent") | html %]"/>
   <input type="hidden" name="TypeID" value="2"/>
</form>

<form action="[% Env("CGIHandle") %]" method="post" enctype="multipart/form-data" id="Template2">
   <input type="hidden" name="Action" value="[% Env("Action") %]"/>
   <input type="hidden" name="Subaction" value="StoreNew"/>
   <input type="hidden" name="FormID" value="[% Data.FormID | html %]"/>
   <input type="hidden" name="ExpandCustomerName" value="1"/>
   <input type="hidden" name="Subject" value="[% Translate("Periphery") | html %]"/>
   <input type="hidden" name="Body" value="[% Translate("BodyPeripheryAgent") | html %]"/>
   <input type="hidden" name="TypeID" value="3"/>
</form>
Проверяем. Радуемся.

Если остаются вопросы, смотрим это видео. Если после просмотра вопросы остались, пишите в личку.

Спасибо merkushov'у за помощь c файлом кастомного перевода.
Последний раз редактировалось firebolt 05 дек 2014, 06:41, всего редактировалось 1 раз.
Версия OTRS (6.0.10)
Debian 9 Stretch
Версия СУБД (MySQL 5.7.22)

alexus
OTRS Гуру
Сообщения: 4802
Зарегистрирован: 20 сен 2010, 18:17
Откуда: Москва
Благодарил (а): 33 раза
Поблагодарили: 33 раза

Re: Создание шаблонов заявок. Часть 1

Сообщение alexus » 07 июн 2013, 22:59

Все проблемы и вопросы - в другие разделы форума.
С уважением,
Алексей Юсов

Prod: OTRS ITSM 5.0.14 on CentOS 7 x64 Linux with MySQL 5.7

Radiant System OTRS Intergrator RU
Группа OTRS Community в Teleram
Хотите внедрить OTRS? Спросите меня как!

orient_19
OTRS Новобранец
Сообщения: 20
Зарегистрирован: 10 ноя 2015, 12:13
Откуда: г. Иркутск

Re: Создание шаблонов заявок. Часть 1 (обновл. для v.4.x)

Сообщение orient_19 » 10 ноя 2015, 12:17

Здравствуйте!
Приведенное выше руководство работает и для OTRS 5.02, однако изменился путь к файлам *.tt - теперь они находятся в директории "/opt/otrs/Kernel/Output/HTML/Templates/Standard".
С уважением, Александр Шабалин
OTRS 5.0.5, CentOS 6.7, MySQL 5.1.73

ykolesnikov
OTRS Гуру
Сообщения: 3116
Зарегистрирован: 24 дек 2010, 09:27
Откуда: Череповец
Благодарил (а): 4 раза
Поблагодарили: 4 раза
Контактная информация:

Re: Создание шаблонов заявок. Часть 1 (обновл. для v.4.x)

Сообщение ykolesnikov » 10 ноя 2015, 13:47

orient_19 писал(а):Здравствуйте!
Приведенное выше руководство работает и для OTRS 5.02, однако изменился путь к файлам *.tt - теперь они находятся в директории "/opt/otrs/Kernel/Output/HTML/Templates/Standard".
Вынужден поправить.
Путь будет следующим "/opt/otrs/Kernel/Output/HTML/Templates/Имя кастомной папки".
Потому что помещать измененные модули в исходную папку Standard, в данном случае нельзя. При обновлении они будут затерты.
С уважением Юрий Колесников
OTRS 5.0.22, ITSM 5.0.22
OpenSuse 13.2, MariaDB 10.0.22
OTRS 5.0.22, ITSM 5.0.22 тестовая

ykolesnikov
OTRS Гуру
Сообщения: 3116
Зарегистрирован: 24 дек 2010, 09:27
Откуда: Череповец
Благодарил (а): 4 раза
Поблагодарили: 4 раза
Контактная информация:

Re: Создание шаблонов заявок. Часть 1 (обновл. для v.4.x)

Сообщение ykolesnikov » 29 мар 2017, 10:41

Обнаружил нюанс.
В .tt файле в блоке описания действий по кнопке шаблона

Код: Выделить всё

#######        Кнопка - Заказ автотранспорта в ЦКО     ##############
<form action="[% Env("CGIHandle") %]" method="post" enctype="multipart/form-data" id="Template5">
    <input type="hidden" name="Action" value="[% Env("Action") %]"/>
    <input type="hidden" name="Subaction" value="StoreNew"/>
    <input type="hidden" name="FormID" value="[% Data.FormID | html %]"/>
    <input type="hidden" name="ExpandCustomerName" value="1"/>
    <input type="hidden" name="Subject" value="[% Translate("OrderTransport") | html %]"/>
    <input type="hidden" name="Body" value="[% Translate("BodyOrderTransport") | html %]"/>
    <input type="hidden" name="TypeID" value="55"/>
    <input type="hidden" name="DynamicField_CategoryName" value="250"/>

Код: Выделить всё

    <input type="hidden" name="Dest" value="56||ЦКО для заявок автотранспорта"/></form>

Код: Выделить всё

    <input type="hidden" name="Expand" value="1"/>
</form>
Есть строка с описанием заполнения поля "Получатель" - "Dest"(специально ее отделил выше). В значении value - указывается ID очереди и её имя.
Так вот ранее, у меня имя очереди начиналось с цифр для некоего упорядочения в выпадающих списках.
Но, оказалось, что если клиент перед отправкой заявки меняет умалчиваемый приоритет, то поле очереди - очищается и его надо заполнять заново, т.к. оно обязательно. После того, как убрал цифры из имени очереди, как в примере выше, все работает нормально.
До этого все ругал клиентов, что отправляют заявки не в ту очередь, хотя она заполняется автоматом, но никто из них не уточнял когда именно это происходит - очистка поля. :P
С уважением Юрий Колесников
OTRS 5.0.22, ITSM 5.0.22
OpenSuse 13.2, MariaDB 10.0.22
OTRS 5.0.22, ITSM 5.0.22 тестовая

aceko
OTRS Новобранец
Сообщения: 52
Зарегистрирован: 03 мар 2015, 16:49

Re: Создание шаблонов заявок. Часть 1 (обновл. для v.4.x)

Сообщение aceko » 04 апр 2017, 09:54

ykolesnikov писал(а):Но, оказалось, что если клиент перед отправкой заявки меняет умалчиваемый приоритет, то поле очереди - очищается и его надо заполнять заново, т.к. оно обязательно. После того, как убрал цифры из имени очереди, как в примере выше, все работает нормально.
До этого все ругал клиентов, что отправляют заявки не в ту очередь, хотя она заполняется автоматом, но никто из них не уточнял когда именно это происходит - очистка поля. :P
Перенеси код шаблонов выше у тебя шаблоны попадают в скрипт обновления полей. http://prntscr.com/es79v6
Otrs 4.0.14 / Ubuntu 14 / PostgreSQL 9.3

Ответить