Kundeninformation auslesen - $Data{"CustomerTable"}

Hilfe zu Znuny Problemen aller Art
Locked
croco
Znuny newbie
Posts: 2
Joined: 28 Aug 2014, 13:35
Znuny Version: 3.3.4

Kundeninformation auslesen - $Data{"CustomerTable"}

Post by croco »

Hallo,

ich möchte gerne aus einer Javascript Funktion auf die Kundeninformationen eines Tickets zugreifen.
Dazu wird das Script in dem File AgentTicketZoom.* ausgeführt.
Leider kann ich nicht erkennen, wie genau die Kundeninformationen auf dieser Seite erstellt werden.
Platzhalter hierfür ist: $Data{"CustomerTable"}
Ich möchte nur den Wert für Vorname, Nachname haben.

Kann mir jemand einen Denkanstoß geben?

Danke.
croco
Znuny newbie
Posts: 2
Joined: 28 Aug 2014, 13:35
Znuny Version: 3.3.4

Re: Kundeninformation auslesen - $Data{"CustomerTable"}

Post by croco »

Ich bin ein Stück weiter.

In der Kernel/Output/HTML/LayoutTicket.pm werden die Variablen aus der Config eingelesen (Map).
In Zeile 129 spielt sich wohl der Hauptteil ab, wobei ich nicht weiß, was $Param{Max} ist.

Code: Select all

 110     # build table
 111     for my $Field (@MapNew) {
 112         if ( $Field->[3] && $Field->[3] >= $ShownType && $Param{Data}->{ $Field->[0] } ) {
 113             my %Record = (
 114                 %{ $Param{Data} },
 115                 Key   => $Field->[1],
 116                 Value => $Param{Data}->{ $Field->[0] },
 117             );
 118             if ( $Field->[6] ) {
 119                 $Record{LinkStart} = "<a href=\"$Field->[6]\"";
 120                 if ( $Field->[8] ) {
 121                     $Record{LinkStart} .= " target=\"$Field->[8]\"";
 122                 }
 123                 if ( $Field->[9] ) {
 124                     $Record{LinkStart} .= " class=\"$Field->[9]\"";
 125                 }
 126                 $Record{LinkStart} .= ">";
 127                 $Record{LinkStop} = "</a>";
 128             }
 129             if ( $Field->[0] ) {
 130                 $Record{ValueShort} = $Self->Ascii2Html(
 131                     Text => $Record{Value},
 132                     Max  => $Param{Max}
 133                 );
 134             }
 135             $Self->Block(
 136                 Name => 'CustomerRow',
 137                 Data => \%Record,
 138             );
Kernel/Output/HTML/Standard/AgentCustomerTableView.dtl ist dann das Template, wo die Infos ersetzt werden.
Leider läuft der Block für CustomerRow mehrfach durch, deswegen kann ich nicht einfach so auf $Data{"ValueShort"} zugreifen.

Code: Select all

 21 <!-- dtl:block:CustomerRow -->
 22     <label>$Text{"$Data{"Key"}"}:</label>
 23     <p class="Value FixedValueSmall" title="$QData{"Value"}">
 24         $Data{"LinkStart"}$Data{"ValueShort"}$Data{"LinkStop"}
 25 <!-- dtl:block:CustomerRowItem -->
 26         <a href="$Data{"URL"}" target="$QData{"Target"}">
 27             <img src="$Config{"Frontend::ImagePath"}$QData{"Image"}" border="0" alt="$Text{"$Data{"Action"}"}" title="$Text{"$Data{"Alt"}"}" />
 28         </a>
 29 <!-- dtl:block:CustomerRowItem -->
 30 <!-- dtl:block:CustomerRowCustomerCompanyInvalid -->
 31         <em class="Error">$Text{"Note: Customer is invalid!"}</em>
 32 <!-- dtl:block:CustomerRowCustomerCompanyInvalid -->
 33     </p>
 34     <div class="Clear"></div>
 35 <!-- dtl:block:CustomerRow -->
Ich kann mir natürlich irgendwie was basteln, um bei jedem Durchlauf zu gucken, ob das aktuelle Feld gerade das ist, was ich haben will. Eleganter wäre es aber, wenn ich direkt auf eine Variable Zugreifen kann.
Eventuell tue ich mich auch nur so schwer, weil ich keine Ahnung von Perl hab :)
Locked