RedireX by rellek fr wBB 2.3

Getestet mit wBB 2.3 beta 2

Was macht dieser Hack?
Er fgt einen Redirektor an jeden Link, der den Forenserver verlsst. Dieser passt sich
sogar dem eingestellten Style an.
Wofr ist sowas gut?
-> Referrer verstecken
-> Definition fr "fremde Inhalte", nmlich alles, was ber den Redir gepuffert is :)

Welcher Server gehrt zum Forum?
Das wird im ACP eingestellt, und zwar benutzt der Hack die Foren-Pfade fr die "intern Beitragsverlinkung".
Der Redir an sich ist brigens auch aus dem wBB :)
Durch eine kleine Faulheit meinerseits solltest du im ACP -> Einstellungen -> Globale Einstellungen
noch die "URL zum Forum" zu den "Weiteren URLs zum Forum" eintragen, sonst wird diese URL
nicht bercksichtigt.

Dieser Hack macht ein ganz kleines Problem, welches bei normgerechter Anwendung gar nicht
auffllt: wenn zwischen [URL] und [/URL] etwas geschrieben wird, was KEIN Link ist, 
dann kommt es zum Parse-Error. Das rhrt daher, dass die Funktion parse_url(), die
einen String in die Bestandteile einer URL zerlegt, unbedingt einen String im folgenden
Muster erwartet:
protokoll://SERVER/WHATEVER/
Das bedeutet, dass FTP-, HTTP-, ED2k und was wei ich denn alles funktioniert, nur eben
"nicht"-URLs nicht.

(c) 2004 by rellek
Current Date: dec-14-2004
Modifikation des Hacks fr Eigenbedarf erlaubt, kopieren des Hacks nicht erlaubt.
Support nur an Ort und Stelle des Downloads, welcher vom Autoren angeboten wurde.
Und die Frage nach dem "Drfen wir den Hack *bei uns* anbieten -> NEIN !
Kein Support via Instant-Message, weil
a) Lizenzprfung gestaltet sich als schwierig *g*
b) Andere knnten dieselbe Frage haben

Keine Haftung fr evtl. Schden oder Fehlfunktionen!

INSTALL:
1.
Sprachvariable erstellen:
Kategorie: GLOBAL
Name: LANG_GLOBAL_REDIR_URL
Inhalt: Die angeforderte Seite wird aufgerufen. Bitte warten.

2.
redir.php hochladen ;)

3.
ffne ./acp/lib/class_parse.php
und suche (Zeile 52):
	var $useCaching = 0;
	
fge danach ein:
	var $boardurls = array();

suche (Zeile 373-384):
	function formaturl($url, $title = '', $maxwidth = 60, $width1 = 40, $width2 = -15) {
		if (!wbb_trim($title)) {
			$title = rehtmlconverter($url);
			if (!preg_match("/[a-z]:\/\//si", $url)) $url = "http://$url";
			if ($this->cuturls == 1 && wbb_strlen($title) > $maxwidth) $title = wbb_substr($title, 0, $width1)."...".wbb_substr($title, $width2);
			return "<a href=\"$url\" target=\"_blank\">".htmlconverter(str_replace("\\\"", "\"", $title))."</a>";
		}
		else {
			if (!preg_match("/[a-z]:\/\//si", $url)) $url = "http://$url";
			return "<a href=\"$url\" target=\"_blank\">".$title."</a>";
		}
	}
	
...ersetze dies durch:
	function formaturl($url, $title = '', $maxwidth = 60, $width1 = 40, $width2 = -15) {
		global $boardurls;
		$test = str_replace("http://", "", $boardurls);
		$test = preg_replace('!\/(.*)!', '', $test); 
		$this->boardurls = explode("\n",$test);
		if (!wbb_trim($title)) {
			$title = rehtmlconverter($url);
			if (!preg_match("/[a-z]:\/\//si", $url)) $url = "http://$url";
			$host = parse_url($url); 
			$host = $host['host']; 
			if ($this->cuturls == 1 && wbb_strlen($title) > $maxwidth) $title = wbb_substr($title, 0, $width1)."...".wbb_substr($title, $width2);
			if (in_array($host, $this->boardurls)) {
			return "<a href=\"$url\" target=\"_blank\">".htmlconverter(str_replace("\\\"", "\"", $title))."</a>";
			} else {
			return "<a href=\"http://anonym.to/?".urlencode($url)."\" target=\"_blank\">".htmlconverter(str_replace("\\\"", "\"", $title))."</a>";
			}
			
		}
		else {
			if (!preg_match("/[a-z]:\/\//si", $url)) $url = "http://$url";
			$host = parse_url($url); 
			$host = $host['host']; 
			if (in_array($host, $this->boardurls)) {
			return "<a href=\"$url\" target=\"_blank\">".$title."</a>";
			} else {
			return "<a href=\"http://anonym.to/?".urlencode($url)."\" target=\"_blank\">".$title."</a>";
			}
		}
	}
	
4.
Fhre folgende Abfrage aus:
DELETE FROM bbX_postcache;
(X durch Boardnummer ersetzen)
Warum? Durch den Boardcache werden die Beitrge als HTML gespeichert, also auch
ohne Redirektor. Wird der Cache geleert, wird die Software zum Neuparsen gezwungen,
und somit wird der Redir ganz normal angefgt :)

Feddisch :)