open url mit variablen

  • Hallo zusammen,

    ich habe eine Frage zur openurl Funktion:

    ich habe in einer Tour in der KRPano Naviagtion einen Button, der mir beim Klick die Tour in einem neuen Fenster öffnen soll (bitte fragt nicht warum oder dem Sinn ... Kundenwunsch)

    Also sowas: onclick="openurl(http://www.irgendwas.de/pfadZurTour,_blank);"

    Das funktioniert auch :)

    Nun ist es aber so, dass in dem neuen Fenster natürlich wieder das Startpanorama der Tour geladen wird, und nicht das Panorama aus dem heraus ich den Button gecklickt habe.
    Ich bräuchte also eine Möglichkeit openurl() mit einer Variable aufzurufen, die ich z.B. mit set (var,get(szene).name) so ergänze, dass der Name der Szene schlussendlich mit einem ? an die url gehängt werden kann:

    Also so: onclick="openurl(http://www.irgendwas.de/pfadZurTour/in…szene_name,_top);"

    Dann kann ich im neuen Fenster mit passQueryParameters den Szenen Namen wieder auslesen, an die tour.xml übergeben und esr wird dieselbe Szene geladen, aus der heraus der "open url Button" geklickt wurde.

    Ich hoffe ich habe das einigermaßen verständlich beschrieben *confused*
    Irgendwie bekomm ich das nicht hin ... über Lösungsansätze / Lösungsideen würde ich mich freuen.

    Grüße vom Träumer

  • Hi,

    das ginge folgendermaßen:

    1. zuerst mit txtadd() die gewünschte url zusammensetzen und in einer Variable speichern,
    2. und dann diese Variable per get() an openurl() übergeben.


    z.B.

    Code
    txtadd(link, 'http://irgend.was/tour.html?startscene=', get(scenename));
    openurl(get(link), _top);


    Schöne Grüße,
    Klaus

  • Hallo,

    nun hab ich mal ne echt doofe Frage ... bin halt kein Coder :/

    Ich habe nun Klausens Antwort mit dem textadd umgesetzt, technisch geht das auch, nur scheint der Wert "null" zu sein.
    Daher wollte ich vor dem Öffnen der URL mit den angehängten Wert ansehen; Thema Debug.

    Nun habe ich versucht mittels eingeschaltetem debug mode:

    Code
    <krpano version="1.0.8.15" logkey="false" debugmode="true" onstart="startup();">

    mir den Wert der Variable anzeigen zu lassen:

    Code
    <action name="rewrite_to_index">
    txtadd(link, 'http://www.irgendwas.de/index.php?startscene=', get(scenename));
    debug(0,"link", get(link));
    trace(get(link));
    </action>

    Nur im Krpano Player / Fenster wird nix angezeigt, vielleicht bin ich ja einfach auch zu deppert.
    Wie bringt macht also die/eine Variable mittels debug und / oder trace sichtbar (gerne auch in einem Logfile auf der Festplatte) ?
    Hier im Forum ist immer die Rede vom krpano log ... wird das im Playerfenster angezeigt ?

    Update: auch mit

    Code
    <action name="rewrite_to_index">
    txtadd(link, 'http://www.irgendwas.de/index.php?startscene=', get(scene.name));
    debug(0,"link", get(link));
    trace(get(link));
    </action>

    ist die übergebene GET variable auf der Ziel PHP Seite "null".

    Grüße,

    Träumer

  • Hallo toosten,

    erstmal danke für Deine Antwort, aber

    Code
    <action name="rewrite_to_index">
        	<!-- Openurl Variable zusammenbauen -->
                	txtadd(link, 'http://www.irgendwas.de/index.php?prm=', get(scene.name)); 
                	showlog(1);
                	debug(0,"link", get(link));
                	trace(get(link));
                	openurl(get(link), _top);
        	</action>

    ergibt auch keinen Output :/

  • Hi,

    die 'scenename' Variable in meinem Beispiel war nur beispielhaft - d.h. eine scenename Variable gibt es nicht (daher 'null' als Ergebnis) - anstelle dieser muss eine Variable mit dem gewünschtem Inhalt verwendet werden.

    Schöne Grüße,
    Klaus

  • Hi,

    die 'scenename' Variable in meinem Beispiel war nur beispielhaft - d.h. eine scenename Variable gibt es nicht (daher 'null' als Ergebnis) - anstelle dieser muss eine Variable mit dem gewünschtem Inhalt verwendet werden.

    Schöne Grüße,
    Klaus


    Hallo Klaus,

    das heisst, auch der trace Output ist leer weil ich nicht in der Lage bin, den Namen der aktuell angezeigten Szene auszulesen ?

    Ich nehme mal an, bei den Krpano Beispielen, kann man auch XML Quellen finden, aus denen sich mir die korrekte Syntax erschliesst, den aktuell angezeigten Szenenamen auszulesen ?


    Grüße,

    Träumer

  • Hi,

    das heisst, auch der trace Output ist leer weil ich nicht in der Lage bin, den Namen der aktuell angezeigten Szene auszulesen ?

    Nein, die trace Ausgaben sollten natürlich schon funktionieren,

    den aktuell angezeigten Szenenamen auszulesen

    Der Name der zuletzt geladenen Szene wäre über xml.scene verfügbar.

    Schöne Grüße,
    Klaus

  • Hallo Träumer,

    ich versuche das auch schon seit Tagen. Klappt aber nicht.
    Der zusätzliche Parameter zur URL "verschwindet" beim Aufruf der neuen Tour.
    Wird der Parameter (also "?...") bei Dir im URL-Feld des Browsers angezeigt?
    Oder bin ich ganz auf dem Holzweg und muss den anders abfragen?

    Grüße
    Wolf

  • Hallo Wolf,

    Also bei mit bleibt alles nach dem "?" in der URL erhalten .
    In der redirect.php mache ich denn noch ein paar "Anpassungen" ehe ich den so modifizierten Parameter mit einem http 301 an die eigentliche Zielurl redirecte.

    Ich habe das so umgesetzt:

    Bis auf die Trace Ausgabe tut da auch alles so wie es soll.


    Grüße,

    Träumer

  • Hi Leute, ich denke ich kann gleich mit meinem ersten Beitrag etwas Sinnvolles beisteuern.
    Meine Lösung für das Problem:

    Erste eine action definieren:


    Code
    <action name="changetour">
    	txtadd(link, '%1?startscene=', %2);
    	openurl(get(link), _top);
    </action>

    Und die dann per hotspot wie folgt aufrufen:


    Code
    <hotspot name="spot5" url="skin/vtourskin_hotspot.png" ath="0" atv="0" scale="0.5" onclick="changetour(test.html,scene_Pano1);" />

    Hinweis:
    im Hotspot darf nicht der Standard-Style (style="skin_hotspotstyle") eingebunden sein, weil das die Link-Funktion überschreibt und dann beim Anklicken nichts mehr passiert.

Participate now!

Don’t have an account yet? Register yourself now and be a part of our community!