Make it Blason

Ich liebe Mikro-Plugins! Z.B. Change Attachment Parent (http://lacquerhead.ca/2009/07/change-attachment-parent/)> von Joel Sholdice, es hat nur 30 Zeilen Code, davon gehören 8 zum Header und zwei sind auskommentiert1 ; ideal um sich bestimmte Techniken an zueignen, da kein Ballast ablenkt.
Das Plugin bietet die Möglichkeit, ein Attachment an ein beliebiges Post oder Page (sog. Parent) anzuhängen, und fügt dazu dem Algorithmus zum Editieren von Attachments Code hinzu. Dies geschieht mit dem Befehl add_filter, und zwar muss man sich zwei Funktionen überlegen:

  1. Eine, die Formulare anbietet damit der Benutzer seine Daten eingeben kann (attachment_fields_to_edit) und
  2. eine, welche die Eingaben auswertet. attachment_fields_to_save

Auf der Suche war ich nach was ganz anderem, nämlich ein Plugin, mit dem man custom-fields für Attachments bearbeiten kann. Es ist nämlich so, dass meine Wappendaten-Bank in der Weise funktioniert, dass jedem Attachment zum Bild ein paar Custom Fields zugefügt werden, z.B. das Feld “blason”. Hat dieses den Wert 1, so wird es in der Datenbank als Wappen erkannt und in ihr geführt, wenn nicht, ist es ein ganz normales Attachment. Die bisherigen Einträge hatte mir das PHP Migrationsscript erstellt: es ging die in Form von csv Dateien vorliegenden Listen durch und setzte diese Wert mittlels einem Aufruf der Funktion

add_post_meta($id, $field, $new_value, $unique);

Mir fehlte aber noch eine einfache Möglichkeit, weitere Wappen in diese Liste aufzunehmen. Joël’s Plugin inspirierte mich dazu, meinem Heraldik-Plugin, noch (abgespeckt) die folgenden Zeilen hinzuzufügen:

Damit kann ich, wenn ich aus der Media Library ein Bild bearbeite, einfach bei “Blason” einen Haken machen, und schon wird das Bild in der Datenbank als Wappen geführt.
make it a blason

<?php
add_filter('attachment_fields_to_edit', 'add_makeitblason'    , 10, 2);
add_filter('attachment_fields_to_save', 'update_makeitblason' , 11, 2);

function add_makeitblason($form_fields, $post ){
    $id =$post->ID;
    $blason = get_post_custom_values('blason', $id);
    $checked = ($blason[0]==1)?"checked='checked'":'';
    $html    = "<input type='checkbox' name='attachments[$post->ID][blason]'";
    $html   .= "value='1' ".$checked." />" ;
    $form_fields['blason']=array(
        'tr'    =>'',
        'input' =>'html',
        'html'  =>$html,
        'helps' =>"In der Datenbank als Wappen f&uuml;hren?",
        'label' =>'blason?',
        );
    return $form_fields;
}
function update_makeitblason($post, $attachment){
    $id =$post[ID];
    $old_values     = get_post_custom_values('blason', $id);
    if ($attachment['blason']=='1') {
        if (!isset($old_values[0])) {
            //add_post_meta($id, $field, $new_value, false);
            add_post_meta($id, 'blason', 1, true); // it is a blason
        }
        //update_post_meta($post->ID, 'blason', 1, 0);
    }else {
        if (isset($old_values[0])) {
            //delete_post_meta($post_id, $key, $value);
            delete_post_meta($id, 'blason');
        }
    }
   return $post;
}?>

  1. wohl ein früherer Versuch []

Fünf sehr einfache Wappen

Also, eigentlich sind es nur vier, ich habe aber noch die Variante des Wappens der Brouchoven, nach ihrer Erhebung in den Adelsstand, durch ein Patent des Kaisers Rudolf, gegeben am 10 Februar 1607 zu Prag, zugefügt.

Mein Heraldiklexikon ist zur Zeit inhaltlich gesehen de facto noch kaum mehr als eine Abschrift von Dr. Jean-Claude Loutsch’s Liste von Begriffen, die er 1974 in seinem berühmten Armoirial du Luxembourg angab. Darin erwähnt er, zur Illustration einiger Begriffe, ein paar sehr einfache Wappen, in denen die Begriffe Anille, Aigle und Bande vorkommen.
Hier wären die denn mal:

Introducing my Plugin: Gallery Gimmicks

Vorige und letzte Woche schrieb ich ein Plugin, das einige Spielereien (ich fand, “Gimmicks” ist noch die beste englische Umsetzung dafür) mit zusammengestellten Bildern betreibt. Es ist kein weiteres Gallery Plugin, erst recht keine “bessere Gallery”, es baut auf der WordPress Gallery, bzw. den mittels WordPress hochgeladenen Bildern auf! Wie bei den meisten Plugins die ich schrieb, vermute ich auch für dieses, dass es so speziell auf meine Wünsche zugeschnitten ist, dass ausser mir niemand es nutzen wird. Aber es ist andererseits allgemein genug geschrieben, dass ich

Gallery Gimicks

im am Montag bekannt gemachtem Repository zum Download bereit gestellt habe.

Die Entwicklung

Die Idee entstand natürlich im Rahmen meiner Versuche, meine Heraldikseiten von csv Listen auf datenbankgestütze Lösungen zu portieren. Gallery Gimmicks konnte ich daher auch in erstaunlich kurzer Zeit “entwickeln”, weil es in der Hauptsache nur eine Zusammenstellung ist, von Routinen die bereits existierten aber anders genutzt wurden. So sind die Ansichten “intro, alphabetic, oder Details und synoptic” ja schon sehr lange Teil der meisten meiner heraldischen Listen, wie jener der alten Herrschaftswappen. Neu ist lediglich der Rückgriff auf die eingebauten Funktionen von WordPress.

Meine Motive

Die erste Version dieses Plugins, war keine andere, als mein demo_attach_link, das ich am 24. August vorgestellt hatte, um die Wirkungsweise der WP Funktion wp_get_attachment_link() zu demonstieren. Dort hatte ich mir ebenfalls eine Kopie der WordPress Gallery zugelegt und an der rumgefummelt. Die anderen Ansichten ebenfalls darauf umzustellen lag also nahe.
Den definitiven Anstoß dazu aber gab mein Vorhaben, die Media-Tags des Code Devils einzusetzen! Hierzu würde ich gerne wissen, welche Bilder einer Gallery ich schon mit Media Tags versehen habe, und welche noch nicht! im Media-Center wird das zwar auch angezeigt, aber meine Sammlungen entstanden so nach und nach, die Bilder einer Gallery sind mitunter über alle 68 Seiten verteilt (ich hab zur Zeit 1326 Bilder im Center!)
Eine weitere Unzufriedenheit mit dem Media Center ist, dass in diesem die ID’s der Bilder so gut versteckt werden. Mir sind diese aber wichtig!

Umorganisation Heraldik Lexikon

Meine Heraldikseiten sind, wie ich aus den Logs lesen kann, inzwischen ein größerer Publikumserfolg als die Hesperkutsch. Darum habe ich beschlossen, ihnen einen eigenen Ordner der Ebene 1 zu spendieren. Zuvor rangierten sie unter /interessen/ .

Leider habe ich im Übereifer auch die alten Texte mit gelöscht, was aber nicht so schlimm ist, sie waren reichlich überholt. Am Anfang habe ich alles mögliche zusammen gestellt, und die Wappen der Luxemburger Gemeinden online zu stellen war sehr viel mehr meiner Jugendzeit geschuldete Ehrensache, denn Projekt. Inzwischen aber finde ich, der Auftritt sollte sich bewusst beschränken, und zwar auf die Heraldik in Luxemburg, wobei wir großzügig sind, das gesamte Gebiet des alten Herzogtum Luxemburg (bis 1794) mit einbeziehen wollen.

Somit ergeben sich zwei Schwerpunkte:

  1. Wappenkunde Luxemburgs
  2. Die Wappenkunst in Luxemburg

Unter dem ersten Punkt sehe ich folgendes: Sammlung aller bekannten Wappen in meiner Wappendatenbank, und ihre Zusammenstellung in Listen, wie die Mutter aller Listen, die Liste der Luxemburger Gemeinden und die folgenden:

Die Migration des Heraldiklexikons

Zunächst einmal, wurde auch das Wappenlexikon anders eingeordnet, es findet nun seinen Platz unter dem Überbegriff “Wappenkunst“.
Für das Wappenlexikon wurde eine neue Software geschrieben, so dass die Einträge im Wappenlexikon jetzt anders gespeichert und entsprechend ausgelesen werden: Zuvor standen alle Einträge in einer .csv Tabelle. Vorteil: kompakt und übersichtlich bei der Ersterstellung, Nachteil: Unflexible Handhabung beim Verbessern oder Erweitern. Nun sind alle Beiträge “Pages” und zwar Unterseiten der Seite /heraldik/wappenkunst/lexikon/. Die Vorteile:

  • Sie können nun, wie jede Seite, einfach über den Browser angesteuert und editiert werden.
  • Jeder Begriff hat nun seine eigene URL, dass eine fusée ein rautenförmiges Teil ist, erläutet nun die Seite /heraldik/wappenkunst/lexikon/fusee/ und nicht länger /heraldik/wappenkunst/lexikon/?terme=fusee
  • Die WordPress-Suchfunktion kann nun den Inhalt der Beiträge finden, sie sind Einträge in der Datenbank und stehen nicht mehr abseits in einer externen .csv Datei.

Warum habe ich das nicht schon lange vorher gemacht? Nun,

  1. hatte ich keine Lust 181 Seiten von Hand anzulegen, und
  2. fürchtete ich, das “Page” Menu würde dadurch stark unübersichtlich werden

Problem 2, lässt sich so in den Griff kriegen, dass man die Seite bei wp_list_pages ausschliesst. Mit dem Flexible Page Widget geht das wunderbar!

Und für Problem 1) habe ich mir ein Script überlegt, das die Seiten mit
<?php wp_insert_post( $post ); ?>
automatisch anlegt. Die anderen Werte (wie die deutsche Übersetzung, die Illustration, etc.) werden als Custom fields angelegt.

Plugin Repository eingerichtet

Eigentlich schreibe ich plugins, seit ich WordPress nutze. “Eigentlich”, weil ich sie immer nur als eine Art Library nutzte, also Funktionen schrieb die WordPress per aktiviertem Plugin dann zur Verfügung standen. An echte Plugins, welche die WordPress Schnittstelle nutzen würde traute ich mich nicht ran, erst recht hab ich, von einer Ausnahme abgesehen nie eins veröffentlicht.. Inzwischen sind aber nicht nur meine Kenntnisse grösser sondern auch die Dokumentation von WordPress deutlich besser geworden, insbesondere die Referenzseite der Funktionen nutze ich sehr gerne.

Meine Methode diese Plugins zu entwickeln ist recht unprofessionell:

  1. ich suche mir möglicherweise passende Vorbilder,
  2. passe sie an meine speziellen Bedürfnisse an, schneide sie also für den Zweck zurecht, für den ich sie haben wollte.
  3. Erst dann versuche ich, sie wieder zu verallgemeinern, so dass sie auch auf anderen Websites, und zu anderen Zwecken genutzt werden können.

Dies kommt daher, dass ich einerseits ja kein Entwickler bin und andererseits aber ein paar Websites “in laufenden Betrieb” habe, und die Anpassungen immer möglichst schnell erfolgen müssen. Am Ende werde ich alle Plugins unter GPL stellen und zum Download zur Verfügung stellen.

Ich sehe mir ein Plugin, oft über Monate gar nicht an, und am Ende weiß ich dann oft selber nicht mehr, wie die Handhabung meiner Software jetzt genau von Statten ging, daher denke ich, es ist an der Zeit sie besser zu dokumentieren. Hauptsächlich deshalb habe ich jetzt den selber geschriebenen Plugins einen Platz nun auf meiner Seite eingeräumt:

/wordpress

de Breitscheid

Ich konnte im Armoirial du Luxembourg von Dr Jean-Claude Loutsch jetzt kein Wappen finden, welches dem entspricht, das sich auf der Taak von Udo Braker befindet. Aber so ein Wappen wird oft variiert, manchmal sogar nur, weil der Künstler es so wollte. die Kreise (Tourteaus oder Bésants) könnten z.B. Sterne sein, das Weizenbündel ein Kleeblatt?

Das Wappen der de Breitscheidt kommt dem Wappen, das sich auf der Taak befindet am nächsten:

D’azur au chevron d’or, accompagné en chef de 2 étoiles (à 5 ou 6 rais) du même, en pointe d’un trèfle tigé et feuillé de deux feuilles d’argent mouvant d’une terrasse du même.

Aber vielleicht stammt die Ofenplatte ja gar nicht aus dem Gebiet des alten Herzogtums Luxemburg? Auf der anderen Taak ist jedenfalls das königlich französische Wappen zu sehen. Wenn sie zusammen gehörten?

RunPHP und Exec PHP nun überall abgeschaltet.

Auf keinem der von mir aktuell betreuten Websites läuft jetzt noch ein Skript, welches die Ausführung von PHP Code als Teil eines Beitrags erlaubt. Damit geht für mich eine Ära zu Ende.

Ich fand diese Plugins RunPHP und Exec-PHP sehr praktisch, und im Grunde sind sie auch gar nicht schlecht, wenn man sich mal an ihre Macken gewöhnt hat. Aber, neben meinem kleinen Backup Desaster vom letzten Winter hat vor allem die zunehmende Verbreitung von Mod_Security bei allen Hostern hat mir ihren Gebrauch abgewöhnt. Es ist mir einfach zu lästig, den Providern hinterher zu telefonieren mir dieses und jenes Script freizuschalten..

Selber geschriebene PHP Scripte kommen bei mir von nun an in Form von eigenen Plugins zum Einsatz.

Wappendatenbank eingerichtet

Wiesel.lu proudly presents:

Die Wappendatenbank

Und zwar sind jetzt zum jetztigen Zeitpunkt 411 Wappen in der Datenbank und zu jedem dieser Wappen gibt es folgende Angaben.

  1. Eine Zeichnung
  2. Einen Titel (Name des Trägers)
  3. Die Wappenbeschreibung
  4. Typ des Wappens (Staatswappen, Gemeindewappen, persönliches Wappen, Familienwappen, usw.)
  5. Angaben zur Quelle

Das allerschönste daran ist: es brauchte keine einzige MySQL Tabelle dazu angelegt zu werden, die WordPressdatenbank reicht dazu völlig aus! Dies ist allerdings nur einer der Ansätze die ich verfolge, denn er hat einen Haken: Es muss zu jedem Wappen bereits eine Zeichnung da sein. Darum sind einige Wappen, wie das von Prince Henri oder die beiden letzten Abtwappen von St. Hubert, noch gar nicht in der Datenbank drin, weil ich eben zu diesen noch keine Zeichnung angefertigt habe. Marnach fehlt auch, mein eigenes Wappen etc.

Die Vorgeschichte

Der Heraldikteil auf wiesel.lu hat sich seit dem Sommer letzten Jahres mächtig entwickelt: Hatte ich bis 2003 nur mein eigenes Wappen hier ausgestellt, kamen 2004 die Gemeindewappen dazu, zu denen ich letztes Jahr jeweils eine eigene Zeichnung fabrizierte, dann kamen die Wappen des Ancien Régimes hinzu, von denen die Gemeindewappen Luxemburgs inspieriert, dann die Abtwappen usw. Ich plane noch, die Wappenrolle der ALGH, von der ich gestern erfuhr dass sie doch noch nicht untergegangen ist, aufzunehmen etc. Bis letztes Jahr, passten die Wappen bequem in eine und später mehrere ,csv Dateien, aber die Ausbaufähigkeit dieser Lösung ist nicht mehr vorhanden. So möchte ich langfristig auch zu jedem Wappen eine Taxonomie angeben, welche Elemente es enthält, vielleicht Statistiken etc.

  1. Mein erster Ansatz war eine große gemeinsame CSV Datei, das klappte auch, aber ich will die Wappendatenbank auch browserbasiert bearbeiten können, wenn ich gerade mal kein FTP Programm zur Verfügung habe.
  2. Der Versuch, diese große csv Datei in Wp-Tables reinzuladen, bereitete enorme Schwierigekeiten: Die Software kam nicht so recht damit klar, dass die französischen Wappenbeschreibungen so unglaublich viele Komma, Apostroph und Semicolons haben. Aber es gelang.
  3. Zufrieden war ich nicht, denn bei den WP-Tables fehlt, anders als bei echten SQL Tabellen, das Feld, das den Datensatz eindeutig macht. Ausserdem werden die Inhalte von WP- “Search” Funktionen nicht erkannt. Bei normalen SQL Tabellen zwar auch nicht.
  4. Dann kam mir die Idee, die Mediatags vom Codedevil einzusetzen. Zunächst nur zur Klassifizierung der Meubles. Dann begann ich die Meubles zu taggen. Leider hat Mediatags keine “mass edit” Funktionalität. Zu den Wappen würde ich zur Migration gerne ein Script einsetzen! Die notwendigen Informationen stehen ja bereits in den CSV Files!
  5. Dann las ich, dass die attachments in WordPress eigentlich Posts sind, also im Prinzip auch sogenannte custom fields benutzen könnnten. Und anders als bei den Posts kann ich bein den Attachments die Notwendigkeit dazu durchaus einsehen.

Inzwischen habe ich die Migration durchgeführt, sie wird aber vielleicht noch ein paar mal wiederholt. Auch ein rudimentäres Admin Panel besteht bereits.

Wappen Mousel’s Béier

Die Tage erwähnte ich, dass die Brauerei Mousel sich in der Tradition der Bierbrauer der alten Abtei Münster sieht, sie aber keineswegs das Wappen der alten Abtei, sondern das des Abtes Benoît I Hamblin zu Werbezwecken führt.

Für den interessierten Leser, der jetzt nicht aus Luxemburg ist und die lokale Biermarke nicht kennt, habe ich jetzt mal ein Foto geschossen:
well-mousels-beier

Hier zum Vergleich noch mal mein, künstlerisch bescheidenerer Versuch:

Benoît ler Hamblin

Nochmal Pont Blanc

Erneut, Hut ab vor dem Culturverein. Mein Augenzeugenbericht ist nicht der einzige: Auch Luxemburgs größte Zeitung hat, nicht nur die Vorankündigung veröffentlicht, es gibt jetzt auch einen Bericht zum grenzenlos weißen Fest vom Luxemburger Wort1!

Das Wort folgt dabei mehr oder weniger den Angaben des Vorsitzenden Herrn Michael Reichling, was nicht wirklich wundert. Journalisten machen sich bei Lokalereignissen nur selten die Mühe mehr als nötig selber zu schreiben. Demnach

  • War das Ziel gewesen, Leute kennen zu lernen,
  • waren 140 Personen der Einladung gefolgt,2, die, in der Regel besser recherchierte Druckfassung spricht dagegen von 120 Personen – differenziert aber auch nicht, zwischen Leuten die an den Tischen sassen und Schaulustigen, wie mir 🙂
  • und im Mittelpunkt wäre “die Grenzenlosigkeit” gestanden, denn Zitat:

Bei unserer Aktion ging es darum, neue Leute kennen zu lernen. Zudem wollten wir aufzeigen, dass es keine Grenzen gibt.3 Der Ort Langsur zum Beispiel liegt genau an der Grenze zu Luxemburg und doch ist es hier grenzenlos, denn wir sind mit Straßen und Brücken miteinander verbunden.“, erläuterte Reichling den Hintergrund der Aktion. Die Sauerbrücke, die zur Hälfte zu Luxemburg und zur Hälfte zu Deutschland gehört, sei folglich auch ein geeigneter Veranstaltungsort für das Fest gewesen.”

Hmm. Wo genau, ist eigentlich “genau die Grenze“, die es wiederum gar nicht gibt? Soviel ich weiss,

  • gehört die Brücke zur Gänze der Gemeinde Langsur (quasi Privatbesitz)
  • und ist die von ihr überspannte Sauer, wie alle Grenzflüsse Luxemburgs, ein sogenanntes Kondominium , gehört also beiden Staaten nicht zur Hälfte, sondern ganz, als gemeinsamer Besitz.

Aber wer wird bei dem gelungenen Fest und dem (im Augenblick: noch) schönen Wetter Haare spalten wollen! Seien wir lieber froh, dass es nicht zu so gedankenlosen Aktionen gekommen ist, wie sie Florian1990 auf Lokalo.de4 angekündigt hatte!

Florian1990, 22.08.2009, 23:02 Uhr

Ich würde sagen wir Sprengen die Aktion! In Pf Group öffnen und möglichst viele Leute Organisieren die in Schwarz kommen mit Bierbänken:-D

  1. Edit 10.12.2014: Dieser Bericht existiert natürlich nicht mehr, damals war er unter http://www.wort.lu/wort/web/letzebuerg/artikel/41365/ein-picknick-in-weiss.php zu finden []
  2. wen sie davon bereits vorher kannten, und wen sie dadurch neu kennen gelernt haben, verrät der Bericht leider nicht []
  3. Gemeint sind sicher, die leicht sichtbaren Grenzen []
  4. war dereinst unter http://www.lokalo.de/zeitung/31758/Geselliger-Treff—und-das-ganz-in-Weiss zu finden []