Как выполнить действие при клике на пункте меню?

Обсуждение вопросов и решений

Модератор: ykolesnikov

Ответить
VARD32
OTRS Новобранец
Сообщения: 55
Зарегистрирован: 09 фев 2017, 15:18

Как выполнить действие при клике на пункте меню?

Сообщение VARD32 » 13 фев 2017, 09:02

Добрый день!
Создал свой первый модуль в OTRS.
Суть модуля в том, чтобы добавить один пункт меню (Назовем этот пункт "RunTask") в конец меню Frontend::Agent::Ticket::MenuModule
Вот настройка конфига:

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

<?xml version="1.0" encoding="UTF-8" ?>
<otrs_config version="1.0" init="Application">
   <ConfigItem Name="Ticket::Frontend::MenuModule###999-RunTask" Required="0" Valid="1">
	<Description Translatable="1">FrontendModuleRegistration for custom menu module.</Description>
	<Group>Ticket</Group>
	<SubGroup>Frontend::Agent::Ticket::MenuModule</SubGroup>
	<Setting>
    	   <Hash>
	      <Item Key="Module">Kernel::Output::HTML::TicketMenuCustom::MenuModuleCustom</Item>
	      <Item Key="Name">RunTask</Item>
	      <Item Key="Action">AgentRunTask</Item>
	   </Hash>
	</Setting>
   </ConfigItem>
</otrs_config>
Вот код MenuModuleCustom:

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

package Kernel::Output::HTML::TicketMenuCustom::MenuModuleCustom;

use strict;
use warnings;

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

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

    return $Self;
}

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

    # return item
    return {
    	Name => 'RunTask',
	Description => 'Click on me & run task!',
    };
}

1;
Отображается в менюшке нормально, т.е. я вижу этот пункт меню где и хотел.

Проблема в другом,
Как мне "навесить" на клик по этому пункту меню, какое то действие?
Я сначала думал, что это делается через тэг Action в XML-конфигурации модуля.

Но как видно из примера, в XML я и указал этот самый Action,
где Action = AgentRunTask

AgentRunTask.pm лежит в каталоге /otrs/Custom/Kernel/Modules/
но толку от него никакого.
Т.е. я даже имя файла менял на gentRunTask.pm (чтобы вызвать ошибку), но то ли система его упорно не видит, то ли я что-то указал не так?

Подскажите плз. Где грабли?

Ответить