Personal tools
You are here: Home Tipps MobilMail Bookmark

MobilMail Bookmark

Mobilmail Bookmarks Firefox Extension. Synchronisiert die lokalen Bookmarks mit dem zentralen MobilMail Server.

Übersicht

Firefox Extensions ermöglichen die Erweiterung der Funktion mit externen Paketen. Die Programmierung erfolgt mittels Java Script. Richtig programmiert ist die Extension plattform unabhängig.

Nachfolgend ein Beispiel anhand der Bookmarks Extension für MobilMail Ltd. Damit können die lokalen Bookmarks mit einem zentralen Server synchronisiert werden. Die Extension synchronisiert mehrere Arbeitsplätze gleichzeitig. Es ist ein MobilMail Account notwendig.

MobilMail Bookmark

Funktionsweise

Die Kommunikation zwischen der MobilMail Bookmark Extension und dem Server erfolgt mittels XML-RPC und ist mit den vorhanden Libraries einfach zu implementieren. Die Bookmarks werden vor der Übertragung in XML transfomiert. Änderungen der Bookmarks werden mittels dem Observer beobachtet und entsprechend dieser Information und konfigurierbaren Intervallen synchronisiert. Damit nicht jedes Browser Fenster die Synchronisation durchführt, kommt ein spezieller Mechanismus zum Einsatz, der diese Situation steuert.

XML-RPC Beispiel

Die Kommunikation mittels XML-RPC ist einfach zu realisieren. Der Beispielcode zeigt eineń Put Request, um die Bookmarks am zentralen Server zu speichern:

    var req=new XMLHttpRequest();
    var sRequest=gSettings.mmBaseUrl+"/storage/bookmarks.py?store";
    req.open("PUT", sRequest, true, gSettings.escapedUser, gSettings.escapedPassword)
    req.setRequestHeader('MM-LOCAL-DBSERIALNR', '789');

    ...

    req.onload=function(aEvent) {
    gSettings.centralDbSerialNr=req.getResponseHeader("MM-CENTRAL-DBSERIALNR");

XML parsen

Das Parsen von XML Daten ist ganz einfach:

    var parser=new DOMParser();
    this._tempDoc= parser.parseFromString(aStr,"text/xml");

Daten in XML String

Umgekehrt werden die Bookmarks in einen XML String umgewandelt:

    var serializer= new XMLSerializer();

    xmlstring = "<?xml version=\"1.0\" encoding=\""+this.settings.charset+"\"?>\n"
    + serializer.serializeToString(this._tempDoc);

Programmierung der Oberfläche

Der Code für die Erstellung des oben gezeigten Fensters:

    <tabpanel orient="vertical">
      <groupbox>
        <caption label="&mmcontrolwindow.label.synchronization;"/>
        <textbox id="mm-bookmark-status" readonly="true" value="&mmcontrolwindow.tabs.status.unknown;" />
      </groupbox>
      <groupbox>
        <caption label="&mmcontrolwindow.tabs.status.captionsynchronize;" />
        <button id="mm-synchronize-button" label="&mmcontrolwindow.tabs.status.synchronizebutton;" disabled="false" oncommand="synchronizeNow();" />
      </groupbox>
      <groupbox>
        <caption label="&mmcontrolwindow.tabs.status.captiononlinebookmarks;" />
        <button id="mm-online-bookmark-button" label="&mmcontrolwindow.tabs.status.onlinebookmarkbutton;" oncommand="onlineBookmarks();" />
      </groupbox>
    </tabpanel>

Document Actions
Das Plone Theme wurde für den Plone World Day 2009 von Simples Consultoria entwickelt.