Hauptseite.temp
Inhaltsverzeichnis
Markos Fragmente
cat /tmp/10-001-0002.txt | php edit.php --user "MarkoSeidel" "10-001-0002" --summary "Import 2020-09-30"
Erzwinge Datenbank-Refresh für eine Seite php getText.php "10-001-0002" | php edit.php --user "MarkoSeidel" "10-001-0002" --summary "Bla bla"
http://archiv.ub.uni-stuttgart.de/UAMatrikel/index.php/Spezial:Attribute
Übersicht: Denkmalpflege, Uniarchiv und Thorax
Zentrale Templates und Formulare
Hinweis zur Benennung: Wörter, die als solches im Englischen existieren, wurden ohne Trennung verwendet. timeframe aber nicht time_frame. Zusammensetzungen aus mehreren Wörtern wurden durch _ getrennt. student_status aber nicht studenstatus
Formulardefinitionen
Formulardefinitionen haben die Form ARCHIUM_FORM_distributionsname_objektname
Bespiel: ARCHIUM_FORM_uas_object, ARCHIUM_FORM_hascher_literature
Link zum Code der Formulardefinition vom Uniarchiv: ARCHIUM_FORM_uas_object
Jede Formulardefinition tut im Wesentlichen folgendes:
- Zuerst passiert ein bisschen Kleinkram. Es gibt einen Aufruf für den "Mit Formular bearbeiten"-Link und magic words mit zweifelhaftem Nutzen.
- Als nächstes wird ein Aufruf auf das Anzeigetemplate ARCHIUM_TEMPLATE_uas_display eingebettet.
- Es folgt die Einbettung von "ARCHIUM_HIDE_BEGIN".
- Anschließend findet die eigentliche Formulardefinition statt.
- Am Ende noch die Einbettung von "ARCHIUM_HIDE_END" und die Definition der Kategorie.
Die fertige Wikiseite sieht im Allgemeinen so aus:
{{ARCHIUM TEMPLATE uas display}}
{{ARCHIUM HIDE BEGIN}}
{{ARCHIUM_TEMPLATE_uas_property1|param1 = foo}}
{{ARCHIUM_TEMPLATE_uas_property2|param1 = bar|param2 = baz}}
...
{{ARCHIUM HIDE END}}
Eigenschaftstemplates
Eigenschaftstemplates haben die Form ARCHIUM_TEMPLATE_distributionsname_eigenschaft
Beispiel: ARCHIUM_TEMPLATE_uas_signature, ARCHIUM_TEMPLATE_hascher_date_of_creation usw.
Link zum Code des Signaturtemplates vom Uniarchiv: ARCHIUM_TEMPLATE_uas_signature
Für jede Eigenschaft gibt es jeweils ein spezialisiertes Template. Meist sind die Templates sehr simpel gestrickt.
- Es gibt jeweils ein
#cargo_declareim<noinclude>-Teil, das die gewünschte Tabelle definiert. - Ansonsten nehmen fast alle Templates einen benannten Parameter entgegen, testen, ob dieser leer ist oder nicht
- und schreiben ihn gegebenenfalls in die Datenbank.
- Es gibt Ausnahmen wie die Templates, die mit Datumsangaben befasst sind oder die, die mehr als einen Parameter entgegennehmen.
- Dort passiert unter Umständen jeweils noch ein bisschen mehr.
Formatierungstemplates
Formatierungstemplates haben die Form ARCHIUM_TEMPLATE_format_eigenschaft
Beispiel: ARCHIUM_TEMPLATE_format_attachment, ARCHIUM_TEMPLATE_format_timeframe
Link zum Code des Formatierungstemplates für Zeiträume: ARCHIUM_TEMPLATE_format_timeframe
Hier habe ich auf den Distributionsnamen verzichtet. Der Gedanke war, dass diese Templates bei allen Anwendungen gleich aussehen sollten.
Es gibt ein allgemeines Formatierungstemplate mit dem Namen ARCHIUM_TEMPLATE_format_ul. Es gibt die Parameter, formatiert als
unnummerierte Liste zurück und kümmert sich um das "Popup" mit verwandten Seiten beim Überfahren von Einträgen. Das ist der Unterschied
zur normalen Formatierung mit format = ul. Die Formatierung als unnumerierte Liste erfolgt übrigens durch ein
<div class = "archium-ul">...</>. Der Grund ist, dass damit die Formatierung mit CSS erleichtert wird, ohne die Standard <ul>-Tags zu beeinflussen.
Die restlichen Formatierungstemplates dienen dazu, bestimmte Ergebnisse, wie eben Datumsangaben oder auch Fleder mit zwei oder mehr Ergebnisspalten entsprechend zu formatieren. Für Datumsangaben ist wie üblich ein bisschen Mehraufwand nötig, Templates für die Formatierung von Zeitspannen fügen im Ergebnis einen Bindestrich ein usw..
Anzeigetemplates
Anzeigetemplates haben die Form ARCHIUM_TEMPLATE_distributionsname_display_objektname, wobei der Objektname optional ist.
Beispiel: ARCHIUM_TEMPLATE_uas_display, aber ARCHIUM_TEMPLATE_hascher_display_literature
Link zum Code des Anzeigetemplates vom Uniarchiv: ARCHIUM_TEMPLATE_uas_display
Die Displaytemplates sind die zentralen und im Prinzip einzigen Anzeigetemplates. Gibt es nur einen Objekttyp, gibt es auch nur ein Anzeigetemplate. In jedem Displaytemplate passiert in der vollständigen Version folgendes:
- Alles beginnt mit der Einbettung von ARCHIUM_HIDE_BEGIN
- Einbettung des Formularlinks (sinnvoll?) und magic words, wieder mit zweifelhaftem Nutzen.
- Definition einiger Hilfsvariablen. Besonders zu erwähnen ist hier die rudimentäre Rechteverwaltung. Es werden beispielsweise beim Uniarchiv vier Berechtigungsstufen definiert. Von 0 wie "frei" bis 3 zu "sysop", beispielsweise
{{#vardefine:access_free |0}}. Danach wird dem jeweilgen Benutzer eine Berechtigungsstufe zugewiesen.- Im Augenblick ist das nur:
{{#vardefine:access_user|{{#ifsysop:{{#var:access_sysop}}|{{#var:access_free}}}}}}- mit anderen Worten: Bist du Sysop? Ja oder nein.
- Anschließend wird jeder anzuzeigenden Eigenschaft eine Freigabestufe zugewiesen:
- Beispiel:
{{#vardefine:access_date_of_modification |3}}=> das Änderungsdatum soll nur von sysops angezeigt werden dürfen.
- Es folgt der Abfrage-/Query-Teil. Hier werden nacheinander alle anzuzeigenden Eigenschaften aus der Datenbank abgefragt und in Variablen gespeichert. Dabei wird für eingeschänkte Felder zunächst überprüft, ob die Berechtigungsstufe des Benutzers größer oder gleich der gesetzten Freigabestufe ist. Zum Beispiel so:
{{#ifexpr: {{#var:access_user}}>={{#var:access_signature}}- Ist das der Fall, wird die Abfrage ausgeführt. Falls nicht wird die entsprechende Ergebnisvariable durch ein Symbolbild und der Ausschrift "keine Berechtigung" ersetzt.
- Nach dem Query-Teil gibt es ein ARCHIUM_HIDE_END
- Ab hier kommt der eigentliche Anzeigecode in HTML. Nacheinander werden alle Bereiche der Seite angelegt und mit dem Inhalt der entsprechenden Variablen gefüllt.
- Ganz am Ende folgt noch die Definition der Kategorie.
Anmerkung zu Kategorien
Jedes distributionsspezifische Template und Formular wie beispielsweise ARCHIUM_TEMPLATE_uas_display oder ARCHIUM_TEMPLATE_hascher_signature wird durch den Aufruf von {{ARCHIUM_TEMPLATE_hook|distributionsname}} einer entsprechenden Kategorie zugewiesen, zum Beispiel ARCHIUM_uas oder ARCHIUM_hascher. Das erleichtert das Auffinden bei gemischten Template-Sammlungen. Auch die allgemeinen Templates erhalten eine Kategorie, auch wenn sie für jede Distribution gleich aussehen sollten.
Übersicht, Vergleich alt/neu Uniarchiv
| Eigenschaft | Beispiel alt / Beispiel neu |
| Navigator* | {{MAT_Navigator|10-008|10-008-0033|10-008-0035}}
|
| Intro* | {{MAT_Intro|alternate Intro|10-008-0011.jpg|Bildunterschrift}}
|
| Signatur | {{MAT_Signatur|Universitätsarchiv Stuttgart 10/8}}
|
| Titel | {{MAT_Buchtitel|Königliche Technische Hochschule Stuttgart. Liste der Studierenden vom Sommersemester 1904}}
|
| Laufzeiten | {{MAT_Laufzeiten}}
|
| Zeitpunkt* | {{MAT_Zeitpunkt|19.05.2020|Zeitpunkt}}
|
| Zeitraum* | {{MAT_Zeitraum|16.04.1904|30.09.1904|Alternativtext}}
|
| Alphabete | {{MAT_Alphabete}}
|
| Alphabet | {{MAT_Alphabet|Hoß|Jaiser}}
|
| Namen* | {{MAT_Namen|Fend, Georg; Flaccus, Ludwig; Formis, Harry}}
|
| Textangaben | {{MAT_Textangaben|Lehrkörper und Beamte}}
|
| Studentenstatusse | {{MAT_Studentenstatusse}}
|
| Studentenstatus | {{MAT_Studentenstatus|Gefallene}}
|
| Freigabe | {{MAT_Freigabe|eingeschränkt}}
|
| Dateiname | {{MAT_File|Filename.file}}
|
| Beschreibungsebene | {{MAT_Beschreibungsebene|Seite}}
|
| Bearbeitungsdatum* | {{MAT_Bearbeitungsdatum|18.06.2020}}
|
| Anmerkungen | {{MAT_Anmerkung|Die Stelle, an der die Eintragung für SS 1892 erfolgte, ist im Buch abgeschnitten.}}
|
| Spracherkennung* | {{MAT_Spracherkennung|de}}
|
| Freitext* | Textblabla
|
Hinweise:
- Navigator: Zum navigieren bastel ich noch was.
- Intro: Bildunterschrift oder alternatives Intro ist bisher nicht vorgesehen. Scheinbar wurden aber bisher sowieso nur Standardwerte benutzt.
- Zeitpunkt: Alternativtext für Zeitpunkt ist nicht vorgesehen, wurde vermutlich aber auch nicht benutzt.
- Zeitraum: Wie bei Zeitpunkt.
- Namen: Ich habe beide Varianten gefunden - Parameter als semikolonspearierte Liste (p1;p2;p3;...) und als kommaseparierte (p1,p2,p3)
- Bearbeitungsdatum: Muss bisher in der Formularmaske explizit angegeben werden. Die neue Version nutzt
{{REVISIONTIMESTAMP}}und bezieht die Information direkt vom Mediawiki. Es kann allerdings ein alternatives Datum angegeben werden, was im Backend gespeichert wird, angezeigt wird allerdings bisher immer{{REVISIONTIMESTAMP}}. - Spracherkennung: Sprach"erkennung" ist bisher nicht vorhanden. Im Uniarchiv zumindest sollten aber sowieso alle Seiten auf Deutsch sein.
- Freitext: Ich denke, für Freitext haben wir in dem Sinn keine Verwendung mehr. Sollten wir über dieses Feld noch irgendwelchen Code einbetten wollen, dann wohl lieber über Templates bzw. direkt bei der Erstellung der Seite.
Funktionen Juni 2020
Sowohl Hascher, als auch Thorax und Uniarchiv sind leider alle auf einem unterschiedlichen Stand, da bestimmte Funktionen für einen Teil entwickelet wurde, ohne alles sofort für die anderen beiden zu übernehmen.
| Eigenschaft | Thorax | Hascher | Uniarchiv |
| untergeordnete Objekte | nein | ja | nein |
| tolle Datumsformatierung, Präzision | nein | nein | ja |
| Bearbeitungslinks | ja | ja | ja |
| Eigenschaftsspezifisches Popup | nein | nein | ja |
| Rudimentäre Rechteverwaltung | nein | nein | ja |
| Änderungsdatum direkt vom Mediawiki | nein | nein | ja |
Nachfolgend noch eine Übersicht, welche Änderungen jeweils vorgenommen werden müssten, wenn man die Funktionalität übernehmen will.