9 Commits
3.1.0 ... 3.5.4

13 changed files with 122 additions and 81 deletions

1
.gitignore vendored Normal file
View File

@ -0,0 +1 @@
/.project

View File

@ -189,7 +189,6 @@ class AeoHybrid extends \Hybrid
->limit(1)
->execute($this->Input->get('p'))
->fetchAssoc();
$pageDetails = $this->getPageDetails($objResult['id']);
$backLink = $this->generateFrontendUrl($objResult);
/**

View File

@ -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);
}
}
}

View File

@ -59,7 +59,7 @@ $GLOBALS['TL_DCA']['tl_content']['fields']['aeo_show_info'] = array
(
'label' => &$GLOBALS['TL_LANG']['tl_content']['aeo_show_info'],
'exclude' => true,
'filter' => true,
'filter' => false,
'search' => false,
'inputType' => 'checkbox',
'eval' => array('tl_class'=>'w50')
@ -69,8 +69,8 @@ $GLOBALS['TL_DCA']['tl_content']['fields']['aeo_info_text'] = array
(
'label' => &$GLOBALS['TL_LANG']['tl_content']['aeo_info_text'],
'exclude' => true,
'filter' => true,
'search' => true,
'filter' => false,
'search' => false,
'inputType' => 'textarea',
'eval' => array('rte'=>'tinyMCE', 'tl_class'=>'clr')
);

View File

@ -64,7 +64,7 @@ $GLOBALS['TL_DCA']['tl_module']['fields']['aeo_show_info'] = array
(
'label' => &$GLOBALS['TL_LANG']['tl_module']['aeo_show_info'],
'exclude' => true,
'filter' => true,
'filter' => false,
'search' => false,
'inputType' => 'checkbox',
'eval' => array('tl_class'=>'w50')
@ -74,8 +74,8 @@ $GLOBALS['TL_DCA']['tl_module']['fields']['aeo_info_text'] = array
(
'label' => &$GLOBALS['TL_LANG']['tl_module']['aeo_info_text'],
'exclude' => true,
'filter' => true,
'search' => true,
'filter' => false,
'search' => false,
'inputType' => 'textarea',
'eval' => array('rte'=>'tinyMCE', 'tl_class'=>'clr')
);
@ -85,7 +85,7 @@ $GLOBALS['TL_DCA']['tl_module']['fields']['aeo_disable'] = array
'label' => &$GLOBALS['TL_LANG']['tl_module']['aeo_disable'],
'default' => '',
'exclude' => true,
'filter' => true,
'filter' => false,
'search' => false,
'inputType' => 'checkbox',
'eval' => array('tl_class'=>'long')

View File

@ -144,7 +144,7 @@ class tl_settings_aeo extends \Backend
}
if (in_array('i18nl10n', $this->Config->getActiveModules())) {
$languages = deserialize($GLOBALS['TL_CONFIG']['i18nl10n_languages']);
$languages = \I18nl10n\Classes\I18nl10n::getInstance()->getAvailableLanguages(true, true);
foreach ($languages as $language) {
array_push($arrLanguages, strtolower($language));
}

View File

@ -27,8 +27,8 @@ function doWithMootols() {
function doWithJQuery() {
jQuery('a[name^="aeo-obfuscated-"]').each(function(i, el) {
if (!$(el).hasClass('aeo-with-title')) {
$(el).attr('title',tooltip_js_on);
if (!jQuery(el).hasClass('aeo-with-title')) {
jQuery(el).attr('title',tooltip_js_on);
}
aeo_prepare_link(el);
}

27
public/js/aeo.min.js vendored Normal file
View File

@ -0,0 +1,27 @@
var map;onReadyAeo(function(){aeo_dom_ready();});function aeo_dom_ready(){if(window.MooTools){doWithMootols();}else if(window.jQuery){doWithJQuery();}}
function doWithMootols(){$$('a').filter(function(el){return el.getAttribute('name')!=null&&el.getAttribute('name').match('^aeo-obfuscated-')=='aeo-obfuscated-'}).each(function(el){if(!el.hasClass('aeo-with-title')){el.setAttribute('title',tooltip_js_on);}
aeo_prepare_link(el);});}
function doWithJQuery(){jQuery('a[name^="aeo-obfuscated-"]').each(function(i,el){if(!jQuery(el).hasClass('aeo-with-title')){jQuery(el).attr('title',tooltip_js_on);}
aeo_prepare_link(el);});}
function aeo_prepare_link(el){el.setAttribute('href','javascript:aeo_link_decode(\''+el.getAttribute('href')+'\');');}
function rot13init(){this.map=new Array();var s="abcdefghijklmnopqrstuvwxyz";for(var i=0;i<s.length;i++)
this.map[s.charAt(i)]=s.charAt((i+13)%26);for(var i=0;i<s.length;i++)
this.map[s.charAt(i).toUpperCase()]=s.charAt((i+13)%26).toUpperCase();}
function str_rot13(a){if(this.map===undefined){rot13init();}
var s="";for(var i=0;i<a.length;i++){var b=a.charAt(i);s+=(b>='A'&&b<='Z'||b>='a'&&b<='z'?this.map[b]:b);}
return s;}
function base64_decode(data){var b64="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=";var o1,o2,o3,h1,h2,h3,h4,bits,i=0,ac=0,dec="",tmp_arr=[];if(!data){return data;}
data+='';do{h1=b64.indexOf(data.charAt(i++));h2=b64.indexOf(data.charAt(i++));h3=b64.indexOf(data.charAt(i++));h4=b64.indexOf(data.charAt(i++));bits=h1<<18|h2<<12|h3<<6|h4;o1=bits>>16&0xff;o2=bits>>8&0xff;o3=bits&0xff;if(h3==64){tmp_arr[ac++]=String.fromCharCode(o1);}else if(h4==64){tmp_arr[ac++]=String.fromCharCode(o1,o2);}else{tmp_arr[ac++]=String.fromCharCode(o1,o2,o3);}}while(i<data.length);dec=tmp_arr.join('');dec=this.utf8_decode(dec);return dec;}
function utf8_decode(str_data){var tmp_arr=[],i=0,ac=0,c1=0,c2=0,c3=0;str_data+='';while(i<str_data.length){c1=str_data.charCodeAt(i);if(c1<128){tmp_arr[ac++]=String.fromCharCode(c1);i++;}else if(c1>191&&c1<224){c2=str_data.charCodeAt(i+1);tmp_arr[ac++]=String.fromCharCode(((c1&31)<<6)|(c2&63));i+=2;}else{c2=str_data.charCodeAt(i+1);c3=str_data.charCodeAt(i+2);tmp_arr[ac++]=String.fromCharCode(((c1&15)<<12)|((c2&63)<<6)|(c3&63));i+=3;}}
return tmp_arr.join('');}
function strpos(haystack,needle,offset){var i=(haystack+'').indexOf(needle,(offset||0));return i===-1?false:i;}
function html_entity_decode(string,quote_style){var hash_map={},symbol='',tmp_str='',entity='';tmp_str=string.toString();if(false===(hash_map=this.get_html_translation_table('HTML_ENTITIES',quote_style))){return false;}
delete(hash_map['&']);hash_map['&']='&amp;';for(symbol in hash_map){entity=hash_map[symbol];tmp_str=tmp_str.split(entity).join(symbol);}
tmp_str=tmp_str.split('&#039;').join("'");return tmp_str;}
function get_html_translation_table(table,quote_style){var entities={},hash_map={},decimal=null;var constMappingTable={},constMappingQuoteStyle={};var useTable={},useQuoteStyle={};constMappingTable[0]='HTML_SPECIALCHARS';constMappingTable[1]='HTML_ENTITIES';constMappingQuoteStyle[0]='ENT_NOQUOTES';constMappingQuoteStyle[2]='ENT_COMPAT';constMappingQuoteStyle[3]='ENT_QUOTES';useTable=!isNaN(table)?constMappingTable[table]:table?table.toUpperCase():'HTML_SPECIALCHARS';useQuoteStyle=!isNaN(quote_style)?constMappingQuoteStyle[quote_style]:quote_style?quote_style.toUpperCase():'ENT_COMPAT';if(useTable!=='HTML_SPECIALCHARS'&&useTable!=='HTML_ENTITIES'){throw new Error("Table: "+useTable+' not supported');}
entities['38']='&amp;';if(useTable==='HTML_ENTITIES'){entities['160']='&nbsp;';entities['161']='&iexcl;';entities['162']='&cent;';entities['163']='&pound;';entities['164']='&curren;';entities['165']='&yen;';entities['166']='&brvbar;';entities['167']='&sect;';entities['168']='&uml;';entities['169']='&copy;';entities['170']='&ordf;';entities['171']='&laquo;';entities['172']='&not;';entities['173']='&shy;';entities['174']='&reg;';entities['175']='&macr;';entities['176']='&deg;';entities['177']='&plusmn;';entities['178']='&sup2;';entities['179']='&sup3;';entities['180']='&acute;';entities['181']='&micro;';entities['182']='&para;';entities['183']='&middot;';entities['184']='&cedil;';entities['185']='&sup1;';entities['186']='&ordm;';entities['187']='&raquo;';entities['188']='&frac14;';entities['189']='&frac12;';entities['190']='&frac34;';entities['191']='&iquest;';entities['192']='&Agrave;';entities['193']='&Aacute;';entities['194']='&Acirc;';entities['195']='&Atilde;';entities['196']='&Auml;';entities['197']='&Aring;';entities['198']='&AElig;';entities['199']='&Ccedil;';entities['200']='&Egrave;';entities['201']='&Eacute;';entities['202']='&Ecirc;';entities['203']='&Euml;';entities['204']='&Igrave;';entities['205']='&Iacute;';entities['206']='&Icirc;';entities['207']='&Iuml;';entities['208']='&ETH;';entities['209']='&Ntilde;';entities['210']='&Ograve;';entities['211']='&Oacute;';entities['212']='&Ocirc;';entities['213']='&Otilde;';entities['214']='&Ouml;';entities['215']='&times;';entities['216']='&Oslash;';entities['217']='&Ugrave;';entities['218']='&Uacute;';entities['219']='&Ucirc;';entities['220']='&Uuml;';entities['221']='&Yacute;';entities['222']='&THORN;';entities['223']='&szlig;';entities['224']='&agrave;';entities['225']='&aacute;';entities['226']='&acirc;';entities['227']='&atilde;';entities['228']='&auml;';entities['229']='&aring;';entities['230']='&aelig;';entities['231']='&ccedil;';entities['232']='&egrave;';entities['233']='&eacute;';entities['234']='&ecirc;';entities['235']='&euml;';entities['236']='&igrave;';entities['237']='&iacute;';entities['238']='&icirc;';entities['239']='&iuml;';entities['240']='&eth;';entities['241']='&ntilde;';entities['242']='&ograve;';entities['243']='&oacute;';entities['244']='&ocirc;';entities['245']='&otilde;';entities['246']='&ouml;';entities['247']='&divide;';entities['248']='&oslash;';entities['249']='&ugrave;';entities['250']='&uacute;';entities['251']='&ucirc;';entities['252']='&uuml;';entities['253']='&yacute;';entities['254']='&thorn;';entities['255']='&yuml;';}
if(useQuoteStyle!=='ENT_NOQUOTES'){entities['34']='&quot;';}
if(useQuoteStyle==='ENT_QUOTES'){entities['39']='&#39;';}
entities['60']='&lt;';entities['62']='&gt;';for(decimal in entities){if(entities.hasOwnProperty(decimal)){hash_map[String.fromCharCode(decimal)]=entities[decimal];}}
return hash_map;}

15
public/js/onReadyAeo.min.js vendored Normal file
View File

@ -0,0 +1,15 @@
var readyListAeo=[];function onReadyAeo(handler){function executeHandlers(){for(var i=0;i<readyListAeo.length;i++){readyListAeo[i]();}}
if(!readyListAeo.length){bindReady(executeHandlers);}
readyListAeo.push(handler);}
function bindReady(handler){var called=false;function ready(){if(called)
return
called=true;handler();}
if(document.addEventListener){document.addEventListener("DOMContentLoaded",ready,false);}else if(document.attachEvent){try{var isFrame=window.frameElement!=null;}catch(e){}
if(document.documentElement.doScroll&&!isFrame){function tryScroll(){if(called)
return;try{document.documentElement.doScroll("left");ready();}catch(e){setTimeout(tryScroll,10);}}
tryScroll();}
document.attachEvent("onreadystatechange",function(){if(document.readyState==="complete"){ready();}});}
if(window.addEventListener)
window.addEventListener('load',ready,false);else if(window.attachEvent)
window.attachEvent('onload',ready);else{var fn=window.onload;window.onload=function(){fn&&fn();ready();};}}

View File

@ -1,23 +1,23 @@
function aeo_link_decode(href) {
var address = href.replace(/.*<?php echo ((strstr($this->folder, '\\\\') ? stripslashes($this->folder) : $this->folder));?>\/aeo\/([a-z0-9._%-]+)\+([a-z0-9._%-]+)\+([a-z.]+)\+[0-9]+\+{0,1}([^\.]*)\..*/i, '$1' + '@' + '$2' + '.' + '$3' + '|' + '$4');
var i = strpos(address, '|', 0);
var params = '';
if (i) {
var params = address.substr(i + 1);
address = address.substr(0, i);
if (params.length > 0) {
params = base64_decode(params);
}
}
address = rot13 ? str_rot13(address) : address;
if (params.length > 0) {
address = address + html_entity_decode(params);
}
window.location.replace('mailto:' + address);
}
var rot13 = <?php echo ($this->rot13 ? 'true' : 'false');?>;
var tooltip_js_on = '<?php echo (stripslashes($this->tooltip_js_on));?>';
function aeo_link_decode(href) {
var address = href.replace(/.*<?php echo ((strstr($this->folder, '\\\\') ? stripslashes($this->folder) : $this->folder));?>\/aeo\/([a-z0-9._%-]+)\+([a-z0-9._%-]+)\+([a-z.]+)\+[0-9]+\+{0,1}([^\.]*)\..*/i, '$1' + '@' + '$2' + '.' + '$3' + '|' + '$4');
var i = strpos(address, '|', 0);
var params = '';
if (i) {
var params = address.substr(i + 1);
address = address.substr(0, i);
if (params.length > 0) {
params = base64_decode(params);
}
}
address = rot13 ? str_rot13(address) : address;
if (params.length > 0) {
address = address + html_entity_decode(params);
}
window.location.replace('mailto:' + address);
}
var rot13 = <?php echo ($this->rot13 ? 'true' : 'false');?>;
var tooltip_js_on = '<?php echo (stripslashes($this->tooltip_js_on));?>';

View File

@ -34,9 +34,9 @@ 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_MAILTO_LINK', '/(?P<all>\<a(?P<before>[^>]+)href\=["\']mailto\:(?P<email>\w[-._\w]*\w)\@(?P<domain>\w[-._\w]*\w)\.(?P<suffix>\w{2,18})(?P<params>\?{0,1}[\w=&; ]*)["\'](?P<after>[^>]*)\>).*?\<\/a\>/ism');
//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<all>\<a(?P<before>[^>]+)href\=["\']mailto\:(?P<email>\w[-._\w]*\w)\@(?P<domain>\w[-._\w]*\w)\.(?P<suffix>\w{2,18})(?P<params>\?{0,1}[^"^\']*)["\'](?P<after>[^>]*)\>).*?\<\/a\>/ism');
class AeoFrontendUtil extends \Frontend {
@ -104,7 +104,7 @@ class AeoFrontendUtil extends \Frontend {
}
if (in_array('i18nl10n', $this->Config->getActiveModules())) {
$this->AeoUtil->fixupCurrentLanguage();
if ($GLOBALS['TL_CONFIG']['i18nl10n_addLanguageToUrl']) {
if ($GLOBALS['TL_CONFIG']['i18nl10n_urlParam'] == 'url') {
$folder .= $GLOBALS['TL_LANGUAGE'] . '/';
}
$folder .= $this->virtual_path.'/'.$GLOBALS['TL_LANGUAGE'];
@ -122,7 +122,7 @@ class AeoFrontendUtil extends \Frontend {
$urlSuffix = '';
if (strlen($GLOBALS['TL_CONFIG']['urlSuffix']) > 0) {
if (in_array('i18nl10n', $this->Config->getActiveModules()) &&
$GLOBALS['TL_CONFIG']['i18nl10n_alias_suffix']) {
$GLOBALS['TL_CONFIG']['i18nl10n_urlParam'] == 'alias') {
$this->AeoUtil->fixupCurrentLanguage();
$urlSuffix .= '.'.$GLOBALS['TL_LANGUAGE'];
}
@ -185,10 +185,10 @@ class AeoFrontendUtil extends \Frontend {
public function obfuscateEmails($strContent, $strTemplate)
{
global $objPage;
$objPage = $this->getPageDetails($objPage->id);
$redirectPageId = $this->AeoUtil->getRedirectPageForLanguage(deserialize($this->jump_to_no_js), $objPage->rootLanguage);
$objPage2 = $this->getPageDetails($objPage->id);
$redirectPageId = $this->AeoUtil->getRedirectPageForLanguage(deserialize($this->jump_to_no_js), $objPage2->rootLanguage);
if (TL_MODE == 'FE' && $this->replace_standard_obfuscation && $objPage->id != $redirectPageId) {
if (TL_MODE == 'FE' && $this->replace_standard_obfuscation && $objPage2->id != $redirectPageId) {
$strContent = $this->aeoReplaceInsertTags($strContent);
$this->import('String');
@ -221,7 +221,7 @@ class AeoFrontendUtil extends \Frontend {
}
}
$strContent = $this->aeo->prepareOutput($strContent, $objPage->id);
$strContent = $this->aeo->prepareOutput($strContent, $objPage2->id);
}
return $strContent;
@ -229,20 +229,15 @@ class AeoFrontendUtil extends \Frontend {
private function includeStaticJs() {
global $objPage;
$objPage = $this->getPageDetails($objPage);
$objPage2 = $this->getPageDetails($objPage);
$objLayout = $this->Database->prepare("SELECT * FROM tl_layout WHERE id=?")
->limit(1)
->execute($objPage->layout)
->execute($objPage2->layout)
->fetchAssoc();
// if ($objLayout['addMooTools']) {
// $GLOBALS['TL_JAVASCRIPT'][] = 'system/modules/zaeo/public/js/aeo-mootools.js';
// } else if ($objLayout['addJQuery']) {
// $GLOBALS['TL_JAVASCRIPT'][] = 'system/modules/zaeo/public/js/aeo-jquery.js';
// }
$GLOBALS['TL_JAVASCRIPT'][] = 'system/modules/zaeo/public/js/onReadyAeo.js';
$GLOBALS['TL_JAVASCRIPT'][] = 'system/modules/zaeo/public/js/aeo.js';
$GLOBALS['TL_JAVASCRIPT'][] = 'system/modules/zaeo/public/js/onReadyAeo.min.js|static';
$GLOBALS['TL_JAVASCRIPT'][] = 'system/modules/zaeo/public/js/aeo.min.js|static';
}
/**
@ -361,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]);
@ -509,9 +504,11 @@ 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; }';
$css .= 'span.obfuscated { display: none; white-space: nowrap;}';
break;
}
$css .= "\n</style>";
@ -556,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 ? '' : '&#64;');
return $email.'...'.($includeCss ? '' : '&#64;').$arrEmail[1];
}
function rtl ($email, $includeCss) {
@ -571,25 +569,26 @@ class Aeo extends \System {
if ($includeCss) {
return '<span style="unicode-bidi: bidi-override; direction: rtl;">'.$strEmail.'</span>';
}
return '<span class="obfuscated">'.strrev($email).'</span>';
return '<span class="obfuscated">'.$strEmail.'</span>';
}
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.'<span style="display: none;">null</span>'.$email2;
return $email1.'<span style="display: none; white-space: nowrap;">null</span>'.$email2.'&#64;'.$arrEmail[1];
}
return $email1.'<span class="obfuscated">null</span>'.$email2;
return $email1.'<span class="obfuscated">null</span>'.$email2.'&#64;'.$arrEmail[1];
}
function getNoAeoAreas($output) {

View File

@ -83,7 +83,7 @@ class AeoRedirectUtil extends \Frontend {
}
$i18nl10nLanguage = '';
if (in_array('i18nl10n', $this->Config->getActiveModules())) {
if ($GLOBALS['TL_CONFIG']['i18nl10n_addLanguageToUrl']) {
if ($GLOBALS['TL_CONFIG']['i18nl10n_urlParam'] == 'url') {
$i18nl10nLanguage = $arrFragments[count($arrFragments) - 1];
}
}
@ -128,7 +128,7 @@ class AeoRedirectUtil extends \Frontend {
$strObfuscatedValues = $arrFragments[3];
if (in_array('i18nl10n', $this->Config->getActiveModules()) &&
$GLOBALS['TL_CONFIG']['i18nl10n_alias_suffix']) {
$GLOBALS['TL_CONFIG']['i18nl10n_urlParam'] == 'alias') {
$this->AeoUtil->fixupCurrentLanguage();
$strObfuscatedValues = str_replace('.'.$GLOBALS['TL_LANGUAGE'], '', $strObfuscatedValues);
}
@ -160,7 +160,7 @@ class AeoRedirectUtil extends \Frontend {
}
if (in_array('i18nl10n', $this->Config->getActiveModules()) &&
$GLOBALS['TL_CONFIG']['i18nl10n_addLanguageToUrl'] &&
$GLOBALS['TL_CONFIG']['i18nl10n_urlParam'] == 'url' &&
strlen($i18nl10nLanguage)) {
$arrFragments[$i++] = 'language';
$arrFragments[$i++] = $i18nl10nLanguage;
@ -176,12 +176,12 @@ class AeoRedirectUtil extends \Frontend {
$url = $arrValue['aeo_redirecturl'];
} else {
$objPage = \PageModel::findPublishedByIdOrAlias($arrValue['aeo_redirecturl']);
$objPage = $this->getPageDetails($objPage);
$url = $this->generateFrontendUrl($objPage->row());
$objPage2 = $this->getPageDetails($objPage);
$url = $this->generateFrontendUrl($objPage2->row());
$url = $this->removeUrlPrefix($url);
if ($GLOBALS['TL_CONFIG']['addLanguageToUrl'] ||
(in_array('i18nl10n', $this->Config->getActiveModules()) &&
$GLOBALS['TL_CONFIG']['i18nl10n_addLanguageToUrl'])) {
$GLOBALS['TL_CONFIG']['i18nl10n_urlParam'] == 'url')) {
$arrUrlFragments = explode('/', $url);
$url = $arrUrlFragments[1];
}
@ -218,7 +218,7 @@ class AeoRedirectUtil extends \Frontend {
}
}
if (in_array('i18nl10n', $this->Config->getActiveModules()) &&
$GLOBALS['TL_CONFIG']['i18nl10n_alias_suffix']) {
$GLOBALS['TL_CONFIG']['i18nl10n_urlParam'] == 'alias') {
$this->AeoUtil->fixupCurrentLanguage();
$strUrl = str_replace('.'.$GLOBALS['TL_LANGUAGE'], '', $strUrl);
}

View File

@ -97,7 +97,7 @@ class AeoUtil extends \Controller {
if(
($selected_language) &&
in_array($selected_language,
deserialize($GLOBALS['TL_CONFIG']['i18nl10n_languages']))
\I18nl10n\Classes\I18nl10n::getInstance()->getAvailableLanguages(true, true))
) {
$_SESSION['TL_LANGUAGE'] = $GLOBALS['TL_LANGUAGE'] = $selected_language;
} elseif(isset($_SESSION['TL_LANGUAGE'])) {