Merge branch 'contao-aeo-bundle' into 'master'
Contao aeo bundle See merge request !1
This commit is contained in:
commit
8ccaabd170
51
composer.json
Normal file
51
composer.json
Normal file
@ -0,0 +1,51 @@
|
||||
{
|
||||
"name":"cgoit/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",
|
||||
"forum":"https://community.contao.org/de/showthread.php?31684-Advanced-eMail-Obfuscation"
|
||||
},
|
||||
"require":{
|
||||
"php": ">=5.6.0",
|
||||
"contao/core-bundle": "~4.3"
|
||||
},
|
||||
"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": {
|
||||
"branch-alias": {
|
||||
"dev-develop": "3.6.x-dev"
|
||||
},
|
||||
"contao-manager-plugin": "cgoIT\\aeo\\ContaoManager\\Plugin"
|
||||
}
|
||||
}
|
@ -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/ContaoManager/Plugin.php
Normal file
28
src/ContaoManager/Plugin.php
Normal file
@ -0,0 +1,28 @@
|
||||
<?php
|
||||
|
||||
namespace cgoIT\aeo\ContaoManager;
|
||||
|
||||
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 Plugin implements BundlePluginInterface
|
||||
{
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
public function getBundles(ParserInterface $parser)
|
||||
{
|
||||
return [
|
||||
BundleConfig::create('cgoIT\aeo\CgoITAeoBundle')
|
||||
->setLoadAfter(['Contao\CoreBundle\ContaoCoreBundle'])
|
||||
->setLoadAfter(['*'])
|
||||
->setReplace(['aeo']);
|
||||
];
|
||||
}
|
||||
}
|
@ -194,7 +194,7 @@ class AeoHybrid extends \Hybrid
|
||||
/**
|
||||
* Template variables
|
||||
*/
|
||||
$this->import('String');
|
||||
$this->import('StringUtil');
|
||||
$this->Template->action = $this->getIndexFreeRequest();
|
||||
$this->Template->n = $this->Input->get('n');
|
||||
$this->Template->d = $this->Input->get('d');
|
||||
@ -220,11 +220,11 @@ class AeoHybrid extends \Hybrid
|
||||
}
|
||||
|
||||
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->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()) {
|
||||
header('HTTP/1.1 303 See Other');
|
@ -1,4 +1,4 @@
|
||||
<?php if (!defined('TL_ROOT')) die('You can not access this file directly!');
|
||||
<?php
|
||||
|
||||
/**
|
||||
* Contao Open Source CMS
|
||||
@ -21,7 +21,7 @@
|
||||
* Software Foundation website at <http://www.gnu.org/licenses/>.
|
||||
*
|
||||
* PHP version 5
|
||||
* @copyright cgo IT, 2012-2013
|
||||
* @copyright cgo IT, 2012-2017
|
||||
* @author Carsten Götzinger (info@cgo-it.de)
|
||||
* @package aeo
|
||||
* @license GNU/LGPL
|
||||
@ -31,24 +31,22 @@
|
||||
/**
|
||||
* Hooks
|
||||
*/
|
||||
$GLOBALS['TL_HOOKS']['getFrontendModule'][] = array('aeo\\AeoFrontendUtil', 'aeoGetFrontendModule');
|
||||
$GLOBALS['TL_HOOKS']['getContentElement'][] = array('aeo\\AeoFrontendUtil', 'aeoGetContentElement');
|
||||
$GLOBALS['TL_HOOKS']['outputFrontendTemplate'][] = array('aeo\\AeoFrontendUtil', 'obfuscateEmails');
|
||||
$GLOBALS['TL_HOOKS']['getPageIdFromUrl'][] = array('aeo\\AeoRedirectUtil', 'getRedirectPageAeo');
|
||||
$GLOBALS['TL_HOOKS']['getFrontendModule'][] = array('cgoIT\\aeo\\AeoFrontendUtil', 'aeoGetFrontendModule');
|
||||
$GLOBALS['TL_HOOKS']['getContentElement'][] = array('cgoIT\\aeo\\AeoFrontendUtil', 'aeoGetContentElement');
|
||||
$GLOBALS['TL_HOOKS']['outputFrontendTemplate'][] = array('cgoIT\\aeo\\AeoFrontendUtil', 'obfuscateEmails');
|
||||
$GLOBALS['TL_HOOKS']['getPageIdFromUrl'][] = array('cgoIT\\aeo\\AeoRedirectUtil', 'getRedirectPageAeo');
|
||||
|
||||
/**
|
||||
* frontend moduls
|
||||
*/
|
||||
$GLOBALS['FE_MOD']['application']['aeo'] = 'aeo\\AeoModule';
|
||||
$GLOBALS['FE_MOD']['application']['aeo'] = 'cgoIT\\aeo\\AeoModule';
|
||||
|
||||
/**
|
||||
* content elements
|
||||
*/
|
||||
$GLOBALS['TL_CTE']['includes']['aeo'] = 'aeo\\AeoCE';
|
||||
$GLOBALS['TL_CTE']['includes']['aeo'] = 'cgoIT\\aeo\\AeoCE';
|
||||
|
||||
/**
|
||||
* PageTypes
|
||||
*/
|
||||
$GLOBALS['TL_PTY']['root'] = 'aeo\\PageRoot_Aeo';
|
||||
|
||||
?>
|
||||
$GLOBALS['TL_PTY']['root'] = 'cgoIT\\aeo\\PageRoot_Aeo';
|
@ -47,12 +47,13 @@ foreach ($GLOBALS['TL_DCA']['tl_content']['palettes'] as $key => $palette) {
|
||||
*/
|
||||
$GLOBALS['TL_DCA']['tl_content']['fields']['aeo_custom_template'] = array
|
||||
(
|
||||
'label' => &$GLOBALS['TL_LANG']['tl_content']['aeo_custom_template'],
|
||||
'default' => 'aeo_default_no_js',
|
||||
'exclude' => true,
|
||||
'inputType' => 'select',
|
||||
'options_callback' => array('tl_content_aeo', 'getAeoTemplates'),
|
||||
'eval' => array('tl_class'=>'w50')
|
||||
'label' => &$GLOBALS['TL_LANG']['tl_content']['aeo_custom_template'],
|
||||
'default' => 'aeo_default_no_js',
|
||||
'exclude' => true,
|
||||
'inputType' => 'select',
|
||||
'options_callback' => array('tl_content_aeo', 'getAeoTemplates'),
|
||||
'eval' => array('tl_class'=>'w50'),
|
||||
'sql' => "varchar(32) NOT NULL default ''"
|
||||
);
|
||||
|
||||
$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,
|
||||
'search' => false,
|
||||
'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
|
||||
@ -71,19 +73,21 @@ $GLOBALS['TL_DCA']['tl_content']['fields']['aeo_info_text'] = array
|
||||
'exclude' => true,
|
||||
'filter' => false,
|
||||
'search' => false,
|
||||
'inputType' => 'textarea',
|
||||
'eval' => array('rte'=>'tinyMCE', 'tl_class'=>'clr')
|
||||
'inputType' => 'textarea',
|
||||
'eval' => array('rte'=>'tinyMCE', 'tl_class'=>'clr'),
|
||||
'sql' => "mediumtext NULL"
|
||||
);
|
||||
|
||||
$GLOBALS['TL_DCA']['tl_content']['fields']['aeo_disable'] = array
|
||||
(
|
||||
'label' => &$GLOBALS['TL_LANG']['tl_content']['aeo_disable'],
|
||||
'default' => '',
|
||||
'default' => '',
|
||||
'exclude' => true,
|
||||
'filter' => true,
|
||||
'search' => false,
|
||||
'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/>.
|
||||
*
|
||||
* PHP version 5
|
||||
* @copyright cgo IT, 2012-2013
|
||||
* @copyright cgo IT, 2012-2017
|
||||
* @author Carsten Götzinger (info@cgo-it.de)
|
||||
* @package aeo
|
||||
* @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';
|
||||
}
|
||||
}
|
||||
//foreach ($GLOBALS['TL_DCA']['tl_module']['palettes'] as $key => $palette) {
|
||||
// if (!is_array($palette)) {
|
||||
// print "<h1>$key => $palette </h1>\n";
|
||||
// }
|
||||
//}
|
||||
|
||||
/**
|
||||
* fields
|
||||
*/
|
||||
$GLOBALS['TL_DCA']['tl_module']['fields']['aeo_custom_template'] = array
|
||||
(
|
||||
'label' => &$GLOBALS['TL_LANG']['tl_module']['aeo_custom_template'],
|
||||
'default' => 'aeo_default_no_js',
|
||||
'exclude' => true,
|
||||
'inputType' => 'select',
|
||||
'options_callback' => array('tl_module_aeo', 'getAeoTemplates'),
|
||||
'eval' => array('tl_class'=>'w50')
|
||||
'label' => &$GLOBALS['TL_LANG']['tl_module']['aeo_custom_template'],
|
||||
'default' => 'aeo_default_no_js',
|
||||
'exclude' => true,
|
||||
'inputType' => 'select',
|
||||
'options_callback' => array('tl_module_aeo', 'getAeoTemplates'),
|
||||
'eval' => array('tl_class'=>'w50'),
|
||||
'sql' => "varchar(32) NOT NULL default ''"
|
||||
);
|
||||
|
||||
$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,
|
||||
'search' => false,
|
||||
'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
|
||||
@ -76,19 +73,21 @@ $GLOBALS['TL_DCA']['tl_module']['fields']['aeo_info_text'] = array
|
||||
'exclude' => true,
|
||||
'filter' => false,
|
||||
'search' => false,
|
||||
'inputType' => 'textarea',
|
||||
'eval' => array('rte'=>'tinyMCE', 'tl_class'=>'clr')
|
||||
'inputType' => 'textarea',
|
||||
'eval' => array('rte'=>'tinyMCE', 'tl_class'=>'clr'),
|
||||
'sql' => "mediumtext NULL"
|
||||
);
|
||||
|
||||
$GLOBALS['TL_DCA']['tl_module']['fields']['aeo_disable'] = array
|
||||
(
|
||||
'label' => &$GLOBALS['TL_LANG']['tl_module']['aeo_disable'],
|
||||
'default' => '',
|
||||
'default' => '',
|
||||
'exclude' => true,
|
||||
'filter' => false,
|
||||
'search' => false,
|
||||
'inputType' => 'checkbox',
|
||||
'eval' => array('tl_class'=>'long')
|
||||
'eval' => array('tl_class'=>'long'),
|
||||
'sql' => "char(1) NOT NULL default ''"
|
||||
);
|
||||
|
||||
/**
|
@ -191,14 +191,14 @@ class AeoFrontendUtil extends \Frontend {
|
||||
if (TL_MODE == 'FE' && $this->replace_standard_obfuscation && $objPage2->id != $redirectPageId) {
|
||||
$strContent = $this->aeoReplaceInsertTags($strContent);
|
||||
|
||||
$this->import('String');
|
||||
$this->import('StringUtil');
|
||||
|
||||
// erst alle Mailadresse decodieren (Verschleierung von Contao rückgänging machen)
|
||||
$intOffset = 0;
|
||||
$arrNoAeoAreas = $this->aeo->getNoAeoAreas($strContent);
|
||||
while (preg_match('/(&#[x]?\w+;)+/i', $strContent, $arrEmail, PREG_OFFSET_CAPTURE, $intOffset)) {
|
||||
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)) {
|
||||
// erst alle verlinkten eMail-Adressen entschleiern
|
||||
$strContent = $this->aeo->str_replace($arrEmail[0][0], $strDecodedMail, $strContent, $arrEmail[0][1]);
|
||||
@ -281,17 +281,17 @@ class AeoFrontendUtil extends \Frontend {
|
||||
continue;
|
||||
}
|
||||
|
||||
$this->import('String');
|
||||
$this->import('StringUtil');
|
||||
if ($GLOBALS['TL_CONFIG']['aeo_replace_standard_obfuscation'] === true &&
|
||||
$this->aeo->isEnabled($position, $arrNoAeoAreas)) {
|
||||
// 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);
|
||||
$intOffset += strlen($strValue);
|
||||
} else {
|
||||
// AEO nicht aktiv oder Bereich auf deaktiviert gestellt
|
||||
$strEmail = $this->String->encodeEmail($this->String->decodeEntities($arrTag[1]));
|
||||
$strValue = '<a href="mailto:' . $this->String->encodeEmail($strEmail) . '" class="email">' . $this->String->encodeEmail(preg_replace('/\?.*$/', '', $strEmail)) . '</a>';
|
||||
$strEmail = $this->StringUtil->encodeEmail($this->StringUtil->decodeEntities($arrTag[1]));
|
||||
$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);
|
||||
$intOffset += strlen($strValue);
|
||||
}
|
||||
@ -402,8 +402,8 @@ class Aeo extends \System {
|
||||
// passendes CSS hinzufügen
|
||||
$strLink .= $this->obfuscateWithMethod($arrEmail[0], $method, true, 0, 0).'@'.$strDomain.'.'.$strTld;
|
||||
} else {
|
||||
$this->import('String');
|
||||
$strLink .= $this->String->encodeEmail($email);
|
||||
$this->import('StringUtil');
|
||||
$strLink .= $this->StringUtil->encodeEmail($email);
|
||||
}
|
||||
$strLink .= '</a>';
|
||||
return $this->createSpecialEntities($strLink);
|
Loading…
Reference in New Issue
Block a user