Initialer Commit in GIT
This commit is contained in:
112
dca/tl_content.php
Normal file
112
dca/tl_content.php
Normal file
@ -0,0 +1,112 @@
|
||||
<?php
|
||||
|
||||
/**
|
||||
* Contao Open Source CMS
|
||||
* Copyright (C) 2005-2011 Leo Feyer
|
||||
*
|
||||
* Formerly known as TYPOlight Open Source CMS.
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or
|
||||
* modify it under the terms of the GNU Lesser General Public
|
||||
* License as published by the Free Software Foundation, either
|
||||
* version 3 of the License, or (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
* Lesser General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU Lesser General Public
|
||||
* License along with this program. If not, please visit the Free
|
||||
* Software Foundation website at <http://www.gnu.org/licenses/>.
|
||||
*
|
||||
* PHP version 5
|
||||
* @copyright cgo IT, 2012-2013
|
||||
* @author Carsten Götzinger (info@cgo-it.de)
|
||||
* @package aeo
|
||||
* @license GNU/LGPL
|
||||
* @filesource
|
||||
*/
|
||||
|
||||
/**
|
||||
* palettes
|
||||
*/
|
||||
$GLOBALS['TL_DCA']['tl_content']['palettes']['aeo'] = '{type_legend},type,headline;{aeo_legend},aeo_show_info,aeo_info_text,aeo_disable;{template_legend:hide},aeo_custom_template;{protected_legend:hide},protected;{expert_legend:hide},guests,cssID,space';
|
||||
|
||||
/**
|
||||
* extend existing expert_legend
|
||||
*/
|
||||
foreach ($GLOBALS['TL_DCA']['tl_content']['palettes'] as $key => $palette) {
|
||||
if (!is_array($palette) && $key != 'aeo') {
|
||||
$GLOBALS['TL_DCA']['tl_content']['palettes'][$key] = $palette.';{aeo_legend:hide},aeo_disable';
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* fields
|
||||
*/
|
||||
$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')
|
||||
);
|
||||
|
||||
$GLOBALS['TL_DCA']['tl_content']['fields']['aeo_show_info'] = array
|
||||
(
|
||||
'label' => &$GLOBALS['TL_LANG']['tl_content']['aeo_show_info'],
|
||||
'exclude' => true,
|
||||
'filter' => true,
|
||||
'search' => false,
|
||||
'inputType' => 'checkbox',
|
||||
'eval' => array('tl_class'=>'w50')
|
||||
);
|
||||
|
||||
$GLOBALS['TL_DCA']['tl_content']['fields']['aeo_info_text'] = array
|
||||
(
|
||||
'label' => &$GLOBALS['TL_LANG']['tl_content']['aeo_info_text'],
|
||||
'exclude' => true,
|
||||
'filter' => true,
|
||||
'search' => true,
|
||||
'inputType' => 'textarea',
|
||||
'eval' => array('rte'=>'tinyMCE', 'tl_class'=>'clr')
|
||||
);
|
||||
|
||||
$GLOBALS['TL_DCA']['tl_content']['fields']['aeo_disable'] = array
|
||||
(
|
||||
'label' => &$GLOBALS['TL_LANG']['tl_content']['aeo_disable'],
|
||||
'default' => '',
|
||||
'exclude' => true,
|
||||
'filter' => true,
|
||||
'search' => false,
|
||||
'inputType' => 'checkbox',
|
||||
'eval' => array('tl_class'=>'long')
|
||||
);
|
||||
|
||||
/**
|
||||
* Class tl_content_aeo
|
||||
*/
|
||||
class tl_content_aeo extends \Backend
|
||||
{
|
||||
|
||||
/**
|
||||
* Return all navigation templates as array
|
||||
* @param DataContainer
|
||||
* @return array
|
||||
*/
|
||||
public function getAeoTemplates(\DataContainer $dc)
|
||||
{
|
||||
$intPid = $dc->activeRecord->pid;
|
||||
|
||||
if ($this->Input->get('act') == 'overrideAll')
|
||||
{
|
||||
$intPid = $this->Input->get('id');
|
||||
}
|
||||
|
||||
return $this->getTemplateGroup('aeo_', $intPid);
|
||||
}
|
||||
}
|
||||
?>
|
117
dca/tl_module.php
Normal file
117
dca/tl_module.php
Normal file
@ -0,0 +1,117 @@
|
||||
<?php
|
||||
|
||||
/**
|
||||
* Contao Open Source CMS
|
||||
* Copyright (C) 2005-2011 Leo Feyer
|
||||
*
|
||||
* Formerly known as TYPOlight Open Source CMS.
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or
|
||||
* modify it under the terms of the GNU Lesser General Public
|
||||
* License as published by the Free Software Foundation, either
|
||||
* version 3 of the License, or (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
* Lesser General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU Lesser General Public
|
||||
* License along with this program. If not, please visit the Free
|
||||
* Software Foundation website at <http://www.gnu.org/licenses/>.
|
||||
*
|
||||
* PHP version 5
|
||||
* @copyright cgo IT, 2012-2013
|
||||
* @author Carsten Götzinger (info@cgo-it.de)
|
||||
* @package aeo
|
||||
* @license GNU/LGPL
|
||||
* @filesource
|
||||
*/
|
||||
|
||||
/**
|
||||
* palettes
|
||||
*/
|
||||
$GLOBALS['TL_DCA']['tl_module']['palettes']['aeo'] = '{title_legend},name,headline,type;{aeo_legend},aeo_show_info,aeo_info_text,aeo_disable;{template_legend:hide},aeo_custom_template;{protected_legend:hide},protected;{expert_legend:hide},guests,cssID,space';
|
||||
|
||||
/**
|
||||
* extend existing expert_legend
|
||||
*/
|
||||
foreach ($GLOBALS['TL_DCA']['tl_module']['palettes'] as $key => $palette) {
|
||||
if (!is_array($palette) && $key != 'aeo') {
|
||||
$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')
|
||||
);
|
||||
|
||||
$GLOBALS['TL_DCA']['tl_module']['fields']['aeo_show_info'] = array
|
||||
(
|
||||
'label' => &$GLOBALS['TL_LANG']['tl_module']['aeo_show_info'],
|
||||
'exclude' => true,
|
||||
'filter' => true,
|
||||
'search' => false,
|
||||
'inputType' => 'checkbox',
|
||||
'eval' => array('tl_class'=>'w50')
|
||||
);
|
||||
|
||||
$GLOBALS['TL_DCA']['tl_module']['fields']['aeo_info_text'] = array
|
||||
(
|
||||
'label' => &$GLOBALS['TL_LANG']['tl_module']['aeo_info_text'],
|
||||
'exclude' => true,
|
||||
'filter' => true,
|
||||
'search' => true,
|
||||
'inputType' => 'textarea',
|
||||
'eval' => array('rte'=>'tinyMCE', 'tl_class'=>'clr')
|
||||
);
|
||||
|
||||
$GLOBALS['TL_DCA']['tl_module']['fields']['aeo_disable'] = array
|
||||
(
|
||||
'label' => &$GLOBALS['TL_LANG']['tl_module']['aeo_disable'],
|
||||
'default' => '',
|
||||
'exclude' => true,
|
||||
'filter' => true,
|
||||
'search' => false,
|
||||
'inputType' => 'checkbox',
|
||||
'eval' => array('tl_class'=>'long')
|
||||
);
|
||||
|
||||
/**
|
||||
* Class tl_module_aeo
|
||||
*/
|
||||
class tl_module_aeo extends \Backend
|
||||
{
|
||||
|
||||
/**
|
||||
* Return all navigation templates as array
|
||||
* @param DataContainer
|
||||
* @return array
|
||||
*/
|
||||
public function getAeoTemplates(\DataContainer $dc)
|
||||
{
|
||||
$intPid = $dc->activeRecord->pid;
|
||||
|
||||
if ($this->Input->get('act') == 'overrideAll')
|
||||
{
|
||||
$intPid = $this->Input->get('id');
|
||||
}
|
||||
|
||||
return $this->getTemplateGroup('aeo_', $intPid);
|
||||
}
|
||||
}
|
||||
?>
|
245
dca/tl_settings.php
Normal file
245
dca/tl_settings.php
Normal file
@ -0,0 +1,245 @@
|
||||
<?php
|
||||
|
||||
/**
|
||||
* Contao Open Source CMS
|
||||
* Copyright (C) 2005-2011 Leo Feyer
|
||||
*
|
||||
* Formerly known as TYPOlight Open Source CMS.
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or
|
||||
* modify it under the terms of the GNU Lesser General Public
|
||||
* License as published by the Free Software Foundation, either
|
||||
* version 3 of the License, or (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
* Lesser General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU Lesser General Public
|
||||
* License along with this program. If not, please visit the Free
|
||||
* Software Foundation website at <http://www.gnu.org/licenses/>.
|
||||
*
|
||||
* PHP version 5
|
||||
* @copyright cgo IT, 2012-2013
|
||||
* @author Carsten Götzinger (info@cgo-it.de)
|
||||
* @package aeo
|
||||
* @license GNU/LGPL
|
||||
* @filesource
|
||||
*/
|
||||
|
||||
/**
|
||||
* palettes
|
||||
*/
|
||||
$GLOBALS['TL_DCA']['tl_settings']['palettes']['__selector__'][] = 'aeo_replace_standard_obfuscation';
|
||||
|
||||
$GLOBALS['TL_DCA']['tl_settings']['palettes']['default'] .= ';{aeo_legend:hide},aeo_replace_standard_obfuscation';
|
||||
|
||||
/**
|
||||
* Add subpalettes to tl_settings
|
||||
*/
|
||||
$GLOBALS['TL_DCA']['tl_settings']['subpalettes']['aeo_replace_standard_obfuscation'] = 'aeo_use_rot_13,aeo_obfuscation_method,aeo_virtual_path,aeo_jump_to_no_js';
|
||||
|
||||
/**
|
||||
* fields
|
||||
*/
|
||||
$GLOBALS['TL_DCA']['tl_settings']['fields']['aeo_replace_standard_obfuscation'] = array
|
||||
(
|
||||
'label' => &$GLOBALS['TL_LANG']['tl_settings']['aeo_replace_standard_obfuscation'],
|
||||
'default' => '',
|
||||
'exclude' => true,
|
||||
'inputType' => 'checkbox',
|
||||
'eval' => array('tl_class'=>'w50', 'submitOnChange'=>true)
|
||||
);
|
||||
|
||||
$GLOBALS['TL_DCA']['tl_settings']['fields']['aeo_use_rot_13'] = array
|
||||
(
|
||||
'label' => &$GLOBALS['TL_LANG']['tl_settings']['aeo_use_rot_13'],
|
||||
'default' => '',
|
||||
'exclude' => true,
|
||||
'inputType' => 'checkbox',
|
||||
'eval' => array('tl_class'=>'w50')
|
||||
);
|
||||
|
||||
$GLOBALS['TL_DCA']['tl_settings']['fields']['aeo_virtual_path'] = array
|
||||
(
|
||||
'label' => &$GLOBALS['TL_LANG']['tl_settings']['aeo_virtual_path'],
|
||||
'default' => '',
|
||||
'exclude' => true,
|
||||
'inputType' => 'text',
|
||||
'eval' => array('decodeEntities'=>true, 'mandatory'=>true, 'tl_class'=>'w50', 'trailingSlash'=>false)
|
||||
);
|
||||
|
||||
$GLOBALS['TL_DCA']['tl_settings']['fields']['aeo_obfuscation_method'] = array
|
||||
(
|
||||
'label' => &$GLOBALS['TL_LANG']['tl_settings']['aeo_obfuscation_method'],
|
||||
'default' => 'shorten',
|
||||
'exclude' => true,
|
||||
'inputType' => 'select',
|
||||
'options' => array('shorten', 'rtl', 'nullspan'),
|
||||
'reference' => &$GLOBALS['TL_LANG']['tl_settings'],
|
||||
'eval' => array('helpwizard'=>true, 'mandatory'=>true, 'tl_class'=>'w50')
|
||||
);
|
||||
|
||||
$GLOBALS['TL_DCA']['tl_settings']['fields']['aeo_jump_to_no_js'] = array
|
||||
(
|
||||
'label' => &$GLOBALS['TL_LANG']['tl_settings']['aeo_jump_to_no_js'],
|
||||
'exclude' => true,
|
||||
'inputType' => 'multiColumnWizard',
|
||||
'save_callback' => array(
|
||||
array("tl_settings_aeo", "checkForDuplicateOrNoLanguageFallback"),
|
||||
array("tl_settings_aeo", "checkForDuplicateLanguage"),
|
||||
array("tl_settings_aeo", "checkForModuleOrCE")
|
||||
),
|
||||
'eval' => array(
|
||||
'style' => 'width:100%;',
|
||||
'tl_class' => 'clr',
|
||||
'columnFields' => array(
|
||||
'aeo_language_fallback' => array(
|
||||
'label' => &$GLOBALS['TL_LANG']['tl_settings']['aeo_language_fallback'],
|
||||
'default' => '',
|
||||
'exclude' => true,
|
||||
'inputType' => 'checkbox',
|
||||
'eval' => array(doNotCopy => true, multiple => false, 'tl_class' => 'm12', 'style' => 'width:50px; padding-bottom: 3px;', 'includeBlankOption' => true),
|
||||
),
|
||||
'aeo_language' => array(
|
||||
'label' => &$GLOBALS['TL_LANG']['tl_settings']['aeo_language'],
|
||||
'exclude' => true,
|
||||
'inputType' => 'select',
|
||||
'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),
|
||||
),
|
||||
'aeo_redirecturl' => array(
|
||||
'label' => &$GLOBALS['TL_LANG']['tl_settings']['aeo_redirecturl'],
|
||||
'exclude' => true,
|
||||
'inputType' => 'pageTree',
|
||||
'eval' => array('mandatory' => true, 'fieldType' => 'radio', 'tl_class' => 'clr'),
|
||||
'foreignKey' => 'tl_page.title',
|
||||
'sql' => "int(10) unsigned NOT NULL default '0'",
|
||||
'relation' => array('type'=>'hasOne', 'load'=>'lazy')
|
||||
)
|
||||
)
|
||||
)
|
||||
);
|
||||
|
||||
class tl_settings_aeo extends \Backend
|
||||
{
|
||||
|
||||
/**
|
||||
* Alle unterschiedlichen Seitensprachen suchen und zurückgeben
|
||||
*
|
||||
* @return array
|
||||
*/
|
||||
public function getAvailableLanguages() {
|
||||
$this->loadLanguageFile('languages');
|
||||
include(TL_ROOT . '/system/config/languages.php');
|
||||
|
||||
$arrReturn = array();
|
||||
|
||||
$arrLanguages = array();
|
||||
|
||||
$objResult = $this->Database->prepare("SELECT DISTINCT language FROM tl_page WHERE type = 'root'")->execute()->fetchAllAssoc();
|
||||
foreach (array_values($objResult) as $value) {
|
||||
array_push($arrLanguages, strtolower($value['language']));
|
||||
}
|
||||
|
||||
if (in_array('i18nl10n', $this->Config->getActiveModules())) {
|
||||
$languages = deserialize($GLOBALS['TL_CONFIG']['i18nl10n_languages']);
|
||||
foreach ($languages as $language) {
|
||||
array_push($arrLanguages, strtolower($language));
|
||||
}
|
||||
$arrLanguages = array_unique($arrLanguages);
|
||||
}
|
||||
|
||||
foreach ($arrLanguages as $language) {
|
||||
$arrReturn[$language] = strlen($GLOBALS['TL_LANG']['LNG'][$language]) ?
|
||||
utf8_romanize($GLOBALS['TL_LANG']['LNG'][$language]).' ('.strtoupper($language).')' : strtoupper($language);
|
||||
}
|
||||
return $arrReturn;
|
||||
}
|
||||
|
||||
public function checkForDuplicateOrNoLanguageFallback($varVal, \DataContainer $dc) {
|
||||
$arrValue = deserialize($varVal);
|
||||
|
||||
$count = 0;
|
||||
foreach ($arrValue as $key => $value) {
|
||||
if ($value['aeo_language_fallback']) {
|
||||
$count++;
|
||||
}
|
||||
if ($count > 1) {
|
||||
$_SESSION["TL_ERROR"][] = sprintf($GLOBALS['TL_LANG']['aeo']['aeo_error_duplicate'], $GLOBALS['TL_LANG']['tl_settings']['aeo_language_fallback'][0]);
|
||||
}
|
||||
}
|
||||
|
||||
if ($count == 0) {
|
||||
$_SESSION["TL_ERROR"][] = sprintf($GLOBALS['TL_LANG']['ERR']['mandatory'], $GLOBALS['TL_LANG']['tl_settings']['aeo_language_fallback'][0]);
|
||||
}
|
||||
|
||||
return serialize($arrValue);
|
||||
}
|
||||
|
||||
/**
|
||||
* Prüfen, ob eine Sprache zwei mal gewählt wurde
|
||||
*
|
||||
* @param string $varVal
|
||||
* @param DataContainer $dc
|
||||
* @return string
|
||||
*/
|
||||
public function checkForDuplicateLanguage($varVal, \DataContainer $dc) {
|
||||
$arrValue = deserialize($varVal);
|
||||
$arrValueFound = array();
|
||||
|
||||
foreach ($arrValue as $key => $value) {
|
||||
if (in_array($value["aeo_language"], $arrValueFound)) {
|
||||
$_SESSION["TL_ERROR"][] = sprintf($GLOBALS['TL_LANG']['aeo']['aeo_error_duplicate'], $GLOBALS['TL_LANG']['tl_settings']['aeo_language'][0]);
|
||||
}
|
||||
else {
|
||||
$arrValueFound[] = $value["aeo_language"];
|
||||
}
|
||||
}
|
||||
|
||||
return serialize($arrValue);
|
||||
}
|
||||
|
||||
/**
|
||||
* Prüfen, ob die Weiterleitungsseiten alle das Modul oder CE
|
||||
* "AEO" beinhalten.
|
||||
*
|
||||
* @param string $varVal
|
||||
* @param DataContainer $dc
|
||||
* @return string
|
||||
*/
|
||||
public function checkForModuleOrCE($varVal, \DataContainer $dc) {
|
||||
$this->import('\\Database', 'Database');
|
||||
$this->import('aeo\\AeoUtil', 'AeoUtil');
|
||||
|
||||
$arrValue = deserialize($varVal);
|
||||
foreach ($arrValue as $key => $value) {
|
||||
$objResult = $this->Database->prepare("SELECT count(*) as anzahl FROM tl_page p, tl_article a, tl_content c LEFT JOIN tl_module m ON c.module = m.id
|
||||
WHERE p.id = a.pid AND a.id = c.pid AND c.invisible <> 1 AND
|
||||
( m.type = 'aeo' OR c.type = 'aeo' ) AND p.id = ?")->limit(1)->execute($value["aeo_redirecturl"]);
|
||||
|
||||
if (($objResult->anzahl) == 0) {
|
||||
$_SESSION["TL_ERROR"][] = &$GLOBALS['TL_LANG']['aeo']['aeo_error_redirect'];
|
||||
}
|
||||
}
|
||||
|
||||
return serialize($arrValue);
|
||||
}
|
||||
|
||||
public function getUserFullName() {
|
||||
$this->import('jicw\\JICWHelper', 'JICWHelper');
|
||||
return $this->JICWHelper->getUserFullName();
|
||||
}
|
||||
|
||||
public function getUserEmail() {
|
||||
$this->import('jicw\\JICWHelper', 'JICWHelper');
|
||||
return $this->JICWHelper->getUserEmail();
|
||||
}
|
||||
|
||||
public function getInstalledModules() {
|
||||
$this->import('jicw\\JICWHelper', 'JICWHelper');
|
||||
return $this->JICWHelper->getInstalledModules();
|
||||
}
|
||||
}
|
||||
?>
|
Reference in New Issue
Block a user