Cold Restart

Der ein oder andere wird es vielleicht schon gemerkt haben: hier im Blog hat sich mal wieder was an der Oberfläche geändert. Aber nicht nur da 😉

Hier lief bis grade eben ein (jetzt kann ichs ja rausposaunen) sehr altes WordPress 2.8 mitsamt allen Sicherheitsproblemen die man sich da einhandelt. Was aber viel problematischer war: das Theme war ein für WordPress 1.irgendwas angepasstes das schon seit einigen Jahren nur noch im hinterletzten Kompatiblilitätszweig lief. Und mit neueren WPs jetzt gar nicht mehr. Es musste also was neues her.
Continue reading „Cold Restart“

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.

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

Interessante Counter-Bugs…

Soso. Ich habe also seit kurzem mehrere Counter laufen.

Einmal den Readers Count (siehe gestern), und die Statistiken unten rechts kommen aus einem chCounter.

Komisch ist nur: es werden vom chCounter nur 3 Besucher angezeigt, die Readers Counter steigen aber ziemlich schnell…
UPDATE: der Post mit den Updates zum Beispiel. Wurde seit ich dies hier gepostet habe 6 mal gelesen, aber der chCounter meint es waren nur 3 Nutzer online. Passt doch irgendwo nicht!?

Es wird Zeit für einen Counter-Strike 😀 LOL ROFLMAO

Hm, ok. So gut war der doch nicht…

Falls das hier also jemand liest (und das scheint ja so…) und sich damit auskennt, oder mir jemand einen anderen Counter empfehlen kann, bitte ich um einen Kommentar… An sich stört mich das ja nicht so, aber der Unterschied ist schon unschön…

Schönen Schrank schonmal 😉

Ein echter Blog!

Was soll ich sagen: FastEinBlog ist ‚erwachsen‘ geworden.
Statt statischen HTML-Quelltext zu verwenden, wird jetzt ein echter Blog mit WordPress betrieben. Bei der Gelegenheit werden auch die News der Seite über die Kategorie ‚Intern‚ eingetragen. Nochmal schönen Dank ans DF für Hilfe bei der Beseitigung von Umlaut-Problemen 😉

Wenn ich wüsste, dass das bei Kilu mit den Datenbanken alles so klappt, würde ich ja ganz auf ein CMS umstellen. Aber irgendwie trau ich dem Frieden nicht so…