Hauptseite.temp: Unterschied zwischen den Versionen
K (KlausWendel verschob die Seite Hauptseite nach Hauptseite.temp) |
|||
| (252 dazwischenliegende Versionen von 3 Benutzern werden nicht angezeigt) | |||
| Zeile 1: | Zeile 1: | ||
| − | + | = 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 | |
| − | * [https:// | + | |
| − | + | <gallery mode="packed-hover"> | |
| − | + | File:10-001-0001.jpg|10-001-0001.jpg | |
| − | + | File:10-001-0002.jpg | |
| + | </gallery> | ||
| + | |||
| + | = Ü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''' <u>aber nicht</u> '''time_frame'''. Zusammensetzungen aus mehreren Wörtern wurden durch '''_''' getrennt. '''student_status''' <u>aber nicht</u> '''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: [https://matrikel.archium.org/index.php?title=Formular:ARCHIUM_FORM_uas_object&action=edit 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: | ||
| + | |||
| + | <code> | ||
| + | <nowiki> | ||
| + | {{ARCHIUM TEMPLATE uas display}} | ||
| + | </nowiki> | ||
| + | |||
| + | <nowiki> | ||
| + | {{ARCHIUM HIDE BEGIN}} | ||
| + | </nowiki> | ||
| + | |||
| + | <nowiki> | ||
| + | {{ARCHIUM_TEMPLATE_uas_property1|param1 = foo}} | ||
| + | </nowiki> | ||
| + | |||
| + | <nowiki> | ||
| + | {{ARCHIUM_TEMPLATE_uas_property2|param1 = bar|param2 = baz}} | ||
| + | </nowiki> | ||
| + | |||
| + | <nowiki> | ||
| + | ... | ||
| + | </nowiki> | ||
| + | |||
| + | <nowiki> | ||
| + | {{ARCHIUM HIDE END}} | ||
| + | </nowiki> | ||
| + | </code> | ||
| + | |||
| + | === 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: [https://matrikel.archium.org/index.php?title=Vorlage:ARCHIUM_TEMPLATE_uas_signature&action=edit 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 <code>#cargo_declare</code> im <code><nowiki><noinclude></nowiki></code>-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: [https://matrikel.archium.org/index.php?title=Vorlage:ARCHIUM_TEMPLATE_format_timeframe&action=edit 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 [https://matrikel.archium.org/index.php?title=Vorlage:ARCHIUM_TEMPLATE_format_ul&action=edit ARCHIUM_TEMPLATE_format_ul]'''''. Es gibt die Parameter, formatiert als | ||
| + | unnummerierte Liste zurück <u>und</u> kümmert sich um das "Popup" mit verwandten Seiten beim Überfahren von Einträgen. Das ist der Unterschied | ||
| + | zur normalen Formatierung mit <code>format = ul</code>. Die Formatierung als unnumerierte Liste erfolgt übrigens durch ein | ||
| + | <code><<nowiki />div class = "archium-ul">...<<nowiki />/></code>. Der Grund ist, dass damit die Formatierung mit CSS erleichtert wird, ohne die Standard <code><nowiki><ul></nowiki></code>-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: [https://matrikel.archium.org/index.php?title=Vorlage:ARCHIUM_TEMPLATE_uas_display&action=edit 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 <code><nowiki>{{#vardefine:access_free |0}}</nowiki></code>. Danach wird dem jeweilgen Benutzer eine Berechtigungsstufe zugewiesen. | ||
| + | #: | ||
| + | #: Im Augenblick ist das nur: | ||
| + | #: <code><nowiki>{{#vardefine:access_user|{{#ifsysop:{{#var:access_sysop}}|{{#var:access_free}}}}}}</nowiki></code> | ||
| + | #: mit anderen Worten: Bist du Sysop? Ja oder nein. | ||
| + | #: | ||
| + | #: Anschließend wird jeder anzuzeigenden Eigenschaft eine Freigabestufe zugewiesen: | ||
| + | #: Beispiel: <code><nowiki>{{#vardefine:access_date_of_modification |3}}</nowiki></code> => 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: | ||
| + | #: <code><nowiki>{{#ifexpr: {{#var:access_user}}>={{#var:access_signature}}</nowiki></code> | ||
| + | #: 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 <code><nowiki>{{ARCHIUM_TEMPLATE_hook|distributionsname}}</nowiki></code> 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 == | ||
| + | |||
| + | {| class="wikitable" | ||
| + | |- | ||
| + | |'''Eigenschaft''' | ||
| + | |'''Beispiel alt''' / '''Beispiel neu''' | ||
| + | |- | ||
| + | |Navigator* | ||
| + | |<code><nowiki>{{MAT_Navigator|10-008|10-008-0033|10-008-0035}}</nowiki></code> | ||
| + | <code><nowikI>-</nowiki></code> | ||
| + | |- | ||
| + | |Intro* | ||
| + | |<code><nowiki>{{MAT_Intro|alternate Intro|10-008-0011.jpg|Bildunterschrift}}</nowiki></code> | ||
| + | <code><nowikI>{{ARCHIUM_TEMPLATE_uas_title_image|title_image=10-008-0011.jpg}}</nowiki></code> | ||
| + | |- | ||
| + | |Signatur | ||
| + | |<code><nowiki>{{MAT_Signatur|Universitätsarchiv Stuttgart 10/8}}</nowiki></code> | ||
| + | <code><nowikI>{{ARCHIUM_TEMPLATE_uas_signature|signature=Universitätsarchiv Stuttgart 10/8}}</nowiki></code> | ||
| + | |- | ||
| + | |Titel | ||
| + | |<code><nowiki>{{MAT_Buchtitel|Königliche Technische Hochschule Stuttgart. Liste der Studierenden vom Sommersemester 1904}}</nowiki></code> | ||
| + | <code><nowikI>{{ARCHIUM_TEMPLATE_uas_title|title=Königliche Technische Hochschule Stuttgart. Liste der Studierenden vom Sommersemester 1904}}</nowiki></code> | ||
| + | |- | ||
| + | |Laufzeiten | ||
| + | |<code><nowiki>{{MAT_Laufzeiten}}</nowiki></code> | ||
| + | <code><nowikI>-</nowiki></code> | ||
| + | |- | ||
| + | |Zeitpunkt* | ||
| + | |<code><nowiki>{{MAT_Zeitpunkt|19.05.2020|Zeitpunkt}}</nowiki></code> | ||
| + | <code><nowikI>{{ARCHIUM_TEMPLATE_uas_date|day=19|month=05|year=2020}}</nowiki></code> | ||
| + | |- | ||
| + | |Zeitraum* | ||
| + | |<code><nowiki>{{MAT_Zeitraum|16.04.1904|30.09.1904|Alternativtext}}</nowiki></code> | ||
| + | <code><nowikI>{{ARCHIUM_TEMPLATE_uas_timeframe|day_from=16|month_from=04|year_from=1904|day_until=30|month_until=09|year_until=1904}}</nowiki></code> | ||
| + | |- | ||
| + | |Alphabete | ||
| + | |<code><nowiki>{{MAT_Alphabete}}</nowiki></code> | ||
| + | <code><nowikI>-</nowiki></code> | ||
| + | |- | ||
| + | |Alphabet | ||
| + | |<code><nowiki>{{MAT_Alphabet|Hoß|Jaiser}}</nowiki></code> | ||
| + | <code><nowikI>{{ARCHIUM_TEMPLATE_uas_alphabetical_classification|alphabetical_classification_from=Hoß|alphabetical_classification_to=Jaiser}}</nowiki></code> | ||
| + | |- | ||
| + | |Namen* | ||
| + | |<code><nowiki>{{MAT_Namen|Fend, Georg; Flaccus, Ludwig; Formis, Harry}}</nowiki></code> | ||
| + | |||
| + | <code><nowiki>{{ARCHIUM_TEMPLATE_uas_name|name=Fend, Georg}}</nowiki></code> | ||
| + | |||
| + | <code><nowiki>{{ARCHIUM_TEMPLATE_uas_name|name=Flaccus, Ludwig}}</nowiki></code> | ||
| + | |||
| + | <code><nowiki>{{ARCHIUM_TEMPLATE_uas_name|name=Formis, Harry}}</nowiki></code> | ||
| + | |||
| + | ---- | ||
| + | |||
| + | <code><nowiki>{{MAT_Namen|Erster Name, Zweiter Name}}</nowiki></code> | ||
| + | |||
| + | <code><nowiki>{{ARCHIUM_TEMPLATE_uas_name|name=Erster Name}}</nowiki></code> | ||
| + | |||
| + | <code><nowiki>{{ARCHIUM_TEMPLATE_uas_name|name=Zweiter Name}}</nowiki></code> | ||
| + | |- | ||
| + | |Textangaben | ||
| + | |<code><nowiki>{{MAT_Textangaben|Lehrkörper und Beamte}}</nowiki></code> | ||
| + | <code><nowikI>{{ARCHIUM_TEMPLATE_uas_text_information|text_information=Lehrkörper und Beamte}}</nowiki></code> | ||
| + | |- | ||
| + | |Studentenstatusse | ||
| + | |<code><nowiki>{{MAT_Studentenstatusse}}</nowiki></code> | ||
| + | <code><nowikI>-</nowiki></code> | ||
| + | |- | ||
| + | |Studentenstatus | ||
| + | |<code><nowiki>{{MAT_Studentenstatus|Gefallene}}</nowiki></code> | ||
| + | <code><nowikI>{{ARCHIUM_TEMPLATE_uas_student_status|student_status=Gefallene}}</nowiki></code> | ||
| + | |- | ||
| + | |Freigabe | ||
| + | |<code><nowiki>{{MAT_Freigabe|eingeschränkt}}</nowiki></code> | ||
| + | <code><nowikI>{{ARCHIUM_TEMPLATE_uas_clearance_level|clearance_level=eingeschränkt}}</nowiki></code> | ||
| + | |- | ||
| + | |Dateiname | ||
| + | |<code><nowiki>{{MAT_File|Filename.file}}</nowiki></code> | ||
| + | <code><nowikI>{{ARCHIUM_TEMPLATE_uas_attachment|attachment=Filename.file}}</nowiki></code> | ||
| + | |- | ||
| + | |Beschreibungsebene | ||
| + | |<code><nowiki>{{MAT_Beschreibungsebene|Seite}}</nowiki></code> | ||
| + | <code><nowikI>{{ARCHIUM_TEMPLATE_uas_level of description|level_of_description=Seite}}</nowiki></code> | ||
| + | |- | ||
| + | |Bearbeitungsdatum* | ||
| + | |<code><nowiki>{{MAT_Bearbeitungsdatum|18.06.2020}}</nowiki></code> | ||
| + | <code><nowikI>{{ARCHIUM_TEMPLATE_uas_date_of_modification|date_of_modification=2020/06/19}}</nowiki></code> | ||
| + | |- | ||
| + | |Anmerkungen | ||
| + | |<code><nowiki>{{MAT_Anmerkung|Die Stelle, an der die Eintragung für SS 1892 erfolgte, ist im Buch abgeschnitten.}}</nowiki></code> | ||
| + | <code><nowikI>{{ARCHIUM_TEMPLATE_uas_remark|remark=Die Stelle, an der die Eintragung für SS 1892 erfolgte, ist im Buch abgeschnitten.}} | ||
| + | </nowiki></code> | ||
| + | |- | ||
| + | |Spracherkennung* | ||
| + | |<code><nowiki>{{MAT_Spracherkennung|de}}</nowiki></code> | ||
| + | <code><nowikI>-</nowiki></code> | ||
| + | |- | ||
| + | |Freitext* | ||
| + | |<code><nowiki>Textblabla</nowiki></code> | ||
| + | <code><nowikI>-</nowiki></code> | ||
| + | |- | ||
| + | |} | ||
| + | |||
| + | === 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 <code><nowiki>{{REVISIONTIMESTAMP}}</nowiki></code> 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 <code><nowiki>{{REVISIONTIMESTAMP}}</nowiki></code>. | ||
| + | *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. | ||
| + | |||
| + | {| class="wikitable" | ||
| + | |- | ||
| + | |+ Kurzübersicht | ||
| + | |'''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. | ||
| + | |||
| + | |||
| + | |||
| + | {| class="wikitable" | ||
| + | |- | ||
| + | |'''Eigenschaft''' | ||
| + | |'''Formular''' | ||
| + | |'''Display-Template''' | ||
| + | |'''Eigenschafts-Template''' | ||
| + | |'''Formatierungstemplate''' | ||
| + | |- | ||
| + | |untergeordnete Objekte | ||
| + | | <pre><div class="archium-grid-item" style="grid-column: 1 / span 1";> | ||
| + | <!-- define parent objet input field --> | ||
| + | {{{for template|ARCHIUM_TEMPLATE_hascher_parent_object|label=Übergeordnetes Objekt(Literatur)}}} | ||
| + | {{{field|parent | ||
| + | |input type=combobox | ||
| + | |default={{PAGENAME}} | ||
| + | |placeholder= | ||
| + | |cargo table=ARCHIUM_TABLE_hascher_signature | ||
| + | |cargo field=ARCHIUM_PROPERTY_hascher_signature | ||
| + | }}} | ||
| + | {{{end template}}} | ||
| + | </div></pre> | ||
| + | |<pre> <!-- query parent object --> | ||
| + | {{#vardefine:parent_object| | ||
| + | {{#cargo_query: | ||
| + | tables = | ||
| + | ARCHIUM_TABLE_hascher_parent_object | ||
| + | |fields=ARCHIUM_PROPERTY_hascher_parent_object | ||
| + | |default = - | ||
| + | |no html | ||
| + | |where = "_pageName" = '{{PAGENAME}}' | ||
| + | |format = template | ||
| + | |template = ARCHIUM_TEMPLATE_format_ul | ||
| + | }} | ||
| + | }} | ||
| + | <!-- query child object --> | ||
| + | {{#vardefine:child_object| | ||
| + | {{#cargo_query: | ||
| + | tables = | ||
| + | ARCHIUM_TABLE_hascher_parent_object | ||
| + | |fields=_pageName | ||
| + | |default = - | ||
| + | |no html | ||
| + | |where = "ARCHIUM_PROPERTY_hascher_parent_object" = '{{PAGENAME}}' | ||
| + | |format = template | ||
| + | |template = ARCHIUM_TEMPLATE_format_ul | ||
| + | }} | ||
| + | }}</pre> | ||
| + | |Code von [https://denkmalpflege.archium.org/index.php/Vorlage:ARCHIUM_TEMPLATE_hascher_parent_object ARCHIUM_TEMPLATE_hascher_parent_object] übernehmen | ||
| + | | | ||
| + | |||
| + | |||
| + | |- | ||
| + | |tolle Datumsformatierung, Präzision | ||
| + | |<pre> | ||
| + | <div class="archium-grid-item" style="grid-column: 3 / span 1;"> | ||
| + | <!-- define time frame input field --> | ||
| + | {{{for template|ARCHIUM_TEMPLATE_uas_timeframe|multiple|label=Zeitraum}}} | ||
| + | <div>Von:<div>Tag{{{field|day_from | ||
| + | |input type=dropdown | ||
| + | |default= | ||
| + | |values=01,02,03,04,05,06,07,08,09,10,11,12,13,14, | ||
| + | 15,16,17,18,19,20,21,22,23,24,25,26,27,27,29,30,31 | ||
| + | |existing values only | ||
| + | }}}</div><div>Monat{{{field|month_from | ||
| + | |input type=dropdown | ||
| + | |default= | ||
| + | |values=01,02,03,04,05,06,07,08,09,10,11,12 | ||
| + | |existing values only | ||
| + | }}}</div><div>Jahr{{{field|year_from | ||
| + | |input type=text with autocomplete | ||
| + | |default= | ||
| + | |size = 4 | ||
| + | |placeholder={{CURRENTYEAR}} | ||
| + | }}}</div> | ||
| + | </div> | ||
| + | <div>Bis:<div>Tag{{{field|day_until | ||
| + | |input type=dropdown | ||
| + | |default= | ||
| + | |values=01,02,03,04,05,06,07,08,09,10,11,12,13,14, | ||
| + | 15,16,17,18,19,20,21,22,23,24,25,26,27,27,29,30,31 | ||
| + | |existing values only | ||
| + | }}}</div><div>Monat{{{field|month_until | ||
| + | |input type=dropdown | ||
| + | |default= | ||
| + | |values=01,02,03,04,05,06,07,08,09,10,11,12 | ||
| + | |existing values only | ||
| + | }}}</div><div>Jahr{{{field|year_until | ||
| + | |input type=text with autocomplete | ||
| + | |default= | ||
| + | |size = 4 | ||
| + | |placeholder={{CURRENTYEAR}} | ||
| + | }}}</div> | ||
| + | </div> | ||
| + | {{{end template}}} | ||
| + | </div> | ||
| + | </div> | ||
| + | </pre> | ||
| + | |<pre> | ||
| + | <!-- query timeframe and precision--> | ||
| + | {{#ifexpr: {{#var:access_user}}>={{#var:access_timeframe}} | ||
| + | | {{#vardefine:timeframe| | ||
| + | {{#cargo_query: | ||
| + | tables = | ||
| + | ARCHIUM_TABLE_uas_timeframe | ||
| + | |fields= | ||
| + | ARCHIUM_PROPERTY_uas_date_from = date_from, | ||
| + | ARCHIUM_PROPERTY_uas_date_from_precision = date_from_precision, | ||
| + | ARCHIUM_PROPERTY_uas_date_until = date_until, | ||
| + | ARCHIUM_PROPERTY_uas_date_until_precision = date_until_precision | ||
| + | |default = - | ||
| + | |no html | ||
| + | |where = "_pageName" = '{{PAGENAME}}' | ||
| + | |format = template | ||
| + | |named args = yes | ||
| + | |template = ARCHIUM_TEMPLATE_format_timeframe | ||
| + | }} | ||
| + | }} | ||
| + | | {{#vardefine:timeframe| | ||
| + | {{#var:locked_indicator}} keine Berechtigung | ||
| + | }} | ||
| + | }} | ||
| + | </pre> | ||
| + | |Code von [https://matrikel.archium.org/index.php?title=Vorlage:ARCHIUM_TEMPLATE_uas_timeframe&action=edit ARCHIUM_TEMPLATE_uas_timeframe] übernehmen | ||
| + | |Code von [https://matrikel.archium.org/index.php?title=Vorlage:ARCHIUM_TEMPLATE_format_timeframe&action=edit ARCHIUM_TEMPLATE_format_timeframe ] übernehmen | ||
| + | |- | ||
| + | |Eigenschaftsspezifisches Popup | ||
| + | | | ||
| + | |Das geänderte Formatierungs-Template nimmt mehere Parameter entgegen. Deswegen müssen im jeweiligen Display-Template auch noch die Querys angepasst werden wie in | ||
| + | [https://matrikel.archium.org/index.php?title=Vorlage:ARCHIUM_TEMPLATE_uas_display&action=edit ARCHIUM_TEMPLATE_uas_display] | ||
| + | |||
| + | Beispiel: | ||
| + | |||
| + | <pre> | ||
| + | <!-- query title --> | ||
| + | {{#vardefine:title| | ||
| + | {{#cargo_query: | ||
| + | tables = | ||
| + | ARCHIUM_TABLE_uas_title | ||
| + | |fields= | ||
| + | ARCHIUM_PROPERTY_uas_title = query_result, | ||
| + | CONCAT('ARCHIUM_TABLE_uas_title') = table_name_1, | ||
| + | CONCAT('ARCHIUM_PROPERTY_uas_title') = field_name_1, | ||
| + | CONCAT('ul') = format | ||
| + | |default = - | ||
| + | |no html | ||
| + | |where = "_pageName" = '{{PAGENAME}}' | ||
| + | |format = template | ||
| + | |named args = yes | ||
| + | |template = ARCHIUM_TEMPLATE_format_ul | ||
| + | }} | ||
| + | }} | ||
| + | </pre> | ||
| + | |ARCHIUM_TEMPLATE_format_ul anpassen wie in [https://matrikel.archium.org/index.php?title=Vorlage:ARCHIUM_TEMPLATE_format_ul&action=edit ARCHIUM_TEMPLATE_format_ul] beim Uniarchiv. | ||
| + | |- | ||
| + | |Rudimentäre Rechteverwaltung | ||
| + | | | ||
| + | |Rechteverwaltung mit Hilfsvariablen und angepassten Queries von [https://matrikel.archium.org/index.php?title=Vorlage:ARCHIUM_TEMPLATE_uas_display&action=edit ARCHIUM_TEMPLATE_uas_display] übernehmen | ||
| + | | | ||
| + | | | ||
| + | |- | ||
| + | |Änderungsdatum direkt vom Mediawiki | ||
| + | | | ||
| + | |Entsprechende Abfrage im Display-Template wie in [https://matrikel.archium.org/index.php?title=Vorlage:ARCHIUM_TEMPLATE_uas_display&action=edit ARCHIUM_TEMPLATE_uas_display] ändern. | ||
| + | |||
| + | Beispiel: <pre> | ||
| + | <!-- query date of modification - obsolete, we use a Magic Word instead --> | ||
| + | {{#ifexpr: {{#var:access_user}}>={{#var:access_date_of_modification}} | ||
| + | | {{#vardefine:date_of_modification| | ||
| + | <!-- {{#cargo_query: | ||
| + | tables = | ||
| + | ARCHIUM_TABLE_uas_date_of_modification | ||
| + | |fields=ARCHIUM_PROPERTY_uas_date_of_modification | ||
| + | |default = - | ||
| + | |no html | ||
| + | |where = "_pageName" = '{{PAGENAME}}' | ||
| + | |format = template | ||
| + | |template = ARCHIUM_TEMPLATE_format_ul | ||
| + | }} --> | ||
| + | {{#time: j. F Y, H:i:s|{{REVISIONTIMESTAMP}}}} | ||
| + | }} | ||
| + | | {{#vardefine:date_of_modification| | ||
| + | {{#var:locked_indicator}} keine Berechtigung | ||
| + | }} | ||
| + | }} | ||
| + | </pre> | ||
| + | | | ||
| + | | | ||
| + | } | ||
| + | |||
| + | == Verfügbare Formulare == | ||
| + | Folgende Formulare sind derzeit definiert. | ||
| + | *[[Formular:ARCHIUM_FORM_uas_object|Objekt-Formular]] | ||
| + | |||
| + | =nützliche Spezialseiten und Übersichten= | ||
| + | == alle derzeit vorhanden Datensätze == | ||
| + | {{#cargo_query: | ||
| + | tables = | ||
| + | ARCHIUM_TABLE_uas_signature | ||
| + | |fields=ARCHIUM_TABLE_uas_signature._pageName = Datenbankeintrag, | ||
| + | |default = - | ||
| + | |format = dynamic table}} | ||
| + | |||
| + | == alle vorhanden Vorlagen == | ||
| + | *[[Spezial:Vorlagen]] | ||
| + | |||
| + | == alle vorhandenen Formulare == | ||
| + | *[[Spezial:Formulare]] | ||
| + | |||
| + | == alle Seiten == | ||
| + | *[[Spezial:Alle_Seiten]] | ||
| + | |||
| + | |||
| + | = Entwicklung = | ||
| + | <!-- DEFINE ACCESS RIGHT VARIABLES --> | ||
| + | {{#vardefine:access_sysop|0}} | ||
| + | {{#vardefine:access_free|1}} | ||
| + | {{#vardefine:access_restricted|2}} | ||
| + | {{#vardefine:access_locked|3}} | ||
| + | {{#vardefine:access_signature:0}} | ||
| + | |||
| + | |||
| + | |||
| + | {{#vardefine:access_user|{{#ifsysop:{{#var:access_sysop}}|{{#var:access_locked}}}}}} | ||
| + | |||
| + | Access_user: {{#var:access_user}} | ||
| + | |||
| + | Are we good? {{#ifexpr: {{#var:access_user}}<={{#var:access_sysop}} | ||
| + | | True | False}} | ||
| + | |||
| + | ifexpr-Test: | ||
| + | {{#ifexpr: {{#if:Test|1|0}} and {{#if:1|1|0}} | ||
| + | |TRUE | ||
| + | |FALSE | ||
| + | }} | ||
| + | [[File:image-missing.svg]] | ||
Aktuelle Version vom 17. November 2020, 12:35 Uhr
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.