Diese Website richtet sich an Wiederverkäufer von swisstopo-Produkten und Web-Entwickler. Falls Sie Produkte von swisstopo kaufen möchten, besuchen Sie den swisstopo Onlineshop.
Sie erfahren hier wie sie in vier einfachen Schritten ausgewählte Produkte aus dem swisstopo Onlineshop manuell in Ihre Webseite integrieren können.
Auf jeder Seite, in welcher die Produkte von swisstopo dargestellt werden, muss eine Javascript Datei eingebunden werden. Dies wird durch Kopieren des folgenden "Schnipsels" in den Kopfbereich (<head>) der Webseite erreicht:
<script language="javascript" src="http://www.toposhop.admin.ch/static/javascripts/products/productList.js" type="text/javascript"> </script>
Neuer Code ab dem 1. Januar 2017 <script language="javascript" src="https://cms.geo.admin.ch/www.swisstopo.admin.ch/shop/swisstopoproducts/js/ShopProductList.js" type="text/javascript"> </script>
Um die Daten in einem bestehenden Layout möglichst flexibel einzubinden, wird ein Layout mit den gewünschten Platzhaltern erstellt. Dieses Layout wird pro Produkt angewendet und ausgegeben. Die Platzhalter sind durch eckige Klammern [ ] gekennzeichnet. Welche Attribute verwendet werden können finden Sie im Abschnitt «Verfügbare Attribute».
var formatTemplate = '<tr>' + '<td>[product.titleDe]</td>' + '<td>[product.descriptionDe]</td>' + '<td>[product.price]</td>' + '<td>[product.releaseDate]</td>' + '<td><a href="#">Bestellen</a></td>' + '</tr>';
Um die Daten von swisstopo zu laden wird die JavaScript-Methode getProducts() aufgerufen. Diese lädt die gewünschten
Produktedaten im Hintergrund ohne den Seitenaufbau zu blockieren (Ajax). Damit die Funktion beim Seitenaufbau aufgerufen
wird, muss diese beim load-listener von window registriert werden. Dies geschieht über die Anweisung window.onload=getProducts(...).
Die Funktion erwartet vier Parameter:
window.onload=getProducts(1.0, formatTemplate, [],[]);
Neuer Code ab dem 1. Januar 2017 window.onload=getProducts(2.0, formatTemplate, [],[]);
Als letzer Schritt muss noch ein sogenannter Container erstellt werden. Der Inhalt dieses Containers wird schliesslich die Auflistung der Produkte sein. Typischerweise ist ein Container ein HTML <div> Element, kann wie in untenstehendem Beispiel auch ein <tbody> Element sein. Voraussetzung ist, dass dem Element die id=”productOutputContainer” vergeben wird. Anhand dieser id wird der Container aus dem JavaScript Code referenziert.
<div id="productOutputContainer"></div> <tbody id="productOutputContainer"></tbody>