Compare commits
26 Commits
Author | SHA1 | Date | |
---|---|---|---|
9f40e2f9d7 | |||
de73c3d2ec | |||
265355e543 | |||
c4f307a8ad | |||
d8736b81e1 | |||
97dbb480d2 | |||
2f50351f5f | |||
8797ca30e7 | |||
e2c08f327e | |||
265f39b349 | |||
a257734f97 | |||
3a4c997b3a | |||
7b0bd79df0 | |||
c76b056a97 | |||
f5879c7614 | |||
8ccaabd170 | |||
5d9172850f | |||
974e8a4bad | |||
ca6aabdf01 | |||
5244aa2f13 | |||
620c671f89 | |||
dde4464d32 | |||
51d20d5d2d | |||
81ae92763e | |||
c79d6e41f0 | |||
72937119e3 |
1
.gitignore
vendored
Normal file
1
.gitignore
vendored
Normal file
@ -0,0 +1 @@
|
|||||||
|
/.project
|
@ -2,3 +2,4 @@
|
|||||||
|
|
||||||
Contao Erweiterung: Advanced eMail Obfuscation
|
Contao Erweiterung: Advanced eMail Obfuscation
|
||||||
|
|
||||||
|
|
||||||
|
48
composer.json
Normal file
48
composer.json
Normal file
@ -0,0 +1,48 @@
|
|||||||
|
{
|
||||||
|
"name":"cgo-it/contao-aeo-bundle",
|
||||||
|
"description":"Contao 4 Advanced eMail Obfuscation Bundle",
|
||||||
|
"keywords":["contao","aeo","bundle"],
|
||||||
|
"type":"contao-bundle",
|
||||||
|
"homepage":"https://cgo-it.de",
|
||||||
|
"license":"LGPL-3.0+",
|
||||||
|
"authors":[
|
||||||
|
{
|
||||||
|
"name":"Carsten Götzinger",
|
||||||
|
"homepage":"https://cgo-it.de",
|
||||||
|
"role":"Developer"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"support":{
|
||||||
|
"issues":"https://git.cgo-it.de/contao/aeo/issues",
|
||||||
|
"source":"https://git.cgo-it.de/contao/aeo.git",
|
||||||
|
"forum":"https://community.contao.org/de/showthread.php?31684-Advanced-eMail-Obfuscation"
|
||||||
|
},
|
||||||
|
"require":{
|
||||||
|
"php": ">=7.0.0",
|
||||||
|
"contao/core-bundle": "~4.5"
|
||||||
|
},
|
||||||
|
"require-dev": {
|
||||||
|
"contao/manager-plugin": "^2.0"
|
||||||
|
},
|
||||||
|
"conflict": {
|
||||||
|
"contao/manager-plugin": "<2.0 || >=3.0",
|
||||||
|
"symfony/symfony": "3.2.7"
|
||||||
|
},
|
||||||
|
"autoload": {
|
||||||
|
"psr-4": {
|
||||||
|
"cgoIT\\aeo\\": "src/"
|
||||||
|
},
|
||||||
|
"classmap": [
|
||||||
|
"src/Resources/contao/"
|
||||||
|
],
|
||||||
|
"exclude-from-classmap": [
|
||||||
|
"src/Resources/contao/config/",
|
||||||
|
"src/Resources/contao/dca/",
|
||||||
|
"src/Resources/contao/languages/",
|
||||||
|
"src/Resources/contao/templates/"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"extra": {
|
||||||
|
"contao-manager-plugin": "cgoIT\\aeo\\ContaoManagerPlugin"
|
||||||
|
}
|
||||||
|
}
|
@ -1,7 +0,0 @@
|
|||||||
|
|
||||||
;;
|
|
||||||
; Configure what you want the autoload creator to register
|
|
||||||
;;
|
|
||||||
register_namespaces = true
|
|
||||||
register_classes = true
|
|
||||||
register_templates = true
|
|
@ -1,48 +0,0 @@
|
|||||||
<?php
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Contao Open Source CMS
|
|
||||||
*
|
|
||||||
* Copyright (C) 2005-2013 Leo Feyer
|
|
||||||
*
|
|
||||||
* @package Zaeo
|
|
||||||
* @link http://contao.org
|
|
||||||
* @license http://www.gnu.org/licenses/lgpl-3.0.html LGPL
|
|
||||||
*/
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Register the namespaces
|
|
||||||
*/
|
|
||||||
ClassLoader::addNamespaces(array
|
|
||||||
(
|
|
||||||
'cgoIT',
|
|
||||||
));
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Register the classes
|
|
||||||
*/
|
|
||||||
ClassLoader::addClasses(array
|
|
||||||
(
|
|
||||||
'cgoIT\aeo\AeoJavaScript' => 'system/modules/zaeo/AeoJavaScript.php',
|
|
||||||
'cgoIT\aeo\AeoHybrid' => 'system/modules/zaeo/AeoHybrid.php',
|
|
||||||
'cgoIT\aeo\AeoCE' => 'system/modules/zaeo/AeoCE.php',
|
|
||||||
'cgoIT\aeo\AeoModule' => 'system/modules/zaeo/AeoModule.php',
|
|
||||||
'cgoIT\aeo\PageRoot_Aeo' => 'system/modules/zaeo/PageRoot_Aeo.php',
|
|
||||||
// Util
|
|
||||||
'cgoIT\aeo\AeoFrontendUtil' => 'system/modules/zaeo/util/AeoFrontendUtil.php',
|
|
||||||
'cgoIT\aeo\AeoRedirectUtil' => 'system/modules/zaeo/util/AeoRedirectUtil.php',
|
|
||||||
'cgoIT\aeo\AeoUtil' => 'system/modules/zaeo/util/AeoUtil.php',
|
|
||||||
'cgoIT\aeo\McwPageTree' => 'system/modules/zaeo/widgets/McwPageTree.php',
|
|
||||||
));
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Register the templates
|
|
||||||
*/
|
|
||||||
TemplateLoader::addFiles(array
|
|
||||||
(
|
|
||||||
'aeo_default_no_js' => 'system/modules/zaeo/templates',
|
|
||||||
'js_aeo_deobfuscate' => 'system/modules/zaeo/templates',
|
|
||||||
));
|
|
@ -1,29 +0,0 @@
|
|||||||
-- **********************************************************
|
|
||||||
-- * *
|
|
||||||
-- * IMPORTANT NOTE *
|
|
||||||
-- * *
|
|
||||||
-- * Do not import this file manually but use the TYPOlight *
|
|
||||||
-- * install tool to create and maintain database tables! *
|
|
||||||
-- * *
|
|
||||||
-- **********************************************************
|
|
||||||
|
|
||||||
|
|
||||||
--
|
|
||||||
-- Table `tl_module`
|
|
||||||
--
|
|
||||||
CREATE TABLE `tl_module` (
|
|
||||||
`aeo_custom_template` varchar(32) NOT NULL default '',
|
|
||||||
`aeo_show_info` char(1) NOT NULL default '',
|
|
||||||
`aeo_info_text` mediumtext NULL,
|
|
||||||
`aeo_disable` char(1) NOT NULL default ''
|
|
||||||
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
|
|
||||||
|
|
||||||
--
|
|
||||||
-- Table `tl_content`
|
|
||||||
--
|
|
||||||
CREATE TABLE `tl_content` (
|
|
||||||
`aeo_custom_template` varchar(32) NOT NULL default '',
|
|
||||||
`aeo_show_info` char(1) NOT NULL default '',
|
|
||||||
`aeo_info_text` mediumtext NULL,
|
|
||||||
`aeo_disable` char(1) NOT NULL default ''
|
|
||||||
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
|
|
@ -1,7 +0,0 @@
|
|||||||
<IfModule !mod_authz_core.c>
|
|
||||||
Order allow,deny
|
|
||||||
Allow from all
|
|
||||||
</IfModule>
|
|
||||||
<IfModule mod_authz_core.c>
|
|
||||||
Require all granted
|
|
||||||
</IfModule>
|
|
14
src/CgoITAeoBundle.php
Normal file
14
src/CgoITAeoBundle.php
Normal file
@ -0,0 +1,14 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
namespace cgoIT\aeo;
|
||||||
|
|
||||||
|
use Symfony\Component\HttpKernel\Bundle\Bundle;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Configures the Contao aeo bundle.
|
||||||
|
*
|
||||||
|
* @author Carsten Götzinger
|
||||||
|
*/
|
||||||
|
class CgoITAeoBundle extends Bundle
|
||||||
|
{
|
||||||
|
}
|
28
src/ContaoManagerPlugin.php
Normal file
28
src/ContaoManagerPlugin.php
Normal file
@ -0,0 +1,28 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
namespace cgoIT\aeo;
|
||||||
|
|
||||||
|
use Contao\CoreBundle\ContaoCoreBundle;
|
||||||
|
use Contao\ManagerPlugin\Bundle\Config\BundleConfig;
|
||||||
|
use Contao\ManagerPlugin\Bundle\BundlePluginInterface;
|
||||||
|
use Contao\ManagerPlugin\Bundle\Parser\ParserInterface;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Plugin for the Contao Manager.
|
||||||
|
*
|
||||||
|
* @author Carsten Götzinger
|
||||||
|
*/
|
||||||
|
class ContaoManagerPlugin implements BundlePluginInterface
|
||||||
|
{
|
||||||
|
/**
|
||||||
|
* {@inheritdoc}
|
||||||
|
*/
|
||||||
|
public function getBundles(ParserInterface $parser)
|
||||||
|
{
|
||||||
|
return [
|
||||||
|
BundleConfig::create(CgoITAeoBundle::class)
|
||||||
|
->setLoadAfter([ContaoCoreBundle::class])
|
||||||
|
->setReplace(['aeo']),
|
||||||
|
];
|
||||||
|
}
|
||||||
|
}
|
@ -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');
|
@ -36,12 +36,6 @@ namespace cgoIT\aeo;
|
|||||||
class AeoJavaScript
|
class AeoJavaScript
|
||||||
{
|
{
|
||||||
|
|
||||||
/**
|
|
||||||
* Current object instance (Singleton)
|
|
||||||
* @var Cache
|
|
||||||
*/
|
|
||||||
protected static $objInstance;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Template
|
* Template
|
||||||
* @var string
|
* @var string
|
||||||
@ -59,7 +53,7 @@ class AeoJavaScript
|
|||||||
*/
|
*/
|
||||||
final private function __clone() {}
|
final private function __clone() {}
|
||||||
|
|
||||||
public function getContent($folder, $rot13 = true) {
|
public static function getContent($folder, $rot13 = true) {
|
||||||
$Template = new \FrontendTemplate(self::$strTemplate);
|
$Template = new \FrontendTemplate(self::$strTemplate);
|
||||||
$Template->rot13 = $rot13;
|
$Template->rot13 = $rot13;
|
||||||
$Template->folder = $folder;
|
$Template->folder = $folder;
|
||||||
@ -67,18 +61,6 @@ class AeoJavaScript
|
|||||||
$Template->tooltip_js_off = $GLOBALS['TL_LANG']['aeo']['tooltip_no_js'];
|
$Template->tooltip_js_off = $GLOBALS['TL_LANG']['aeo']['tooltip_no_js'];
|
||||||
return $Template->parse();
|
return $Template->parse();
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* Instantiate a new cache object and return it (Factory)
|
|
||||||
* @return Cache
|
|
||||||
*/
|
|
||||||
public static function getInstance() {
|
|
||||||
if (!is_object(self::$objInstance)) {
|
|
||||||
self::$objInstance = new self();
|
|
||||||
}
|
|
||||||
|
|
||||||
return self::$objInstance;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
?>
|
?>
|
@ -1,4 +1,4 @@
|
|||||||
<?php if (!defined('TL_ROOT')) die('You can not access this file directly!');
|
<?php
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Contao Open Source CMS
|
* Contao Open Source CMS
|
||||||
@ -21,7 +21,7 @@
|
|||||||
* Software Foundation website at <http://www.gnu.org/licenses/>.
|
* Software Foundation website at <http://www.gnu.org/licenses/>.
|
||||||
*
|
*
|
||||||
* PHP version 5
|
* PHP version 5
|
||||||
* @copyright cgo IT, 2012-2013
|
* @copyright cgo IT, 2012-2017
|
||||||
* @author Carsten Götzinger (info@cgo-it.de)
|
* @author Carsten Götzinger (info@cgo-it.de)
|
||||||
* @package aeo
|
* @package aeo
|
||||||
* @license GNU/LGPL
|
* @license GNU/LGPL
|
||||||
@ -31,24 +31,22 @@
|
|||||||
/**
|
/**
|
||||||
* Hooks
|
* Hooks
|
||||||
*/
|
*/
|
||||||
$GLOBALS['TL_HOOKS']['getFrontendModule'][] = array('aeo\\AeoFrontendUtil', 'aeoGetFrontendModule');
|
$GLOBALS['TL_HOOKS']['getFrontendModule'][] = array('cgoIT\\aeo\\AeoFrontendUtil', 'aeoGetFrontendModule');
|
||||||
$GLOBALS['TL_HOOKS']['getContentElement'][] = array('aeo\\AeoFrontendUtil', 'aeoGetContentElement');
|
$GLOBALS['TL_HOOKS']['getContentElement'][] = array('cgoIT\\aeo\\AeoFrontendUtil', 'aeoGetContentElement');
|
||||||
$GLOBALS['TL_HOOKS']['outputFrontendTemplate'][] = array('aeo\\AeoFrontendUtil', 'obfuscateEmails');
|
$GLOBALS['TL_HOOKS']['outputFrontendTemplate'][] = array('cgoIT\\aeo\\AeoFrontendUtil', 'obfuscateEmails');
|
||||||
$GLOBALS['TL_HOOKS']['getPageIdFromUrl'][] = array('aeo\\AeoRedirectUtil', 'getRedirectPageAeo');
|
$GLOBALS['TL_HOOKS']['getPageIdFromUrl'][] = array('cgoIT\\aeo\\AeoRedirectUtil', 'getRedirectPageAeo');
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* frontend moduls
|
* frontend moduls
|
||||||
*/
|
*/
|
||||||
$GLOBALS['FE_MOD']['application']['aeo'] = 'aeo\\AeoModule';
|
$GLOBALS['FE_MOD']['application']['aeo'] = 'cgoIT\\aeo\\AeoModule';
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* content elements
|
* content elements
|
||||||
*/
|
*/
|
||||||
$GLOBALS['TL_CTE']['includes']['aeo'] = 'aeo\\AeoCE';
|
$GLOBALS['TL_CTE']['includes']['aeo'] = 'cgoIT\\aeo\\AeoCE';
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* PageTypes
|
* PageTypes
|
||||||
*/
|
*/
|
||||||
$GLOBALS['TL_PTY']['root'] = 'aeo\\PageRoot_Aeo';
|
$GLOBALS['TL_PTY']['root'] = 'cgoIT\\aeo\\PageRoot_Aeo';
|
||||||
|
|
||||||
?>
|
|
@ -47,43 +47,47 @@ foreach ($GLOBALS['TL_DCA']['tl_content']['palettes'] as $key => $palette) {
|
|||||||
*/
|
*/
|
||||||
$GLOBALS['TL_DCA']['tl_content']['fields']['aeo_custom_template'] = array
|
$GLOBALS['TL_DCA']['tl_content']['fields']['aeo_custom_template'] = array
|
||||||
(
|
(
|
||||||
'label' => &$GLOBALS['TL_LANG']['tl_content']['aeo_custom_template'],
|
'label' => &$GLOBALS['TL_LANG']['tl_content']['aeo_custom_template'],
|
||||||
'default' => 'aeo_default_no_js',
|
'default' => 'aeo_default_no_js',
|
||||||
'exclude' => true,
|
'exclude' => true,
|
||||||
'inputType' => 'select',
|
'inputType' => 'select',
|
||||||
'options_callback' => array('tl_content_aeo', 'getAeoTemplates'),
|
'options_callback' => array('tl_content_aeo', 'getAeoTemplates'),
|
||||||
'eval' => array('tl_class'=>'w50')
|
'eval' => array('tl_class'=>'w50'),
|
||||||
|
'sql' => "varchar(32) NOT NULL default ''"
|
||||||
);
|
);
|
||||||
|
|
||||||
$GLOBALS['TL_DCA']['tl_content']['fields']['aeo_show_info'] = array
|
$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'),
|
||||||
|
'sql' => "char(1) NOT NULL default ''"
|
||||||
);
|
);
|
||||||
|
|
||||||
$GLOBALS['TL_DCA']['tl_content']['fields']['aeo_info_text'] = array
|
$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'),
|
||||||
|
'sql' => "mediumtext NULL"
|
||||||
);
|
);
|
||||||
|
|
||||||
$GLOBALS['TL_DCA']['tl_content']['fields']['aeo_disable'] = array
|
$GLOBALS['TL_DCA']['tl_content']['fields']['aeo_disable'] = array
|
||||||
(
|
(
|
||||||
'label' => &$GLOBALS['TL_LANG']['tl_content']['aeo_disable'],
|
'label' => &$GLOBALS['TL_LANG']['tl_content']['aeo_disable'],
|
||||||
'default' => '',
|
'default' => '',
|
||||||
'exclude' => true,
|
'exclude' => true,
|
||||||
'filter' => true,
|
'filter' => true,
|
||||||
'search' => false,
|
'search' => false,
|
||||||
'inputType' => 'checkbox',
|
'inputType' => 'checkbox',
|
||||||
'eval' => array('tl_class'=>'long')
|
'eval' => array('tl_class'=>'long'),
|
||||||
|
'sql' => "char(1) NOT NULL default ''"
|
||||||
);
|
);
|
||||||
|
|
||||||
/**
|
/**
|
@ -21,7 +21,7 @@
|
|||||||
* Software Foundation website at <http://www.gnu.org/licenses/>.
|
* Software Foundation website at <http://www.gnu.org/licenses/>.
|
||||||
*
|
*
|
||||||
* PHP version 5
|
* PHP version 5
|
||||||
* @copyright cgo IT, 2012-2013
|
* @copyright cgo IT, 2012-2017
|
||||||
* @author Carsten Götzinger (info@cgo-it.de)
|
* @author Carsten Götzinger (info@cgo-it.de)
|
||||||
* @package aeo
|
* @package aeo
|
||||||
* @license GNU/LGPL
|
* @license GNU/LGPL
|
||||||
@ -41,54 +41,53 @@ foreach ($GLOBALS['TL_DCA']['tl_module']['palettes'] as $key => $palette) {
|
|||||||
$GLOBALS['TL_DCA']['tl_module']['palettes'][$key] = $palette.';{aeo_legend:hide},aeo_disable';
|
$GLOBALS['TL_DCA']['tl_module']['palettes'][$key] = $palette.';{aeo_legend:hide},aeo_disable';
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
//foreach ($GLOBALS['TL_DCA']['tl_module']['palettes'] as $key => $palette) {
|
|
||||||
// if (!is_array($palette)) {
|
|
||||||
// print "<h1>$key => $palette </h1>\n";
|
|
||||||
// }
|
|
||||||
//}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* fields
|
* fields
|
||||||
*/
|
*/
|
||||||
$GLOBALS['TL_DCA']['tl_module']['fields']['aeo_custom_template'] = array
|
$GLOBALS['TL_DCA']['tl_module']['fields']['aeo_custom_template'] = array
|
||||||
(
|
(
|
||||||
'label' => &$GLOBALS['TL_LANG']['tl_module']['aeo_custom_template'],
|
'label' => &$GLOBALS['TL_LANG']['tl_module']['aeo_custom_template'],
|
||||||
'default' => 'aeo_default_no_js',
|
'default' => 'aeo_default_no_js',
|
||||||
'exclude' => true,
|
'exclude' => true,
|
||||||
'inputType' => 'select',
|
'inputType' => 'select',
|
||||||
'options_callback' => array('tl_module_aeo', 'getAeoTemplates'),
|
'options_callback' => array('tl_module_aeo', 'getAeoTemplates'),
|
||||||
'eval' => array('tl_class'=>'w50')
|
'eval' => array('tl_class'=>'w50'),
|
||||||
|
'sql' => "varchar(32) NOT NULL default ''"
|
||||||
);
|
);
|
||||||
|
|
||||||
$GLOBALS['TL_DCA']['tl_module']['fields']['aeo_show_info'] = array
|
$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'),
|
||||||
|
'sql' => "char(1) NOT NULL default ''"
|
||||||
);
|
);
|
||||||
|
|
||||||
$GLOBALS['TL_DCA']['tl_module']['fields']['aeo_info_text'] = array
|
$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'),
|
||||||
|
'sql' => "mediumtext NULL"
|
||||||
);
|
);
|
||||||
|
|
||||||
$GLOBALS['TL_DCA']['tl_module']['fields']['aeo_disable'] = array
|
$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'),
|
||||||
|
'sql' => "char(1) NOT NULL default ''"
|
||||||
);
|
);
|
||||||
|
|
||||||
/**
|
/**
|
@ -67,7 +67,7 @@ $GLOBALS['TL_DCA']['tl_settings']['fields']['aeo_virtual_path'] = array
|
|||||||
'default' => '',
|
'default' => '',
|
||||||
'exclude' => true,
|
'exclude' => true,
|
||||||
'inputType' => 'text',
|
'inputType' => 'text',
|
||||||
'eval' => array('decodeEntities'=>true, 'mandatory'=>true, 'tl_class'=>'w50', 'trailingSlash'=>false)
|
'eval' => array('decodeEntities'=>true, 'mandatory'=>true, 'tl_class'=>'w50', 'rgxp'=>'alias')
|
||||||
);
|
);
|
||||||
|
|
||||||
$GLOBALS['TL_DCA']['tl_settings']['fields']['aeo_obfuscation_method'] = array
|
$GLOBALS['TL_DCA']['tl_settings']['fields']['aeo_obfuscation_method'] = array
|
||||||
@ -100,14 +100,14 @@ $GLOBALS['TL_DCA']['tl_settings']['fields']['aeo_jump_to_no_js'] = array
|
|||||||
'default' => '',
|
'default' => '',
|
||||||
'exclude' => true,
|
'exclude' => true,
|
||||||
'inputType' => 'checkbox',
|
'inputType' => 'checkbox',
|
||||||
'eval' => array(doNotCopy => true, multiple => false, 'tl_class' => 'm12', 'style' => 'width:50px; padding-bottom: 3px;', 'includeBlankOption' => true),
|
'eval' => array('doNotCopy' => true, 'multiple' => false, 'tl_class' => 'm12', 'style' => 'width:50px; padding-bottom: 3px;', 'includeBlankOption' => true),
|
||||||
),
|
),
|
||||||
'aeo_language' => array(
|
'aeo_language' => array(
|
||||||
'label' => &$GLOBALS['TL_LANG']['tl_settings']['aeo_language'],
|
'label' => &$GLOBALS['TL_LANG']['tl_settings']['aeo_language'],
|
||||||
'exclude' => true,
|
'exclude' => true,
|
||||||
'inputType' => 'select',
|
'inputType' => 'select',
|
||||||
'options_callback' => array("tl_settings_aeo", "getAvailableLanguages"),
|
'options_callback' => array("tl_settings_aeo", "getAvailableLanguages"),
|
||||||
'eval' => array(doNotCopy => true, 'mandatory' => true, 'tl_class' => 'm12', 'style' => 'width:210px; padding-bottom: 3px; margin-top: 3px;', 'includeBlankOption' => true),
|
'eval' => array('doNotCopy' => true, 'mandatory' => true, 'tl_class' => 'm12', 'style' => 'width:210px; padding-bottom: 3px; margin-top: 3px;', 'includeBlankOption' => true),
|
||||||
),
|
),
|
||||||
'aeo_redirecturl' => array(
|
'aeo_redirecturl' => array(
|
||||||
'label' => &$GLOBALS['TL_LANG']['tl_settings']['aeo_redirecturl'],
|
'label' => &$GLOBALS['TL_LANG']['tl_settings']['aeo_redirecturl'],
|
||||||
@ -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));
|
||||||
}
|
}
|
||||||
@ -211,7 +211,6 @@ class tl_settings_aeo extends \Backend
|
|||||||
*/
|
*/
|
||||||
public function checkForModuleOrCE($varVal, \DataContainer $dc) {
|
public function checkForModuleOrCE($varVal, \DataContainer $dc) {
|
||||||
$this->import('\\Database', 'Database');
|
$this->import('\\Database', 'Database');
|
||||||
$this->import('aeo\\AeoUtil', 'AeoUtil');
|
|
||||||
|
|
||||||
$arrValue = deserialize($varVal);
|
$arrValue = deserialize($varVal);
|
||||||
foreach ($arrValue as $key => $value) {
|
foreach ($arrValue as $key => $value) {
|
@ -30,13 +30,16 @@
|
|||||||
|
|
||||||
namespace cgoIT\aeo;
|
namespace cgoIT\aeo;
|
||||||
|
|
||||||
|
use cgoIT\aeo\AeoUtil;
|
||||||
|
use cgoIT\aeo\AeoJavaScript;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Class AeoFrontendUtil
|
* Class AeoFrontendUtil
|
||||||
*/
|
*/
|
||||||
|
|
||||||
//define('REGEXP_EMAIL_PREFIX', '(\w[-._\w]*\w)\@');
|
//define('REGEXP_EMAIL_PREFIX', '(\w[-._\w]*\w)\@');
|
||||||
define('REGEXP_EMAIL', '\w[-._\w]*\w@[\d\w][-._\w]*\w\.\w{2,18}');
|
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}[\w=&; ]*)["\'](?P<after>[^>]*)\>).*?\<\/a\>/ism');
|
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 {
|
class AeoFrontendUtil extends \Frontend {
|
||||||
|
|
||||||
@ -76,6 +79,8 @@ class AeoFrontendUtil extends \Frontend {
|
|||||||
*/
|
*/
|
||||||
protected $aeo;
|
protected $aeo;
|
||||||
|
|
||||||
|
protected $aeoUtil;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Initialize the object
|
* Initialize the object
|
||||||
* @param array
|
* @param array
|
||||||
@ -85,7 +90,7 @@ class AeoFrontendUtil extends \Frontend {
|
|||||||
|
|
||||||
if (TL_MODE == 'FE') {
|
if (TL_MODE == 'FE') {
|
||||||
global $objPage;
|
global $objPage;
|
||||||
$this->import('aeo\\AeoUtil', 'AeoUtil');
|
$this->aeoUtil = new AeoUtil();
|
||||||
|
|
||||||
if ($GLOBALS['TL_CONFIG']['aeo_replace_standard_obfuscation'] === true) {
|
if ($GLOBALS['TL_CONFIG']['aeo_replace_standard_obfuscation'] === true) {
|
||||||
$this->use_rot_13 = $GLOBALS['TL_CONFIG']['aeo_use_rot_13'];
|
$this->use_rot_13 = $GLOBALS['TL_CONFIG']['aeo_use_rot_13'];
|
||||||
@ -103,8 +108,8 @@ class AeoFrontendUtil extends \Frontend {
|
|||||||
$folder .= $objPage->rootLanguage.'/';
|
$folder .= $objPage->rootLanguage.'/';
|
||||||
}
|
}
|
||||||
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,8 +127,8 @@ 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'];
|
||||||
}
|
}
|
||||||
$urlSuffix .= $GLOBALS['TL_CONFIG']['urlSuffix'];
|
$urlSuffix .= $GLOBALS['TL_CONFIG']['urlSuffix'];
|
||||||
@ -185,20 +190,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 +226,7 @@ class AeoFrontendUtil extends \Frontend {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
$strContent = $this->aeo->prepareOutput($strContent, $objPage->id);
|
$strContent = $this->aeo->prepareOutput($strContent, $objPage2->id);
|
||||||
}
|
}
|
||||||
|
|
||||||
return $strContent;
|
return $strContent;
|
||||||
@ -229,15 +234,15 @@ 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'][] = 'bundles/cgoitaeo/js/onReadyAeo.min.js|static';
|
||||||
$GLOBALS['TL_JAVASCRIPT'][] = 'system/modules/zaeo/public/js/aeo.min.js|static';
|
$GLOBALS['TL_JAVASCRIPT'][] = 'bundles/cgoitaeo/js/aeo.min.js|static';
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -281,17 +286,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="mailto:' . $this->String->encodeEmail($strEmail) . '" class="email">' . $this->String->encodeEmail(preg_replace('/\?.*$/', '', $strEmail)) . '</a>';
|
$strValue = '<a href="mailto:' . $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 +407,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);
|
||||||
@ -491,11 +496,8 @@ class Aeo extends \System {
|
|||||||
}
|
}
|
||||||
|
|
||||||
function dropJS() {
|
function dropJS() {
|
||||||
$this->import('aeo\\AeoJavaScript', 'AeoJavaScript');
|
$strContentJs = AeoJavaScript::getContent(str_replace("/", "\/", $this->folder), $this->rot13);
|
||||||
$strContentJs = $this->AeoJavaScript->getContent(str_replace("/", "\/", $this->folder), $this->rot13);
|
|
||||||
$strContentJs = "\n<script type=\"text/javascript\">\n$strContentJs\n</script>\n";
|
$strContentJs = "\n<script type=\"text/javascript\">\n$strContentJs\n</script>\n";
|
||||||
// $strContentJs .= "<script src=\"system/modules/zaeo/public/js/onReadyAeo.js\" type=\"text/javascript\"></script>";
|
|
||||||
// $strContentJs .= "<script src=\"system/modules/zaeo/public/js/aeo.js\" type=\"text/javascript\"></script>";
|
|
||||||
return $strContentJs;
|
return $strContentJs;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -508,7 +510,7 @@ class Aeo extends \System {
|
|||||||
//$css .= '*>.obfuscated { unicode-bidi: -moz-isolate-override !important; }';
|
//$css .= '*>.obfuscated { unicode-bidi: -moz-isolate-override !important; }';
|
||||||
break;
|
break;
|
||||||
case 'nullspan':
|
case 'nullspan':
|
||||||
$css .= 'span.obfuscated { display: none; }';
|
$css .= 'span.obfuscated { display: none; white-space: nowrap;}';
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
$css .= "\n</style>";
|
$css .= "\n</style>";
|
||||||
@ -586,7 +588,7 @@ class Aeo extends \System {
|
|||||||
}
|
}
|
||||||
|
|
||||||
if ($includeCss) {
|
if ($includeCss) {
|
||||||
return $email1.'<span style="display: none;">null</span>'.$email2.'@'.$arrEmail[1];
|
return $email1.'<span style="display: none; white-space: nowrap;">null</span>'.$email2.'@'.$arrEmail[1];
|
||||||
}
|
}
|
||||||
return $email1.'<span class="obfuscated">null</span>'.$email2.'@'.$arrEmail[1];
|
return $email1.'<span class="obfuscated">null</span>'.$email2.'@'.$arrEmail[1];
|
||||||
}
|
}
|
@ -30,18 +30,22 @@
|
|||||||
|
|
||||||
namespace cgoIT\aeo;
|
namespace cgoIT\aeo;
|
||||||
|
|
||||||
|
use cgoIT\aeo\AeoUtil;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Class AeoRedirectUtil
|
* Class AeoRedirectUtil
|
||||||
*/
|
*/
|
||||||
class AeoRedirectUtil extends \Frontend {
|
class AeoRedirectUtil extends \Frontend {
|
||||||
|
|
||||||
|
protected $aeoUtil;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Initialize the object
|
* Initialize the object
|
||||||
* @param array
|
* @param array
|
||||||
*/
|
*/
|
||||||
public function __construct($arrAttributes=false) {
|
public function __construct($arrAttributes=false) {
|
||||||
parent::__construct($arrAttributes);
|
parent::__construct($arrAttributes);
|
||||||
$this->import('aeo\\AeoUtil', 'AeoUtil');
|
$this->aeoUtil = new AeoUtil();
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -83,7 +87,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,8 +132,8 @@ 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);
|
||||||
}
|
}
|
||||||
$arrObfuscatedValues = explode('+', $strObfuscatedValues, 5);
|
$arrObfuscatedValues = explode('+', $strObfuscatedValues, 5);
|
||||||
@ -160,7 +164,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 +180,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,8 +222,8 @@ 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);
|
||||||
}
|
}
|
||||||
return $strUrl;
|
return $strUrl;
|
@ -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'])) {
|
@ -27,8 +27,8 @@ function doWithMootols() {
|
|||||||
|
|
||||||
function doWithJQuery() {
|
function doWithJQuery() {
|
||||||
jQuery('a[name^="aeo-obfuscated-"]').each(function(i, el) {
|
jQuery('a[name^="aeo-obfuscated-"]').each(function(i, el) {
|
||||||
if (!$(el).hasClass('aeo-with-title')) {
|
if (!jQuery(el).hasClass('aeo-with-title')) {
|
||||||
$(el).attr('title',tooltip_js_on);
|
jQuery(el).attr('title',tooltip_js_on);
|
||||||
}
|
}
|
||||||
aeo_prepare_link(el);
|
aeo_prepare_link(el);
|
||||||
}
|
}
|
@ -2,7 +2,7 @@
|
|||||||
var map;onReadyAeo(function(){aeo_dom_ready();});function aeo_dom_ready(){if(window.MooTools){doWithMootols();}else if(window.jQuery){doWithJQuery();}}
|
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);}
|
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);});}
|
aeo_prepare_link(el);});}
|
||||||
function doWithJQuery(){jQuery('a[name^="aeo-obfuscated-"]').each(function(i,el){if(!$(el).hasClass('aeo-with-title')){$(el).attr('title',tooltip_js_on);}
|
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);});}
|
aeo_prepare_link(el);});}
|
||||||
function aeo_prepare_link(el){el.setAttribute('href','javascript:aeo_link_decode(\''+el.getAttribute('href')+'\');');}
|
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++)
|
function rot13init(){this.map=new Array();var s="abcdefghijklmnopqrstuvwxyz";for(var i=0;i<s.length;i++)
|
Reference in New Issue
Block a user