Know How

Bamboo

Achtung! Dieser Patch ist nicht "bulletproof". Bamboo verdreht anscheinend manchmal die Einträge, so dass der Patch nicht wirkt. Ich weiß nicht wieso, vermutlich hatte das mit der defekten Sprachumschaltung zu tun.

Update 2006-02-16: Patch enthielt einen gravierenden Fehler! (Angaben die mit http:// begannen wurden falsch gerendert), jetzt ist der Bug korrigiert

Nolink-Patch

Ich habe gestern in Bamboo den "endgültigen" Nolink-Patch eingebaut. Hintergrund ist eine Abmahnung die mir evtl. gedroht hätte da ich Bamboo dafür nutze, meine Meinung frei zu verbreiten. Da ich dieser Abmahnung nicht entsprochen hätte, wäre die Sache sicher danach vor Gericht gegangen. Und in solch einem Fall ist immer unklar, was dann passiert.

Es war so, ich hatte einen Text erfasst, in dem wahrheitsgemäß die Phrase www.slysoft.com vorkam. Daraus renderte Bamboo einen Link. Diese Form, die Wahrheit zu berichten, soll inzwischen in Deutschland anscheinend gegen geltendes Recht verstoßen.

Da ich durch diesen Vorgang auch auf den gravierenden Bug in der Sprachumschaltung bei Bamboo aufmerksam wurde, habe ich in Bamboo einen inoffiziellen Fix eingearbeitet, der es möglich macht, dieses automatische Link-Rendering zu deaktivieren.

Dies ist der "nolink-Patch". Ich verwende dazu die Phrase "-nolink-" in der Description einer Seite. Nolink ist übrigens auch auf dieser Seite gesetzt, deshalb ist die Phrase oben nicht verlinkt.

Hier der Patch (er wird von Bamboo leider etwas verdreht dargestellt):
--- /usr/share/bamboo/filters/text2html.php 2005-03-31 00:59:58.000000000 +0200
+++ bamboo/filters/text2html.php 2006-02-16 17:18:31.000000000 +0100
@@ -328,6 +328,10 @@
 }
 
 function setupTransforms() {
+
+# 2006-01-31 tino: hack for "nolink"
+global $page;
+
  $transform = array (
  '/([^\w])_(.*)_([^\w])/' => '$1<i>$2</i>$3',
  '/\*([^\s\*]+[^\*]*[^\s])\*/' => '<b>$1</b>',
@@ -338,9 +342,15 @@
  '/(^|\s)(.*?)@(.*?)/' => '$1$2<!-- -->@<!-- -->$3',
 # '/^\s*-{3,}/' => '<table border=0 cellpadding=0 cellspacing=0 width="100%" bgcolor=black><tr><td><img height=1 width=2></td></tr></table>                                                                  ',
  '/^\s*-{3,}\s*$/' => '<table border=0 cellpadding=0 cellspacing=0 width="100%" bgcolor=black><tr><td><img height=1 width=2></td></tr></table>                                                                  ',
- "!(^|[^/]|\s)((www\.)([-a-z0-9.]{2,}\.[a-z]{2,4}(:[0-9]+)?)((/([^\s]*[^\(\)\s.,\"'])?)?)((\?([^\s]*[^\s.,\"'])?)?))!i" => '$1<a href="http://$2">$2</a>',
- "!(^|[^\"]|\s)(((http(s?)|ftp)://)([-a-z0-9.]{2,}\.[a-z]{2,4}(:[0-9]+)?)((/([^\s]*[^\(\)\s.,\"'])?)?)((\?([^\s]*[^\s.,\"'])?)?))!i" => '$1<a href="$2">$6$8</a>',
+# "!(^|[^/]|\s)((www\.)([-a-z0-9.]{2,}\.[a-z]{2,4}(:[0-9]+)?)((/([^\s]*[^\(\)\s.,\"'])?)?)((\?([^\s]*[^\s.,\"'])?)?))!i" => '$1<a href="http://$2">$2</a>',
+# "!(^|[^\"]|\s)(((http(s?)|ftp)://)([-a-z0-9.]{2,}\.[a-z0-9]{2,4}(:[0-9]+)?)((/([^\s]*[^\(\)\s.,\"'])?)?)((\?([^\s]*[^\s.,\"'])?)?))!i" => '$1<a href="$2">$6$8</a>',
  );
+# If the page has a "nolink" description,
+# disable automatic linking to protect against threats to free speech rights.
+ if (strpos($page->get('description'), '-nolink-')===false)
+ $transform["!(^|[^/]|\s)((www\.)([-a-z0-9.]{2,}\.[a-z0-9]{2,4}(:[0-9]+)?)((/([^\s]*[^\(\)\s.,\"'])?)?)((\?([^\s]*[^\s.,\"'])?)?))!i"]='$1<a href="http://$2">$2</a>';
+ $transform["!(^|[^\"]|\s)(((http(s?)|ftp)://)([-a-z0-9.]{2,}\.[a-z0-9]{2,4}(:[0-9]+)?)((/([^\s]*[^\(\)\s.,\"'])?)?)((\?([^\s]*[^\s.,\"'])?)?))!i"] = '$1<a href="$2">$6$8</a>';
+
  $this->search = array_keys($transform);
  $this->replace = array_values($transform);
 }
(Achtung, bitte den Link oben verwenden um den Patch herunterzuladen. Bamboo "vermurxt" die Seite zu gerne.)

-Tino, 2006-02-03