Wie man CustomerUser Map nutzt um Bilder zu verlinken (http-

Howto's zu OTRS Themen. Keine neuen Topics mit Fragen in diesem Forum!
Post Reply
crythias
Moderator
Posts: 10169
Joined: 04 May 2010, 18:38
Znuny Version: 5.0.x
Location: SouthWest Florida, USA
Contact:

Wie man CustomerUser Map nutzt um Bilder zu verlinken (http-

Post by crythias »

[Edited by DavidLambauer] Vielen Dank für das Original an Crythias. Danke für die deutsche Übersetzung Fil!

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 ],
        ],

    };
Anmerkung: RÜHREN SIE DIE Defaults.pm NICHT AN! Sie wird bei Upgrades überschrieben.

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>";
            }
Hintergrundinformation:
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
Ein Beispiel für einen Image-Link:

Code: Select all

            [ 'UserFirstname',  'Firstname',  'first_name', 1, 1, 'var', '#"><img src="http://www.gravatar.com/avatar" /></a><a href="#', 0 ],
Das ist eine Code-Injektion.
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="#'
oder

Code: Select all

'#"></a><img src="http://www.gravatar.com" /><a href="#'
Die '<a href="#' ist erforderlich, weil der Code den "a"-Tag schließt.
OTRS 6.0.x (private/testing/public) on Linux with MySQL database.
Please edit your signature to include your OTRS version, Operating System, and database type.
Click Subscribe Topic below to get notifications. Consider amending your topic title to include [SOLVED] if it is so.
Need help? Before you ask
Post Reply