Aus dem Maschinenraum

Heute mal wieder so ein paar schöne WTF-Momente gehabt. Das ist zwar bei WordPress nix neues, weswegen ich heute auch mit Serendipity experimentiert hab. Das ist zwar toll, aber die Permalinkstruktur gefällt mir nicht wirklich, und der Import hat auch nicht geklappt (konsquent falscher Zeichensatz). Ist aber hier nicht das Thema 😉

Was mich heute zum wiederholten Mal verwundert hat, sind spontan nicht mehr funktionierende PHP-Skripte.
PHPExec meinte doch eben völlig unmotiviert („I didn’t touch anything! *looks away*“), mir einen Fehler zu melden, eine Variable wäre nicht initialisiert. Das war sie zwar wirklich nicht, aber das Skript lief ohne Unterschied literally seit Jahren. Fehlerfrei. Ich hab eine glaubhafte Versicherung meines Hosters, dass er auch nix gemacht hat…

Sowas hatte ich schonmal: ein Datenbank-Wrapper, der schon Wochenlang genutzt wurde, meinte auf einmal, Bind-Variablen nicht mehr richtig übergeben zu wollen. Und Überraschung: laut Manual hätte es nie funktionieren können.

Hatte schonmal jemand ähnliche Effekte? Plötzlich veränderliches Verhalten ist etwas, was ich mir so gar nicht erklären kann.

Es lebt!

Nein, Frankenstein hat nix damit zu tun.

Ich hab nur grade mal WordPress auf Version 2.7.1 katapultiert. Sieht nett aus, das ganze. Oh, und schneller fühlt sich das Dashboard auch an, was ja grade für WordPress echt mal nötig ist.

Und dann möchte ich mal noch auf meine Ideenkiste hinweisen, so dolle viel ist da ja noch nicht los.

Serverumzug

Und wieder mal ein Umzug (gut) überstanden 😉

Diesmal von einem vServer bei NetClusive, der unter anderem immer langsamer geworden ist (es gab andere Gründe, die möchte ich hier aber nicht ausbreiten) und deshalb von meinem Hoster gekündigt wurde, zu einem echten eigenen Server von OVH. Nettes Teil, man merkt die Geschwindigkeitsunterschiede^^

Dank nochmal an Beshig, der das so schön im Skype live gemanaget hat. Macht sich schon besser, wenn man direkt mit den Leuten reden kann 😉

cu
Martok

WordPress: wpautop(), der einfachere Weg

Hallo!

Ich melde mich mal wieder, diesmal mit etwas relativ wichtigem. Vor kurzem wurde WordPress 2.6 freigegeben, im Zuge des Updates musste ich mal wieder den wpautop()-Fix einspielen.

Dabei sind mir einige Unzulänglichkeiten aufgefallen, unter anderem dass er sinnlos kompliziert ist 😉

Die neue Version kommt mit grade mal 7 neuen und einer geänderten Zeile aus.

Hier die Diff (wir sind wieder in wp-includes/formatting.php):

@@ -65,10 +65,15 @@
 }
 
 function wpautop($pee, $br = 1) {
+	$preserving = strpos($pee, '<preserve>') !== false;
+	if ($preserving) {
+		$pee = preg_replace_callback('!<preserve>(.*?)</preserve>!is', create_function('$matches', 'return "<revert>".base64_encode($matches[1])."</revert>";'), $pee);
+	}
+
 	$pee = $pee . "n"; // just to make things a little easier, pad the end
 	$pee = preg_replace('|<br />s*<br />|', "nn", $pee);
 	// Space things out a little
-	$allblocks = '(?:table|thead|tfoot|caption|colgroup|tbody|tr|td|th|div|dl|dd|dt|ul|ol|li|pre|select|form|map|area|blockquote|address|math|style|input|p|h[1-6]|hr)';
+	$allblocks = '(?:table|thead|tfoot|caption|colgroup|tbody|tr|td|th|div|dl|dd|dt|ul|ol|li|pre|select|form|map|area|blockquote|address|math|style|input|p|h[1-6]|hr|revert)';
 	$pee = preg_replace('!(<' . $allblocks . '[^>]*>)!', "n$1", $pee);
 	$pee = preg_replace('!(</' . $allblocks . '>)!', "$1nn", $pee);
 	$pee = str_replace(array("rn", "r"), "n", $pee); // cross-platform newlines
@@ -99,6 +104,9 @@
 	$pee = preg_replace( "|n</p>$|", '</p>', $pee );
 	$pee = preg_replace('/<p>s*?(' . get_shortcode_regex() . ')s*</p>/s', '$1', $pee); // don't auto-p wrap shortcodes that stand alone
 
+	if ($preserving) {
+		$pee = preg_replace_callback('!<revert>(.*?)</revert>!is', create_function('$matches', 'return base64_decode($matches[1]);'), $pee);
+	}
 	return $pee;
 }

Bei der Gelegenheit habe ich den Tag von <nowpautop> in <preserve> geändert, hier gegebenfalls betreffende Posts/Seiten anpassen.

Die angesprochenen anderen Unzulänglichkeiten hatten damit zu tun, dass nur p und br-Tags verhindert wurden. Alles andere wurde trotzdem munter verändert. Jetzt ist das Verhalten das erwartete: per php generierter HTML-Code wird genau so übernommen wie er aus dem Interpreter kommt. Technisch liegt das daran, dass ich jetzt nicht mehr einzelne Zeichen schütze, sondern alles, indem der Code base64-Codiert vor wpautop() versteckt wird.

Viel Spaß damit 😉
Martok

Forum eröffnet

In einer Nacht-und-Nebel-Aktion hab ich uns ein Forum beschafft. Es ist über den Link „Forum“ (oh Wunder) oben rechst zu erreichen.

Ich hoffe ja, dass da irgendwann mal ne Community draus wird. Ich scheine ja nicht wenige Leser zu haben, aber kaum einen von denen kenne ich. Das soll sich jetzt mal ändern 😉

–Martok

Umgezogen… irgendwie.

Tja…. was soll ich sagen.

Wir sind umgezogen. Mittlerweile schon vor 5 Tagen.

Nach einem mittelschweren GAU hieß es für uns hier aber: alles auf Los. Leider existierte noch kein Backup nach dem Umzug – sprich, ich darf alles neu einrichten. Inklusive diesem Post, der schonmal mit erfreulicherem Inhalt existierte.

Naja… jedenfalls. Es scheint erstmal alles wichtige wieder zu gehen. Ich hoffe, ich habe nichts großes vergessen…

mfg
Martok