Extension:APData: Unterschied zwischen den Versionen

Aus Opennet
Wechseln zu: Navigation, Suche
(proof of concept)
Zeile 2: Zeile 2:
 
hier wird noch dran gearbeitet, mal schauen was draus wird.
 
hier wird noch dran gearbeitet, mal schauen was draus wird.
  
Und nun Version 0.2, das ganze als dynamische Funktion. So lässt sich das auch in die Vrlagen einbinden.
+
Und nun Version 0.2, das ganze als dynamische Funktion. So lässt sich das auch in die Vorlagen einbinden.
 
== Erweiterung ==
 
== 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 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
 
Die notwendigen Dateien liegen auf www.on-i.de unter on-v6:/var/www/mediawiki-1.16.5/extensions/APData
Zeile 11: Zeile 11:
 
* [https://wiki.opennet-initiative.de/extensions/APData/APData.php APData.php] - die eigentliche Erweiterung, sucht nach dem entsprechenden Eintrag für die angegebene ID und reicht alle Werte weiter an ein Template
 
* [https://wiki.opennet-initiative.de/extensions/APData/APData.php APData.php] - die eigentliche Erweiterung, sucht nach dem entsprechenden Eintrag für die angegebene ID und reicht alle Werte weiter an ein Template
 
* [https://wiki.opennet-initiative.de/extensions/APData/database 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.
 
* [https://wiki.opennet-initiative.de/extensions/APData/database 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.
* [https://wiki.opennet-initiative.de/extensions/APData/get_ap_data.py get_ap_data.py] - python-script zur Erstellung der Datenbank und zum parsen der Verfügbaren Werte aller APs mit alter Openet-Firmware
+
* [https://wiki.opennet-initiative.de/extensions/APData/get_ap_data.py 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 ===
 
=== Nutzung der Erweiterung ===
Zeile 17: Zeile 17:
 
# OnApDataQuery - bekommt als Parameter die Opennet-ID und muss als erstes aufgerufen werden
 
# OnApDataQuery - bekommt als Parameter die Opennet-ID und muss als erstes aufgerufen werden
 
# OnApDataGetValue - bekommt als Parameter den Namen des gesuchten Wertes (Kopf der Nodes-Spalte)
 
# OnApDataGetValue - bekommt als Parameter den Namen des gesuchten Wertes (Kopf der Nodes-Spalte)
# OnApDataGetIfacesRow- liefert die ZeilenNummer der Interfaces-Tabelle für die angefragte ID
+
# OnApDataGetIfacesRow - liefert die ZeilenNummer der Interfaces-Tabelle für die angefragte ID
# OnApDataNextIfacesRow- setzt den internen Zeiger auf dei nächste Interfaces-Zeile und gibt die Nummer zurpck, wenn noch vorhanden
+
# OnApDataNextIfacesRow - setzt den internen Zeiger auf dei nächste Interfaces-Zeile und gibt die Nummer zurück, wenn noch vorhanden
 
# OnApDataGetIfacesValue - bekommt als Parameter den Namen des gesuchten Wertes (Kopf der Ifaces-Spalte) und liefert den Wert für die ausgewählte Zeile zurück
 
# OnApDataGetIfacesValue - bekommt als Parameter den Namen des gesuchten Wertes (Kopf der Ifaces-Spalte) und liefert den Wert für die ausgewählte Zeile zurück
  

Version vom 21. Oktober 2011, 21:56 Uhr

Inhaltsverzeichnis

proof of concept

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

Und nun Version 0.2, das ganze als dynamische Funktion. So lässt sich das auch in die Vorlagen einbinden.

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

Folgende Funtionen stehen zur Verfügung:

  1. OnApDataQuery - bekommt als Parameter die Opennet-ID und muss als erstes aufgerufen werden
  2. OnApDataGetValue - bekommt als Parameter den Namen des gesuchten Wertes (Kopf der Nodes-Spalte)
  3. OnApDataGetIfacesRow - liefert die ZeilenNummer der Interfaces-Tabelle für die angefragte ID
  4. OnApDataNextIfacesRow - setzt den internen Zeiger auf dei nächste Interfaces-Zeile und gibt die Nummer zurück, wenn noch vorhanden
  5. OnApDataGetIfacesValue - bekommt als Parameter den Namen des gesuchten Wertes (Kopf der Ifaces-Spalte) und liefert den Wert für die ausgewählte Zeile zurück

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

{{#OnApDataQuery:1.48}}
Eigentümer:{{#OnApDataGetValue:name}}<br />
{{#OnApDataNextIfacesRow:}}. IP-Addresse: {{#OnApDataGetIfacesValue:ipaddr}}<br />
{{#OnApDataNextIfacesRow:}}. IP-Addresse: {{#OnApDataGetIfacesValue:ipaddr}}<br />
{{#OnApDataNextIfacesRow:}}. IP-Addresse: {{#OnApDataGetIfacesValue:ipaddr}}<br />


Eigentümer:
1. IP-Addresse:
. IP-Addresse:
1. IP-Addresse:

Aufruf mit Nutzung der Loops-Erweiterung

Die OnData-Erweiterung ist für die gemeinsame Nutzung mit der Loops-Erweiterung optimiert.

{{#OnApDataQuery:1.48}}
Eigentümer:{{#OnApDataGetValue:name}}<br />
{{#while:
|{{#OnApDataNextIfacesRow:}}
|<nowiki/>{{#OnApDataGetIfacesRow:}}. IP-Addresse: {{#OnApDataGetIfacesValue:ipaddr}}<br />
}}

Eigentümer:
1. IP-Addresse:

Aufruf mit angepassten Templates

Na und so könnte der Aufruf dann später mit angepassten Templates (siehe Vorlage:AccesspointRene und Vorlage:AccesspointIfacesRene aussehen (das zweite Template bekommt die Zeile als Parameter, da es so jedesmal neu gerendert wird:

{{#OnApDataQuery:1.48}}
{{AccesspointRene}}
{{#while:
|{{#OnApDataNextIfacesRow:}}
|<nowiki/>{{AccesspointIfacesRene|row={{#OnApDataGetIfacesRow:}}}}
}}
ap_button_.png
opennet ID / OLSR Main IP /
Typ / Hersteller
Firmware /
VPN-Gateway Expression-Fehler: Unerwarteter Operator <tt>=</tt>
verbundene Usergateways Expression-Fehler: Unerwarteter Operator <tt>=</tt>
Wifidog-ID Expression-Fehler: Unerwarteter Operator <tt>=</tt>
uptime / load / mem / free / / /
letzte Aktualisierung

Interface /
IP-Addresse / Netzmaske /
MAC-Adresse
TX-Bytes/ RX-Bytes /
WLAN-SSID/ WLAN-Channel /
Meine Werkzeuge
Namensräume

Varianten
Aktionen
Start
Opennet
Kommunikation
Karten
Werkzeuge