From 5602f44935292aa31e5cdc655ce473212c45d611 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Carsten=20G=C3=B6tzinger?= Date: Wed, 10 Jun 2015 10:57:43 +0200 Subject: [PATCH] =?UTF-8?q?Kompatibilit=C3=A4t=20mit=20Contao=203.5.0=20he?= =?UTF-8?q?rgestellt?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- PageRoot_Aeo.php | 4 ++-- util/AeoFrontendUtil.php | 44 ++++++++++++++++++++++------------------ 2 files changed, 26 insertions(+), 22 deletions(-) diff --git a/PageRoot_Aeo.php b/PageRoot_Aeo.php index 2345dc2..46812ce 100644 --- a/PageRoot_Aeo.php +++ b/PageRoot_Aeo.php @@ -52,12 +52,12 @@ class PageRoot_Aeo extends \PageRoot { * @param boolean * @return integer */ - public function generate($pageId, $blnReturn=false) { + public function generate($pageId, $blnReturn=false, $blnPreferAlias=false) { $id = $this->AeoRedirectUtil->redirectFromRootPage(); if ($id !== FALSE) { return $id; } else { - return parent::generate($pageId, $blnReturn); + return parent::generate($pageId, $blnReturn, $blnPreferAlias); } } } diff --git a/util/AeoFrontendUtil.php b/util/AeoFrontendUtil.php index 91b1bc4..08aff3d 100644 --- a/util/AeoFrontendUtil.php +++ b/util/AeoFrontendUtil.php @@ -34,8 +34,8 @@ namespace cgoIT\aeo; * Class AeoFrontendUtil */ -define('REGEXP_EMAIL_PREFIX', '(\w[-._\w]*\w)\@'); -define('REGEXP_EMAIL', '\w[-._\w]*\w@\w[-._\w]*\w\.\w{2,18}'); +//define('REGEXP_EMAIL_PREFIX', '(\w[-._\w]*\w)\@'); +define('REGEXP_EMAIL', '\w[-._\w]*\w@[\d\w][-._\w]*\w\.\w{2,18}'); define('REGEXP_MAILTO_LINK', '/(?P\[^>]+)href\=["\']mailto\:(?P\w[-._\w]*\w)\@(?P\w[-._\w]*\w)\.(?P\w{2,18})(?P\?{0,1}[\w=&; ]*)["\'](?P[^>]*)\>).*?\<\/a\>/ism'); class AeoFrontendUtil extends \Frontend { @@ -356,7 +356,7 @@ class Aeo extends \System { // jetzt alle nicht verlinkten eMail-Adressen verschleiern. $arrNoAeoAreas = $this->getNoAeoAreas($output); $intOffset = 0; - while(preg_match('/'.REGEXP_EMAIL_PREFIX.'/esm', $output, $arrNonLinkedeMail, PREG_OFFSET_CAPTURE, $intOffset)) { + while(preg_match('/'.REGEXP_EMAIL.'/esm', $output, $arrNonLinkedeMail, PREG_OFFSET_CAPTURE, $intOffset)) { if ($this->isEnabled($arrNonLinkedeMail[0][1], $arrNoAeoAreas)) { $output = $this->str_replace($arrNonLinkedeMail[0][0], $this->obfuscateWithMethod($arrNonLinkedeMail[0][0], $this->method, false, $arrNonLinkedeMail[0][1], $intOffset), $output, $arrNonLinkedeMail[0][1]); @@ -504,6 +504,8 @@ class Aeo extends \System { switch ($this->method) { case 'rtl': $css .= '.obfuscated { unicode-bidi: bidi-override; direction: rtl; }'; + // Hack für FireFox + //$css .= '*>.obfuscated { unicode-bidi: -moz-isolate-override !important; }'; break; case 'nullspan': $css .= 'span.obfuscated { display: none; }'; @@ -551,14 +553,15 @@ class Aeo extends \System { } function shorten ($email, $includeCss) { - if (strlen ($email) <= 4) { - $email = substr ($email, 0, 1); - } else if (strlen ($email) <= 6) { - $email = substr ($email, 0, 3); + $arrEmail = explode('@', $email); + if (strlen ($arrEmail[0]) <= 4) { + $email = substr ($arrEmail[0], 0, 1); + } else if (strlen ($arrEmail[0]) <= 6) { + $email = substr ($arrEmail[0], 0, 3); } else { - $email = substr ($email, 0, 4); + $email = substr ($arrEmail[0], 0, 4); } - return $email.'...'.($includeCss ? '' : '@'); + return $email.'...'.($includeCss ? '' : '@').$arrEmail[1]; } function rtl ($email, $includeCss) { @@ -566,25 +569,26 @@ class Aeo extends \System { if ($includeCss) { return ''.$strEmail.''; } - return ''.strrev($email).''; + return ''.$strEmail.''; } function nullspan ($email, $includeCss) { - if (strlen ($email) <= 4) { - $email1 = substr ($email, 0, 1); - $email2 = substr ($email, 1); - } else if (strlen ($email) <= 6) { - $email1 = substr ($email, 0, 3); - $email2 = substr ($email, 3); + $arrEmail = explode('@', $email); + if (strlen ($arrEmail[0]) <= 4) { + $email1 = substr ($arrEmail[0], 0, 1); + $email2 = substr ($arrEmail[0], 1); + } else if (strlen ($arrEmail[0]) <= 6) { + $email1 = substr ($arrEmail[0], 0, 3); + $email2 = substr ($arrEmail[0], 3); } else { - $email1 = substr ($email, 0, 4); - $email2 = substr ($email, 4); + $email1 = substr ($arrEmail[0], 0, 4); + $email2 = substr ($arrEmail[0], 4); } if ($includeCss) { - return $email1.'null'.$email2; + return $email1.'null'.$email2.'@'.$arrEmail[1]; } - return $email1.'null'.$email2; + return $email1.'null'.$email2.'@'.$arrEmail[1]; } function getNoAeoAreas($output) {