phpBB3 Mod: Nofollow & neues Fenster für externe Seiten

Tags: | |

Seltsam, aber anscheinend gibt es kein offizielles Mod für phpBB 3.x für Nofollow-Attribute mit Whitelist für „dofollow“-URL´s?

Darum hier nun eine einfache und schnell zu installierende Lösung für phpBB3:

viewtopic.php öffnen und nach folgenden Zeilen suchen:

$message = bbcode_nl2br($message);
$message = smiley_text($message);

Dahinter den folgenden Code einfügen und ggf. anpassen:


  /*****************************************/
  /*  phpBB3 Nofollow-Links mit Whitelist  */
  /*  (c)2009 www.premium-hosting-24.de    */
  /*****************************************/
  /* Variablen */
  $homeurl=$_SERVER['HTTP_HOST'];
  /* Konfiguration [START] */
  $whitelist = array(
    'www.stephan-hertz.de',
    'www.premium-hosting-24.de',
    'www.your-domain.tld'
  );
  /* Konfiguration [ENDE] */
  $message = preg_replace('/(a class="postlink" href="(.*?)")/','a href="$2" class="postlink"',$message);
  $message = preg_replace('/(class="postlink")/','class="postlink" rel="nofollow" target="_blank"',$message);
  $message = preg_replace('/(href="http://'.$homeurl.'(.*?)" class="postlink" rel="nofollow" target="_blank")/','href="http://'.$homeurl.'$2" class="postlink"',$message);
  // frei schalten der WhiteList
  foreach($whitelist as $links) {
    $message = preg_replace('/(href="http://'.$links.'(.*?)" class="postlink" rel="nofollow" target="_blank")/','href="http://'.$links.'$2" class="postlink" target="_blank"',$message);
  }
  // target _blank valide machen:
  $message = preg_replace('/(target="_blank")/','onclick="this.target='_blank'"',$message);
  /* phpBB3 Nofollow-Links mit Whitelist [END] */

Das Script wandelt zuerst einmal alle Links in das gleiche Format

<a href="xxx" class="postlink" rel="nofollow" target="_blank">xxx</a>

und löscht dann im Anschluß rel=“nofollow“ target=“_blank“ für lokale Adressen, entfernt rel=“nofollow“ für Links aus der Whitelist und wandelt zum Schluß target=“_blank“ in eine valide Version um.

3 Kommentare zu “phpBB3 Mod: Nofollow & neues Fenster für externe Seiten”

  1. Kreidler Moped meint:

    Ich setze auch phpBB3 ein und werde das ganze mal ausprobieren. Vielen Dank!

  2. N.Heimsath meint:

    Hallöchen ich glaub Ihr habt da ne Kleinigkeit vergessen.
    die // in der Regex sollte man besser Escapen.
    Und in der Letzten Zeile wahren auch ein paar „“'““‚“‚“ verwirbelt.

    
    /*****************************************/
    /*  phpBB3 Nofollow-Links mit Whitelist  */
    /*  (c)2009 www.premium-hosting-24.de    */
    /*  Fix by heimsath.org  :-)             */
    /*****************************************/
    	/* Variablen */
    	$homeurl=$_SERVER['HTTP_HOST'];
    	/* Konfiguration [START] */
    	$whitelist = array(
    	'www.your-domain.de',
            'www.your-domain.eu'
    	);
    	/* Konfiguration [ENDE] */
    	$message = preg_replace('/(a class="postlink" href="(.*?)")/','a href="$2" class="postlink"',$message);
    	$message = preg_replace('/(class="postlink")/','class="postlink" rel="nofollow" target="_blank"',$message);
    	$message = preg_replace('/(href="http://'.$homeurl.'(.*?)" class="postlink" rel="nofollow" target="_blank")/','href="http://'.$homeurl.'$2" class="postlink"',$message);
    	# frei schalten der WhiteList
    	foreach($whitelist as $links) {
    	$message = preg_replace('/(href="http://'.$links.'(.*?)" class="postlink" rel="nofollow" target="_blank")/','href="http://'.$links.'$2" class="postlink" target="_blank"',$message);
    	}
    	# target _blank valide machen:
    	$trreplace='onclick="this.target='."'".'_blank'."'".'"';
    	$message = preg_replace('/(target="_blank")/',$trreplace,$message);
    /* phpBB3 Nofollow-Links mit Whitelist [END] */
    
    
    

    Schönen Abend noch.

  3. sassie meint:

    Danke für die Info…habs noch per Google gefunden 🙂

Hinterlassen Sie einen Kommentar

Text-Formatierung: Sie können diese XHTML-Tags: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong> benutzen.

Comments links could be nofollow free.