Die ersten Schritte für das Backend sind implementiert und funktionieren. Als nächstes spannendes Thema gilt es, die einzelnen Einträge zu einem Adventskalender im Backend anzuzeigen und bearbeitbar zu gestalten. Dazu habe ich noch keine Idee. Dann muss das Datenmodell des Kalenders noch so aufgebohrt werden, dass es eine Jahreszahl speichern kann. Dann kommt der Feinschliff, ein Test und die Bereitstellung einer Installation. Ich berichte weiter, wie es sich anlässt. Bis dahin hier schon mal ein Screenshot der Kalenderübersicht:
Zugegebenermaßen war die kreative mit zwei Jahren ziemlich lange. Aber durch die Anfrage der holländischen Kirchengemeinde meinen Adventskalender nutzen zu können ist bei mir der Ehrgeiz geweckt und ich will eine installierbare und mit Adminbereich ausgestattete Komponente, zunächst für joomla! 2.5, entwickeln. Also habe ich gestern meinen Rechner und Eclipse schnell so hergerichtet, dass ich einfacher Komponenten entwickeln kann. Das hatte ich eigentlich schon länger vor, es fehlte aber leider irgendwie ein bisschen der Antrieb. Also sag ich mal „Dank je well“. Und ich hoffe in ca. 10 Tagen ist alles fertig.
Für die phonegap-App für unsere Spielegemeinschaft habe ich die Idee, mittels der Google-Cloud Messaging-API Nachrichten an die Clients zu schicken. Zum Beispiel als Tore-Ticker.
Dazu meldet sich die App per Javaskript an:
$(document).ready(function() { // Handler for .ready() called. var pushNotification = window.plugins.pushNotification; pushNotification.register(successHandler, errorHandler,{"senderID":"nnnnnnnnnnnn","ecb":"onNotificationGCM"}); });
Daraufhin wird eine callback-Funktion aufgerufen mit einer RegisterID aufgerufen. Diese RegisterID muss man sich speichern, um Nachrichten an den Client zu senden. Dazu wollte ich die joomla! Installation der Webseite verwenden und eine eigene Komponente schreiben. Leider klappte es nicht, die als Parameter übergebene Zeichenkette auszulesen –der Wert war immer die Zahl 0. Nur wenn ich Zahlen übergeben habe funktionierte es. Mit dem folgenden Code ist es mir schließlich auch mit Zeichenketten gelungen:
<?php defined( '_JEXEC' ) or die( 'Restricted access' ); $jinput = JFactory::getApplication()->input; $regid = $jinput->getString('regid', null, 'string'); $data = $jinput->get('some', array(), 'array'); echo($data[0]);
Für unsere Spielegemeinschaft habe ich seit einiger Zeit die Idee, eine App zu erzeugen. Erste Versuche musste ich mangels Zeit immer wieder abbrechen. Doch in dieser Woche habe ich mit phonegap/cordova einige Fortschritte gemacht und ein erster Prototyp mit etwas mehr Funktionalität läuft:
Optisch noch keine Augenweide, aber die Funkionalität zählt.
Lange habe ich überlegt wie ich Neuigkeiten für die App zur Verfügung stellen soll und hatte dann die Idee, diese über unsere Webseite herunter zu laden. Möglicherweise kann ich den dazu erzeugten Content auch doppelt in einer Newsletterkomponente nutzen. Das kommt aber wenn später.
Da ich ja nur bestimmte Teile der Webseite anzeigen will, habe ich mir ein php-Skript erzeugt welches die Webseite bzw. den gewünschten Inhalt liefert:
<?php
include ('simple_html_dom.php');
function get_content($URL, $PART)
{
$ch = curl_init();
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_URL, $URL);
$data = curl_exec($ch);
curl_close($ch);
if (!is_null($PART))
{ $html = str_get_html($data);
$elem = $html->find($PART, 0);
return $elem;
}
else
{
return $data;
}
}
echo get_content($_GET['url'],$_GET['part']);
?>
Damit das Skript korrekt funktioniert benötigt man noch einen HTML-DOM-Parser (Herunterladen bei Sourceforge). Der Aufruf erfolgt beispielsweise in einem iFrame:
<iframe width="100%" height="300" src="http://www.sg-ohetal-frielendorf.de/cms/grab/grab.php?url=http://www.sg-ohetal-frielendorf.de/cms/index.php/jugend/d-jugend&part=div[class=leading-0]">
</iframe>
Damit ist es möglich, die ganze Seite einzubinden (Parameter part weglassen) oder nur bestimmte Teile auszulesen. Damit ist eine erste, größere Hürde genommen und die App nimmt langsam aber sicher Formen an.
Heute habe ich bei der Suche im www ein Perl-Skript gefunden mit dem statische html-Dateien automatisch als Artikel in eine joomla! Installation kopiert/importiert werden können sollen. Wie immer hat es ein bisschen gedauert, bis perl lief, aber inzwischen startet das Skript:
Leider ist es mir heute schon zu spät und ich teste morgen mal die Funktionsweise. Wenn es funktioniert, würde es mir jede Menge Arbeit ersparen. Ich berichte wieder.