Modul:Queries/Doku: Unterschied zwischen den Versionen

keine Bearbeitungszusammenfassung
(debug an)
Keine Bearbeitungszusammenfassung
 
(17 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt)
Zeile 1: Zeile 1:
Dieses Modul enthält Abfragen für semantic Mediawiki, welche nicht oder nur sehr umständlich mit <code>{{#show}}</code> oder <code>{{#ask}}</code> realisiert werden können.
Dieses Modul enthält Abfragen für semantic Mediawiki, welche nicht oder nur sehr umständlich mit <code>{{#show}}</code> oder <code>{{#ask}}</code> realisiert werden können.


==getValues==
== <code>getValues()</code> / <code>GetValues()</code> ==
Gibt durch Semikolon getrennte Werte als String zurück. Diese Werte werden aus einem Attribut ausgelesen, welches ein Artikel enthält.
* lua: <code>getValues(page, attr, plain)</code> gibt Werte des Attributs <code>attr</code> der Seite <code>page</code> (immer) als <code>table</code> mit Strings zurück.
* Wikitext: <code>GetValues(frame)</code> gibt Werte des Attributs <code>attr</code> der Seite <code>page</code> als durch Semikolon (optional anderen Wert) getrennte Werte als String zurück.
 
Die Funktion <code>GetValues()</code> ist ähnlich <code>{{#show}}</code>, welches aber leider nur durch Komma getrennte Werte zurückgibt. Das ist ein Problem, denn in diesem Wiki werden Werte durch Semikolon getrennt da das Komma in allen Formularen als Satzzeichen gehandhabt wird.


===Parameter===
===Parameter===
* <code>page</code> - Seite, auf welcher sich das Attribut befindet.
{| class="wikitable"
* <code>attr</code> - Name des Attributs, welches ausgelesen werden soll.
|-
* <code>sep</code> - Separator. Ist Semikolon, wenn nicht angegeben.
! Variable !! Beschreibung !! Typ !! Required/Optional Default
|-
! <code>page</code>
| Seite, auf welcher sich das Attribut befindet
| string
| required
|-
! <code>attr</code>
| Name des Attributs, welches ausgelesen werden soll
| string
| required
|-
! <code>sep</code>
| Separator (nur bei <code>GetValues()</code>)
| string
| optional, default=";"
|-
! <code>plain</code>
| Nur-Text-Flag. Rückgabe-Wert ohne HTML.
| boolean
| optional, default=false
|}


Die Funktion ist ähnlich <code>{{#show}}</code>, welches aber leider nur durch Komma getrennte Werte zurückgibt. Das ist ein Problem, denn in diesem Wiki werden Werte durch Semikolon getrennt da das Komma in allen Formularen als Satzzeichen gehandhabt wird.
=== Test ===
{| class="wikitable"
! lua
! Wikitext
! Ergebnis
|-
| <code><nowiki>getValues("Rathaus", "StraßeHnr")</nowiki></code>
| <code><nowiki>-{{#invoke:{{#replace:{{PAGENAME}}|/Doku|}}|GetValues|page=Rathaus|attr=StraßeHnr}}-</nowiki></code>
| <code>-{{#invoke:{{#replace:{{PAGENAME}}|/Doku|}}|GetValues|page=Rathaus|attr=StraßeHnr}}-</code>
|-
| <code><nowiki>getValues("Rathaus", "BlaBla")</nowiki></code>
| <code><nowiki>-{{#invoke:{{#replace:{{PAGENAME}}|/Doku|}}|GetValues|page=Rathaus|attr=BlaBla}}-</nowiki></code>
| <code>-{{#invoke:{{#replace:{{PAGENAME}}|/Doku|}}|GetValues|page=Rathaus|attr=BlaBla}}-</code> (lua:nil bzw. Wiki:"nix")
|-
| <code><nowiki>getValues("Rathaus", "Bahnlinie")</nowiki></code>
| <code><nowiki>-{{#invoke:{{#replace:{{PAGENAME}}|/Doku|}}|GetValues|page=Rathaus|attr=Bahnlinie}}-</nowiki></code>
| <code>-{{#invoke:{{#replace:{{PAGENAME}}|/Doku|}}|GetValues|page=Rathaus|attr=Bahnlinie}}-</code> (lua:nil bzw. Wiki:"nix")
|-
| <code><nowiki>getValues("RathausBlaBla", "StraßeHnr")</nowiki></code>
| <code><nowiki>-{{#invoke:{{#replace:{{PAGENAME}}|/Doku|}}|GetValues|page=RathausBlaBla|attr=StraßeHnr}}-</nowiki></code>
| <code>-{{#invoke:{{#replace:{{PAGENAME}}|/Doku|}}|GetValues|page=RathausBlaBla|attr=StraßeHnr}}-</code> (lua:nil bzw. Wiki:"nix")
|-
| <code><nowiki>getValues("Rathaus", "Hausnummer")</nowiki></code>
| <code><nowiki>-{{#invoke:{{#replace:{{PAGENAME}}|/Doku|}}|GetValues|page=Rathaus|attr=Hausnummer}}-</nowiki></code>
| <code>-{{#invoke:{{#replace:{{PAGENAME}}|/Doku|}}|GetValues|page=Rathaus|attr=Hausnummer}}-</code>
|-
| <code><nowiki>getValues("Rathaus", "Seite")</nowiki></code>
| <code><nowiki>-{{#invoke:{{#replace:{{PAGENAME}}|/Doku|}}|GetValues|page=Rathaus|attr=Seite}}-</nowiki></code>
| <code>-{{#invoke:{{#replace:{{PAGENAME}}|/Doku|}}|GetValues|page=Rathaus|attr=Seite}}-</code>
|-
| <code><nowiki>getValues("Rathaus", "Seite", true)</nowiki></code>
| <code><nowiki>-{{#invoke:{{#replace:{{PAGENAME}}|/Doku|}}|GetValues|page=Rathaus|attr=Seite|plain=Ja}}-</nowiki></code>
| <code>-{{#invoke:{{#replace:{{PAGENAME}}|/Doku|}}|GetValues|page=Rathaus|attr=Seite|plain=Ja}}-</code>
|-
| <code><nowiki>getValues("Rathaus", "StraßeHnr")</nowiki></code>
| <code><nowiki>-{{#invoke:{{#replace:{{PAGENAME}}|/Doku|}}|GetValues|page=Rathaus|attr=StraßeHnr}}-</nowiki></code>
| <code>-{{#invoke:{{#replace:{{PAGENAME}}|/Doku|}}|GetValues|page=Rathaus|attr=StraßeHnr}}-</code>
|}


=== Test ===
== <code>getPages()</code> ==
* <code><nowiki>-getValues(Rathaus, StraßeHnr)-</nowiki></code> ergibt <code>-{{#invoke:Queries|GetValues|page=Rathaus|attr=StraßeHnr|debug=Ja}}-</code>
Gibt Seiten von der Query <code>query</code> als <code>table</code> zurück.
* <code><nowiki>-getValues(Rathaus, BlaBla)-</nowiki></code> ergibt <code>-{{#invoke:Queries|GetValues|page=Rathaus|attr=BlaBla|debug=Ja}}-</code>
 
* <code><nowiki>-getValues(Rathaus, Bahnlinie)-</nowiki></code> ergibt <code>-{{#invoke:Queries|GetValues|page=Rathaus|attr=Bahnlinie|debug=Ja}}-</code>
===Parameter===
* <code><nowiki>-getValues(RathausBlaBla, StraßeHnr)-</nowiki></code> ergibt <code>-{{#invoke:Queries|GetValues|page=RathausBlaBla|attr=StraßeHnr|debug=Ja}}-</code>
{| class="wikitable"
|-
! Variable !! Beschreibung !! Typ !! Required/Optional Default
|-
! <code>query</code>
| Abfrage
| string
| required
|-
! <code>plain</code>
| Nur-Text-Flag. Rückgabe-Wert ohne HTML.
| boolean
| optional, default=false
|}
 
== <code>uniFilter()</code> / <code>UniFilter()</code> ==
Gibt für eine Attribut-Query einen universellen Filter zurück.
Der Suchbegriff wird gesucht:
# als Ganzes
# als Volltextsuche
# wenn Semikolons vorhanden, dann außerdem als Liste von Einzelbegriffen
# wenn Suchtext leer, Vorhandensein irgendeines Wortes
 
Beispiele:
* <code><nowiki>{{#invoke:Queries|UniFilter|Wort1}}</nowiki></code> bzw. <code><nowiki>uniFilter("Wort1")</nowiki></code> ergibt <code>{{#invoke:Queries|UniFilter|Wort1}}</code>
* <code><nowiki>{{#invoke:Queries|UniFilter|Wort1 Wort2 Wort3}}</nowiki></code> bzw. <code><nowiki>uniFilter("Wort1 Wort2 Wort3")</nowiki></code> ergibt <code>{{#invoke:Queries|UniFilter|Wort1 Wort2 Wort3}}</code>
* <code><nowiki>{{#invoke:Queries|UniFilter|Wort1;Wort2;Wort3}}</nowiki></code> bzw. <code><nowiki>uniFilter("Wort1;Wort2;Wort3")</nowiki></code> ergibt <code>{{#invoke:Queries|UniFilter|Wort1;Wort2;Wort3}}</code>
* <code><nowiki>{{#invoke:Queries|UniFilter|Wort1;Wort2;}}</nowiki></code> bzw. <code><nowiki>uniFilter("Wort1;Wort2;")</nowiki></code> ergibt <code>{{#invoke:Queries|UniFilter|Wort1;Wort2;}}</code>
* <code><nowiki>{{#invoke:Queries|UniFilter|Wort1;;Wort3}}</nowiki></code> bzw. <code><nowiki>uniFilter("Wort1;;Wort3")</nowiki></code> ergibt <code>{{#invoke:Queries|UniFilter|Wort1;;Wort3}}</code>
* <code><nowiki>{{#invoke:Queries|UniFilter|Wort1; ;Wort3}}</nowiki></code> bzw. <code><nowiki>uniFilter("Wort1; ;Wort3")</nowiki></code> ergibt <code>{{#invoke:Queries|UniFilter|Wort1; ;Wort3}}</code>
* <code><nowiki>{{#invoke:Queries|UniFilter|Wort1;Wort2 Wort3}}</nowiki></code> bzw. <code><nowiki>uniFilter("Wort1;Wort2 Wort3")</nowiki></code> ergibt <code>{{#invoke:Queries|UniFilter|Wort1;Wort2 Wort3}}</code>
* <code><nowiki>{{#invoke:Queries|UniFilter| Wort1 ; Wort2 ; Wort3 }}</nowiki></code> bzw. <code><nowiki>uniFilter(" Wort1 ; Wort2 ; Wort3 ")</nowiki></code> ergibt <code>{{#invoke:Queries|UniFilter| Wort1 ; Wort2 ; Wort3 }}</code>
* <code><nowiki>{{#invoke:Queries|UniFilter|}}</nowiki></code> bzw. <code><nowiki>uniFilter("")</nowiki></code> ergibt <code>{{#invoke:Queries|UniFilter|}}</code>
* <code><nowiki>{{#invoke:Queries|UniFilter}}</nowiki></code> ergibt <code>{{#invoke:Queries|UniFilter}}</code>
 
== <code>dateLastDayCompleter()</code> ==
Vervollständigt ein unvollständiges Abfrage-''bis''-Datum zu entweder dem letzten des Monats oder des Jahres.
 
Anwendung: Wenn man im Formular z.B. von 2020 bis 2020 einträgt, dann wird bis 31.12.2020 gesucht.


== Unterseiten ==
== Unterseiten ==
{{Special:PrefixIndex/{{FULLPAGENAME}}/}}
{{Unterseitenliste|Modul:Queries}}
== Siehe auch ==
<div style="column-count:3">
* [[Modul:Common]]
* [[Modul:String]]
</div>