Gestern Abend hatte ich plötzlich Probleme damit, mich per 2-Factor-Authentifizierung anzumelden. Egal was ich machte, es kam immer die Fehlermeldung, dass einer der Faktoren nicht stimmen würde. Ich hatte schon daran gezweifelt, ob ich das richtige Passwort benutze. Dann hatte ich die Idee mir mal die aktuelle Serverzeit ausgeben zu lassen und siehe da, die Uhr auf dem Server ging gute zehn Minuten vor. Inzwischen passt die Serverzeit wieder und die 2-Factor-Authentifizierung funktioniert wieder.
Mit diesem kurzen php-Skript kann man sich die Serverzeit ausgeben lassen. Dazu z.B. einfach eine time.php anlegen und aufrufen:
<?php $datum = date("d.m.Y"); $uhrzeit = date("H:i"); echo $datum," - ",$uhrzeit," Uhr"; ?>
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.