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

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

Модератор: 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 Гуру
Сообщения: 4649
Зарегистрирован: 20 сен 2010, 18:17
Откуда: Москва
Благодарил (а): 23 раза
Поблагодарили: 24 раза

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
Radiant System OTRS Intergrator EN
Хотите внедрить OTRS? Спросите меня как!
Следите за нашими новостями на Facebook

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 Гуру
Сообщения: 3115
Зарегистрирован: 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 Новобранец
Сообщения: 8
Зарегистрирован: 03 окт 2013, 10:17

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

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

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

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

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
Radiant System OTRS Intergrator EN
Хотите внедрить OTRS? Спросите меня как!
Следите за нашими новостями на Facebook

denionzz
OTRS Новобранец
Сообщения: 8
Зарегистрирован: 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 все отлинчо работало

Ответить