Modul:Faktenbox/Doku: Unterschied zwischen den Versionen
(→zeileSemantikBrowsen(): zeileSemantikBrowsenAbfrage) |
|||
| (21 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt) | |||
| Zeile 3: | Zeile 3: | ||
Dieses Modul enthält gemeinsame Funktionen, um eine Faktenbox zu füllen | Dieses Modul enthält gemeinsame Funktionen, um eine Faktenbox zu füllen | ||
== Funktionen Modul:Faktenbox == | == Funktionen [[Modul:Faktenbox]] == | ||
=== <code>Faktenbox()</code> === | === <code>Faktenbox()</code> === | ||
| Zeile 10: | Zeile 10: | ||
Sie setzt ebenso Attribute wie die regulären Faktenboxen z.B. von Gebäuden, Straßen, Personen usw. | Sie setzt ebenso Attribute wie die regulären Faktenboxen z.B. von Gebäuden, Straßen, Personen usw. | ||
== Funktionen Modul:Faktenbox/Tabs == | === Wrapper === | ||
Funktionsaufrufe von Modul:Faktenbox werden an die Unterseiten-Module weitergereicht. | |||
== Funktionen [[Modul:Faktenbox/Tabs]] == | |||
=== <code>universalDatenTab()</code> === | === <code>universalDatenTab()</code> === | ||
| Zeile 17: | Zeile 20: | ||
=== <code>bildTab()</code> === | === <code>bildTab()</code> === | ||
Selbsterklärend... | Selbsterklärend... | ||
=== <code>benennungenTab()</code> === | |||
Tab mit Liste der Benennungen. | |||
=== <code>tab()</code> === | |||
Vervollständigt Tab-Inhalt zu einem Tab. | |||
=== <code>table_header_footer()</code> === | |||
Baut die HTML-Tags für eine table herum. | |||
=== <code>factbox_header_footer()</code> === | |||
Baut die HTML-Tags für eine factbox herum. | |||
== Funktionen [[Modul:Faktenbox/Tabs/Karte]] == | |||
=== <code>kartenTab()</code> === | === <code>kartenTab()</code> === | ||
Selbsterklärend... | Selbsterklärend... | ||
=== <code> | === <code>getKartenArgs()</code> === | ||
Karten-Argumente übernehmen und aufbereiten. | |||
== Funktionen [[Modul:Faktenbox/Tabs/Adressen]] == | |||
=== <code>adressenTab()</code> === | === <code>adressenTab()</code> === | ||
Tab mit Liste der Adressen. | Tab mit Liste der Adressen. | ||
Die Adressen werden bestmöglich chronologisch aufsteigend sortiert. | |||
=== <code> | === <code>p.sortIndex() und p.smwDate2SortIndex()</code> === | ||
Erstellen Sortierindizes anhand Datum und Schlüsselwörtern (z.B. Geburtshaus ganz oben) für chronologische Sortierung. | |||
== Funktionen Modul:Faktenbox/ | == Funktionen [[Modul:Faktenbox/Zeilen]] == | ||
=== <code>zeileKategorieSeite()</code> === | === <code>zeileKategorieSeite()</code> === | ||
Diese Zeile ist die oberste Zeile eines Daten-Tabs, welche nochmal den Namen des Objekts und einen Link zur Klassen-Kategorie anzeigt | Diese Zeile ist die oberste Zeile eines Daten-Tabs, welche nochmal den Namen des Objekts und einen Link zur Klassen-Kategorie anzeigt setzt. | ||
=== <code>zeileStrasseHnr()</code> === | === <code>zeileStrasseHnr()</code> === | ||
| Zeile 46: | Zeile 66: | ||
=== <code>zeileDatum()</code> === | === <code>zeileDatum()</code> === | ||
Zeile um ein Datum standardisiert per <code> | Zeile um ein Datum standardisiert per <code>linkFormDateAttrList()</code> anzuzeigen. | ||
=== <code>zeileEndeDatum()</code> === | |||
Wie zeileDatum(), aber dass Ende-Attribute ([[Attribut:Ehemals]], [[Attribut:Verstorben]], ...) automatisch gesetzt und nicht angezeigt wird, wenn Ende-Datum ([[Attribut:Schließungsdatum]], [[Attribut:Todesdatum]], ...) angegeben. | |||
=== <code>zeileEndeJahr()</code> === | |||
Wie zeileDatum(), aber dass Ende-Attribute ([[Attribut:Ehemals]], ...) automatisch gesetzt und nicht angezeigt wird, wenn Ende-Jahr ([[Attribut:Abrissjahr]], ...) angegeben. | |||
=== <code>zeileSemantikBrowsenAbfrage()</code> === | === <code>zeileSemantikBrowsenAbfrage()</code> === | ||
| Zeile 71: | Zeile 97: | ||
|- | |- | ||
| <code>val_postfix</code> || Attribut-Wert-Postfix z.B. "km" | | <code>val_postfix</code> || Attribut-Wert-Postfix z.B. "km" | ||
|- | |||
| <code>val_show_only</code> || Attribut-Wert nur anzeigen, aber nicht setzen | |||
|} | |} | ||
| Zeile 84: | Zeile 112: | ||
#* Attribut <code>name</code> mit <code>val</code> per <code><nowiki>{{#set:Attribut=Wert}}</nowiki></code> unsichtbar im Hintergrund gesetzt, auch wenn das Verarbeitungsfehler provoziert (gewollt) | #* Attribut <code>name</code> mit <code>val</code> per <code><nowiki>{{#set:Attribut=Wert}}</nowiki></code> unsichtbar im Hintergrund gesetzt, auch wenn das Verarbeitungsfehler provoziert (gewollt) | ||
== | === <code>setUrlAttr()</code> === | ||
Setzen eines URL-Attributs (https:/http:). | |||
=== <code>setEmailAttr()</code> === | |||
Setzen eines E-Mail-Attributs (mailto:). | |||
=== <code>setTelAttr()</code> === | |||
Setzen eines Telefon-Attributs (tel:). | |||
=== <code>setStandardAttr()</code> === | |||
Setzen eines Standard-Attributs. | |||
Klammerwerte werden optional abgetrennt und Attribut-Wert wird optional nur angezeigt, aber nicht gesetzt. | |||
=== <code>getTelUri()</code> === | |||
Standard-konformes Bilden einer Telefon-URI. | |||
=== [[Modul:Faktenbox/Zeilen/RedLinks]] === | |||
Enthält Tabelle mit Attributen, die nicht als rote Links angezeigt werden sollen. | |||
=== <code> | == Funktionen [[Modul:Faktenbox/Common]] == | ||
=== <code>postprocess()</code> === | |||
Sonstige gemeinsame Dinge anfügen | Sonstige gemeinsame Dinge anfügen | ||
* Klasse | * Klasse | ||
| Zeile 92: | Zeile 139: | ||
* Kategorien | * Kategorien | ||
* Wartung | * Wartung | ||
Ebenso werden die Attribute final gesetzt, sofern keine transcludierte Unterseite. | |||
=== <code> | === <code>getFbdata()</code> === | ||
Erstellt Faktenbox-Daten-Tabelle. | Erstellt Faktenbox-Daten-Tabelle. | ||
Außerdem: | |||
* Setzt Attribut:Seite und Attribut:TopSeite | |||
* Berechnet und setzt Attribut:Hash auf Basis aller fbdata.pargs | |||
* Prüft, ob die Seite mit der Faktenbox eine transcludierte Unterseite ist, und setzt fbdata.transcluded | |||
=== <code>addWartungsmeldung()</code> === | |||
Wartungsmeldung zu Attribut:Wartungsmeldung hinzufügen. | |||
Wird final gesetzt in <code>postprocess()</code>. | |||
== <code>fbdata</code>-Daten-table == | == <code>fbdata</code>-Daten-table == | ||
Um die Parameter-Übergabe zu obigen Funktionen zu vereinfachen wird die <code>fbdata</code>-Daten-table verwendet, in der folgende Daten abgelegt werden: | Um die Parameter-Übergabe zu obigen Funktionen zu vereinfachen wird die <code>fbdata</code>-Daten-table verwendet, in der folgende Daten abgelegt werden: | ||
* <code>fbdata.frame</code> = <code>frame</code> von <code>Faktenbox(frame)</code> | * <code>fbdata.frame</code> = <code>frame</code> von <code>Faktenbox(frame)</code> | ||
* <code>fbdata.args</code> = <code>frame.args</code>. Beispiel: <code>fbdata.args["Ehemals"]</code> oder <code>fbdata.args.Ehemals</code> | |||
* <code>fbdata.pargs</code> = <code>frame:getParent().args</code>. Beispiel: <code>fbdata.pargs["Ehemals"]</code> oder <code>fbdata.pargs.Ehemals</code> | * <code>fbdata.pargs</code> = <code>frame:getParent().args</code>. Beispiel: <code>fbdata.pargs["Ehemals"]</code> oder <code>fbdata.pargs.Ehemals</code> | ||
* <code>fbdata.workmode </code> = <code>fbdata.pargs["Work"]</code> ist true | |||
* <code>fbdata.klasse</code> Klassen-table. Beispiel Kirche: <code>fbdata.klasse = {"Kirche", "Gebäude"}</code> ("Kirche" ist primäre und "Gebäude" sekundäre Klasse) | * <code>fbdata.klasse</code> Klassen-table. Beispiel Kirche: <code>fbdata.klasse = {"Kirche", "Gebäude"}</code> ("Kirche" ist primäre und "Gebäude" sekundäre Klasse) | ||
* <code>fbdata.kategorie</code> Kategorien-table. Beispiel Kirche: <code>fbdata.kategorie = {"Kirchen", "Gebäude"}</code> ("Kirchen" ist primäre und "Gebäude" sekundäre Kategorie) | * <code>fbdata.kategorie</code> Kategorien-table. Beispiel Kirche: <code>fbdata.kategorie = {"Kirchen", "Gebäude"}</code> ("Kirchen" ist primäre und "Gebäude" sekundäre Kategorie) | ||
* <code>fbdata.kategorie_einzahl</code> Einzahl-Kategorien-table als Alternative zu <code>fbdata.klasse</code>. Beispiel Kirche: <code>fbdata.kategorie_einzahl = {"Kirche", "Gebäude"}</code> ("Kirche" ist primäre und "Gebäude" sekundäre Kategorie) | |||
* <code>fbdata.formular</code> Formular | * <code>fbdata.formular</code> Formular | ||
* Pagesnames | * Pagesnames | ||
** <code> | ** <code>fbdata.fullpagename</code> | ||
** <code> | ** <code>fbdata.pagename</code> | ||
** <code> | ** <code>fbdata.subpagename</code> | ||
* <code> | * <code>fbdata.strasse_hnr</code> Untertabelle für Straße/Hausnummer-Daten | ||
** <code> | ** <code>fbdata.strasse_hnr.strasse</code> Untertabelle für Straßen | ||
*** <code> | *** <code>fbdata.strasse_hnr.strasse.name</code> Straßenname | ||
*** <code> | *** <code>fbdata.strasse_hnr.strasse.hausnummer</code> Hausnummern-table dieser Straße | ||
*** <code> | *** <code>fbdata.strasse_hnr.strasse.suspekt</code> Suspekte Formular-Werte dieser Straße | ||
** <code> | ** <code>fbdata.strasse_hnr.suspekt </code> Suspekte Formular-Werte aller Straßen | ||
** <code> | ** <code>fbdata.strasse_hnr.anzahlGebaeude </code> Anzahl aller gültigen Straße/Hausnummer-Kombinationen | ||
* <code>fbdata.attr</code> Attribute | |||
** <code>fbdata.attr.list</code> = Attribute-Liste (table) | |||
** <code>fbdata.attr.subid</code> = Sobobject-Indentifier | |||
** <code>fbdata.attr.noattr</code> = Attribute nicht setzen Flag | |||
* <code>fbdata.geoobjects</code> = Geo-Objekte von [[Modul:Karte]] gefüllt | |||
* <code>fbdata.transcluded </code> = Faktenbox ist in transcludierte Unterseite | |||
* Ggf. weitere Klassen-abhängige Einträge | * Ggf. weitere Klassen-abhängige Einträge | ||
| Zeile 133: | Zeile 198: | ||
* [[Modul:Wiki]] | * [[Modul:Wiki]] | ||
* [[Modul:Geo]] | * [[Modul:Geo]] | ||
* [[Modul: | * [[Modul:Karte]] | ||
* [[Modul:SMW]] | |||
* [[Modul:LinkFormDatum]] | * [[Modul:LinkFormDatum]] | ||
</div> | </div> | ||
Aktuelle Version vom 11. Februar 2026, 08:36 Uhr
Seiten-Übersicht
| Hauptseite | Unterseiten | ||
|---|---|---|---|
| Allgemein | |||
| Faktenbox | Vorlagen | ||
| Formulare |
|
||
| Module | |||
| Abfrage | Vorlagen |
| |
| Formulare |
| ||
| Sonstige | |||
Dieses Modul enthält gemeinsame Funktionen, um eine Faktenbox zu füllen
Funktionen Modul:Faktenbox
Faktenbox()
Universelle Faktenbox ohne Formular/Klasse/Gebäude. Sie kann als zusätzliche Faktenboxen auf einer Seite eingebaut werden ähnlich Vorlage:Tabbox. Sie setzt ebenso Attribute wie die regulären Faktenboxen z.B. von Gebäuden, Straßen, Personen usw.
Wrapper
Funktionsaufrufe von Modul:Faktenbox werden an die Unterseiten-Module weitergereicht.
Funktionen Modul:Faktenbox/Tabs
universalDatenTab()
Universeller Daten-Tab zeigt alle seine übergebenen Parameter außer die für Karte und Bild an.
bildTab()
Selbsterklärend...
benennungenTab()
Tab mit Liste der Benennungen.
tab()
Vervollständigt Tab-Inhalt zu einem Tab.
Baut die HTML-Tags für eine table herum.
Baut die HTML-Tags für eine factbox herum.
Funktionen Modul:Faktenbox/Tabs/Karte
kartenTab()
Selbsterklärend...
getKartenArgs()
Karten-Argumente übernehmen und aufbereiten.
Funktionen Modul:Faktenbox/Tabs/Adressen
adressenTab()
Tab mit Liste der Adressen. Die Adressen werden bestmöglich chronologisch aufsteigend sortiert.
p.sortIndex() und p.smwDate2SortIndex()
Erstellen Sortierindizes anhand Datum und Schlüsselwörtern (z.B. Geburtshaus ganz oben) für chronologische Sortierung.
Funktionen Modul:Faktenbox/Zeilen
zeileKategorieSeite()
Diese Zeile ist die oberste Zeile eines Daten-Tabs, welche nochmal den Namen des Objekts und einen Link zur Klassen-Kategorie anzeigt setzt.
zeileStrasseHnr()
Wie zeile(attr, attrText, val), aber speziell ausgrichtet, um Attribut:Straße, Attribut:Hausnummer, Attribut:StraßeHnr und Attribut:AnzahlGebäude zu setzen und anzuzeigen.
zeileAktenNr()
Wie zeile(attr, attrText, val), aber speziell ausgrichtet, um Attribut:AktenNr zu setzen und anzuzeigen.
Die AktenNr werden als Query-Link und mit Seitenanzahl mit dieser AktenNr angezeigt.
zeileGeoDaten()
Zeile um alle Attribut:Geokoordinaten mit OSM-Link und die Attribut:GeoJson-Karte zu anzuzeigen.
zeileDatum()
Zeile um ein Datum standardisiert per linkFormDateAttrList() anzuzeigen.
zeileEndeDatum()
Wie zeileDatum(), aber dass Ende-Attribute (Attribut:Ehemals, Attribut:Verstorben, ...) automatisch gesetzt und nicht angezeigt wird, wenn Ende-Datum (Attribut:Schließungsdatum, Attribut:Todesdatum, ...) angegeben.
zeileEndeJahr()
Wie zeileDatum(), aber dass Ende-Attribute (Attribut:Ehemals, ...) automatisch gesetzt und nicht angezeigt wird, wenn Ende-Jahr (Attribut:Abrissjahr, ...) angegeben.
zeileSemantikBrowsenAbfrage()
Zeile mit Link zum semantischen Browsen (Datensicht) und zur Abfrage.
zeile()
Standard-Zeile um ein Attribut zu setzen und anzuzeigen. Wenn es sich beim Attribut-Wert um eine Liste mit mehreren Elementen handelt, wird vom Attribut-Anzeigetext automatisch die Mehrzahl gebildet.
| Parameter | Beschreibung |
|---|---|
attr_name |
Attribut-Name |
attr_text |
Optionaler Attribut-Anzeigetext. Default: attr_name. Siehe auch attr_text_anzeige
|
attr_val |
Attribut-Wert. Wenn nicht übergeben, werden die von der #invoke:-Vorlage übergegebenen Parameter (fbdata.pargs) verwendet.
|
fbdata |
fbdata-Daten-table mit von der #invoke:-Vorlage übergegebenen Parameter (fbdata.pargs).
|
delimiter |
Trennzeichen bei Werte-Listen. Bei Nicht-Übergabe wird Attribut-Wert auch nicht als Liste behandelt. |
val_prefix |
Attribut-Wert-Prefix z.B. "ca." |
val_postfix |
Attribut-Wert-Postfix z.B. "km" |
val_show_only |
Attribut-Wert nur anzeigen, aber nicht setzen |
setPageAttr()
Setzen eines Attributs vom Datentyp Seite in folgender Prüf- und Setzreihenfolge:
- Wenn
valproblematische Wikitext/HTML-Inhalte enthält, dann wirdval1:1 angezeigt und ggf. gerendert (nicht innerhalb[[Attribut::Wert]])- Attribut
namemitvalper{{#set:Attribut=Wert}}unsichtbar im Hintergrund gesetzt, auch wenn das Verarbeitungsfehler provoziert (gewollt)
- Ansonsten wenn
valals Seite existiert, wird diese 1:1 gesetzt und angezeigt ([[Attribut::Wert]]) - Ansonsten wenn
valKlammerungen am Anfang oder am Ende enthält (Beispiel: "(BlaBlub) Rathaus (BlaBla)"), wird geprüft, ob eine Seite ohne die Klammerungen (also Rathaus) existiert. Wenn ja, wird "(BlaBlub) Rathaus (BlaBla)" angezeigt und das Attribut mit nur "Rathaus" gesetzt. - Ansonsten wird
val1:1 angezeigt und ggf. gerendert (nicht innerhalb[[Attribut::Wert]])- Attribut
namemitvalper{{#set:Attribut=Wert}}unsichtbar im Hintergrund gesetzt, auch wenn das Verarbeitungsfehler provoziert (gewollt)
setUrlAttr()
Setzen eines URL-Attributs (https:/http:).
setEmailAttr()
Setzen eines E-Mail-Attributs (mailto:).
setTelAttr()
Setzen eines Telefon-Attributs (tel:).
setStandardAttr()
Setzen eines Standard-Attributs. Klammerwerte werden optional abgetrennt und Attribut-Wert wird optional nur angezeigt, aber nicht gesetzt.
getTelUri()
Standard-konformes Bilden einer Telefon-URI.
Modul:Faktenbox/Zeilen/RedLinks
Enthält Tabelle mit Attributen, die nicht als rote Links angezeigt werden sollen.
Funktionen Modul:Faktenbox/Common
postprocess()
Sonstige gemeinsame Dinge anfügen
- Klasse
- Formular
- Kategorien
- Wartung
Ebenso werden die Attribute final gesetzt, sofern keine transcludierte Unterseite.
getFbdata()
Erstellt Faktenbox-Daten-Tabelle. Außerdem:
- Setzt Attribut:Seite und Attribut:TopSeite
- Berechnet und setzt Attribut:Hash auf Basis aller fbdata.pargs
- Prüft, ob die Seite mit der Faktenbox eine transcludierte Unterseite ist, und setzt fbdata.transcluded
addWartungsmeldung()
Wartungsmeldung zu Attribut:Wartungsmeldung hinzufügen.
Wird final gesetzt in postprocess().
fbdata-Daten-table
Um die Parameter-Übergabe zu obigen Funktionen zu vereinfachen wird die fbdata-Daten-table verwendet, in der folgende Daten abgelegt werden:
fbdata.frame=framevonFaktenbox(frame)fbdata.args=frame.args. Beispiel:fbdata.args["Ehemals"]oderfbdata.args.Ehemalsfbdata.pargs=frame:getParent().args. Beispiel:fbdata.pargs["Ehemals"]oderfbdata.pargs.Ehemalsfbdata.workmode=fbdata.pargs["Work"]ist truefbdata.klasseKlassen-table. Beispiel Kirche:fbdata.klasse = {"Kirche", "Gebäude"}("Kirche" ist primäre und "Gebäude" sekundäre Klasse)fbdata.kategorieKategorien-table. Beispiel Kirche:fbdata.kategorie = {"Kirchen", "Gebäude"}("Kirchen" ist primäre und "Gebäude" sekundäre Kategorie)fbdata.kategorie_einzahlEinzahl-Kategorien-table als Alternative zufbdata.klasse. Beispiel Kirche:fbdata.kategorie_einzahl = {"Kirche", "Gebäude"}("Kirche" ist primäre und "Gebäude" sekundäre Kategorie)fbdata.formularFormular- Pagesnames
fbdata.fullpagenamefbdata.pagenamefbdata.subpagename
fbdata.strasse_hnrUntertabelle für Straße/Hausnummer-Datenfbdata.strasse_hnr.strasseUntertabelle für Straßenfbdata.strasse_hnr.strasse.nameStraßennamefbdata.strasse_hnr.strasse.hausnummerHausnummern-table dieser Straßefbdata.strasse_hnr.strasse.suspektSuspekte Formular-Werte dieser Straße
fbdata.strasse_hnr.suspektSuspekte Formular-Werte aller Straßenfbdata.strasse_hnr.anzahlGebaeudeAnzahl aller gültigen Straße/Hausnummer-Kombinationen
fbdata.attrAttributefbdata.attr.list= Attribute-Liste (table)fbdata.attr.subid= Sobobject-Indentifierfbdata.attr.noattr= Attribute nicht setzen Flag
fbdata.geoobjects= Geo-Objekte von Modul:Karte gefülltfbdata.transcluded= Faktenbox ist in transcludierte Unterseite- Ggf. weitere Klassen-abhängige Einträge
attr_text_anzeige
Sofern kein attr_text angegeben, wird i. A. attr_name angezeigt.
Jedoch wird bei manchen attr_name-Attributen stattdessen automatisch die ausgeschriebene Version angezeigt.
Beispiel: Beim Attribut:TeilDesEnsembles wird anhand der table attr_text_anzeige "Teil des Ensembles" angezeigt.
Diese Übersetzung von attr_name zur Anzeige-Version ist in attr_text_anzeige abgelegt und erfolgt global bei allen Faktenboxen.