Skip to main content

Piratenkleider für Drupal

Da ich derzeit Semesterferien habe und zwischen den restlichen mündlichen Prüfungen viel Zeit liegt, habe ich mir jetzt vorgenommen, die Seite der Piratenpartei Sachsen-Anhalt endlich mal zu erneuern. Dies war eines meiner größeren Ziele in der Vorstandszeit, die schon Anfang Oktober endet.

Bei einer nicht repräsentativen Umfrage (^^) auf der Mailingliste kam heraus, dass die Leute das Piratenkleider Theme bevorzugen, was auch auf der Webseite der Bundespartei verwendet wird. Dieses wurde erst für Drupal 7 erstellt, dann aber zu Wordpress portiert, weil das Webseiten Team eher Wordpress gewohnt war. Das Repository vom Drupal-Theme verschwand, das Wordpress-Theme erblickte die Welt. Wolfgang Wiese erstellte dann einen Fork, um das Theme barrierefreier zu gestalten und weitere Features hinzuzufügen.

Nun überlegte ich sehr lange, ob wir auf Wordpress umsteigen oder lieber bei Drupal bleiben, aber von Version 6 auf Version 7 upgraden sollten. Ich wog die Features beider CMS ab und entschied mich nun nach Monaten auf Drupal 7 umzusteigen. Zwischenzeitlich probierte ich die Webseite upzugraden, was komischerweise misslang (es gab später erneute misslungene Versuche). Bei dem Blog der Piratenpartei Sachsen-Anhalt gelang es aber. Dort konnte ich gleich Erfahrungen beim portieren des Piratenhagen-Themes sammeln. Ganz abgeschlossen ist es noch nicht, aber das meiste funktioniert.

Jetzt gab es nur noch zwei Probleme:

  1. Webseite upgraden bzw. Artikel in einer Neuinstallation übernehmen
  2. Drupal Theme bekommen

Webseite upgraden bzw. Artikel in einer Neuinstallation übernehmen

Wie gesagt, funktionierte das Upgraden nicht. Bei der Suche, wie man die Artikel bei einer Neuinstallation übernehmen kann, entdeckte ich das Drupal Module Migrate. Nach einigen rumfummeln schaffte ich es, die Artikel zu migrieren. Die Seiten ließ ich aus, da ich sie gerne manuell übernehmen möchte.

Drupal Theme bekommen

Das Drupal Repository vom Piratenkleider-Theme gibt es leider nicht mehr. Zum Glück hatte ich bei meinem Testsystem noch eine Kopie. Diese war aber ziemlich veraltet. Nur die CSS Dateien zu updaten funktionierte nicht. Da mir ein paar Sachen auch nicht gefielen, habe ich mit einer eigenen Portierung angefangen, wobei ich aber ein wenig von der alten Version abschaute. Ziel war es für mich, die CSS Dateien so weit wie möglich unberührt zu lassen und für Drupalspezifische Sachen eine separate Datei zu erstellen. Damit der Code nicht zu sehr redundant wird, habe ich doch kleine Änderungen in den bestehenden CSS Dateien vorgenommen, die man theoretisch gefahrlos ins Wordpress Theme übernehmen könnte. Bis jetzt sind die Grundfunktionalitäten implementiert. Weitere Features werden noch folgen - beispielsweise der Slider auf der Startseite, wo ich noch überlegen muss, wie ich ihn am besten implementiere.

Generell muss ich überlegen, wie ich strategisch weiter vorgehe. Drupal ist sehr flexibel und hat wenige feste Vorgaben. So gibt es beispielsweise das “Artikelbild”, was es bei Wordpress gibt, in Drupal nicht. Das müsste man dann als “Feld” beim “Inhaltstyp” hinzufügen. Außerdem bin ich noch am überlegen, wie viel ich als Theme Option fest einbaue oder flexibel durch Blöcke gestalte, so dass ich den Benutzern die Gestaltung überlasse. Beispiele hierfür sind die Socialmedia Icons oder die Sticker rechts oben. Definitiv werde ich beispielsweise keine fertigen Impressumsseiten einbauen. Das Wordpress Theme hat meiner Meinung nach viel zu viele Vorgaben bzw. Optionen.

Beim Portieren ist mir auch die schlechte Qualität des Codes aufgefallen. Die HTML-Struktur ist schon in Ordnung. Problematisch sind aber die uneinheitlichen Einrückungen oder unnötige Leerzeichen am Ende der Zeilen. Die HTML Blöcke habe ich beim portieren schon korrigiert - die CSS Dateien lasse ich derzeit von Tools formatieren. Schlechten Code kann ich einfach nicht so stehen lassen.

Wenn es so weiter geht, habe ich Ende nächste Woche das meiste vom Theme fertig. Dann werde ich beginnen, spezielle Node Templates (für z.B. Stammtische) zu erstellen.