Stand: 05.04.2017

 remso.eu   Dokumentation

Ansprechpartner:   Karl-Heinz Osmer   Fon +49.(0)6152.8558287   osmer.kh @ osmer.de

 

remso.eu > doku > Kalender einbinden


Kalender in Homepage einbinden

So sehen die eigenen Termine aus ...   Original-Seite



... so die Termine eines Ortes ...   Original-Seite



... und so die Termine eines Verbandes und seiner Mitglieder:   Original-Seite



Bringe Aktualität auf deine Webseite!

Wenn dein Verein, dein Thema, deine Stadt
bei remso 'nen Kalender hat,
dann ist's seit Jahren guter Brauch,
den einzubinden und das kannst du auch.


Du hast immer einen aktuellen Kalender, weil neu eingegebene Termine sofort zu sehen sind und vergangene Termine gelöscht werden. Ganz ohne eigenes Zutun.

Jeder einzelne Termin in der remso-Datenbank enthält den Veranstaltungsort (ORT), den Termintyp (TYP) und die remso-Mitgliedsnummer (VIP). Also kann auch für jeden ORT, für jeden TYP und für jede VIP ein Kalender zusammengestellt werden. Du musst nicht registriert sein, einen Kalender kann jeder Webmaster in seine Seite einbinden.


Entscheide dich für eine von 3 Kalender-Arten im <iframe> ...

  1. ORT und Umkreis:   Kalender für eine Postleitzahl, also eine Gemeinde oder einen Stadtteil. Enthält auch die Termine der Nachbarorte. Die Entfernungs-km kannst du bestimmen. Standard ist 20km.   so geht's
  2. TYP:   Kalender für einen Veranstaltungstyp.   so geht's
  3. VIP:   Kalender für ein remso-Mitglied. Bei der Registrierung erhälst du per Mail deine VIP (Mitgliedsnummer). Wenn die VIP einem Verband gehört (z.B. ), werden auch die öffentlichen Termine der Verbandsmitglieder gezeigt.   so geht's

... oder 4. hole dir Roh-Daten und gestalte deinen Kalender vollkommen frei.

Wenn du auf deinem Server eine Programmiersprache nutzt, kann das Programm eine CSV-Datei von remso.eu anfordern und die Daten in deine Homepage integrieren. Du bestimmst das Layout, die Termine sind Teil deiner HTML-Seite.   so geht's


Wenn du magst, teile dem remso-Team (osmer.kh[bei]osmer.de) bitte mit, dass du einen Kalender eingebettet hast. Wir nehmen deine Homepage dann gerne in unser Link-Verzeichnis auf.


1.   Kalender für einen ORT und Umkreis:   Beispiel Dornumersiel

Code-Beispiel:

<iframe id="remso" onload="setHeight('remso','img721572')" src="http://remso.eu/?gif_name=img721572&ORT=13596" style="width:100%; height:50em; border:1px solid #aaf" frameborder=0></iframe><script type="text/javascript" src="http://remso.eu/css/setHeight.js"></script>


So sieht es aus:

Weitere Beispiele findest du auf der Seite remso.eu/_text/links.php

Das musst du tun:


Hintergrund-Wissen für Fortgeschrittene:

Einer eingebetteten Seite ist es verboten, die einbettende Seite (parent) zu verändern. Da parent die Größe des Inhalts nicht kennen kann, ist der iframe entweder zu klein und bekommt Scrollbalken oder zu groß und erzeugt leere Fläche. Beides sieht sieht nicht gut aus.

Mit einem Trick überlisten wir diese Sperre. Der Kalender im iframe weiss ja, wie hoch er ist. Er meldet seine Höhe an seinen Server remso.eu und der erzeugt ein Bild [gif_name] mit gleicher Höhe. Etwas zeitverzögert lädt parent dieses Bild per Javascript und setzt den iframe auf diese Höhe.

Damit mehrere gleichzeitige Zugriffe ihr eigenes Bild bekommen, wird [gif_name] für die Schaltfläche [diesen Kalender einbetten] per Zufall generiert.

ACHTUNG:   Eingebundene Kalender haben einen transparenten Hintergrund. Wenn deine Webseite einen dunklen Hintergrund hat, ist der Kalender schlecht oder gar nicht lesbar. Dann gib dem iframe einen hellen Hintergrund.


2.   Kalender für einen TYP:   Beispiel Flohmarkt

Code-Beispiel:

<iframe id="remso" onload="setHeight('remso','img544281')" src="http://remso.eu/?gif_name=img544281&TYP=4" style="width:100%; height:50em; border:1px solid #aaf" frameborder=0></iframe><script type="text/javascript" src="http://remso.eu/css/setHeight.js"></script>


Das musst du tun:


Hintergrund-Wissen für Fortgeschrittene:

Siehe Kalender für einen ORT und Umkreis.


3.   Kalender für eine VIP:   Beispiel Wanderfreunde Eddelak u.Umgebg.e.V.

Code-Beispiel:

<iframe id="remso" onload="setHeight('remso','img124932')" src="http://remso.eu/?gif_name=img124932&VIP=603" style="width:100%; height:50em; border:1px solid #aaf" frameborder=0></iframe><script type="text/javascript" src="http://remso.eu/css/setHeight.js"></script>


So sieht es aus:

Beispiele findest du auf der Seite remso.eu/_text/links.php


Das musst du tun:


Spezial:   Verbandskalender

Es gibt VIPs, die in der Datenbank als Verband gekennzeichnet sind. Ein remso-Administrator kann Verband und Mitglieder verknüpfen. Dann werden auch die Termine der Mitglieder gezeigt.


4.   Daten laden und Kalender mit PHP selbst gestalten

Voraussetzung: Dein Server darf auf entfernte Dateien zugreifen (allow-url-fopen).

Wir beginnen mit einem einfachen Beispiel, den drei nächsten Events der Wanderfreunde Eddelak. Vergleiche mit dem Original-Kalender. Weiter unten werden zusätzliche Möglichkeiten erklärt.


4.1   Übernimm diesen Code in dein PHP-Programm:


4.2   Lade die nächsten drei Events in ein Array deiner Wahl

<?php
  $my_csv_array = get_csv_array("http://remso.eu/?zp=p591b&VIP=603&lg=de&posi=3&LO=csv");
?>

In $my_csv_array[0] sind nun die Feldnamen, in $my_csv_array[1] .. $my_csv_array[n] die Daten der Events.


lfd ORT land_kz ort_plz ort_name TID wochentag tt mm monatsname jjjj uhr wochentag_bis tt_bis mm_bis titel eintritt_frei beschreibung_abs bild_url bild_class festival_teilnehmer nur_teilnehmer VIP melder
1 6537 D 25541 Brunsbüttel 22322 Samstag 19 08 August 2017 10:00 Rund um die Schleusen in Brunsbüttel 1 603 Wanderfreunde Eddelak u.Umgebg.e.V.
2 6568 D 25715 Eddelak 22323 Mittwoch 23 08 August 2017 14:00 Nordic-Walking in Christianslust 1 603 Wanderfreunde Eddelak u.Umgebg.e.V.
3 6568 D 25715 Eddelak 22324 Donnerstag 24 08 August 2017 13:00 Von Bargenstedt nach Dellbrück 1 603 Wanderfreunde Eddelak u.Umgebg.e.V.

Du kannst nun auf $my_csv_array frei zugreifen und deinen Kalender mit PHP gestalten. Zum Beispiel das zweite Event.

<?php
  echo "<p>".$my_csv_array[2]['tt'].".".$my_csv_array[2]['mm'].". ".$my_csv_array[2]['uhr']."   ".$my_csv_array[2]['titel']."</p>";
?>

23.08. 14:00   Nordic-Walking in Christianslust


4.3   HTML-String mit Platzhaltern für die Events

Statt die Events mit PHP selbst aufzubereiten, kannst du einen HTML-String mit Platzhaltern definieren.

<?php
  $my_HTML_string = '
<p>[wochentag], [tt].[mm]. [uhr]<br>
<big><a href="http://remso.eu/?TID=[TID]" title="TID=[TID]">[titel]</a></big></p>
<p>[land_kz]-[ort_plz] [ort_name]<br>
gemeldet von [melder]</p>
<br>
';
?>

Die Funktion get_html_csv erzeugt für jedes Event einen HTML-String, indem die Platzhalter mit Daten gefüllt werden und gibt einen String mit allen Events zurück.

<?php
  echo get_html_csv ( $my_HTML_string, $my_csv_array );
?>

So sieht es aus:

Samstag, 19.08. 10:00
Rund um die Schleusen in Brunsbüttel

D-25541 Brunsbüttel
gemeldet von Wanderfreunde Eddelak u.Umgebg.e.V.


Mittwoch, 23.08. 14:00
Nordic-Walking in Christianslust

D-25715 Eddelak
gemeldet von Wanderfreunde Eddelak u.Umgebg.e.V.


Donnerstag, 24.08. 13:00
Von Bargenstedt nach Dellbrück

D-25715 Eddelak
gemeldet von Wanderfreunde Eddelak u.Umgebg.e.V.




Programm p591b:

Du nutzt Programm p591b, das Kalender für einen ORT mit Umkreis-km, einen TYP oder eine VIP bereitstellt. Ohne weitere Parameter wird ein HTML-Dokument mit den nächsten 10 Terminen erzeugt: remso.eu/?zp=p591b&VIP=603.

Mit dem Parameter LO=csv werden diese 10 Termine als CSV-Datei angeboten: remso.eu/?zp=p591b&VIP=603&LO=csv.

Allgemeine Parameter für Programm p591b. Der erste Wert (fett) ist Standard.

Parameter Werte Beschreibung
LO de
mini
csv
Bestimmung der Layout (Platzhalter) Datei, mit der die Daten bei remso erzeugt werden.
seite 1
1 .. n
Seiten-Nummer
posi 10
1 .. 25
Positionen pro Seite. Die Kombination seite=2&posi=25 beginnt mit dem 26. Termin und zeigt 25 Termine.
tag_von heute
TT.MM.JJJJ
Start-Datum des Zeitfensters
tage 365
1 .. 999
Zeitfenster in Tagen. Die Kombination tag_von=1.1.2018&tage=31 liefert Termine im Januar 2018.
lg en

Sprache (language). Wird normalerweise vom Browser geliefert, fehlt aber bei Aufrufen mit PHP. Die Namen der Wochentage und Monate ist hinterlegt für die Sprachen

czNeděle / January
da   Søndag / Januar
de   Sonntag / Januar
en   Sunday / January
es   Domingo / Enero
fr   Dimanche / Janvier
it   Domenica / Gennaio
nds   Sönndach / Jannewaar
nl   Zondag / Januari
no   Søndag / Januar
pl   Niedziela / Styczeń
ru   Воскресенье / Январь
gif_name nicht für CSV
BG nicht für CSV
such_plz nicht für CSV

Zusätzliche Parameter für Ortskalender (ORT)

Parameter Werte Beschreibung
ORT (ort_id) ORT=7004   D-30926 Seelze
KM 20
0 .. n

Umkreis-Radius. Alle Orte (Stadtteile), deren Mittelpunkte 0 .. KM vom Mittelpunkt der ort_id entfernt sind. Bei Wert 0 werden nur die Termine von ort_id ausgewählt.


Geplant: Zusätzliche Parameter für Themen/Typkalender (TYP)

Parameter Werte Beschreibung
TYP (typ_id) TYP=9   Chorkonzert, Chor-Festival

Zusätzliche Parameter für Vereinskalender (VIP):

Parameter Werte Beschreibung
VIP (adress_id)

VIP=603   Wanderfreunde Eddelak u.Umgebg.e.V.

Falls die VIP im Stammsatz als Verband gekennzeichnet ist, werden auch die Termine der Verbandsmitglieder geliefert.

IT 0
0 | 1

Auch interne Termine (nicht nur öffentliche) liefern. Für eigene Kalender, die auf der eigenen Seite gezeigt werden.


Feld Beschreibung
lfd

laufende Positions-Nr. dieses Kalenders über alle Seiten. Bei 25 Positionen beginnt Seite 2 mit lfd=26.

ORT

ort_id zum Verlinken auf den Ortskalender

land_kz Auto-Kennzeichen des Landes, der Nation
ort_plz Postcode (auch Buchstaben) des Ortes
ort_name Name des Ortes
TID Termin-ID zum Verlinken auf die Detail-Ansicht.
wochentag Wochentag (Sonntag, Montag, ...) in der angeforderten Sprache
tt Tag 1 .. 31 der Veranstaltung
mm Monat 1 .. 12 der Veranstaltung
monatsname Monat (Januar, Februar, ...) in der angeforderten Sprache
jjjj vierstellige Jahreszahl
uhr Uhrzeit Veranstaltungsbeginn, z.B. 10:30
wochentag_bis

Bei mehrtägigen Events: Wochentag (Sonntag, Montag, ...) in der angeforderten Sprache

tt_bis
mm_bis
titel
eintritt_frei
beschreibung_abs
bild_url
bild_class
festival_teilnehmer
nur_teilnehmer
VIP
melder


Schritt 1:   Lade die Datei remso_api_csv.php.txt mit Rechtsklick => Speichern unter und gib ihr den Namen remso_api_csv.php. Lies sie durch, du findest darin eine genaue Anleitung und die Erklärung der Daten.


Schritt 2:   Definiere eine HTML-Vorlage mit [Platzhaltern] für einen Termin:

<?php
$html_vorlage = '
<div class="position">
  <p>[wochentag], [tt].[mm].   [hh]:[mi]<br>
  <a href="http://remso.eu/?TID=[TID]" title="TID=[TID]">[titel]</a></p>
  <p>[land_kz]-[ort_plz] [ort_name]<br>
  gemeldet von [melder]</p>
</div>
';
?>

Schritt 3:   Definiere deine Anfrage an remso als URL:

<?php
//$url = "http://remso.eu/?VIP=603&zp=p591b&lg=de&LO=csv"; // 603 Wanderfreunde Eddelak, 10 Events sind Standard
$url = "http://remso.eu/?VIP=603&zp=p591b&lg=de&LO=csv&posi=25"; // 25 Positionen
?>

Der Sprach-Parameter lg=de ist notwendig für die Wochentage und Monatsnamen. Diese Sprachen werden unterstützt


Schritt 4:   Hole dir die Roh-Daten. Du bekommst das zweidimensionales Array $my_csv_array. In $my_csv_array[0] sind die Feldnamen, in $my_csv_array[1] die Daten des ersten Events:

<?php
include( "remso_api_csv.php" );
$my_csv_array  = get_csv_array ( $url );
echo $my_csv_array[3]['ort_plz']." ".$my_csv_array[3]['ort_name']; // nur zur Kontrolle / Test das 3. Event
?>

Ausgabe: 25715 Eddelak


Schritt 5:   Die Funktion get_html_csv erzeugt einen String. Für jedes Event $my_csv_array[1] ... $my_csv_array[n] wird die Vorlage mit den Daten gefüllt. Der dritte Parameter ist wahlweise, er gibt das Limit an:

<?php
echo get_html_csv (  $html_vorlage, $my_csv_array, 3 );
?>

Unterstützte Sprachen für Wochentage und Monatsnamen, $url - Parameter lg=de