WordPress ohne typografische Anführungszeichen

Es sieht ja ganz toll aus, was WordPress da so aus meinen Anführungszeichen macht. Es wandelt nämlich die geraden in typografische um, also in die schönen geschwungenen. Nur leider nervt das ein wenig, wenn man, wie ich, häufig Code-Fragmente veröffentlicht, die dann nach einem Cut-and-Paste leider nicht mehr funktionieren…

Die Umwandlung kann man aber recht einfach abschalten, indem man in der Datei wp-includes/functions-formatting.php die entsprechenden Zeilen auskommentiert. Bei der aktuellen WordPress-Version 2.0.4 sind dies die Zeilen 24-34. Dort werden mittels preg_replace() sämtliche Konstrukte an Anführungszeichen durch die HTML-Entities ersetzt.

UPDATE 12.01.2007
Ab WordPress 2.0.5 wurde es mir zuviel Arbeit, die ganzen Zeilen auszukommentieren, sodass ich nun einfach die gesamte Funktion wptexturize() sofort zu Beginn mittels einer simplen Zeile verlasse: return $text;

UPDATE 16.08.2007
Bei WordPress 2.2.2 heißt die Datei mit wptexturize() nur noch wp-includes/formatting.php.

Bournemouth

Man fühlt sich schon toll, wenn man anstatt auf dem jährlichen Betriebsausflug in der FH sitzt. So wie ich heute 🙁 Aber was soll ich machen? Statistik, ERP-Systeme und Software-Engineering sausen lassen? Wohl eher nicht…

Nun denn, wenigstens war mein Aufenthalt in Bournemouth recht interessant. Einige nette Impressionen habe ich mal angehängt. Wichtige Fakten über die knapp 200 Jahre junge Stadt gibt es nicht so viele, außer vielleicht, dass ein Teil ihrer Küste zum Weltkulturerbe gehört und sich dort auch der nach Sydney zweitgrößte natürliche Hafen der Welt befindet. Man beachte die Leute, die oben an der Klippe (ohne jegliche Absperrung) herumlaufen.

Bournemouth: Jurassic Coast

Das hier ist das Stadtzentrum von Bournemouth. Die Stadt ist wirklich in Ordnung. Große Fußgängerzone, sauber und mit Bussen ist alles gut erreichbar.

Bournemouth: Stadtzentrum

Das hier ist der Pier, vom dem aus auch die kleine Bootstour gestartet ist. Einmal von oben und einmal von hoher See aus fotografiert. Das letzte Bild zeigt ein kleines Häuschen direkt am Strand. Das kostet mal eben schlappe 4 Millionen Pfund (okay, es liegt am Strand, aber für das Geld bekommt man in Deutschland ein “richtiges” Haus ;))

Bournemouth: PierBournemouth: Pier vom Boot aus gesehenBournemouth: Teures Haus

Die Fotos der Stadt habe ich aus dem Bournemouth Eye gemacht, einem stationären Ballon, mit dem wir glücklicherweise dank des guten Wetters noch eine Fahrt machen konnten.

Bournemouth: Bournemouth Eye

Die typischen englischen Busse (die aber tatsächlich zu einem guten Preis regelmäßig durch die ganze Stadt fahren).

Bournemouth: Englische Busse

Was gibt es sonst noch über England zu sagen? Für ein “normales” italienisches Essen haben wir den doppelten Preis unseres Stammitalieners in Deutschland bezahlt und 3-Sterne-Hotels entsprechen auch nur annähernd ihren deutschen Pendants. Ein typisches Essen aus einem Pub:

Bournemouth: Leckeres Essen

Insgesamt war der Aufenthalt wirklich interessant, aber auch verdammt teuer… Aber wie mein Dozent schon treffend sagte: “Was tut man nicht alles für die Liebe?” 😉

Flyer für die nächste FHWT-Party

Sooo… Habe gerade den Flyer für die nächste FHWT-Party fertiggestellt. Diesmal habe ich nicht nur eine Version für den Druck erstellt, sondern auch eine spezielle “Poster-Version” zum Aufhängen in der WuBa und der FH. Werde die einfach im Copyshop in DIN A3 ausdrucken lassen, da sich das professionelle Drucken von ca. 10 Plakaten wohl nicht rentiert. Auch für die E-Mail-Werbung ist die Eine-Seite-Variante besser geeignet!

Der Flyer sieht nun also so aus (Vorder- und Rückseite):

Flyer für die Erstsemesterparty

Und das Poster, das auch für die E-Mail-Werbung verwendet wird, sieht so aus:

Poster für die Erstsemesterparty

Unsere “Kollegen” vom Maschinenbau-Jahrgang 2004 starten morgen dann noch so ganz nebenbei ihre Party im Funky Island.

Eigene Sprachdateien in TYPO3 einbinden

Bei der Entwicklung meiner TYPO3-Extension sm_employeelist bin ich auf das Problem gestoßen, dass ich in meinen verschiedenen Plugins auf einige Sprachdefinitionen zugreifen muss, die von diesen gemeinsam verwendet werden.

Über den Aufruf von $this->pi_loadLL(); in der main-Methode jedes Plugins werden zwar die im jeweiligen Plugin-Verzeichnis liegenden Sprachdateien (z.B. pi1/locallang.xml) eingebunden, aber eine “globale” Datei, in der ich Plugin-unabhängige Sprachdefinitionen anlegen kann, ist so nicht einzubinden.

Die Lösung besteht aus ein paar Zeilen Code (leider hat mich die Suche nach der Lösung ein wenig mehr Zeit gekostet, als man annehmen würde ;)). Den entscheidenden Hinweis habe ich in der TYPO3-Dokumentation unter dem Punkt Localization gefunden. Mittels $GLOBALS['LANG']->includeLLFile() können externe Sprachdateien eingebunden werden. Die Schwierigkeit ist nun, auf die Definitionen über pi_getLL() zugreifen zu können. Dafür habe ich mir die Sprachdatei als Array zurückliefern lassen und dieses mit dem Array $this->LOCAL_LANG vereinigt. Nachher kann ganz normal mittels $this->pi_getLL('key_der_definition') auf die Werte zugegriffen werden. Die einzufügenden Codezeilen sind die folgenden: // load global localization for all plugins foreach ($this->LOCAL_LANG as $key => $val) { $LOCAL_LANG = $GLOBALS['LANG']->includeLLFile(t3lib_extMgm::extPath('sm_employeelist') . 'locallang.xml', 0); $this->LOCAL_LANG[$key] = array_merge($LOCAL_LANG[$key], $this->LOCAL_LANG[$key]); }
Dabei werden die Definitionen für jede einzelne Sprache aus der globalen Datei an die Werte des aktuellen Plugins angefügt, wobei die Werte des aktuellen Plugins Vorrang haben. Dadurch können globale Definitionen auf Plugin-Ebene überschrieben werden.

Die Zusammenstellung des Pfades der Include-Datei mittels t3lib_extMgm::extPath() habe ich in meiner Extension durchgehend verwendet. Dies muss natürlich auf die eigenen Anforderungen angepasst werden…

England ruft…

…und ich folge 🙂

Heute abend um 19:50 Uhr startet das (hoffentlich stabile) Flugzeug, das mich nach Bournemouth bringt. Mal schauen, was es da so zu sehen gibt (Derby war ja nicht so der Knaller). Aber als Touristenstadt wird es dort sicher interessante Sachen zum Zeitvertreib geben. Mein Hotel ist glaube ich auch ganz nett… wird schon alles laufen.

Da passt es ja ganz gut, dass ich jetzt gleich noch eine Englisch-Vorlesung zur Vorbereitung auf den TOEFL-Test habe. Die Sachen, die wir bislang bekommen haben (Texte und Dialoge für das Lese-/Hörverständnis) fand ich aber recht einfach. Aber das kann ja noch werden… das letzte Mal bin ich sprachlich eigentlich auch ganz gut klargekommen. Das Hauptproblem wird eher das Essen sein 😉

Nun denn. Hier in der FH geht es auch gleich schon los, sodass ich mal langsam aufhören muss. Vielleicht finde ich ja die Zeit (und einen Internetzugang) um einen Eintrag aus England zu tätigen…

Das erste Plugin ist (fast) fertig

Sooo… heute habe ich dann mein erstes (komplexeres) TYPO3-Plugin fertiggestellt. Naja, eigentlich nur einen Teil davon, aber man kann immerhin schon etwas sehen 🙂

Wie ich ja schonmal erwähnt hatte, dokumentiere ich den Verlauf der Entwicklung in meinem Wiki, aber einen kurzen Einblick gebe ich trotzdem mal schnell. Kurz gesagt schreibe ich eine Extension, die unsere Mitarbeiter im Intranet darstellt und verschiedene zusätzliche Funktionen umfasst:

  • “Steckbriefkartei” der Mitarbeiter mit Adresse, Telefon etc.
  • Liste der Abteilungen mit den jeweiligen Mitarbeitern (sortiert nach “Wichtigkeit”)
  • Anwesenheitsliste
  • Telefonliste
  • Geburtstagsliste
  • Telefonliste

Weitere Funktionalitäten (z.B. Anmeldungen zu Veranstaltungen, Ressourcenplan etc.) werden in Zukunft über zusätzliche Erweiterungen bereitgestellt.

Heute habe ich die grundlegende Eweiterung fertiggestellt: die Mitarbeiterliste. Das Ganze sieht erstmal grob wie folgt aus:

sm_employeelist: Listenansicht

Einen einzelnen Mitarbeiter kann man sich auch schon anschauen:

sm_employeelist: Einzelansicht

Das sieht jetzt nicht gerade nach viel aus, oder? Was daran so lange gedauert hat, war die Einarbeitung in das Framework von TYPO3. Bei den doch recht umfangreichen Konfigurationsmöglichkeiten und zur Verfügung gestellten Funktionen musste ich erstmal wieder in die Vorgehensweise der Extensionprogrammierung einsteigen, aber jetzt läuft’s eigentlich recht flüssig. Ich hatte zwar schon einmal mit dieser Extension angefangen, aber leider nichts dokumentiert… Tja, das weiß ich inzwischen besser 🙂

Mehr Informationen gibt es in meinem Wiki-Eintrag zur Extension sm_employeelist.

PHP-Entwicklung mit Eclipse, Subversion und FTP

Für die Entwicklung meiner TYPO3-Extension sm_employeelist brauche ich eine vernünftige Entwicklungsumgebung. Die habe ich mir heute eingerichtet, und sie besteht aus den folgenden Komponenten:

Das ganze ist recht einfach zu installieren:

  1. Subversion Repository einrichten
  2. easyEclipse downloaden und installieren
  3. subclipse installieren und einrichten

Falls man (wie ich in der Firma) hinter einem Proxy sitzt, kann man diesen laut der Subclipse FAQ unter Windows in der Datei %APPDATA%\Subversion\servers einstellen: [global] http-proxy-host = proxy.domain http-proxy-port = 8080

Nun möchte ich aber die TYPO3-Extension nicht lokal auf meinem Rechner, sondern remote per FTP auf dem Server bearbeiten, auf dem TYPO3 läuft. Dazu ist der FTP-Support zu installieren.

Die Vorgehensweise zum Anlegen des neuen PHP-Projektes ist nun wie folgt:

  1. Rechtsklick in die Projektliste und Import…Checkout Projects from SVN
  2. URL vom Repository angeben und dieses als neues Projekt importieren
  3. Programmieren! 🙂
  4. Rechtsklick auf das Projekt, Export…FTP und auf den Testserver hochladen
  5. Nach Abschluss des Programmierens noch schnell per Rechtsklick auf das Projekt ein TeamCommit absetzen und das war’s

Habe gerade festgestellt, dass das Synchronisieren per FTP einige Klicks erfordert und auch einiges an Zeit in Anspruch nimmt. Ich werde jetzt mittels Samba ein Netzlaufwerk direkt auf dem Server einrichten und auf diesem arbeiten, damit ich mir den FTP-Kram sparen kann.

Die Entwicklung der TYPO3-Extension dokumentiere ich übrigens für die Nachwelt in meinem Wiki.

TYPO3-Migration auf TemplaVoila

Ich gestalte zur Zeit das neue Intranet unserer Firma und versuche dabei, die folgenden Punkte abzubilden:

  1. Migration von Windows auf einen Linux-Server
  2. TYPO3 3.8.1 auf 4.0.1 updaten
  3. Für das Templating soll anstatt der normalen Methode TemplaVoila eingesetzt werden

Die Migration auf einen anderen Server ist kein Problem. Einfach die Dateien rüberziehen und die Datenbanken kopieren (per mysqldump). Evtl. in der localconf.php die Datenbankparameter anpassen: Fertig!

Das Update auf 4.0.1 ist sehr gut beschrieben von der TYPO3 Usergroup München beschrieben. Ich habe mir für die ganzen Verzeichnisoperationen ein kleines Script geschrieben:
#!/bin/bash # This script migrates a TYPO3 3.8.1 installation to 4.0.1 # It has to be run from the parent directory of the TYPO3 installation (typo3/). # set this to your webservers webroot, the TYPO3-source dir has to be a subdir of this WEBROOT=/var/www # remove old files rm typo3/typo3 -R rm typo3/t3lib -R rm typo3/tslib -R rm typo3/media -R rm typo3/index.php rm typo3/showpic.php # some extensions that aren't needed any more rm typo3/typo3conf/ext/csh_de -R rm typo3/typo3conf/ext/rtehtmlarea -R # link needed dirs cd typo3 ln . $WEBROOT/typo3 -s ln $WEBROOT/typo3_src-4.0.1 typo3_src -s ln typo3_src/t3lib t3lib -s ln typo3_src/typo3 typo3 -s ln typo3_src/index.php -s cd .. # create some more dirs mkdir typo3/typo3temp/temp mkdir typo3/typo3temp/GB mkdir typo3/typo3conf/l10n #mkdir typo3/uploads/media mkdir typo3/uploads/tf # set permissions (set the user/group corresponding to your webserver's settings) chown www-data.www-data typo3 -R chmod 0770 typo3/typo3temp/ -R chmod 0770 typo3/typo3conf/ -R chmod 0770 typo3/uploads -R chmod 0770 typo3/fileadmin/_temp_ -R

Die Umstellung auf TemplaVoila ist nicht ganz so einfach. Ich habe mich zunächst auf einer Testinstallation mit dessen Arbeitsweise vertraut gemacht und die Templates/Datenstrukturen dort vorbereitet. Dann habe ich die folgenden Schritte durchgeführt:

  1. Extension TemplaVoila installieren
  2. Das Template der Testseite und die Datenstrukturen/TemplateObjects für TemplaVoila als .T3D aus der Testinstallation exportieren und in die neue Installation importieren
  3. Das Mapping der Templatedateien aktualisieren
  4. ROOT-Seite → Seitenheader bearbeiten → Seiten-Datenstruktur und Benutze Vorlagendesign auf die importierten Objekte einstellen
  5. Schon erstrahlt die Seite im neuen Glanz des TemplaVoila-Templates. Allerdings dürften die Pfade zu den Grafiken und Stylesheets fehlerhaft sein.
    • Das komplette Verzeichnis fileadmin/templates aus der Testinstallation in die neue Installation kopieren nachdem dieses dort entfernt wurde
    • Das Mapping der Templatedateien aktualisieren
  6. Jetzt sollte die Seite das korrekte Design haben. Nur der Inhalt fehlt noch. Diesen kann man mittels FunktionenReferenziere unbenutzte Inhaltselemente für jede Seite im Hauptmenü einfügen (am besten alle Ebenen anzeigen und die Funktion für den gesamten Verzeichnisbaum ausführen).

Die ganzen Schritte habe ich auch in meinem Wiki dokumentiert: Intranet mit TYPO3

Rise Against in der Markthalle in Hamburg

So. Die “Sommerpause” ist vorbei (2 Wochen seit dem letzten Eintrag, manman). Aber das Thema ist es auch wert, behandelt zu werden: Ich war bei Rise Against in Hamburg.

Nachdem wir etwas später als geplant losgekommen sind, haben wir es dennoch pünktlich zur Markthalle geschafft und nichts verpasst. Die erste Vorband Berri Txarrak hat gleich gut vorgelegt und derbst gerockt. Leider sind die Texte auf castellanisch (?) und man konnte sich nicht wirklich etwas einprägen, aber technisch waren die Jungs echt gut drauf. Leider fehlt es ihnen (meiner Meinung nach) aber an eingängigen Melodien…

Nun denn. Wenig später standen dann A Wilhelm Scream auf der Bühne und die haben wirklich total gerockt! Gut, dass ich mir vorher noch das aktuelle Album von ihnen angehört habe, denn die sind technisch und gesanglich ganz weit vorne! Der perfekte dreistimmiger Gesang z.B. bei “Me vs. Morrissey” war echt der Hammer. Als letzten Song haben sie dann noch “The King Is Dead” gespielt: Echt genial. Bis auf 2 Songs kannte ich alle (hauptsächlich vom Album “Ruiner”) und die Band war ein mehr als würdiger Opener für den Headliner Rise Against

Nach einigem Warten waren dann auch die eigentlichen Stars des Abends dran. Nachdem im dunklen Saal die Rise Against-Fahne auf der Bühne hochgezogen worden war, ging es gleich heftig mit “State Of The Union” los. Danach haben sie dann gleich einen neuen Song (“Chamber The Cartridge”) gespielt und ich muss sagen, dass sich die neuen Lieder sehr gut live spielen lassen. Die Leute haben überall mitgesungen und gingen in der recht kleinen Location tierisch ab. Tim meinte, es sei das erste ausverkaufte Rise Against-Konzert in Hamburg.

Vom neuen Album kamen dann noch “Drones” und “Prayer Of The Refugee”, die auch extrem gut ankamen. Natürlich haben sie auch etwas ältere (“Black Masks And Gasoline”) und sehr alte Sachen (“6 Ways Till Sunday”) gespielt. Als (leider einzige) Zugabe gab es dann noch die Akustik-Version von “Everchanging” und natürlich “Swing Life Away”. Als allerletzten Song haben sie dann noch “Give It All” gespielt und nach knapp 70 Minuten war schon alles vorbei.

Als kleinen Makel habe ich zu Beginn der Show den Sound anzumerken. Da waren vor allem A Wilhelm Scream mit den zwei Gitarren echt fetter. Aber als Tim bei einigen Songs noch die zweite Gitarre dazu spielte ging es dann. Sein Gesang war teilweise nicht ganz im Takt, meine ich… aber egal! Die Show war echt super. Aber etwas länger hätten die Jungs ruhig spielen können 🙁 Und achja: Die neue Kurzhaarfrisur von Tim ist recht gewöhnungsbedürftig 😉

Habe mir dann noch ein hübsches T-Shirt besorgt und gegen 2:30 Uhr waren wir zu Hause. Insgesamt ein sehr geniales Konzert! Vielleicht gibt es auch bald die Bilder zu sehen, die meine Schwester geknipst hat…

Fotos sind online und drei nette gibt’s hier:

Meine Schwester, Floßi und ich bei Rise Against

Tim von Rise Against

Rise Against in Hamburg

Ausbildung der Ausbilder

Komme gerade vom ersten Abend meines AdA-Kurses. Der wird uns von der FHWT so nebenbei angeboten, und den nehme ich doch glatt mit!

Wir sitzen da so mit ca. 20 Leuten (hauptsächlich BWLer, ein paar Ingenieure und zwei WITler) und hören uns an, was Herr Bürmann uns so zum Thema Ausbildung zu erzählen hat. Anstatt in 120 Stunden (die wohl ein normaler Kurs dauert) bekommen wir das Wichtigste in 40 Stunden beigebracht, wie man das von der FHWT gewohnt ist. Aber geschadet hat’s ja auch nicht

Die Termine sind zwar nervig (Mittwochs und Donnerstags von 17:30 bis 20:45 Uhr), aber nach vorherigen 8 Stunden “erholsamer” Arbeit, kann man sich das wohl anhören. Wenigstens ein tolles Zertifikat mehr, das man dem Lebenslauf beilegen kann 😉