Дано:
OTRS 3.2.3
AgentTicketZoom:
При нажатии по ссылке с ID клиента открывается AgentCustomerInformationCenter, где слева болтается Customer Company Information. Мне нужно, чтобы Customer Company Information был в AgentTicketZoom, и не приходилось бы кликать каждый раз по ID.
Добавить Customer Company Information в AgentTicketZoom
Модератор: ykolesnikov
Добавить Customer Company Information в AgentTicketZoom
Последний раз редактировалось marianna 28 мар 2013, 06:09, всего редактировалось 1 раз.
Re: Добавить Customer Company Information в AgentTicketZoom
Решено.
Редактируем AgentTicketZoom.pm
1. Сперва нужно подключить библиотеку с CustomerCompany в заголовке файла:
2. В функции sub new {} получить параметры от объявленной библиотеки:
3. Осталось теперь уже привязать данные к переменным и задать блок, в котором и будет отображаться информация о компании клиента в соответствующем DTL файле. Для этого прямо под блоком #show customer data (у меня, к примеру, строка 1338) вставляем следующий код:
Как видите, я получила данные только для CustomerCompanyName, т.е. для названия компании и назвала блок CompanyTable (вы можете обозвать его иначе). В маппинге можно посмотреть названия переменных для остальных сведений. Например, CustomerCompanyStreet, CustomerCompanyCountry и т.п.
4. Осталось поправить dtl, отвечающий за разметку - AgentTicketZoom.dtl:
В итоге получится симпатичный блок справа с информацией о компании клиента. У меня div не получил стили для оформления текста, так что пришлось кустарным способом выделить жирным label. Возможно, нужно создавать отдельный fieldset с указанием класса, тогда он подцепит стили оттуда и все будет выглядеть красивенько. Ну, а меня пока устраивает и так
Не забудьте, что $Text{"Blablabla"} берет перевод из Languages, если попытаться писать кириллицей напрямую в dtl, возникнут проблемы с кодировкой. В ru.pm добавьте строку для Customer Company Information (у меня в 3.2.3 версии OTRS эта строка оказалась почему-то не переведена).
Редактируем AgentTicketZoom.pm
1. Сперва нужно подключить библиотеку с CustomerCompany в заголовке файла:
Код: Выделить всё
use Kernel::System::CustomerCompany;
Код: Выделить всё
$Self->{CustomerCompanyObject} = Kernel::System::CustomerCompany->new(%Param);
Код: Выделить всё
my %CustomerCompanyData;
if ( $Ticket{CustomerID} ) {
%CustomerCompanyData = $Self->{CustomerCompanyObject}->CustomerCompanyGet(CustomerID=>$Ticket{CustomerID});
}
$Ticket{CustomerCompanyName}=$CustomerCompanyData{CustomerCompanyName};
$Self->{LayoutObject}->Block(
Name => 'CompanyTable',
Data => \%Ticket,
);
4. Осталось поправить dtl, отвечающий за разметку - AgentTicketZoom.dtl:
Код: Выделить всё
<div class="WidgetSimple">
<div class="Header">
<h2>$Text{"Customer Company Information"}</h2>
</div>
<div class="Content">
<!-- dtl:block:CompanyTable -->
<label><strong>$Text{"Company"}: </strong></label>
$QData{"CustomerCompanyName"}
<!-- dtl:block:CompanyTable -->
</div>
</div>
Не забудьте, что $Text{"Blablabla"} берет перевод из Languages, если попытаться писать кириллицей напрямую в dtl, возникнут проблемы с кодировкой. В ru.pm добавьте строку для Customer Company Information (у меня в 3.2.3 версии OTRS эта строка оказалась почему-то не переведена).
Последний раз редактировалось marianna 28 мар 2013, 06:10, всего редактировалось 2 раза.
-
- OTRS Гуру
- Сообщения: 5192
- Зарегистрирован: 20 сен 2010, 18:17
- Откуда: Москва
- Благодарил (а): 92 раза
- Поблагодарили: 82 раза
Re: Добавить Customer Company Information в AgentTicketZoom
С Вашего позволения перемещу в раздел HOWTO?
С уважением,
Алексей Юсов
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: Добавить Customer Company Information в AgentTicketZoom
Разумеется А я, в свою очередь, опишу подробней.alexus писал(а):С Вашего позволения перемещу в раздел HOWTO?