Sie sind nicht angemeldet.

1

Montag, 18. September 2017, 14:39

Include mit Abfrage

Hallo liebe Community,

ich versuche eine Karte mit include einzubinden, aber nur, wenn ein Wert in einer anderen XML-Datei auf true steht.
Die Dokumentation sagt zwar, dass man im include eine Kondition setzen könnte, das will aber leider nicht richtig funktionieren.

Folgendes Szenario:

main.xml - beinhaltet include config.xml, menu.xml und map.xml
config.xml - hat einen Wert "startup_map_on = true/false"

Jetzt möchte ich gern in der main.xml sagen, dass die map.xml nur geladen werden soll, wenn "startup_map_on" auf true steht.

Ich habe bereits versucht, eine action mit loadpano hinzuzufügen, aber das hat nicht funktioniert. Egal ob true oder false, die map.xml wurde nicht geladen.

Quellcode

1
2
3
4
5
6
7
<include url="%SWFPATH%/menu.xml">
<include url="%SWFPATH%/config.xml">
<action name="ladekarte">
		if(pano_settings.startup_map_on,
			loadpano('%SWFPATH%/map/map.xml');
		);
</action>


Versucht habe ich noch folgendes:

Quellcode

1
2
3
<include url="%SWFPATH%/menu.xml">
<include url="%SWFPATH%/config.xml">
<include url="%SWFPATH%/map/map.xml" if="pano_settings.startup_map_on == true">


Gibt es dazu evtl. eine Lösung?

Gruß
Elygor77

toosten

Fortgeschrittener

Beiträge: 521

Wohnort: Berlin

Beruf: Software-Entwickler bei VR-Easy ( HTML, JS, PHP, krpano, C++, Java )

  • Nachricht senden

2

Dienstag, 19. September 2017, 13:22

Die action ladekarte wird vermutlich vor dem Setzen von pano_settings.startup_map_on ausgefügrt.

3

Dienstag, 19. September 2017, 13:36

vermute du kannst pano_settings nicht benutzen,
weil das config.xml noch gar nicht geparst wurde.
vermutlich geschieht das erst, nachdem alles inkludiert wurde,
inkl entscheid map nicht zu laden, weil variable nicht gesetzt.

dh konkret für dich:
du musst pano_settings direkt im main definieren und nicht in einem separaten config.
oder du kannst versuchen das ganze zu verschachteln, dh config.xml in einem übergeordneten main includen
und von dort aus das main includen:
<include url="%SWFPATH%/config.xml">
<include url="%SWFPATH%/main.xml>
im main dann alles wie gehabt (ohne das config nochmals zu includen natürlich)

Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »indexofrefraction« (19. September 2017, 13:47)


4

Dienstag, 19. September 2017, 14:54

Danke für eure Antworten, ihr hattet Recht.

Ich habe jetzt in der index.php folgendes eingetragen:

Quellcode

1
embedpano({swf:"tour.swf", xml:"tour.xml", id:"krpanoObject", initvars:{startup_map_on:"true"}, target:"pano", html5:"prefer", passQueryParameters:true});


Und an anderer Stelle:

Quellcode

1
<include url="%SWFPATH%/map/map.xml" if="startup_map_on">


Damit funktioniert es :)