Original: viewtopic.php?f=60&t=16302
Was soll durch dieses HowTo geschehen?
Überladen Sie den "http-Link" Eintrag in der User Map, um Dinge zu erreichen, wie zum Beispiel einen Link zu einem Bild aufzurufen.
Sie werden dieses HowTo mögen.
Wenn Sie dies auf Lager (Datenbank) OTRS tun wollen, werden Sie wollen sicherstellen, dass der gesamte Abschnitt ist in CustomerUser Config.pm (Kopie aus Defaults.pm):
Code: Select all
$Self->{CustomerUser} = {
#################################################################################################
#... andere Inhalte von Defaults.pm wurde in diesem Beitrag nicht eingefügt ... Sie müssen diese trotzdem kopieren #
#################################################################################################
Map => [
# note: Login, Email and CustomerID needed!
# var, frontend, storage, shown (1=always,2=lite), required, storage-type, http-link, readonly, http-link-target
[ 'UserSalutation', 'Salutation', 'salutation', 1, 0, 'var', '', 0 ],
[ 'UserFirstname', 'Firstname', 'first_name', 1, 1, 'var', '', 0 ],
[ 'UserLastname', 'Lastname', 'last_name', 1, 1, 'var', '', 0 ],
[ 'UserLogin', 'Username', 'login', 1, 1, 'var', '', 0 ],
[ 'UserPassword', 'Password', 'pw', 0, 0, 'var', '', 0 ],
[ 'UserEmail', 'Email', 'email', 1, 1, 'var', '', 0 ],
# [ 'UserEmail', 'Email', 'email', 1, 1, 'var', '$Env{"CGIHandle"}?Action=AgentTicketCompose&ResponseID=1&TicketID=$Data{"TicketID"}&ArticleID=$Data{"ArticleID"}', 0 ],
[ 'UserCustomerID', 'CustomerID', 'customer_id', 0, 1, 'var', '', 0 ],
# [ 'UserCustomerIDs', 'CustomerIDs', 'customer_ids', 1, 0, 'var', '', 0 ],
[ 'UserPhone', 'Phone', 'phone', 1, 0, 'var', '', 0 ],
[ 'UserFax', 'Fax', 'fax', 1, 0, 'var', '', 0 ],
[ 'UserMobile', 'Mobile', 'mobile', 1, 0, 'var', '', 0 ],
[ 'UserStreet', 'Street', 'street', 1, 0, 'var', '', 0 ],
[ 'UserZip', 'Zip', 'zip', 1, 0, 'var', '', 0 ],
[ 'UserCity', 'City', 'city', 1, 0, 'var', '', 0 ],
[ 'UserCountry', 'Country', 'country', 1, 0, 'var', '', 0 ],
[ 'UserComment', 'Comment', 'comments', 1, 0, 'var', '', 0 ],
[ 'ValidID', 'Valid', 'valid_id', 0, 1, 'int', '', 0 ],
],
};
Der Code, der Index 6 (http-Link) und der Index 8 (Ziel/target) verwaltet ist in Kernel/Output/HTML/LayoutTicket.pm:
Code: Select all
Field 6
if ( $Field->[6] ) {
$Record{LinkStart} = "<a href=\"$Field->[6]\"";
if ( $Field->[8] ) {
$Record{LinkStart} .= " target=\"$Field->[8]\"";
}
$Record{LinkStart} .= "\">";
$Record{LinkStop} = "</a>";
}
Der Eintrag mit dem Index 6 (nach "var") soll ein Hyperlink sein, der das Feld umgibt. Index 8 (letzter Eintrag nach read-only "0"), wenn es existiert, wird für "Target" von HTML verwendet werden. "_blank" öffnet zum Beispiel eine neue Seite / ein neues Fenster.
Sie können das Feld, praktisch mit allem zu verknüpfen, z. B.:
Code: Select all
[ 'UserCity', 'City', 'city', 1, 0, 'var', ''http://maps.google.com/?q=$Data{"UserCity"},$Data{"UserZip"}', 0,"_blank" ], #Was ist das? Einn Stadtplan beim Klick in einem neuen Fenster?
[ 'UserLogin', 'Username', 'login', 1, 1, 'var', '$Env{"CGIHandle"}?Action=AdminCustomerUser&Subaction=Change&ID=$Data{"UserLogin"}', 0 ], #Der Benutzername führt zum Bearbeitungs-Bildschirm
Code: Select all
[ 'UserFirstname', 'Firstname', 'first_name', 1, 1, 'var', '#"><img src="http://www.gravatar.com/avatar" /></a><a href="#', 0 ],
Die erste "#" ist ein Beispiel, um das offene "a" Markup zu beenden.
Sie können entweder per Hyperlink schließen, oder sie schließen den "a"-Tag.
Code: Select all
'#"><img src="http://www.gravatar.com/avatar" /></a><a href="#'
Code: Select all
'#"></a><img src="http://www.gravatar.com" /><a href="#'