Pagequery#

There are two versions of this page: english and german. PageQuery is part of the OWiki Plugins.

Relevanz#

PageQuery gathers informations from pages having the same prefix. This is interesting if you generate Pages via a form and you want to collect data from all pages that where generated by the form.

To work properly PageQuery needs the data to be conform with a "key=value" schema. This is most likely to happen in a table like in the following example.

booktitleUnderstanding the Linux Kernel
authorDaniel P. Bovet
categoryavailable

"booktitle" is the key, "Understanding the Linux Kernel" the value. We will continue this Libraryexample so try to keep this in mind.

PageQuery works perfectly with FormHandlers like GenericNamePageHandler.

Example#

Inventory for a library

Installation#

  • Copy OWiki.jar to your WEB-INF\lib
  • Restart Tomcat

Applying in Wiki#

complete Syntax of the statement

[{PageQuery  pattern='^\\|*([^|]*)\\|*([^|]*)$' link='booktitle' select='booktitle,author' 
  from='Library_' where='category=available'}]

gets you

booktitleauthor
Understanding the Linux KernelDaniel P. Bovet
Head First Java (Head First)Bert Bates, Kathy Sierra, und Mike Loukides
Spain (Lonely Planet Spain)Damien Simonis

Every entry of this table stands for a wikipage.

elements#

select#

Similiar to SQL
determines which keys should be selected - in our case booktitle and author
select='booktitle,author'

from-Klausel#

Similar to SQL
Prefix from the wikipages the should be queried. Library_ will query pages called Library_Spain, Library_LinuxCoreCompiler but not LibCappuccinoFromItaly
from='Library_'

where-Klausel (optional)#

Similar to SQL
As you see the values for category are not displayed. But they are considered. Thats way pages that don't contain the key=value:
categoryavailable
are left out.
where='category=available'

link (optional)#

Determines of one of the rows should be made a link that leeds to the page.
link='Titel'

pattern (optional)#

(this is for advanced users)
Regular expression that termines in which form the key=value pairs should be parsed
In other words it describes the pattern of the tables
Example: |key|value
means:
pattern='^\\|([^|]*)\\|([^|]*)$'

and a totally flexible pattern
pattern='^\\|*([^|]*)\\|*([^|]*)$'

Java Reguläre Ausdrücke#

regex, regular Expression
http://www.uni-koeln.de/rrzk/kurse/unterlagen/java/javaref/regex/index.htm

Bedeutung#

PageQuery geht über alle Seiten die den gleichen Präfix haben und holt sich alle Werte aus dortigen 2-spaltigen Tabellen. Diese Werte können dann tabellarisch angezeigt werden:

PageQuery arbeitet daher besonders gut mit Formularhandlern wir z.b. dem GenericNamePageHandler

Praxisbeispiel#

Inventarliste in der Bibliothek

Technische Realisierung#

Ins Wiki einbinden#

  • OWiki.jar ins WEB-INF/lib kopieren
  • Server neustarten

im Wiki nutzen#

Pagequery wird vorzugsweise auf einer neuen leeren Seite angewandt.

komplette Syntax

[{PageQuery  pattern='^\\|*([^|]*)\\|*([^|]*)$' link='Zeile1' select='Zeile1,Zeile2' 
  from='test_' where='Zeile1=Bedingung1'}]

liefert

Zeile1Zeile2
Wert_Zeile1_Seite1Wert_Zeile2_Seite1
Wert_Zeile1_Seite2Wert_Zeile2_Seite2
Wert_Zeile1_Seite3Wert_Zeile2_Seite3

Elemente:#

select-Klausel#

ähnlich dem Select von SQL
alle Spaltenbezeichner, die in der Übersicht angezeigt werden sollen
select='Zeile1,Zeile2'

from-Klausel#

ähnlich dem From von SQL
Präfix aller Seiten, die angezeigt werden sollen.
from='test_'

Wird alle Seiten durchsuchen, die mit "test_" anfangen. Also test_Buch1 test_Buch2. Aber nicht testBuch3.

where-Klausel (optional)#

ähnlich dem where von SQL
Filtert die Seiten heraus, die der Where-Klausel entsprechen
where='Zeile1=Bedingung1'

link (optional)#

Spaltenbezeichner, der als Link angezeigt wird (zur entsprechenden Seite)
link='Zeile1'

pattern (optional)#

(für fortgeschrittene User vorzugweise mit Programmiererfahrung)
Regulärer Ausdruck
beschreibt das Muster der Tabelle auf den Zielseiten
z.Bsp: |Zeichenkette|Zeichenkette
entspricht:
pattern='^\\|([^|]*)\\|([^|]*)$'

flexibles pattern
pattern='^\\|*([^|]*)\\|*([^|]*)$'

Java Reguläre Ausdrücke#

regex, regular Expression
http://www.uni-koeln.de/rrzk/kurse/unterlagen/java/javaref/regex/index.htm

Add new attachment

Only authorized users are allowed to upload new attachments.
« This page (revision-7) was last changed on 13-Feb-2009 19:25 by Scott Hebert