Hallo Forum,
Ich habe im Seitenheader ein Javascript zur Steuerung eines Strassenkartentools. Zum setzten der Standortpunkte brauche ich x und y Koordinaten welche für jede Seite in der Datenbank abgelegt sind.
Wie kann ich die beiden Werte im Javascript bei 'center:[635268,194286]'(siehe unten) ersetzten mit den jeweiligen Werten aus der Datenbank? Die DB-Felder heissen tx_seitenheaderext_xcoord bzw. tx_seitenheaderext_ycoord und sind in der Tabelle 'pages' abgelegt. In Php würde ich ein SELECT machen und das Ergebnis in zwei Variablen schreiben welche ich dann im javascript einbauen könnte. Etwa so: 'center:[$tx_seitenheaderext_xcoord,$tx_seitenheaderext_ycoord]'. Ich habe es bereits mit den cObjects CONTENT, RECORDS und USER versucht aber ich komme auf keinen grünen Zweig.
seite.headerData = COA
seite.headerData.11 = TEXT
seite.headerData.11.value (
<script type="text/javascript" src="http://map.search.ch/api/map.js"></script>
<script type="text/javascript">
//<![CDATA[
var Map = new SearchChMap({ center:[635268,194286], circle:false, poigroups:"-", zoom:4 });
// Create a POI object and attach event listeners
var P1 = new SearchChPOI({ center:[635268,194286], title:"Restaurant Rössli Wiggen", html:"", icon:"fileadmin/img/poi1.gif" });
P1.addEventListener("popupopen", function(e){ window.status = "POI-Box popped up!"; });
P1.addEventListener("popupclose", function(e){ window.status = ""; });
Map.addPOI(P1);
//]]>
</script>
)
Ueber einen Tipp würde ich mich sehr freuen!
Vielen Dank zum voraus.
Gruess Adi
seite.headerData = COA
seite.headerData.11 = TEXT
seite.headerData.11.value = {field:tx_seitenheaderext_xcoord},{field:tx_seitenheaderext_ycoord}
seite.headerData.11.insertData = 1
seite.headerData.11.outerWrap (
<script type="text/javascript" src="http://map.search.ch/api/map.js"></script>
<script type="text/javascript">
//<![CDATA[
var Map = new SearchChMap({ center:[|], circle:false, poigroups:"-", zoom:4 });
// Create a POI object and attach event listeners
var P1 = new SearchChPOI({ center:[635268,194286], title:"Restaurant Rössli Wiggen", html:"", icon:"fileadmin/img/poi1.gif" });
P1.addEventListener("popupopen", function(e){ window.status = "POI-Box popped up!"; });
P1.addEventListener("popupclose", function(e){ window.status = ""; });
Map.addPOI(P1);
//]]>
</script>
)
Könnte funktionieren, je nach Reihenfolge von insertData und outerWrap bei Ausführung müsste man es doch nochmal ändern, aber probier das mal.
Hallo Kitsunet,
Besten Dank für die schnelle Antwort. Wenn ich den Javascript Code weglasse, werden die Koordinaten in den Header geschrieben. Das ist schon mal sehr gut. Sobald ich den Javascript Code hinzufüge, werden alle geschweiften Klammern (bis auf eine) entfernt und es wird nur noch der ycoord Wert geschrieben. Siehe output:
<script type="text/javascript" src="http://map.search.ch/api/map.js"></script>
<script type="text/javascript">
//<![CDATA[
var Map = new SearchChMap(,456345], circle:false, poigroups:"-", zoom:4 });
// Create a POI object and attach event listeners
var P1 = new SearchChPOI();
P1.addEventListener("popupopen", function(e));
P1.addEventListener("popupclose", function(e));
Map.addPOI(P1);
//]]>
</script>
Wenn ich statt outerWrap nur Wrap oder innerWrap schreibe, werden wiederum nur die Koordinaten ausgegeben. Gibt es eine Möglichkeit wie die geschweiften Klammern im Javascript erhalten bleiben?
Nochmals vielen Dank für Deine Hilfe!
Gruss Adi
Dann vielleicht so:
seite.headerData = COA
seite.headerData.11 = TEXT
seite.headerData.11.value = ,
seite.headerData.11.dataWrap = {field:tx_seitenheaderext_xcoord}|{field:tx_seitenheaderext_ycoord}
seite.headerData.11.outerWrap (
<script type="text/javascript" src="http://map.search.ch/api/map.js"></script>
<script type="text/javascript">
//<![CDATA[
var Map = new SearchChMap({ center:[|], circle:false, poigroups:"-", zoom:4 });
// Create a POI object and attach event listeners
var P1 = new SearchChPOI({ center:[635268,194286], title:"Restaurant Rössli Wiggen", html:"", icon:"fileadmin/img/poi1.gif" });
P1.addEventListener("popupopen", function(e){ window.status = "POI-Box popped up!"; });
P1.addEventListener("popupclose", function(e){ window.status = ""; });
Map.addPOI(P1);
//]]>
</script>
)
Grüße Christian
Jetzt hats geklappt, vielen vielen Dank!! 😃 Da wär ich selber wohl nie drauf gekommen. Ohne die Hilfe aus den Foren könnte ich typo3 gar nicht einsetzen. Schon die Unterschiede und Abhängigkeiten der verschiedenen wrap-Typen sind für mich nur schwer nachvollziehbar. Die Alternative wäre gewesen auf jeder Seite ein script-Marker einzubinden und die Daten über ein php-Script zu laden. Das wäre nicht praktikabel gewesen.
Jetzt habe ich wieder einen etwas detailierteren Einblick typoscript erhalten.
Nochmals vielen Dank!
Gruss Adi