Кастомизация форм в рамках архитектуры... продолжение
Модератор: ykolesnikov
Кастомизация форм в рамках архитектуры... продолжение
Используя эту статью viewtopic.php?f=4&t=1800#p9215 создал новый пункт меню в интерфейсе клиента.
Через конфигурацию системы я могу скрыть некоторые поля, но этого недостаточно, как можно создать еще и разные шаблоны dtl для дальнейшей кастомизации?
Через конфигурацию системы я могу скрыть некоторые поля, но этого недостаточно, как можно создать еще и разные шаблоны dtl для дальнейшей кастомизации?
OTRS 4.16 Centos 6.5 x86-64
-
- OTRS Гуру
- Сообщения: 5199
- Зарегистрирован: 20 сен 2010, 18:17
- Откуда: Москва
- Благодарил (а): 92 раза
- Поблагодарили: 82 раза
Re: Кастомизация форм в рамках архитектуры... продолжение
Читать манаул разработчика. И укажите в подписи версию системы. Просто в версии OTRS 4 уже не DTL, a TT!
С уважением,
Алексей Юсов
Prod: OTRS CE ITSM 6.0.28 on CentOS 7 Apache 2.4 MariaDB 10.4.13 + Radiant Customer Portal
Radiant System OTRS Intergrator RU
Группа OTRS Community в Teleram
Хотите внедрить OTRS? Спросите меня как!
Алексей Юсов
Prod: OTRS CE ITSM 6.0.28 on CentOS 7 Apache 2.4 MariaDB 10.4.13 + Radiant Customer Portal
Radiant System OTRS Intergrator RU
Группа OTRS Community в Teleram
Хотите внедрить OTRS? Спросите меня как!
-
- OTRS Бывалый
- Сообщения: 310
- Зарегистрирован: 25 окт 2012, 15:06
- Откуда: Воронеж
- Поблагодарили: 2 раза
Re: Кастомизация форм в рамках архитектуры... продолжение
Дальше придётся вносить изменения в код 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 программист
Re: Кастомизация форм в рамках архитектуры... продолжение
Создал файл 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
Команду perl /opt/otrs/bin/otrs.RebuildConfig.pl после создания файла выполнял.
OTRS 3.3.8
OTRS 4.16 Centos 6.5 x86-64
Re: Кастомизация форм в рамках архитектуры... продолжение
Вопрос снимается, все получилось! Были проблемы с правами на файлы, в конфигах апача об этом и говорилось
Предлагаю добавить пост уважаемого merkushov к теме о кастомизации форм в рамках архитектуры, очень важное дополнение!
Предлагаю добавить пост уважаемого merkushov к теме о кастомизации форм в рамках архитектуры, очень важное дополнение!
OTRS 4.16 Centos 6.5 x86-64
Re: Кастомизация форм в рамках архитектуры... продолжение
Теперь возник следующий вопрос, а как передать динамические поля на новые формы? Через конфигурацию системы я добавляю динамические поля для CustomerTicketViewNew, но они не отображаются на моих новых шаблонах.... куда копать?
OTRS 4.16 Centos 6.5 x86-64
Re: Кастомизация форм в рамках архитектуры... продолжение
merkushov, подскажите пожалуйста как вышли из данной ситуации??
Я так понял , что эти все параметры прописаны в XML файле, в том числе и параметр на привязку динамического поля.... но почему то они не появились в Конфигурации системы, хотя остальные все присутствуют... подскажите пожалуйста, в чем тут дело?
Я так понял , что эти все параметры прописаны в XML файле, в том числе и параметр на привязку динамического поля.... но почему то они не появились в Конфигурации системы, хотя остальные все присутствуют... подскажите пожалуйста, в чем тут дело?
OTRS 4.16 Centos 6.5 x86-64
Re: Кастомизация форм в рамках архитектуры... продолжение
Никто не отвечает , поэтому сам даю ответ на свой вопрос!
Вообщем для того, чтоб появились динамические поля на CustomerTicketMessageInternal, необходимо в файле ZCustomerTicketMessageInternal.xml в самом конце найти блок который отвечает за отображение Динамических полей
Перенесите этот код выше по файлу, например, после блока, который отвечает за приоритет заявки!
Выполните perl /opt/otrs/bin/otrs.RebuildConfig.pl.
Вуаля, в конфигурации системы в настройках нашей новой формы появился пункт меню для добавления динамических полей
Вообщем для того, чтоб появились динамические поля на 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
Re: Кастомизация форм в рамках архитектуры... продолжение
И вот новая проблема ...при создании заявки выдает ошибку о том, что нужен TicketID... кому то удалось это обойти?
OTRS 4.16 Centos 6.5 x86-64
Re: Кастомизация форм в рамках архитектуры... продолжение
Разобрался, вся загвоздка была в xml файле, заново сам ручками наполнил из Ticket.xml и все заработало!
OTRS 4.16 Centos 6.5 x86-64
-
- OTRS Гуру
- Сообщения: 3119
- Зарегистрирован: 24 дек 2010, 09:27
- Откуда: Череповец
- Благодарил (а): 4 раза
- Поблагодарили: 5 раз
- Контактная информация:
Re: Кастомизация форм в рамках архитектуры... продолжение
А теперь бы, неплохо доработать с подробностями и новым опытом эту тему в HOWTOS.
С уважением Юрий Колесников
OTRS 5.0.22, ITSM 5.0.22
OpenSuse 13.2, MariaDB 10.0.22
OTRS 5.0.22, ITSM 5.0.22 тестовая
OTRS 5.0.22, ITSM 5.0.22
OpenSuse 13.2, MariaDB 10.0.22
OTRS 5.0.22, ITSM 5.0.22 тестовая
Re: Кастомизация форм в рамках архитектуры... продолжение
И вот снова проблема.... уведомление о создании новой заявки не приходит Агенту. Когда создаешь через стандартный модуль обычную заявку то все ок, а вот когда создаешь заявку через мою форму ZCustomerTicketMessageInternal, то такого уведомления нет почему то... где чего дописать нужно?
OTRS 4.16 Centos 6.5 x86-64
Re: Кастомизация форм в рамках архитектуры... продолжение
Всем привет! После обновления до версии 6 перестали работать кастомные формы.
Конфиги форм в настройках системы появились и в меню они есть, но при вызове всегда возвращается стандартный шаблон CustomerTicketMassage, а не тот что указан. При внесении изменений в файл CustomerTicketMassage.pm не происходит никакой реакции, как будто otrs продолжает использовать старую конфигурацию.
bin/otrs.Console.pl Maint::Config::Rebuild запускал, конфиг ребилдится без ошибок, но реакции нету.
Может кто подскажет что еще упустил ?
Конфиги форм в настройках системы появились и в меню они есть, но при вызове всегда возвращается стандартный шаблон CustomerTicketMassage, а не тот что указан. При внесении изменений в файл CustomerTicketMassage.pm не происходит никакой реакции, как будто otrs продолжает использовать старую конфигурацию.
bin/otrs.Console.pl Maint::Config::Rebuild запускал, конфиг ребилдится без ошибок, но реакции нету.
Может кто подскажет что еще упустил ?
-
- OTRS Гуру
- Сообщения: 5199
- Зарегистрирован: 20 сен 2010, 18:17
- Откуда: Москва
- Благодарил (а): 92 раза
- Поблагодарили: 82 раза
Re: Кастомизация форм в рамках архитектуры... продолжение
Добрый день!
1. С какой версии обновляли? Как обновляли доработки?
2. Доработки лежат в Custom?
3. CustomerTicketMassage.pm - такого файла нет. Массаж - это на другие форумы
4. В версии 6 много что изменилось.
1. С какой версии обновляли? Как обновляли доработки?
2. Доработки лежат в Custom?
3. CustomerTicketMassage.pm - такого файла нет. Массаж - это на другие форумы
4. В версии 6 много что изменилось.
С уважением,
Алексей Юсов
Prod: OTRS CE ITSM 6.0.28 on CentOS 7 Apache 2.4 MariaDB 10.4.13 + Radiant Customer Portal
Radiant System OTRS Intergrator RU
Группа OTRS Community в Teleram
Хотите внедрить OTRS? Спросите меня как!
Алексей Юсов
Prod: OTRS CE ITSM 6.0.28 on CentOS 7 Apache 2.4 MariaDB 10.4.13 + Radiant Customer Portal
Radiant System OTRS Intergrator RU
Группа OTRS Community в Teleram
Хотите внедрить OTRS? Спросите меня как!
Re: Кастомизация форм в рамках архитектуры... продолжение
Обновлял с 4й версии. XML файлы созданые ранее подхватились нормально и редактирование конфигурации для моих модулей доступно и отрабатывает, я это вижу когда вызываю их, но вот сам файл шаблона почему то остался общим, хотя я внес нужные изменения в базовый модуль CustomerTicketMessage:
sub _template_name {'CustomerTicketMessage'}
# всякий разный код
# get output back
return $Self->{LayoutObject}->Output(
TemplateFile => $Self->_template_name(),
Data => \%Param,
);
# всякий разный код
1;
Такое впечатление что переменная не подставляется , а используется та что указана в базовом модуле, хотя в 4й версии otrs все отлинчо работало
sub _template_name {'CustomerTicketMessage'}
# всякий разный код
# get output back
return $Self->{LayoutObject}->Output(
TemplateFile => $Self->_template_name(),
Data => \%Param,
);
# всякий разный код
1;
Такое впечатление что переменная не подставляется , а используется та что указана в базовом модуле, хотя в 4й версии otrs все отлинчо работало