19 Commits

Author SHA1 Message Date
9f40e2f9d7 Umstellung auf static method 2018-02-13 14:47:42 +01:00
de73c3d2ec Call static getInstance instead of protected contructor of AeoJavaScript 2018-02-13 14:38:25 +01:00
265355e543 Imports für Klasse AeoFrontendUtil korrigiert 2018-02-13 14:33:27 +01:00
c4f307a8ad Imports für Klasse AeoUtil gefixed 2018-02-13 14:28:34 +01:00
d8736b81e1 composer.json angepasst 2018-02-13 13:28:12 +01:00
97dbb480d2 Anpassung Pfade zu css-Dateien 2018-02-13 13:16:45 +01:00
2f50351f5f fixed bundle 2018-02-13 10:50:35 +01:00
8797ca30e7 Fixed wrong namespace in ContaoManagerPlugin 2018-02-13 10:20:54 +01:00
e2c08f327e Fixed bundle 2018-02-13 10:14:59 +01:00
265f39b349 Edited composer.json 2018-02-13 09:18:09 +01:00
a257734f97 Fixed "Kein Slash im virtuellen Pfad erlauben! (#1)"
Fixed some issues in dca config
2018-02-13 09:10:02 +01:00
3a4c997b3a Fixed typo in Plugin.php 2018-02-13 09:02:09 +01:00
7b0bd79df0 Updated composer.json 2018-02-13 08:30:05 +01:00
c76b056a97 Kompatibilität mit Contao 4.5 und PHP 7 2018-02-13 07:04:00 +01:00
f5879c7614 Umstellung composer.json auf UTF-8 2017-08-07 08:56:14 +02:00
8ccaabd170 Merge branch 'contao-aeo-bundle' into 'master'
Contao aeo bundle

See merge request !1
2017-08-07 06:54:23 +00:00
5d9172850f Umstellung auf contao-bundle 2017-08-07 07:33:08 +02:00
974e8a4bad Kompatibilität mit PHP 7 hergestellt 2016-11-26 09:34:48 +01:00
ca6aabdf01 Tag erstellt 2016-07-08 11:11:19 +02:00
38 changed files with 228 additions and 240 deletions

View File

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

48
composer.json Normal file
View 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"
}
}

View File

@ -1,7 +0,0 @@
;;
; Configure what you want the autoload creator to register
;;
register_namespaces = true
register_classes = true
register_templates = true

View File

@ -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',
));

View File

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

View File

@ -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
View 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
{
}

View 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']),
];
}
}

View File

@ -194,7 +194,7 @@ class AeoHybrid extends \Hybrid
/** /**
* 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');
@ -220,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

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

View File

@ -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';
?>

View File

@ -47,12 +47,13 @@ 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
@ -62,7 +63,8 @@ $GLOBALS['TL_DCA']['tl_content']['fields']['aeo_show_info'] = array
'filter' => false, '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
@ -71,19 +73,21 @@ $GLOBALS['TL_DCA']['tl_content']['fields']['aeo_info_text'] = array
'exclude' => true, 'exclude' => true,
'filter' => false, 'filter' => false,
'search' => false, '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 ''"
); );
/** /**

View File

@ -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,23 +41,19 @@ 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
@ -67,7 +63,8 @@ $GLOBALS['TL_DCA']['tl_module']['fields']['aeo_show_info'] = array
'filter' => false, '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
@ -76,19 +73,21 @@ $GLOBALS['TL_DCA']['tl_module']['fields']['aeo_info_text'] = array
'exclude' => true, 'exclude' => true,
'filter' => false, 'filter' => false,
'search' => false, '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' => false, '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 ''"
); );
/** /**

View File

@ -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'],
@ -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) {

View File

@ -1,23 +1,23 @@
function aeo_link_decode(href) { 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 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 i = strpos(address, '|', 0);
var params = ''; var params = '';
if (i) { if (i) {
var params = address.substr(i + 1); var params = address.substr(i + 1);
address = address.substr(0, i); address = address.substr(0, i);
if (params.length > 0) { if (params.length > 0) {
params = base64_decode(params); params = base64_decode(params);
} }
} }
address = rot13 ? str_rot13(address) : address; address = rot13 ? str_rot13(address) : address;
if (params.length > 0) { if (params.length > 0) {
address = address + html_entity_decode(params); address = address + html_entity_decode(params);
} }
window.location.replace('mailto:' + address); window.location.replace('mailto:' + address);
} }
var rot13 = <?php echo ($this->rot13 ? 'true' : 'false');?>; var rot13 = <?php echo ($this->rot13 ? 'true' : 'false');?>;
var tooltip_js_on = '<?php echo (stripslashes($this->tooltip_js_on));?>'; var tooltip_js_on = '<?php echo (stripslashes($this->tooltip_js_on));?>';

View File

@ -30,6 +30,9 @@
namespace cgoIT\aeo; namespace cgoIT\aeo;
use cgoIT\aeo\AeoUtil;
use cgoIT\aeo\AeoJavaScript;
/** /**
* Class AeoFrontendUtil * Class AeoFrontendUtil
*/ */
@ -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,7 +108,7 @@ 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_urlParam'] == 'url') { if ($GLOBALS['TL_CONFIG']['i18nl10n_urlParam'] == 'url') {
$folder .= $GLOBALS['TL_LANGUAGE'] . '/'; $folder .= $GLOBALS['TL_LANGUAGE'] . '/';
} }
@ -123,7 +128,7 @@ class AeoFrontendUtil extends \Frontend {
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_urlParam'] == 'alias') { $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'];
@ -186,19 +191,19 @@ class AeoFrontendUtil extends \Frontend {
{ {
global $objPage; global $objPage;
$objPage2 = $this->getPageDetails($objPage->id); $objPage2 = $this->getPageDetails($objPage->id);
$redirectPageId = $this->AeoUtil->getRedirectPageForLanguage(deserialize($this->jump_to_no_js), $objPage2->rootLanguage); $redirectPageId = $this->aeoUtil->getRedirectPageForLanguage(deserialize($this->jump_to_no_js), $objPage2->rootLanguage);
if (TL_MODE == 'FE' && $this->replace_standard_obfuscation && $objPage2->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]);
@ -236,8 +241,8 @@ class AeoFrontendUtil extends \Frontend {
->execute($objPage2->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="&#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 +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;
} }

View File

@ -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();
} }
/** /**
@ -129,7 +133,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_urlParam'] == 'alias') { $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);
@ -219,7 +223,7 @@ class AeoRedirectUtil extends \Frontend {
} }
if (in_array('i18nl10n', $this->Config->getActiveModules()) && if (in_array('i18nl10n', $this->Config->getActiveModules()) &&
$GLOBALS['TL_CONFIG']['i18nl10n_urlParam'] == 'alias') { $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;

View File

@ -1,27 +1,27 @@
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(!jQuery(el).hasClass('aeo-with-title')){jQuery(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++)
this.map[s.charAt(i)]=s.charAt((i+13)%26);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();} this.map[s.charAt(i).toUpperCase()]=s.charAt((i+13)%26).toUpperCase();}
function str_rot13(a){if(this.map===undefined){rot13init();} 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);} 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;} 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;} 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;} 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;}} 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('');} return tmp_arr.join('');}
function strpos(haystack,needle,offset){var i=(haystack+'').indexOf(needle,(offset||0));return i===-1?false:i;} 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;} 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);} 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;} 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');} 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;';} 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_NOQUOTES'){entities['34']='&quot;';}
if(useQuoteStyle==='ENT_QUOTES'){entities['39']='&#39;';} 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];}} entities['60']='&lt;';entities['62']='&gt;';for(decimal in entities){if(entities.hasOwnProperty(decimal)){hash_map[String.fromCharCode(decimal)]=entities[decimal];}}
return hash_map;} return hash_map;}

View File

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