6 Commits
3.5.1 ... 3.5.5

13 changed files with 105 additions and 99 deletions

1
.gitignore vendored Normal file
View File

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

View File

@ -189,13 +189,12 @@ class AeoHybrid extends \Hybrid
->limit(1) ->limit(1)
->execute($this->Input->get('p')) ->execute($this->Input->get('p'))
->fetchAssoc(); ->fetchAssoc();
$pageDetails = $this->getPageDetails($objResult['id']);
$backLink = $this->generateFrontendUrl($objResult); $backLink = $this->generateFrontendUrl($objResult);
/** /**
* Template variables * Template variables
*/ */
$this->import('String'); $this->import('StringUtil');
$this->Template->action = $this->getIndexFreeRequest(); $this->Template->action = $this->getIndexFreeRequest();
$this->Template->n = $this->Input->get('n'); $this->Template->n = $this->Input->get('n');
$this->Template->d = $this->Input->get('d'); $this->Template->d = $this->Input->get('d');
@ -221,11 +220,11 @@ class AeoHybrid extends \Hybrid
} }
if ($this->Input->post('p')) { if ($this->Input->post('p')) {
$email .= $this->String->decodeEntities(base64_decode($this->String->decodeEntities($this->Input->post('p')))); $email .= $this->StringUtil->decodeEntities(base64_decode($this->StringUtil->decodeEntities($this->Input->post('p'))));
} }
$this->Template->isHuman = true; $this->Template->isHuman = true;
$this->Template->success = sprintf($GLOBALS['TL_LANG']['aeo']['success'], $this->String->encodeEmail($email), $this->String->encodeEmail(preg_replace('/\?.*$/', '', $email))); $this->Template->success = sprintf($GLOBALS['TL_LANG']['aeo']['success'], $this->StringUtil->encodeEmail($email), $this->StringUtil->encodeEmail(preg_replace('/\?.*$/', '', $email)));
if (!headers_sent()) { if (!headers_sent()) {
header('HTTP/1.1 303 See Other'); header('HTTP/1.1 303 See Other');

View File

@ -2,3 +2,4 @@
Contao Erweiterung: Advanced eMail Obfuscation Contao Erweiterung: Advanced eMail Obfuscation

View File

@ -28,6 +28,11 @@
* @filesource * @filesource
*/ */
// Backwards compatibility for Contao < 3.5.1
if (!class_exists('StringUtil') && class_exists('String')) {
class_alias('String', 'StringUtil');
}
/** /**
* Hooks * Hooks
*/ */

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'], 'label' => &$GLOBALS['TL_LANG']['tl_content']['aeo_show_info'],
'exclude' => true, 'exclude' => true,
'filter' => true, 'filter' => false,
'search' => false, 'search' => false,
'inputType' => 'checkbox', 'inputType' => 'checkbox',
'eval' => array('tl_class'=>'w50') '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'], 'label' => &$GLOBALS['TL_LANG']['tl_content']['aeo_info_text'],
'exclude' => true, 'exclude' => true,
'filter' => true, 'filter' => false,
'search' => true, 'search' => false,
'inputType' => 'textarea', 'inputType' => 'textarea',
'eval' => array('rte'=>'tinyMCE', 'tl_class'=>'clr') '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'], 'label' => &$GLOBALS['TL_LANG']['tl_module']['aeo_show_info'],
'exclude' => true, 'exclude' => true,
'filter' => true, 'filter' => false,
'search' => false, 'search' => false,
'inputType' => 'checkbox', 'inputType' => 'checkbox',
'eval' => array('tl_class'=>'w50') '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'], 'label' => &$GLOBALS['TL_LANG']['tl_module']['aeo_info_text'],
'exclude' => true, 'exclude' => true,
'filter' => true, 'filter' => false,
'search' => true, 'search' => false,
'inputType' => 'textarea', 'inputType' => 'textarea',
'eval' => array('rte'=>'tinyMCE', 'tl_class'=>'clr') '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'], 'label' => &$GLOBALS['TL_LANG']['tl_module']['aeo_disable'],
'default' => '', 'default' => '',
'exclude' => true, 'exclude' => true,
'filter' => true, 'filter' => false,
'search' => false, 'search' => false,
'inputType' => 'checkbox', 'inputType' => 'checkbox',
'eval' => array('tl_class'=>'long') 'eval' => array('tl_class'=>'long')

View File

@ -144,7 +144,7 @@ class tl_settings_aeo extends \Backend
} }
if (in_array('i18nl10n', $this->Config->getActiveModules())) { 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) { foreach ($languages as $language) {
array_push($arrLanguages, strtolower($language)); array_push($arrLanguages, strtolower($language));
} }

View File

@ -104,7 +104,7 @@ class AeoFrontendUtil extends \Frontend {
} }
if (in_array('i18nl10n', $this->Config->getActiveModules())) { if (in_array('i18nl10n', $this->Config->getActiveModules())) {
$this->AeoUtil->fixupCurrentLanguage(); $this->AeoUtil->fixupCurrentLanguage();
if ($GLOBALS['TL_CONFIG']['i18nl10n_addLanguageToUrl']) { if ($GLOBALS['TL_CONFIG']['i18nl10n_urlParam'] == 'url') {
$folder .= $GLOBALS['TL_LANGUAGE'] . '/'; $folder .= $GLOBALS['TL_LANGUAGE'] . '/';
} }
$folder .= $this->virtual_path.'/'.$GLOBALS['TL_LANGUAGE']; $folder .= $this->virtual_path.'/'.$GLOBALS['TL_LANGUAGE'];
@ -122,7 +122,7 @@ class AeoFrontendUtil extends \Frontend {
$urlSuffix = ''; $urlSuffix = '';
if (strlen($GLOBALS['TL_CONFIG']['urlSuffix']) > 0) { if (strlen($GLOBALS['TL_CONFIG']['urlSuffix']) > 0) {
if (in_array('i18nl10n', $this->Config->getActiveModules()) && if (in_array('i18nl10n', $this->Config->getActiveModules()) &&
$GLOBALS['TL_CONFIG']['i18nl10n_alias_suffix']) { $GLOBALS['TL_CONFIG']['i18nl10n_urlParam'] == 'alias') {
$this->AeoUtil->fixupCurrentLanguage(); $this->AeoUtil->fixupCurrentLanguage();
$urlSuffix .= '.'.$GLOBALS['TL_LANGUAGE']; $urlSuffix .= '.'.$GLOBALS['TL_LANGUAGE'];
} }
@ -185,20 +185,20 @@ class AeoFrontendUtil extends \Frontend {
public function obfuscateEmails($strContent, $strTemplate) public function obfuscateEmails($strContent, $strTemplate)
{ {
global $objPage; global $objPage;
$objPage = $this->getPageDetails($objPage->id); $objPage2 = $this->getPageDetails($objPage->id);
$redirectPageId = $this->AeoUtil->getRedirectPageForLanguage(deserialize($this->jump_to_no_js), $objPage->rootLanguage); $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); $strContent = $this->aeoReplaceInsertTags($strContent);
$this->import('String'); $this->import('StringUtil');
// erst alle Mailadresse decodieren (Verschleierung von Contao rückgänging machen) // erst alle Mailadresse decodieren (Verschleierung von Contao rückgänging machen)
$intOffset = 0; $intOffset = 0;
$arrNoAeoAreas = $this->aeo->getNoAeoAreas($strContent); $arrNoAeoAreas = $this->aeo->getNoAeoAreas($strContent);
while (preg_match('/(&#[x]?\w+;)+/i', $strContent, $arrEmail, PREG_OFFSET_CAPTURE, $intOffset)) { while (preg_match('/(&#[x]?\w+;)+/i', $strContent, $arrEmail, PREG_OFFSET_CAPTURE, $intOffset)) {
if ($this->aeo->isEnabled($arrEmail[0][1], $arrNoAeoAreas)) { if ($this->aeo->isEnabled($arrEmail[0][1], $arrNoAeoAreas)) {
$strDecodedMail = $this->String->decodeEntities($arrEmail[0][0]); $strDecodedMail = $this->StringUtil->decodeEntities($arrEmail[0][0]);
if (preg_match('/mailto:'.REGEXP_EMAIL.'/i', $strDecodedMail)) { if (preg_match('/mailto:'.REGEXP_EMAIL.'/i', $strDecodedMail)) {
// erst alle verlinkten eMail-Adressen entschleiern // erst alle verlinkten eMail-Adressen entschleiern
$strContent = $this->aeo->str_replace($arrEmail[0][0], $strDecodedMail, $strContent, $arrEmail[0][1]); $strContent = $this->aeo->str_replace($arrEmail[0][0], $strDecodedMail, $strContent, $arrEmail[0][1]);
@ -221,7 +221,7 @@ class AeoFrontendUtil extends \Frontend {
} }
} }
$strContent = $this->aeo->prepareOutput($strContent, $objPage->id); $strContent = $this->aeo->prepareOutput($strContent, $objPage2->id);
} }
return $strContent; return $strContent;
@ -229,11 +229,11 @@ class AeoFrontendUtil extends \Frontend {
private function includeStaticJs() { private function includeStaticJs() {
global $objPage; global $objPage;
$objPage = $this->getPageDetails($objPage); $objPage2 = $this->getPageDetails($objPage);
$objLayout = $this->Database->prepare("SELECT * FROM tl_layout WHERE id=?") $objLayout = $this->Database->prepare("SELECT * FROM tl_layout WHERE id=?")
->limit(1) ->limit(1)
->execute($objPage->layout) ->execute($objPage2->layout)
->fetchAssoc(); ->fetchAssoc();
$GLOBALS['TL_JAVASCRIPT'][] = 'system/modules/zaeo/public/js/onReadyAeo.min.js|static'; $GLOBALS['TL_JAVASCRIPT'][] = 'system/modules/zaeo/public/js/onReadyAeo.min.js|static';
@ -281,17 +281,17 @@ class AeoFrontendUtil extends \Frontend {
continue; continue;
} }
$this->import('String'); $this->import('StringUtil');
if ($GLOBALS['TL_CONFIG']['aeo_replace_standard_obfuscation'] === true && if ($GLOBALS['TL_CONFIG']['aeo_replace_standard_obfuscation'] === true &&
$this->aeo->isEnabled($position, $arrNoAeoAreas)) { $this->aeo->isEnabled($position, $arrNoAeoAreas)) {
// AEO aktiv und Bereich nicht auf deaktiviert gestellt // AEO aktiv und Bereich nicht auf deaktiviert gestellt
$strValue = $this->aeo->obfuscateSingle($this->String->decodeEntities($arrTag[1]), $objPage->id, $arrTag[2]); $strValue = $this->aeo->obfuscateSingle($this->StringUtil->decodeEntities($arrTag[1]), $objPage->id, $arrTag[2]);
$strContent = $this->aeo->str_replace($arrTags[0][0], $strValue, $strContent, $position); $strContent = $this->aeo->str_replace($arrTags[0][0], $strValue, $strContent, $position);
$intOffset += strlen($strValue); $intOffset += strlen($strValue);
} else { } else {
// AEO nicht aktiv oder Bereich auf deaktiviert gestellt // AEO nicht aktiv oder Bereich auf deaktiviert gestellt
$strEmail = $this->String->encodeEmail($this->String->decodeEntities($arrTag[1])); $strEmail = $this->StringUtil->encodeEmail($this->StringUtil->decodeEntities($arrTag[1]));
$strValue = '<a href="&#109;&#97;&#105;&#108;&#116;&#111;&#58;' . $this->String->encodeEmail($strEmail) . '" class="email">' . $this->String->encodeEmail(preg_replace('/\?.*$/', '', $strEmail)) . '</a>'; $strValue = '<a href="&#109;&#97;&#105;&#108;&#116;&#111;&#58;' . $this->StringUtil->encodeEmail($strEmail) . '" class="email">' . $this->StringUtil->encodeEmail(preg_replace('/\?.*$/', '', $strEmail)) . '</a>';
$strContent = $this->aeo->str_replace($arrTags[0][0], $strValue, $strContent, $position); $strContent = $this->aeo->str_replace($arrTags[0][0], $strValue, $strContent, $position);
$intOffset += strlen($strValue); $intOffset += strlen($strValue);
} }
@ -402,8 +402,8 @@ class Aeo extends \System {
// passendes CSS hinzufügen // passendes CSS hinzufügen
$strLink .= $this->obfuscateWithMethod($arrEmail[0], $method, true, 0, 0).'@'.$strDomain.'.'.$strTld; $strLink .= $this->obfuscateWithMethod($arrEmail[0], $method, true, 0, 0).'@'.$strDomain.'.'.$strTld;
} else { } else {
$this->import('String'); $this->import('StringUtil');
$strLink .= $this->String->encodeEmail($email); $strLink .= $this->StringUtil->encodeEmail($email);
} }
$strLink .= '</a>'; $strLink .= '</a>';
return $this->createSpecialEntities($strLink); return $this->createSpecialEntities($strLink);

View File

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

View File

@ -97,7 +97,7 @@ class AeoUtil extends \Controller {
if( if(
($selected_language) && ($selected_language) &&
in_array($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; $_SESSION['TL_LANGUAGE'] = $GLOBALS['TL_LANGUAGE'] = $selected_language;
} elseif(isset($_SESSION['TL_LANGUAGE'])) { } elseif(isset($_SESSION['TL_LANGUAGE'])) {