Standardmäßig kann man nur ein einzelnes ResponseFormat konfigurieren, in dem normalerweise der alte Nachrichtentext wiederholt wird. Dies ist für Kunden, die nur per Email kommunizieren sinnvoll, damit diese die Antwort besser zuordnen können.
Möchte man nun aber mit einem Kunden die Ticketsysteme koppeln und den alten Nachrichtentext nicht wiederholen, da diese Information sowieso beim Kunden im Ticketsystem vorhanden ist, muss nun ein zweites ResponseFormat her.
Diese Anpassung möchte ich nun erklären:
1. Neues ResponseFormat in der Config.pm eintragen:
Code: Select all
$Self->{'Ticket::Frontend::ResponseFormat1'} = '$QData{"Salutation"}
$QData{"StdResponse"}
';
Hier wird eingestellt, bei welchem Kunden ein anderes Format gewählt wird
Code: Select all
INSERT INTO `customer_preferences` (`user_id`, `preferences_key`, `preferences_value`) VALUES ('maxbacks', 'UserResponseFormat', '1');
Hier wird entschieden, welches Format gewählt wird. Den Teil "eigene Anpassung" hinter dem "# get response format" einfügen und den Rest bis "# get form id" auskommentieren
Code: Select all
# get response format
###### selbstanpassung
if ( $Self->{Subaction} eq ''||'0' ) {
$Self->{ResponseFormat} = $Self->{ConfigObject}->Get('Ticket::Frontend::ResponseFormat');
}
else {
$Self->{ResponseFormat} = $Self->{ConfigObject}->Get("Ticket::Frontend::ResponseFormat$Self->{Subaction}");
}
###### ende selbstanpassung
# $Self->{ResponseFormat} = $Self->{ConfigObject}->Get('Ticket::Frontend::ResponseFormat')
# || '$Data{"Salutation"}
#$Data{"OrigFrom"} $Text{"wrote"}:
#$Data{"Body"}
#
#$Data{"StdResponse"}
#
#$Data{"Signature"}
#';
# get form id
Hier wird der Link generiert, in dem das jeweilige Format steckt. Nun wieder den Code zwischen "Selbstanpassung" hinter "# get StdResponsesStrg" einfügen, um die Informationen aus der MySQL Tabelle zu holen. Diese Informationen müssen nun durch die Zeile mit " . '<input type="hidden" name="Subaction" value="$NewResponseFormat"/>'" und " . "Subaction=$NewResponseFormat&"" in den Link, bzw. Formular gebracht werden
Code: Select all
# # get StdResponsesStrg
###### selbstanpassung
my $SQL = "select customer_preferences.preferences_value from customer_preferences,ticket where ticket.id = $Param{TicketID} and ticket.customer_user_id = customer_preferences.user_id and customer_preferences.preferences_key = 'UserResponseFormat'";
my $NewResponseFormat;
$Self->{DBObject}->Prepare(SQL => $SQL, Limit => 1);
while (my @Row = $Self->{DBObject}->FetchrowArray()) {
$NewResponseFormat = $Row[0];
}
###### ende selbstanpassung
if ( $Self->{ConfigObject}->Get('Ticket::Frontend::StdResponsesMode') eq 'Form' ) {
# build html string
$Param{StdResponsesStrg}
.= '<form action="'
. $Self->{CGIHandle}
. '" method="post">'
. '<input type="hidden" name="Action" value="AgentTicketCompose"/>'
. '<input type="hidden" name="Subaction" value="$NewResponseFormat"/>'
. '<input type="hidden" name="ArticleID" value="'
. $Param{ArticleID} . '"/>'
. '<input type="hidden" name="TicketID" value="'
. $Param{TicketID} . '"/>'
. $Self->OptionStrgHashRef(
Name => 'ResponseID',
Data => $Param{StdResponsesRef},
) . '<input class="button" type="submit" value="$Text{"Compose"}"/></form>';
}
else {
my %StdResponses = %{ $Param{StdResponsesRef} };
for ( sort { $StdResponses{$a} cmp $StdResponses{$b} } keys %StdResponses ) {
# build html string
$Param{StdResponsesStrg}
.= "\n<li><a href=\"$Self->{Baselink}"
. "Action=AgentTicketCompose&"
. "Subaction=$NewResponseFormat&"
[...]