Article#

NAME#

Kernel::Output::HTML::Layout::Article - Helper functions for article rendering.

PUBLIC INTERFACE#

ArticleFields()#

Get article fields as returned by specific article backend.

my %ArticleFields = $LayoutObject->ArticleFields(
    TicketID  => 123,   # (required)
    ArticleID => 123,   # (required)
);

Returns article fields hash:

%ArticleFields = (
    Sender => {                     # mandatory
        Label => 'Sender',
        Value => 'John Smith',
        Prio  => 100,
    },
    Subject => {                    # mandatory
        Label => 'Subject',
        Value => 'Message',
        Prio  => 200,
    },
    ...
);

ArticlePreview()#

Get article content preview as returned by specific article backend.

my $ArticlePreview = $LayoutObject->ArticlePreview(
    TicketID   => 123,     # (required)
    ArticleID  => 123,     # (required)
    ResultType => 'plain', # (optional) plain|HTML, default: HTML
    MaxLength  => 50,      # (optional) performs trimming (for plain result only)
);

Returns article preview in scalar form:

$ArticlePreview = 'Hello, world!';

ArticleActions()#

Get available article actions as returned by specific article backend.

my @Actions = $LayoutObject->ArticleActions(
    TicketID  => 123,     # (required)
    ArticleID => 123,     # (required)
);

Returns article action array:

@Actions = (
   {
       ItemType              => 'Dropdown',
       DropdownType          => 'Reply',
       StandardResponsesStrg => $StandardResponsesStrg,
       Name                  => 'Reply',
       Class                 => 'AsPopup PopupType_TicketAction',
       Action                => 'AgentTicketCompose',
       FormID                => 'Reply' . $Article{ArticleID},
       ResponseElementID     => 'ResponseID',
       Type                  => $Param{Type},
   },
   {
       ItemType    => 'Link',
       Description => 'Forward article via mail',
       Name        => 'Forward',
       Class       => 'AsPopup PopupType_TicketAction',
       Link =>
           "Action=AgentTicketForward;TicketID=$Ticket{TicketID};ArticleID=$Article{ArticleID}"
   },
   ...
);

ArticleCustomerRecipientsGet()#

Get customer users from an article to use as recipients.

my @CustomerUserIDs = $LayoutObject->ArticleCustomerRecipientsGet(
    TicketID  => 123,     # (required)
    ArticleID => 123,     # (required)
);

Returns array of customer user IDs who should receive a message:

@CustomerUserIDs = (
    'customer-1',
    'customer-2',
    ...
);

ArticleQuote()#

get body and attach e. g. inline documents and/or attach all attachments to upload cache

for forward or split, get body and attach all attachments

my $HTMLBody = $LayoutObject->ArticleQuote(
    TicketID           => 123,
    ArticleID          => 123,
    FormID             => $Self->{FormID},
    UploadCacheObject   => $Self->{UploadCacheObject},
    AttachmentsInclude => 1,
);

or just for including inline documents to upload cache

my $HTMLBody = $LayoutObject->ArticleQuote(
    TicketID           => 123,
    ArticleID          => 123,
    FormID             => $Self->{FormID},
    UploadCacheObject  => $Self->{UploadCacheObject},
    AttachmentsInclude => 0,
);

Both will also work without rich text (if $ConfigObject->Get(‘Frontend::RichText’) is false), return param will be text/plain instead.