Plugin#
NAME#
Kernel::System::Calendar::Plugin - Plugin lib
DESCRIPTION#
Abstraction layer for appointment plugins.
PUBLIC INTERFACE#
new()#
create an object. Do not use it directly, instead use:
use Kernel::System::ObjectManager;
local $Kernel::OM = Kernel::System::ObjectManager->new();
my $PluginObject = $Kernel::OM->Get('Kernel::System::Calendar::Plugin');
PluginList()#
returns the hash of registered plugins
my $PluginList = $PluginObject->PluginList();
PluginKeys()#
returns the hash of proper plugin keys for lowercase matching
my $PluginKeys = $PluginObject->PluginKeys();
PluginFunction()#
run given plugin function with all existing params.
# LinkAdd
my $Result = $PluginObject->PluginFunction(
PluginKey => 'TicketLink',
PluginFunction => 'LinkAdd',
PluginData => {
TargetKey => 42, # TicketID, depends on TargetObject
SourceKey => 1, # AppointmentID
UserID => 1,
}
);
# LinkList
my $Result = $PluginObject->PluginFunction(
PluginKey => 'TicketLink',
PluginFunction => 'LinkList',
PluginData => {
AppointmentID => 1, # AppointmentID
UserID => 1,
URL => 'http://znuny.local/index.pl?Action=AgentTicketZoom;TicketID=%s', # optional
}
);
# LinkDelete
my $Result = $PluginObject->PluginFunction(
PluginKey => 'TicketLink',
PluginFunction => 'LinkDelete',
PluginData => {
AppointmentID => 1,
UserID => 1,
},
);
# Search
my $Result = $PluginObject->PluginFunction(
PluginKey => 'TicketLink',
PluginFunction => 'Search',
PluginData => {
UserID => 1,
Search => 'SearchTerm', # (required) Search string
# or
ObjectID => $TicketID # (required) Object ID
},
);
PluginGroups()#
return an array of plugin groups in correct order.
my @PluginGroups = $PluginObject->PluginGroups(
UserID => 123,
);
Returns:
my @PluginGroups = (
{
'Title' => 'Ticket',
'Prio' => 1000,
'Key' => 'Ticket'
},
{
'Key' => 'Miscellaneous',
'Title' => 'Miscellaneous',
'Prio' => 9000
}
);
PluginGetParam()#
Returns all params from ParamObject (Web::Request) of each plugin.
my %PluginGetParam = $PluginObject->PluginGetParam(
'Plugin_TicketCreate_PriorityID' => '3',
'Plugin_TicketCreate_Offset' => '1',
'Plugin_TicketCreate_LockID' => '2',
'Plugin_TicketCreate_TicketPendingTimeOffsetUnit' => '86400',
'Plugin_TicketCreate_QueueID[]' => '[4,1,28]',
'Plugin_TicketCreate_OffsetPoint' => 'beforestart',
'Plugin_TicketCreate_TypeID' => '105',
'Plugin_TicketCreate_OffsetUnit' => '60',
'Plugin_TicketCreate_SLAID' => '1',
'Plugin_TicketCreate_ResponsibleUserID' => '1',
'Plugin_TicketCreate_ServiceID' => '1',
'Plugin_TicketCreate_OwnerID' => '1',
'Plugin_TicketCreate_StateID' => '1',
'Plugin_TicketCreate_TimeType' => 'Never',
'Plugin_TicketLink_LinkList[]' => '[438,414]',
);
my %PluginGetParam = $PluginObject->PluginGetParam(
'Plugin[TicketCreate][Config][PriorityID]' => '3',
'Plugin[TicketCreate][Config][Offset]' => '1',
'Plugin[TicketCreate][Config][LockID]' => '2',
'Plugin[TicketCreate][Config][TicketPendingTimeOffsetUnit]' => '86400',
'Plugin[TicketCreate][Config][QueueID]' => '[4,1,28]',
'Plugin[TicketCreate][Config][OffsetPoint]' => 'beforestart',
'Plugin[TicketCreate][Config][TypeID]' => '105',
'Plugin[TicketCreate][Config][OffsetUnit]' => '60',
'Plugin[TicketCreate][Config][SLAID]' => '1',
'Plugin[TicketCreate][Config][ResponsibleUserID]' => '1',
'Plugin[TicketCreate][Config][ServiceID]' => '1',
'Plugin[TicketCreate][Config][OwnerID]' => '1',
'Plugin[TicketCreate][Config][StateID]' => '1',
'Plugin[TicketCreate][Config][TimeType]' => 'Never',
'Plugin[TicketLink][Config][LinkList]' => '[438,414]',
);
Returns:
my %PluginGetParam = (
'TicketCreate' => {
'PriorityID' => '3',
'Offset' => '1',
'LockID' => '2',
'TicketPendingTimeOffsetUnit' => '86400',
'QueueID' => [
'4',
'1',
'28'
],
'OffsetPoint' => 'beforestart',
'TypeID' => '105',
'OffsetUnit' => '60',
'SLAID' => '1',
'ResponsibleUserID' => '1',
'ServiceID' => '1',
'OwnerID' => '1',
'StateID' => '1',
'TimeType' => 'Never'
},
'TicketLink' => {
'LinkList' => [
'438',
'414'
]
}
);
DataAdd()#
creates data attributes
my $CreatedID = $PluginObject->DataAdd(
ID => '...',
AppointmentID => '...',
PluginKey => '...',
Config => '...',
CreateTime => '...',
CreateBy => '...',
ChangeTime => '...',
ChangeBy => '...',
UserID => 1,
);
Returns:
my $CreatedID = 1;
DataGet()#
get data attributes
my %Data = $PluginObject->DataGet(
ID => '...', # optional
AppointmentID => '...', # optional
PluginKey => '...', # optional
Config => '...', # optional
CreateTime => '...', # optional
CreateBy => '...', # optional
ChangeTime => '...', # optional
ChangeBy => '...', # optional
UserID => 1,
);
Returns:
my %Data = (
ID => '...',
AppointmentID => '...',
PluginKey => '...',
Config => '...',
CreateTime => '...',
CreateBy => '...',
ChangeTime => '...',
ChangeBy => '...',
);
DataListGet()#
get list data with attributes
my @Data = $PluginObject->DataListGet(
ID => '...', # optional
AppointmentID => '...', # optional
PluginKey => '...', # optional
Config => '...', # optional
CreateTime => '...', # optional
CreateBy => '...', # optional
ChangeTime => '...', # optional
ChangeBy => '...', # optional
UserID => 1,
);
Returns:
my @Data = (
{
ID => '...',
AppointmentID => '...',
PluginKey => '...',
Config => '...',
CreateTime => '...',
CreateBy => '...',
ChangeTime => '...',
ChangeBy => '...',
},
# ...
);
DataUpdate()#
update data attributes
my $Success = $PluginObject->DataUpdate(
ID => 1234,
UserID => 1,
# all other attributes are optional
);
Returns:
my $Success = 1; # 1|0
DataDelete()#
deletes data attributes - at least one is required.
my $Success = $PluginObject->DataDelete(
ID => '...', # optional
AppointmentID => '...', # optional
PluginKey => '...', # optional
Config => '...', # optional
CreateTime => '...', # optional
CreateBy => '...', # optional
ChangeTime => '...', # optional
ChangeBy => '...', # optional
UserID => 1,
);
Returns:
my $Success = 1; # 1|0
DataSearch()#
search for value in defined attributes
my %Data = $PluginObject->DataSearch(
Search => 'test*test',
ID => '...', # optional
AppointmentID => '...', # optional
PluginKey => '...', # optional
Config => '...', # optional
CreateTime => '...', # optional
CreateBy => '...', # optional
ChangeTime => '...', # optional
ChangeBy => '...', # optional
UserID => 1,
);
Returns:
my %Data = (
'1' => {
'ID' => '...',
'AppointmentID' => '...',
'PluginKey' => '...',
'Config' => '...',
'CreateTime' => '...',
'CreateBy' => '...',
'ChangeTime' => '...',
'ChangeBy' => '...',
},
# ...
);
InitConfig()#
init config for object
my $Success = $PluginObject->InitConfig();
Returns:
my $Success = 1;