Moin!
Ich möchte das mein-abfallkalender.de-Thema nochmal aufnehmen und euch nun das fertige Skript vorstellen, dass mit eurer Hilfe entstanden ist (dafür nochmal danke!).
Das ist der Service um den es hier geht:
http://mein-abfallkalender.de/
Das Skript ließt für alle unterstützten Gemeinden die kommenden Leerungstermine und packt sie für die Ausgabe im WebFront in eine HTML-Box String Variable. Das Ergebniss sieht dann so aus:
Diese Gemeinden und Städte machen zur Zeit mit (komplette Liste eingefügt, damit die Suchfunktion die Ortsnamen finden kann):
Postleitzahlenbereich 00000 bis 09999:
01000 Gassistation
Postleitzahlenbereich 30000 bis 39999:
36304 Alsfeld; 36326 Antrifttal; 35510 Butzbach; 37269 Eschwege; 36324 Feldatal; 36397 Freiensteinau; 35328 Gemünden; 36321 Grebenau; 36355 Grebenhain; 36356 Herbstein; 35315 Homberg; 36319 Kirtorf; 36341 Lauterbach; 36369 Lautertal; 35037 Marburg; 35325 Mücke; 35514 Münzenberg; 32469 Petershagen; 35517 Rockenberg; 36329 Romrod; 36110 Schlitz; 36317 Schwalmtal; 35326 Ulrichstein; 36365 Wartenberg; 37213 Witzenhausen
Postleitzahlenbereich 40000 bis 49999:
41539 Dormagen; 41460 Neuss
Postleitzahlenbereich 50000 bis 59999:
51371 Leverkusen; 58300 Wetter
Postleitzahlenbereich 60000 bis 69999:
63674 Altenstadt; 61231 Bad Nauheim; 61118 Bad Vilbel; 63654 Büdingen; 63303 Dreieich; 61207 Echzell; 65343 Eltville; 65817 Eppstein; 65760 Eschborn; 61195 Florstadt; 63579 Freigericht; 61169 Friedberg; 61381 Friedrichsdorf; 63688 Gedern; 65366 Geisenheim; 63571 Gelnhausen; 63695 Glauburg; 63150 Heusenstamm; 63697 Hirzenhain; 65239 Hochheim; 65719 Hofheim; 61184 Karben; 63699 Kefenrod; 65397 Kiedrich; 61462 Königstein; 68623 Lampertheim; 63225 Langen; 63692 Limeshain; 65389 Lorch; 66663 Merzig; 61267 Neu-Anspach; 63263 Neu-Isenburg; 63667 Nidda; 61192 Niddatal; 61130 Nidderau; 61239 Ober-Mörlen; 63179 Obertshausen; 65375 Oestrich-Winkel; 63683 Ortenberg; 66953 Pirmasens; 63689 Ranstadt; 61201 Reichelsheim; 63517 Rodenbach; 63322 Rödermark; 63110 Rodgau; 61191 Rosbach; 65385 Rüdesheim am Rhein; 66740 Saarlouis; 63679 Schotten; 66386 St Ingbert; 65843 Sulzbach; 61250 Usingen; 65396 Walluf; 61198 Wölfersheim; 61204 Wöllstadt
Postleitzahlenbereich 80000 bis 89999:
84032 Altdorf; 84030 Ergolding; 82166 Gräfelfing; 82031 Grünwald; 84086 Neufahrn; 82152 Planegg
Postleitzahlenbereich 90000 bis 99999:
91052 Erlangen
Eine aktuelle Liste gibt es hier: http://mein-abfallkalender.de/unsere_referenzen.html. Über diese Links müsst ihr auch zur individuellen Seite eurer Entsorgungsbetriebe springen, um die individuelle URL zu erstellen.
Für alle nicht Symcon-Nutzer kann man sich auch E-Mail Erinnerungen schicken lassen oder den angepassten Abfallkalender als Outlook-Datei runterladen.
Zunächst braucht ihr eine URL zu eurem angepassten Kalender:
1.) Auf der Referenzen-Seite den Link eurer Gemeinde anklicken
2.) Straßennamen eingeben
3.) Zeitraum: die nächsten 7 Tage wählen (das Skript begrenzt die Anzahl der angezeigten Einträge nicht, das geschieht hierüber)
4.) Ggf. Abfallart die ihr nicht sehen wollt abwählen
5.) Meine Termine anzeigen, dann auf Termine/iCal klicken
6.) Hier nochmal alles richtig einstellen (nächste 7 Tage!), Erinnerung: aus
7.) Verwendungsart „via iCal abonnieren“
8,) Termine via iCall nutzen
9.) Nun wird euch die URL angezeigt.
10.) webcal:// durch http:// ersetzten und die URL in das Skript einfügen (siehe unten Punkt 7)
Nun zum Skript und zur Installation:
1.) Zuerst die iCallCreator (Standard, nicht Pro) PHP-Klasse hier herunterladen: http://kigkonsult.se/iCalcreator/
2.) Die Klasse nach /IPS/scripts/… auspacken, dabei das Unterverzeichnis „iCalcreator-2.22“ anlegen
3.) Eine String-Variable mit Profil HTML-Box anlegen
4.) Neues Skript erstellen und den Code unten mit Copy/Paste einfügen
5.) Einen täglichen Timer (zB täglich Nachts um 00:05Uhr) an das Skript anhängen
6.) Im Skript die ID eurer String-Variablen anpassen
7.) Im Skript die URL anpassen auf euren Müllkalender (siehe oben)
-fertig-
<?
// Liesst die naechsten Leerungen von www.mein-abfallkalender.de V1.01
// Diese Können in einer String/HTML-Box Variable im WebInterface angezeigt werden.
// Auf der Seite muss eine individuelle URL erstellt werden und unten im Skript eingefuegt werden
// Fuer mein Skript habe ich die Option "Zeitraum: Die naechsten 7 Tage" gewaehlt, damit bekommt man
// nur die Termine die demnächst anstehen. Dann Termina via iCall/Webcall nutzen klicken und angezeigte
// URL kopieren.
require_once( "iCalcreator-2.22/iCalcreator.php");
// Gibts hier: http://kigkonsult.se/iCalcreator/index.php
$today = date("j.n.Y: "); //zum testen: $today = "23.11.2016: "; Format beachten!
$tomorrow = date("j.n.Y: ", strtotime("+1 days"));
$nextTermine = "";
$tz = "Europe/Berlin";
$config = array( "unique_id" => "1281", // set the (site) unique id,
"filename" => "Leverkusen.ics" ); // required if any component UID is missing!!
$v = new vcalendar( $config ); // create a new calendar instance
// Hier die individuelle URL einfuegen:
$v->setConfig( "url", "http://leverkusen.mein-abfallkalender.de/ical.ics?sid=20704&cd=inline&ft=noalarm&fp=days_7&wids=551,561,552,553,555,554" );
@$v->parse(); // Hat eine Warnung ausgeloest, deshalb der @
$v->sort(); // Sortieren der Ergebnisse
$events_arr = $v->selectComponents(2000,01,01,2100,12,31,"vevent"); // Alle Events in der Zeitspanne selektieren
foreach( $events_arr as $year => $year_arr )
{
foreach( $year_arr as $month => $month_arr )
{
foreach( $month_arr as $day => $day_arr )
{
foreach( $day_arr as $event )
{
$date = $event->getProperty( "dtstart" );
$summary = $event->getProperty( "summary" );
$dateS = $date["day"].".".$date["month"].".".$date["year"].": ";
if ($dateS == $today){
$dateS = "<b><font color=#ff0000>HEUTE:</b></font> "; // Datum durch das Wort HEUTE (in rot) ersetzten
}
if ($dateS == $tomorrow){
$dateS = "<b><font color=#ff8000>MORGEN:</b></font> "; // Datum durch das Wort MORGEN (in orange) ersetzten
}
$nextTermine = $nextTermine . $dateS . $summary . "<br>"; // Zusammenbau der HTML Box
}
}
}
}
// Hier an eure Variablen-ID anpassen!
SetValue(26431 /*[EigeneProgramme\Muellkalender\Muelltermine]*/,$nextTermine); // Übergabe an die MTMLBox/String Variable
?>
Ich hoffe das ist für ein paar Nutzer interessant.