Erfolgreich: Abfragen eines dynamischen Feldes

Allgemein Fragen, deutsche News, Ankündigungen & Events zu Znuny
Locked
FlorianST
Znuny newbie
Posts: 4
Joined: 08 Sep 2016, 09:54
Znuny Version: 5.0.10

Erfolgreich: Abfragen eines dynamischen Feldes

Post by FlorianST »

Hallo zusammen,

ich möchte gerne den Wert eines dynamischen Feldes "händisch" abfragen. Das ganze soll in der AgentTicketZoom.tt gemacht werden.
Hintergrund ist, dass ich ein dynamisches Feld für die IP-Adresse des Kunden hinzugefügt habe und nun mit einem Link, der auf "vnc://"+DynamischesFeld"ClientIP" zeigt, direkt eine VNC-Sitzung aufbauen möchte. Das soll dem 1st-Level-Support helfen, da man nicht immer erst die IP oder den Hostname heraussuchen muss.
Leider schaffe ich es bis jetzt nicht das Feld abzufragen. Der Name des Feldes ist ClientIP. Ich habe schon einiges (mit Hilfe von Google) versucht, aber entweder sind es recht alte Beiträge oder ich suche falsch..

Zurzeit habe ich folgenden Link in die oben genannte Datei eingebaut, aber bis auf das Öffnen des VNC-Viewers passiert nichts:

Code: Select all

<p><a href="vnc://"+$LQData{"Data.ClientIP"}  target="_self" class="DynamicFieldLink">"VNC - funktioniert noch nicht"</a></p>
Der Teil mit $LQData{"Data.ClientIP wird vermutlich falsch sein. Deshalb hoffe ich, dass ihr mir helfen könnt.
Vielen Dank im Vorraus.

Mit freundlichem Gruß
Florian
Last edited by FlorianST on 08 Sep 2016, 14:29, edited 1 time in total.
reneeb
Znuny guru
Posts: 5018
Joined: 13 Mar 2011, 09:54
Znuny Version: 6.0.x
Real Name: Renée Bäcker
Company: Perl-Services.de
Contact:

Re: Abfragen eines dynamischen Feldes

Post by reneeb »

Das $LQData{""} gibt es in OTRS5 so nicht mehr, weil sich die Template-Sprache geändert hat. In OTRS5 heißt das

[% Data.ClientIP | uri %]

Ob das Feld ClientIP wirklich gefüllt ist, weiß ich nicht. Wenn Du einfach die Ticketdaten 1:1 übergibst, müsste das eher

[% Data.DynamicField_ClientIP | uri %]

heißen.
Perl / Znuny development: http://perl-services.de
Free Znuny add ons from the community: http://opar.perl-services.de
Commercial add ons: http://feature-addons.de
FlorianST
Znuny newbie
Posts: 4
Joined: 08 Sep 2016, 09:54
Znuny Version: 5.0.10

Re: Abfragen eines dynamischen Feldes

Post by FlorianST »

Funktioniert leider auch nicht.
Ich habe folgende Versionen ausprobiert:

Code: Select all

<p><a href="vnc://"&[% Data.DynamicField_ClientIP | uri %]  target="_self" class="DynamicFieldLink">"VNC"</a></p>
<p><a href="vnc://"+[% Data.DynamicField_ClientIP | uri %]  target="_self" class="DynamicFieldLink">"VNC"</a></p>

<p><a href="vnc://"&[% Data.ClientIP | uri %]  target="_self" class="DynamicFieldLink">"VNC"</a></p>
<p><a href="vnc://"+[% Data.ClientIP | uri %]  target="_self" class="DynamicFieldLink">"VNC"</a></p>
Wenn ich mal testweise eine IP hart reinschreibe funktioniert das allerdings:

Code: Select all

<p><a href="vnc://192.168.1.1"  target="_self" class="DynamicFieldLink">"VNC"</a></p>
Der Name des Feldes ist auch wirklich "ClientIP". So wird es mir unter Admin->Ticket Einstellungen->Dynamische Felder angezeigt.
reneeb
Znuny guru
Posts: 5018
Joined: 13 Mar 2011, 09:54
Znuny Version: 6.0.x
Real Name: Renée Bäcker
Company: Perl-Services.de
Contact:

Re: Abfragen eines dynamischen Feldes

Post by reneeb »

Wo hast Du das wie eingebaut?
Perl / Znuny development: http://perl-services.de
Free Znuny add ons from the community: http://opar.perl-services.de
Commercial add ons: http://feature-addons.de
FlorianST
Znuny newbie
Posts: 4
Joined: 08 Sep 2016, 09:54
Znuny Version: 5.0.10

Re: Abfragen eines dynamischen Feldes

Post by FlorianST »

Das ganze habe ich in die AgentTicketZoom.tt in den "RenderOwnerBlock" eingebaut:

Code: Select all

[% RenderBlockStart("Owner") %]
                        <label>[% Translate("Owner") | html %]:</label>
                        <p class="Value" title="[% Data.UserFullname | html %] [% Data.OutOfOfficeMessage | html %] ([% Data.UserLogin | html %])">[% Data.UserFullname | html %] [% Data.OutOfOfficeMessage | html %]</p>
						<p><a href="vnc://192.168.1.1"  target="_self" class="DynamicFieldLink">"VNC - funktioniert noch nicht"</a></p>
                        <div class="Clear"></div>
[% RenderBlockEnd("Owner") %]
reneeb
Znuny guru
Posts: 5018
Joined: 13 Mar 2011, 09:54
Znuny Version: 6.0.x
Real Name: Renée Bäcker
Company: Perl-Services.de
Contact:

Re: Abfragen eines dynamischen Feldes

Post by reneeb »

Hast Du Addons installiert? Im Standardtemplate gibt es keinen "Owner"-Block.

Hast Du schonmal probiert, den Link direkt im Dynamischen Feld im Adminbereich zu hinterlegen? Bei Textfeldern kann man so etwas machen. Dann brauchst Du nur noch konfigurieren, dass das Dynamische Feld im TicketZoom angezeigt werden soll.
Perl / Znuny development: http://perl-services.de
Free Znuny add ons from the community: http://opar.perl-services.de
Commercial add ons: http://feature-addons.de
FlorianST
Znuny newbie
Posts: 4
Joined: 08 Sep 2016, 09:54
Znuny Version: 5.0.10

Re: Abfragen eines dynamischen Feldes

Post by FlorianST »

Jetzt hat es tatsächlich geklappt. Danke dir schonmal.

Für alle Interessierten:
  1. 2 dynamische Felder (Typ) Text anlegen. Standardwert und Link anzeigen auf(für den VNC Eintrag): vnc://[% Data.DynamicField_ClientIP | uri %]
  • Die dynamischen Felder unter Admin->Sysconfig für die Seiten CustomerTicketMessage, AgentTicketViewZoom, AgentTicketPhone und AgentTicketViewNote hinzufügen.
  • Einfügen in die CustomerTIcketMessage.tt (auch hier aus dem Forum):

    Code: Select all

    [% WRAPPER JSOnDocumentComplete %]
    <script type="text/javascript">
    $(function() {
    var ip = '[% Env("HTTP_X_FORWARDED_FOR") | html %]' ? '[% Env("HTTP_X_FORWARDED_FOR") | html %]' : '[% Env("REMOTE_ADDR") | html %]';
    $('#DynamicField_ClientIP').parent().addClass( 'Hidden' );
    $('#LabelDynamicField_ClientIP').parent().addClass( 'Hidden' );
    $('#DynamicField_UltraVNC').parent().addClass( 'Hidden' );
    $('#LabelDynamicField_UltraVNC').parent().addClass( 'Hidden' );
    $('#DynamicField_ClientIP').val(ip);
    });
    </script>
    [% END %]
  • Folgende Datei als .reg speichern und einmalig ausführen:

    Code: Select all

    Windows Registry Editor Version 5.00
    [HKEY_CLASSES_ROOT\vnc]
    @="URL:VNC Connection"
    "URL Protocol"=""
    [HKEY_CLASSES_ROOT\vnc\DefaultIcon]
    @="c:\\progra~1\\VNC\\vncviewer.exe"  (Verlinkung ggf. anpassen)
    [HKEY_CLASSES_ROOT\vnc\shell]
    [HKEY_CLASSES_ROOT\vnc\shell\open]
    [HKEY_CLASSES_ROOT\vnc\shell\open\command]
    @="wscript.exe C:\\WINDOWS\\vnc.js %1"
  • Als vnc.js nach C:\Windows speichern:

    Code: Select all

    var destination=(WScript.Arguments(0))
    var search='vnc://'
    //Modify the path to VNC Viewer!
    var vncexe='c:\\progra~1\\UltraVNC\\vncviewer.exe'
    //WScript.Echo(destination)
    destination=destination.replace(search, "")
    destination=destination.replace('/', "")
    var ws = new ActiveXObject("WScript.Shell")
    //WScript.Echo(vncexe + " " + destination)
    ws.Exec(vncexe + " " + destination)
  • Nun müsste das Funktionieren, wenn eine IP übergeben wurde oder manuell durch den Agenten angegeben wird.
Locked