PHP-UWA Widget Library

Update Jan 2011: Die PHP-UWA-Library wurde völlig überarbeitet und funktioniert nun mit der aktuellen IFrame-Methode. Das Prinzip bleibt das Gleiche, die Aufrufe sind leicht anders: Projekt auf oncode.info.

Widgets und Web 2.0

Universal Widget ArchitectureWidgets sind kleine Miniapplikationen, die übersichtlich wichtige Daten anzeigen oder kleinere Funktionen ausführen. Es gibt sie für Windows Vista, Mac, iPhone sowie Webbasiert für iGoogle, Yahoo!, Netvibes und so weiter und so fort. Um die Entwicklung zu forcieren, stellt nun Netvibes ein Rahmenwerk vor, das die Entwicklung von Widgets für alle diese Plattformen vereinfachen soll: Die Universal Widget Architecture. Die Widgets, die nach diesem Standard programmiert sind, sollen unter allen diesen Plattformen laufen…

UWA Standard

Ein Widget im UWA-Standard ist ein XML-Dokument. Es enthält Metadaten, Einstellungen und den aktiven Teil, geschrieben in Javascript. Besonders die Einstellungen sind interessant, denn über diese können widgetspezifische Parameter angepasst werden. Einige Toolfunktionen runden das UWA-Paket ab.

Die UWA-Spezifikation hat ihre eigene Homepage und ist gut dokumentiert. Es gibt Beispiele, ein Code-Skelett mit Erklärung, ein Schritt-für-Schritt Tutorial, ein Forum und sogar ein Cheat-Sheet. Der Einstieg wird einem wirklich so einfach wie möglich gemacht.

Widget Repository

Fertige Widgets können im Widget Repository (Ecosystem) der Öffentlichkeit zur Verfügung gestellt werden. Von diesem System aus können die Widgets zu den verschiedenen Plattformen mittels Mausklick hinzugefügt werden. Im Repository hat es auch noch Widgets, die nach dem veralteten Mini-API Standard funktionieren, diese werden jedoch (hoffentlich) bald verschwinden.

Implementationen

Das klingt echt faszinierend und schreit danach, genutzt zu werden. Widgets selbst werde ich später implementieren, als erstes wollte ich sie wirklich für eigene Projekte nutzbar machen. Dafür habe ich eine kleine PHP- Klasse entworfen und sie grosskotzig PHP-UWA Widget Library genannt. Mit ihr ist die Handhabung von Widgets ziemlich einfach. Etwas ambitionierter ist das Parsing der widgetabhängigen Einstellungen.

Ein Minimalbeispiel ist im Download-Paket dabei und kann auch online aufgerufen werden.

PHP-UWA Widget Library Example

Ein Widget anzuzeigen geht recht fix:

<?php
require_once('uwawidget.php');
$uwawidget=new uwawidget('http://www.netvibes.com/api/uwa/examples/digg.xhtml');
echo $uwawidget->getWidgetHTML();
?>

Informationen über das Widget (sobald die URL angegeben wurde) geben die folgenden zwei Methoden:

getMetaData()
Metadaten wie Autor, Keywords, Beschreibung, … Siehe Doku.
getAdditionalData()
Zusätzliche Daten wie Icon, Stylesheet, …

Grundsätzlich gibt folgende Einstellungsbereiche:

general
Die URL zum Widget.
configuration
Anzeigeparameter, die in der Doku beschrieben sind.
preferences
Widgetabhängige Einstellungen, die ebenfalls in der Doku erwähnt sind.

Zu allen diesen Einstellungen gibt es folgende Methoden:

Setters und Getters
setModuleUrl(), setConfiguration(), setPreferences()
getModuleUrl(), getConfiguration(), getPreferences()
getSettingsFormData($section)
Gibt die Settings in einem lesefreundlichen Array wieder, aus welchem ziemlich einfach ein Form generiert werden kann. $section ist dabei "general", "configuration" oder "preferences"
getSettingsHTML($section)
Gibt die Settings in Array der Form "Label" => "HTML" zurück. $section ist dabei "general", "configuration" oder "preferences"

Zum Test habe ich Moodleblock erstellt, welcher nun die Darstellung von UWA-Widgets innerhalb des LMS erlaubt. Heyo, WordPress, Xoops, etc-Coderz, wie wärs bei Euch mit einer UWA Integration???

Beispiele vom Moodleblock:

Moodle UWA Calculator Moodle UWA Converter Moodle UWA Translator
Moodle UWA Google Notes Moodle UWA Spider Moodle UWA ToDo
Die Konfiguration unter Moodle:
Widget settings in Moodle

Ui, fast…

…wäre ich schneller als das aktuelle c’t gewesen, welches eine gute aber knappe Einführung in UWA-Widgets enthält.

6 Gedanken zu “PHP-UWA Widget Library

  1. Uwa-widget not run in my moodle 1.9 , i like tha application , but not run, help me ?
    Incompatibility?
    Bug?
    thanks

  2. I am very sorry, I have no Moodle 1.9 at hand at the moment. I promise you, I
    will have a look at it as soon as we do our test-updates.

    Are you using PHP5?

  3. Hi,
    Excellent work for this library !
    I’m wondering if you believe it’s possible to change widget parameter „on the fly“, I.E : if i call the javascript method „BW.setPreferencesValues“, will the widget reload itself ?
    Thank you

  4. Does it work the other way round? For instance wrapping moodle quizes with UWA so that they can be included in your Netvibes page?

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.