ich verwende dieses template um externe links und pdf-dateien im neuen fenster zu öffnen.
wenn es jemandem hilft…
Code: Alles auswählen
<?php
if (!$REX['REDAXO'])
rex_register_extension('OUTPUT_FILTER', 'rex_external_links');
function rex_external_links($params) {
$content = $params['subject'];
// hier via regEx alle absoluten, externen Linkadressen heraussuchen
preg_match_all("/<a[^>]*(href\s*=\s*(\"|')(files)(\/).*?(\"|'))[^>]*>(.*?)<\/a>/ims",$content,$matches1);
preg_match_all("/<a[^>]*(href\s*=\s*(\"|')(http(s)?|ftp(s)?|telnet|irc)(?=:\/\/).*?(\"|'))[^>]*>(.*?)<\/a>/ims",$content,$matches2);
// doppelte links rausschmeissen
$matches1[1] = array_unique($matches1[1]);
$matches2[1] = array_unique($matches2[1]);
$matches = array_merge($matches1[1], $matches2[1]);
//print_r($matches);
// hier jetzt alle gefundenen durchgehen und erweitern
if ( isset ($matches[0]) and $matches[0] != '') {
for ($m = 0; $m < count ($matches); $m++) {
$external_link = "";
// hier jetzt anhängen: javascript für neues Fenster, class für Kennzeichnung
$external_link .= $matches[$m].' onclick="window.open(this.href); return false;" class="extern" rel="external"';
// alte Links mit den modifizierten ersetzen:
if(strpos($matches[$m],'onclick="window.open(this.href); return false;"') === false) {
$content = str_replace($matches[$m],$external_link,$content);
}
}
}
return $content;
}
?>