Mrz 25
  • english
  • german

Um mein Blog mehr Leuten zugänglich zu machen, habe ich vor einer Weile beschlossen, meine Posts auch in englisch zu veröffentlichen. Um das im WordPress möglichst einfach abzubilden, habe ich das jLanguage-Plugin verwendet. Nach einer Weile ging dann mein Kategorie-Feed für eSteak nicht mehr. Das habe ich relativ schnell gemerkt, da dieser auf der eSteak-Startseite eingebunden wird. Damals habe ich mir nicht anders zu helfen gewusst, als den Post den es betraf in eine andere Kategorie zu schieben.

In den letzten Tagen viel mir jedoch auf, dass mein Feed bei Feedburner keine Leser mehr hat und ich habe mich gefragt warum. Mindestens die Newsdienste bei denen ich angemeldet bin, hätten es ja aufrufen müssen. Nachdem ich ihn selbst ausprobiert hatte, musste ich feststellen, dass ich einen Timeout bekam und zusätzlich noch die Serverlast des httpd2 Prozesses bei annähernd 100% lag. Weiterlesen »

Mrz 12
  • english
  • german

Nachdem ich eine einzige Klasse in meinem Projekt geändert habe (eine /lib die nichts mit der Datenbank zu tun hat), bekam ich absolut zufällig die Fehlermeldung „wrapped: Cannot fetch TableMap for undefined table: xxx“ sowohl im Produktiv- als auch im Devmodus. Für xxx standen dabei willkürlich verschiedene Tabellennamen aus meiner Datenbank.

Ich habe es mit Symfony Cache löschen probiert, Browsercache löschen und austauschen der Datei, hat alles nix gebracht. Meine letzte Rettung war der Neustart des Apache, dann lief alles wieder wie vorher. Keine Ahnung woher der Fehler nun eigentlich kam…

UPDATE: Der Neustart war noch nicht des Rätsels Lösung! Es nur einfach eine Weile gedauert bis der Fehler wieder auftrat. Ich habe mir deswegen noch eine kleine Debugausgabe der eigentlichen PHP-Fehler vor die Exception gebaut. Dort bekam ich dann raus, dass eine Datei „lib/model/om/BaseXXXPeer.php“ nicht auf die Datei „lib/model/XXXPeer.php“ zugreifen kann. Das erscheint mir auch logisch, liegt doch der Controller unter „web/“. Von dort aus müsste der Pfad ja „../lib/model …“ lauten. Nachdem ich nun „../“ als include_path in der php.ini ergänzt habe, scheint der Fehler erstmal weg zu sein.

Ich verstehe auch nicht wirklich, warum die includes keine absoluten Pfadangaben haben. Es wäre sehr schön, wenn das im Symfony noch geändert wird.

Mrz 12
  • english
  • german

Nachdem ich auf meinem Server von PHP 5.0.4 auf 5.2.5 geupdated habe, bekam ich öfter mal nur leere weiße Seiten als Ausgabe. Im dev-Modus erschien dann der Fehler, dass eine Creole-Datei nicht geladen werden konnte. Ich musste deshalb den Include-Pfad in der php.ini anpassen damit es läuft. Ich habe nur „/usr/share/php/pear/symfony/lib/vendor“ hinzugefügt, dann waren die Fehler weg. Ja nachdem ob man Symfony über PEAR oder per svn heruntergeladen hat, muss der Pfad natürlich noch angepasst werden.

Am Ende nicht vergessen den Symfony cache zu löschen (symfony cc).

Feb 25
  • english
  • german

Nach eingehender Studie des Problems von letztem Donnerstag, habe ich endlich eine Lösung gefunden. Ich habe mir das SVN Repository genauer angeschaut und einen Branch gefunden (der nirgendwo beschrieben ist). Man muss nur den Pfad http://svn.symfony-project.com/plugins/sfPHPUnitPlugin/branches/1.0/ als svn:external mit dem Namen sfPHPUnitPlugin zum plugin-Ordner des Symfony-Projektes hinzufügen und dann einmal updaten. Wenn man danach symfony -T auf der Konsole eingibt, erscheinen auch die neuen Kommandos.

Hurra! Aber halt: es geht immer noch nicht! Es scheint noch einen Fehler in der Datei sfPHPUnitTestPrinterTap.php im lib-Ordner des Plugins zu geben. In Zeile 159 muss es statt „$suite->testCount()“ einfach „$suite->count()“ heißen und dann gehts auch. Unglaublich aber wahr. Nach ewigem rumprobieren hab ichs doch noch geschafft – Symfony läuft mit PHPUnit. Gott sei dank.

Feb 18
  • english
  • german

Ich habe gerade einen seltsamen Fehler in einem Stück PHP-Code gehabt. Es wurde eine Datenbankabfrage an eine MySQL-Datenbank abgesetzt und dann eine Selectbox aus den zurückgegebenen Zeilen gerendert. Diese Selectbox hatte allerdings genau einen Eintrag weniger als in der Tabelle stand! Dieser Eintrag wies als Besonderheit einen Umlaut als ersten Buchstaben auf. Das war mein hinweis: die Kodierung!

Die Tabelle war mit latin1_swedish… kodiert und die Datei mit UTF8. In der Datei stand dann die Abfrage drin und dort kam das Wort mit dem Umlaut drin vor. Eigentlich dachte ich ja, wenn ich UTF8 nehme, bin ich auf der sicheren Seite aber naja. Ich habe jetzt die Datei als iso-8859-1 erneut mit Eclipse gespeichert und siehe da: es geht!

Noch mehr verwirrend fand ich übrigens den Fakt, dass genau die gleiche Abfrage, nur mit phpMyAdmin abgesetzt, auch meine Problemzeile mit ausgegeben hatte! Aber dort hat eben einfach die Dateikodierung schon gestimmt.

Feb 11
  • english
  • german

Ich benutze gerade Symfony für die Entwicklung einer kleinen Web-Community. Da ich auf meinem Rechner MAMP laufen habe, wollte ich nun nach der Installations-Anleitung von Symfony einen virtuellen Host einrichten und habe dafür die httpd.conf-Datei im MAMP-Verzeichnis editiert. Dummerweise habe ich über das eigentliche MAMP-Control meinen Pfad zum Document Root verändert, damit er auf /Users/Grundi/Sites zeigt. Diese Abweichung vom Originalzustand scheint MAMP zu bewegen, bei jedem Serverstart die httpd.conf neu zu schreiben – ohne meine Änderungen natürlich.

Im Symfony hatte ich dann natürlich das Problem, dass alle Dateien die in der Bibliothek von Symfony liegen (web/sf/…), nicht geladen werden. Da ich auch AJAX verwende und dafür Prototype verfügbar sein muss, funktionierte meine ganze Anwendung nicht mehr. Weiterlesen »

Feb 08

Die aktuelle Version der TYPO3-Extension rgaccordion sorgt in zwei verschiedenen Modi dafür, dass normale Inhaltselemente im TYPO3 als Akkordion dargestellt werden. Dies kann über eine Checkbox am Element ein- und ausgeschaltet werden. Für den ersten Modus klappt das auch hervoragend, im 2. wird jedoch der Wert der Checkbox nicht ausgelesen.

Ich habe das nötige Typoscript in der Datei ext_typoscript_setup.txt so angepasst, dass das Verhalten jetzt stimmt. Hier der Code:

...
plugin.tx_rgaccordion2 {
  stdWrap.outerWrap = <div class="rgaccord2-content">|</div>
  stdWrap.outerWrap.if.isTrue.field = tx_rgaccordion_accordion
  stdWrap.outerWrap.stdWrap.prepend = COA
  stdWrap.outerWrap.stdWrap.prepend {

    1 = TEXT
    1.value = <div class="csc-header rgaccord2-toggle"><h1>
    1.if.isTrue.field = tx_rgaccordion_accordion

    2 = TEXT
    2.value = <div class="csc-header"><h1>
    2.if.isFalse.field = tx_rgaccordion_accordion

    5 = TEXT
    5.field = header
    5.ifEmpty = no headline set!

    10 = TEXT
    10.value = </h1></div>
  }
}
...

Den Autor der Extension habe ich benachrichtigt, ich denke in der nächsten Version ist der Bug nicht mehr drin. 🙂

Feb 08

Wer im TYPO3 die Extension realurl benutzt, hat sicher auch schonmal was von der fl_realurl_image gehört. Diese Extension erzeugt auch für Bilder „schöne“ Namen. Ich hatte nun das Problem, dass ich die beiden Extensions zwar installiert, aber noch gar nicht aktiviert hatte. Trotzdem scheint letztere Extension sich irgendwie einzuklinken. Das Ergebnis ist: alle Bilder fehlen!

Scheinbar liest die Extension nicht aus, ob realurl überhaupt aktiviert ist. Um das zu beheben, braucht man nur die Extension im Extension Manager anzukicken und den Haken bei „Enable the Extension“ rauszunehmen, dann geht es wieder.

Feb 07

Ich bin bei der Arbeit auf ein Problem gestoßen für das ich nicht wirklich ein Lösung hatte. Kurz umrissen: Wenn der Inhalt eines Formularelementes im IE größer wird als vorgesehen und das Feld ein Hintergrundbild hat, dann verschwindet das Hintergrundbild langsam mit dem Text der eingegeben wird.

Gleich vorweg: für Textareas habe ich noch keine Lösung gefunden, für Input-Felder kann man sich aber mit einem kleinen Trick helfen. Wenn das Element Höhen- und Breitenangeben besitzt (sollte es), kann man mit „background-position: right bottom;“ (und background-attachment: scroll;) den optischen Eindruck erwecken, als bliebe es an Ort und Stelle. Technisch wird das Element zwar größer, das Bild jedoch „rückt nach“.

Mit diesem Workaround kann man (in Kombination mit Conditional Comments) ein annehmbares Ergebnis in allen Browsern erzielen.

Feb 05

Ich entwickle gerade eine kleine Anwendung mit Symfony und benutze dabei das Askeet-Tutorial. Am Tag 6 des Tutorials wird eine validation YAML-Datei erstellt die login.yml heisst. Da der Inhalt bereits vorgegeben ist, hat es mich gewundert, dass ich immer folgenden Fehler bekam:

Configuration file ……/login.yml is missing „names“ category

Nach längerem Probieren blieb mir schließlich nur noch das Orakel übrig. Dessen Antwort enthielt unter anderem ein Forum und das wiederum dann (dank der Suchfunktion) den entscheidenden Hinweis: Encoding und Line Endings müssen passen, sonst geht nichts! Ich hab also schnell das File als UTF8 mit LF-Endings gespeichert und siehe da, es geht!

Das hat locker ne Stunde gedauert bis ichs raus hatte – uff.