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:
cordovaapp
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.