Кастомизация форм в рамках архитектуры... продолжение

Запросы на решение проблем

Модератор: ykolesnikov

Ответить
Mardoc
OTRS Новобранец
Сообщения: 106
Зарегистрирован: 09 окт 2014, 10:53

Кастомизация форм в рамках архитектуры... продолжение

Сообщение Mardoc » 12 дек 2014, 12:36

Используя эту статью viewtopic.php?f=4&t=1800#p9215 создал новый пункт меню в интерфейсе клиента.
Через конфигурацию системы я могу скрыть некоторые поля, но этого недостаточно, как можно создать еще и разные шаблоны dtl для дальнейшей кастомизации?
OTRS 4.16 Centos 6.5 x86-64

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

Re: Кастомизация форм в рамках архитектуры... продолжение

Сообщение alexus » 12 дек 2014, 12:47

Читать манаул разработчика. И укажите в подписи версию системы. Просто в версии OTRS 4 уже не DTL, a TT!
С уважением,
Алексей Юсов

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

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

merkushov
OTRS Бывалый
Сообщения: 310
Зарегистрирован: 25 окт 2012, 15:06
Откуда: Воронеж
Поблагодарили: 1 раз

Re: Кастомизация форм в рамках архитектуры... продолжение

Сообщение merkushov » 12 дек 2014, 13:30

Дальше придётся вносить изменения в код OTRS. Самое простое решение для разных шаблонов, в базовом классе вынести имя шаблона в отдельный метод и переопределить метод в классе наследнике.

Класс наследник

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

# --
# Kernel/Modules/CustomerTicketMessageInternal.pm - модуль создания новой заявки для внутренних Клиентов
# --
# This software comes with ABSOLUTELY NO WARRANTY. For details, see
# the enclosed file COPYING for license information (AGPL). If you
# did not receive this file, see http://www.gnu.org/licenses/agpl.txt.
# --

package Kernel::Modules::CustomerTicketMessageInternal;

use base qw( Kernel::Modules::CustomerTicketMessage );

sub _template_name {'CustomerTicketMessageInternal'}

1;
Базовый класс

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

# --
# Kernel/Modules/CustomerTicketMessage.pm - to handle customer messages
# Copyright (C) 2001-2012 OTRS AG, http://otrs.org/
# --
# $Id: CustomerTicketMessage.pm,v 1.114 2012/11/20 14:53:45 mh Exp $
# --
# This software comes with ABSOLUTELY NO WARRANTY. For details, see
# the enclosed file COPYING for license information (AGPL). If you
# did not receive this file, see http://www.gnu.org/licenses/agpl.txt.
# --

package Kernel::Modules::CustomerTicketMessage;

sub _template_name {'CustomerTicketMessage'}

# всякий разный код

    # get output back
    return $Self->{LayoutObject}->Output(
        TemplateFile => $Self->_template_name(),
        Data         => \%Param,
    );

# всякий разный код

1;
Меркушов Виктор, perl программист

Mardoc
OTRS Новобранец
Сообщения: 106
Зарегистрирован: 09 окт 2014, 10:53

Re: Кастомизация форм в рамках архитектуры... продолжение

Сообщение Mardoc » 12 дек 2014, 14:30

Создал файл CustomerTicketMessageInternal.dtl в /otrs/Kernel/Output/Htnl/My_company, в него поместил содержимое с CustomerTicketMessage. При входе в меню пишет Internal Server Error. Убираю файл CustomerTicketMessageInternal.dtl, просто белый экран ...что не так?
Команду perl /opt/otrs/bin/otrs.RebuildConfig.pl после создания файла выполнял.
OTRS 3.3.8
OTRS 4.16 Centos 6.5 x86-64

Mardoc
OTRS Новобранец
Сообщения: 106
Зарегистрирован: 09 окт 2014, 10:53

Re: Кастомизация форм в рамках архитектуры... продолжение

Сообщение Mardoc » 12 дек 2014, 14:53

Вопрос снимается, все получилось! Были проблемы с правами на файлы, в конфигах апача об этом и говорилось :)
Предлагаю добавить пост уважаемого merkushov к теме о кастомизации форм в рамках архитектуры, очень важное дополнение!
OTRS 4.16 Centos 6.5 x86-64

Mardoc
OTRS Новобранец
Сообщения: 106
Зарегистрирован: 09 окт 2014, 10:53

Re: Кастомизация форм в рамках архитектуры... продолжение

Сообщение Mardoc » 12 дек 2014, 15:13

Теперь возник следующий вопрос, а как передать динамические поля на новые формы? Через конфигурацию системы я добавляю динамические поля для CustomerTicketViewNew, но они не отображаются на моих новых шаблонах.... куда копать?
OTRS 4.16 Centos 6.5 x86-64

Mardoc
OTRS Новобранец
Сообщения: 106
Зарегистрирован: 09 окт 2014, 10:53

Re: Кастомизация форм в рамках архитектуры... продолжение

Сообщение Mardoc » 15 дек 2014, 14:52

merkushov, подскажите пожалуйста как вышли из данной ситуации??
Я так понял , что эти все параметры прописаны в XML файле, в том числе и параметр на привязку динамического поля.... но почему то они не появились в Конфигурации системы, хотя остальные все присутствуют... подскажите пожалуйста, в чем тут дело?
OTRS 4.16 Centos 6.5 x86-64

Mardoc
OTRS Новобранец
Сообщения: 106
Зарегистрирован: 09 окт 2014, 10:53

Re: Кастомизация форм в рамках архитектуры... продолжение

Сообщение Mardoc » 15 дек 2014, 17:05

Никто не отвечает , поэтому сам даю ответ на свой вопрос!
Вообщем для того, чтоб появились динамические поля на CustomerTicketMessageInternal, необходимо в файле ZCustomerTicketMessageInternal.xml в самом конце найти блок который отвечает за отображение Динамических полей

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

    <ConfigItem Name="Ticket::Frontend::CustomerTicketMessageInternal###DynamicField" Required="0" Valid="1">
        <Description Translatable="1">Dynamic fields options shown in the ticket message screen of the customer interface. Possible settings: 0 = Disabled, 1 = Enabled, 2 = Enabled and required. NOTE. If you want to display these fields also in the ticket zoom of the customer interface, you have to enable them in CustomerTicketZoom###DynamicField.</Description>
        <Group>MyCompany</Group>
        <SubGroup>Frontend::CustomerInternal::Ticket::ViewNew</SubGroup>
        <Setting>
            <Hash>
            </Hash>
        </Setting>
    </ConfigItem>
Перенесите этот код выше по файлу, например, после блока, который отвечает за приоритет заявки!
Выполните perl /opt/otrs/bin/otrs.RebuildConfig.pl.
Вуаля, в конфигурации системы в настройках нашей новой формы появился пункт меню для добавления динамических полей :)
OTRS 4.16 Centos 6.5 x86-64

Mardoc
OTRS Новобранец
Сообщения: 106
Зарегистрирован: 09 окт 2014, 10:53

Re: Кастомизация форм в рамках архитектуры... продолжение

Сообщение Mardoc » 16 дек 2014, 17:13

И вот новая проблема ...при создании заявки выдает ошибку о том, что нужен TicketID... кому то удалось это обойти?
OTRS 4.16 Centos 6.5 x86-64

Mardoc
OTRS Новобранец
Сообщения: 106
Зарегистрирован: 09 окт 2014, 10:53

Re: Кастомизация форм в рамках архитектуры... продолжение

Сообщение Mardoc » 17 дек 2014, 12:18

Разобрался, вся загвоздка была в xml файле, заново сам ручками наполнил из Ticket.xml и все заработало!
OTRS 4.16 Centos 6.5 x86-64

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

Re: Кастомизация форм в рамках архитектуры... продолжение

Сообщение ykolesnikov » 17 дек 2014, 12:51

А теперь бы, неплохо доработать с подробностями и новым опытом эту тему в HOWTOS. 8-)
С уважением Юрий Колесников
OTRS 5.0.22, ITSM 5.0.22
OpenSuse 13.2, MariaDB 10.0.22
OTRS 5.0.22, ITSM 5.0.22 тестовая

Mardoc
OTRS Новобранец
Сообщения: 106
Зарегистрирован: 09 окт 2014, 10:53

Re: Кастомизация форм в рамках архитектуры... продолжение

Сообщение Mardoc » 28 янв 2015, 11:59

И вот снова проблема.... уведомление о создании новой заявки не приходит Агенту. Когда создаешь через стандартный модуль обычную заявку то все ок, а вот когда создаешь заявку через мою форму ZCustomerTicketMessageInternal, то такого уведомления нет почему то... где чего дописать нужно?
OTRS 4.16 Centos 6.5 x86-64

denionzz
OTRS Новобранец
Сообщения: 11
Зарегистрирован: 03 окт 2013, 10:17

Re: Кастомизация форм в рамках архитектуры... продолжение

Сообщение denionzz » 13 ноя 2018, 12:13

Всем привет! После обновления до версии 6 перестали работать кастомные формы.
Конфиги форм в настройках системы появились и в меню они есть, но при вызове всегда возвращается стандартный шаблон CustomerTicketMassage, а не тот что указан. При внесении изменений в файл CustomerTicketMassage.pm не происходит никакой реакции, как будто otrs продолжает использовать старую конфигурацию.
bin/otrs.Console.pl Maint::Config::Rebuild запускал, конфиг ребилдится без ошибок, но реакции нету.
Может кто подскажет что еще упустил ? :)

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

Re: Кастомизация форм в рамках архитектуры... продолжение

Сообщение alexus » 13 ноя 2018, 12:21

Добрый день!

1. С какой версии обновляли? Как обновляли доработки?
2. Доработки лежат в Custom?
3. CustomerTicketMassage.pm - такого файла нет. Массаж - это на другие форумы :D
4. В версии 6 много что изменилось.
С уважением,
Алексей Юсов

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

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

denionzz
OTRS Новобранец
Сообщения: 11
Зарегистрирован: 03 окт 2013, 10:17

Re: Кастомизация форм в рамках архитектуры... продолжение

Сообщение denionzz » 13 ноя 2018, 15:44

Обновлял с 4й версии. XML файлы созданые ранее подхватились нормально и редактирование конфигурации для моих модулей доступно и отрабатывает, я это вижу когда вызываю их, но вот сам файл шаблона почему то остался общим, хотя я внес нужные изменения в базовый модуль CustomerTicketMessage:
sub _template_name {'CustomerTicketMessage'}
# всякий разный код
# get output back
return $Self->{LayoutObject}->Output(
TemplateFile => $Self->_template_name(),
Data => \%Param,
);
# всякий разный код
1;

Такое впечатление что переменная не подставляется , а используется та что указана в базовом модуле, хотя в 4й версии otrs все отлинчо работало

Ответить