Ссылка на редактирование клиента из заявки

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

Модератор: ykolesnikov

Ответить
alex
OTRS Новобранец
Сообщения: 48
Зарегистрирован: 01 ноя 2010, 14:47
Откуда: Воронеж
Контактная информация:

Ссылка на редактирование клиента из заявки

Сообщение alex » 16 июн 2012, 15:40

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

1. Создать файл CustomerUserEditLink.pm и поместить его в Custom/Kernel/Output/HTML (если каталог не существует, нужно создать его), после чего перезапустить веб-сервер

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

package Kernel::Output::HTML::CustomerUserEditLink;

use strict;
use warnings;

use vars qw($VERSION);
$VERSION = qw($Revision: 1.20 $) [1];

sub new {
    my ( $Type, %Param ) = @_;

    # allocate new hash for object
    my $Self = {};
    bless( $Self, $Type );

    # get needed objects
    for (
        qw(ConfigObject LogObject DBObject LayoutObject TicketObject MainObject EncodeObject UserID)
        )
    {
        $Self->{$_} = $Param{$_} || die "Got no $_!";
    }

    return $Self;
}

sub Run {
    my ( $Self, %Param ) = @_;

    # build url
    my $login=$Self->{DBObject}->QueryStringEscape( QueryString => $Param{Data}->{UserLogin} );
    my $Action    = $Param{Config}->{Action};
    my $Subaction = $Param{Config}->{Subaction};
    my $URL       = $Self->{LayoutObject}->{Baselink} . "Action=$Action;Subaction=$Subaction";
    $URL .= ';ID=' . $Self->{LayoutObject}->LinkEncode($login);


    my $CSSClass = $Param{Config}->{CSSClass};

    # generate block
    $Self->{LayoutObject}->Block(
        Name => 'CustomerItemRow',
        Data => {
            %{ $Param{Config} },
            CSSClass  => $CSSClass,
            URL       => $URL,
        },
    );

    return 1;
}

1;
2. Создать файл Tıcket_custom.xml в каталоге Kernel/Config/Files:

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

<?xml version="1.0" encoding="utf-8"?>
<otrs_config version="1.0" init="Application">
    <CVS>$Id: Ticket_custom.xml,v 1.000 2012/06/16 16:00:00 mg Exp $</CVS>
     <ConfigItem Name="Frontend::CustomerUser::Item###EditCustomer" Required="0" Valid="1">
     <Description Translatable="1"></Description>
         <Group>Ticket</Group>
         <SubGroup>Frontend::Customer</SubGroup>
             <Setting>
                 <Hash>
                     <Item Key="Module">Kernel::Output::HTML::CustomerUserEditLink</Item>
                     <Item Key="CSS">Core.Agent.CustomerUser.OpenTicket.css</Item>
                     <Item Key="CSSClass">NoOpenTicket</Item>
                     <Item Key="Target">_blank</Item>
                     <Item Key="Text" Translatable="1">Edit customer</Item>
                     <Item Key="Action">AdminCustomerUser</Item>
                     <Item Key="Subaction">Change</Item>
                 </Hash>
             </Setting>
     </ConfigItem>
</otrs_config>
3. В Ticket -> Frontend::Customer включить Frontend::CustomerUser::Item###EditCustomer

Ссылка на редактирование появится в поле Информация о клиенте (пример на скриншоте)
Вложения
customer_info.png
customer_info.png (22.94 КБ) 5253 просмотра
OTRS::ITSM 5.0.5

Ответить