Extension:APData: Unterschied zwischen den Versionen

Aus Opennet
Wechseln zu: Navigation, Suche
Zeile 1: Zeile 1:
 
= proof of concept =
 
= proof of concept =
 
hier wird noch dran gearbeitet, mal schauen was draus wird.
 
hier wird noch dran gearbeitet, mal schauen was draus wird.
 +
== Warum this way ==
 +
Der Datenbankzugriff kann nur über eine Erweiterung/Extension erfolgen, eine Vorlage/Template kann das nicht leisten. Nun gäbe es zwei Optionen, die Extension mit dem Template zu verbinden. Entweder man ruft im Template die Extension auf, oder andersrum.
 +
:Parameters do not get expanded when they are inside nowiki tags or  XML-style extension tags. Thus, the following will not work within a  template - <myextension xparam={{{tparam}}}> ...  </myextension> - because the parameter is not expanded.[http://en.wikipedia.org/wiki/Help:Template]
 +
:As of r55682, extensions can make use of a new option for how to process the text within the extension tag ... using the $frame parameter for the recursiveTagParse function tells the parser to expand any template parameters ... [http://www.mediawiki.org/wiki/Manual:Tag_extensions#Extensions_and_Templates]
 +
Also funktioniert offenbar nur der Aufruf des Templates in der Extension.
 +
 
== Erweiterung ==
 
== Erweiterung ==
  

Version vom 21. Oktober 2011, 09:35 Uhr

Inhaltsverzeichnis

proof of concept

hier wird noch dran gearbeitet, mal schauen was draus wird.

Warum this way

Der Datenbankzugriff kann nur über eine Erweiterung/Extension erfolgen, eine Vorlage/Template kann das nicht leisten. Nun gäbe es zwei Optionen, die Extension mit dem Template zu verbinden. Entweder man ruft im Template die Extension auf, oder andersrum.

Parameters do not get expanded when they are inside nowiki tags or XML-style extension tags. Thus, the following will not work within a template - <myextension xparam={{{tparam}}}> ... </myextension> - because the parameter is not expanded.[1]
As of r55682, extensions can make use of a new option for how to process the text within the extension tag ... using the $frame parameter for the recursiveTagParse function tells the parser to expand any template parameters ... [2]

Also funktioniert offenbar nur der Aufruf des Templates in der Extension.

Erweiterung

Die Erweiterung APData greift auf eine Datanbank zu, die Daten aller AccessPoints des Opennets enthält. Zur Zeit stehen nur Daten der APs mit alter Firmware zur Verfügung. Ausserdem wurden persönliche Daten wie Email, Telefon und Ort entfernt, da diese Seiten bisher nicht ausserhalb vom Opennet zugänglich waren. Und vielleicht sollte es auch so bleiben. Die Datenbank wird zur ZEit nicht aktualisiert, aber ist ja auch ok so für nen Test.

Die notwendigen Dateien liegen auf www.on-i.de unter on-v6:/var/www/mediawiki-1.16.5/extensions/APData

  • APData.php - die eigentliche Erweiterung, sucht nach dem entsprechenden Eintrag für die angegebene ID und reicht alle Werte weiter an ein Template
  • database - die Datenbank, zur Zeit mit im Verzeichnis der Erweiterung (hardcoded in APData.php). Es handelt sich um eine SQlite3-Datenbank, eine Tabelle für die AP-Config und eine für die aktuellen Daten aller Interfaces.
  • get_ap_data.py - python-script zur Erstellung der Datenbank und zum parsen der Verfügbaren Werte aller APs mit alter Openet-Firmware

Nutzung der Erweiterung

Zur Einbindng in den Code einfach

<apdata id="1.48" template="Accesspoint">

Die übergebene id wird gegen die Datenbankspalte "id" geparst, alle Werte werden dem Template "template" übergeben. Weitere Werte können direkt übergeben werden:

<apdata id="1.48" template="Accesspoint" nachname="Mustermann">

Erstellung/Aktualiserung der Datenbank

das script "get_ap_data.py" erwartet zwei Parameter. Als erstes den Pfad einer vorhandenen oder zu erstellenden Datanbank. Als zweites die Liste der zu prüfenden IP-Adressen, bspw. die Ausgabe von "ip route" mit jeweils der zu prüfenden IP am Anfang jeder Zeile.

praktische Beispiele

(anzuschauen im Quellcode)

normaler Aufruf für Accesspoint-Template

<apdata id="1.48" template="Accesspoint" />

<apdata id="1.48" template="Accesspoint" />

normaler Aufruf für angepasstes Accesspoint-Template

<apdata id="1.48" template="AccesspointRene" />

<apdata id="1.48" template="AccesspointRene" />

Aufruf für Accesspoint-Template mit Variablen-Überschreibung

<apdata id="1.48" template="Accesspoint" nummer="1.48" typ="Linksys"  besitzer="Max" betreuer="Anja" email="user@home.de"  kommentar="Vereins-AP" />

<apdata id="1.48" template="Accesspoint" nummer="1.48" typ="Linksys" besitzer="Max" betreuer="Anja" email="user@home.de" kommentar="Vereins-AP" />

Anzeige aller vorhandenen Daten

<apdata id="1.48" />

<apdata id="1.48" />

Meine Werkzeuge
Namensräume

Varianten
Aktionen
Start
Opennet
Kommunikation
Karten
Werkzeuge