<?php
namespace {
// Back end modules
$GLOBALS['BE_MOD'] = array(
// Content modules
'content' => array('article' => array('tables' => array('tl_article', 'tl_content'), 'table' => array(\Contao\CoreBundle\Controller\BackendCsvImportController::class, 'importTableWizardAction'), 'list' => array(\Contao\CoreBundle\Controller\BackendCsvImportController::class, 'importListWizardAction')), 'form' => array('tables' => array('tl_form', 'tl_form_field'), 'option' => array(\Contao\CoreBundle\Controller\BackendCsvImportController::class, 'importOptionWizardAction'))),
// Design modules
'design' => array('themes' => array('tables' => array('tl_theme', 'tl_module', 'tl_style_sheet', 'tl_style', 'tl_layout', 'tl_image_size', 'tl_image_size_item'), 'importTheme' => array(\Contao\Theme::class, 'importTheme'), 'exportTheme' => array(\Contao\Theme::class, 'exportTheme'), 'import' => array(\Contao\StyleSheets::class, 'importStyleSheet'), 'export' => array(\Contao\StyleSheets::class, 'exportStyleSheet')), 'page' => array('tables' => array('tl_page')), 'tpl_editor' => array('tables' => array('tl_templates'), 'new_tpl' => array('tl_templates', 'addNewTemplate'), 'compare' => array('tl_templates', 'compareTemplate'))),
// Account modules
'accounts' => array('member' => array('tables' => array('tl_member')), 'mgroup' => array('tables' => array('tl_member_group')), 'user' => array('tables' => array('tl_user')), 'group' => array('tables' => array('tl_user_group')), 'login' => array('tables' => array('tl_user'), 'hideInNavigation' => \true, 'disablePermissionChecks' => \true), 'security' => array('callback' => \Contao\ModuleTwoFactor::class, 'hideInNavigation' => \true, 'disablePermissionChecks' => \true)),
// System modules
'system' => array('files' => array('tables' => array('tl_files')), 'settings' => array('tables' => array('tl_settings')), 'maintenance' => array('callback' => \Contao\ModuleMaintenance::class), 'log' => array('tables' => array('tl_log')), 'preview_link' => array('tables' => array('tl_preview_link'), 'javascript' => 'bundles/contaocore/clipboard.min.js'), 'opt_in' => array('tables' => array('tl_opt_in'), 'resend' => array('tl_opt_in', 'resendToken')), 'undo' => array('tables' => array('tl_undo'), 'disablePermissionChecks' => \true)),
);
// Front end modules
$GLOBALS['FE_MOD'] = array('navigationMenu' => array('navigation' => \Contao\ModuleNavigation::class, 'customnav' => \Contao\ModuleCustomnav::class, 'breadcrumb' => \Contao\ModuleBreadcrumb::class, 'quicknav' => \Contao\ModuleQuicknav::class, 'quicklink' => \Contao\ModuleQuicklink::class, 'booknav' => \Contao\ModuleBooknav::class, 'articlenav' => \Contao\ModuleArticlenav::class, 'sitemap' => \Contao\ModuleSitemap::class), 'user' => array('login' => \Contao\ModuleLogin::class, 'logout' => \Contao\ModuleLogout::class, 'personalData' => \Contao\ModulePersonalData::class, 'registration' => \Contao\ModuleRegistration::class, 'changePassword' => \Contao\ModuleChangePassword::class, 'lostPassword' => \Contao\ModulePassword::class, 'closeAccount' => \Contao\ModuleCloseAccount::class), 'application' => array('form' => \Contao\Form::class, 'search' => \Contao\ModuleSearch::class), 'miscellaneous' => array('articlelist' => \Contao\ModuleArticleList::class, 'randomImage' => \Contao\ModuleRandomImage::class, 'html' => \Contao\ModuleHtml::class, 'rssReader' => \Contao\ModuleRssReader::class));
// Content elements
$GLOBALS['TL_CTE'] = array('texts' => array('headline' => \Contao\ContentHeadline::class, 'text' => \Contao\ContentText::class, 'html' => \Contao\ContentHtml::class, 'list' => \Contao\ContentList::class, 'table' => \Contao\ContentTable::class, 'code' => \Contao\ContentCode::class), 'accordion' => array('accordionSingle' => \Contao\ContentAccordion::class, 'accordionStart' => \Contao\ContentAccordionStart::class, 'accordionStop' => \Contao\ContentAccordionStop::class), 'slider' => array('sliderStart' => \Contao\ContentSliderStart::class, 'sliderStop' => \Contao\ContentSliderStop::class), 'links' => array('hyperlink' => \Contao\ContentHyperlink::class, 'toplink' => \Contao\ContentToplink::class), 'media' => array('image' => \Contao\ContentImage::class, 'gallery' => \Contao\ContentGallery::class, 'player' => \Contao\ContentMedia::class, 'youtube' => \Contao\ContentYouTube::class, 'vimeo' => \Contao\ContentVimeo::class), 'files' => array('download' => \Contao\ContentDownload::class, 'downloads' => \Contao\ContentDownloads::class), 'includes' => array('article' => \Contao\ContentArticle::class, 'alias' => \Contao\ContentAlias::class, 'form' => \Contao\Form::class, 'module' => \Contao\ContentModule::class, 'teaser' => \Contao\ContentTeaser::class));
// Back end form fields
$GLOBALS['BE_FFL'] = array('text' => \Contao\TextField::class, 'password' => \Contao\Password::class, 'textStore' => \Contao\TextStore::class, 'textarea' => \Contao\TextArea::class, 'select' => \Contao\SelectMenu::class, 'checkbox' => \Contao\CheckBox::class, 'checkboxWizard' => \Contao\CheckBoxWizard::class, 'radio' => \Contao\RadioButton::class, 'radioTable' => \Contao\RadioTable::class, 'inputUnit' => \Contao\InputUnit::class, 'trbl' => \Contao\TrblField::class, 'chmod' => \Contao\ChmodTable::class, 'picker' => \Contao\Picker::class, 'pageTree' => \Contao\PageTree::class, 'pageSelector' => \Contao\PageSelector::class, 'fileTree' => \Contao\FileTree::class, 'fileSelector' => \Contao\FileSelector::class, 'fileUpload' => \Contao\Upload::class, 'tableWizard' => \Contao\TableWizard::class, 'listWizard' => \Contao\ListWizard::class, 'optionWizard' => \Contao\OptionWizard::class, 'moduleWizard' => \Contao\ModuleWizard::class, 'keyValueWizard' => \Contao\KeyValueWizard::class, 'imageSize' => \Contao\ImageSize::class, 'timePeriod' => \Contao\TimePeriod::class, 'metaWizard' => \Contao\MetaWizard::class, 'sectionWizard' => \Contao\SectionWizard::class, 'serpPreview' => \Contao\SerpPreview::class, 'rootPageDependentSelect' => \Contao\RootPageDependentSelect::class);
// Front end form fields
$GLOBALS['TL_FFL'] = array('explanation' => \Contao\FormExplanation::class, 'html' => \Contao\FormHtml::class, 'fieldsetStart' => \Contao\FormFieldsetStart::class, 'fieldsetStop' => \Contao\FormFieldsetStop::class, 'text' => \Contao\FormTextField::class, 'password' => \Contao\FormPassword::class, 'textarea' => \Contao\FormTextArea::class, 'select' => \Contao\FormSelectMenu::class, 'radio' => \Contao\FormRadioButton::class, 'checkbox' => \Contao\FormCheckBox::class, 'upload' => \Contao\FormFileUpload::class, 'range' => \Contao\FormRange::class, 'hidden' => \Contao\FormHidden::class, 'captcha' => \Contao\FormCaptcha::class, 'submit' => \Contao\FormSubmit::class);
// Page types
$GLOBALS['TL_PTY'] = array('regular' => \Contao\PageRegular::class, 'forward' => \Contao\PageForward::class, 'redirect' => \Contao\PageRedirect::class, 'root' => \Contao\PageRoot::class, 'logout' => \Contao\PageLogout::class, 'error_401' => \Contao\PageError401::class, 'error_403' => \Contao\PageError403::class, 'error_404' => \Contao\PageError404::class);
// Maintenance
$GLOBALS['TL_MAINTENANCE'] = array(\Contao\Crawl::class, \Contao\PurgeData::class);
// Purge jobs
$GLOBALS['TL_PURGE'] = array('tables' => array('index' => array('callback' => array(\Contao\Automator::class, 'purgeSearchTables'), 'affected' => array('tl_search', 'tl_search_index', 'tl_search_term')), 'undo' => array('callback' => array(\Contao\Automator::class, 'purgeUndoTable'), 'affected' => array('tl_undo')), 'versions' => array('callback' => array(\Contao\Automator::class, 'purgeVersionTable'), 'affected' => array('tl_version')), 'log' => array('callback' => array(\Contao\Automator::class, 'purgeSystemLog'), 'affected' => array('tl_log')), 'crawl_queue' => array('callback' => array(\Contao\Automator::class, 'purgeCrawlQueue'), 'affected' => array('tl_crawl_queue'))), 'folders' => array('images' => array('callback' => array(\Contao\Automator::class, 'purgeImageCache'), 'affected' => array(\Contao\StringUtil::stripRootDir(\Contao\System::getContainer()->getParameter('contao.image.target_dir')))), 'previews' => array('callback' => array(\Contao\Automator::class, 'purgePreviewCache'), 'affected' => array(\Contao\StringUtil::stripRootDir(\Contao\System::getContainer()->getParameter('contao.image.preview.target_dir')))), 'scripts' => array('callback' => array(\Contao\Automator::class, 'purgeScriptCache'), 'affected' => array('assets/js', 'assets/css')), 'temp' => array('callback' => array(\Contao\Automator::class, 'purgeTempFolder'), 'affected' => array('system/tmp'))), 'custom' => array('pages' => array('callback' => array(\Contao\Automator::class, 'purgePageCache')), 'xml' => array('callback' => array(\Contao\Automator::class, 'generateXmlFiles')), 'symlinks' => array('callback' => array(\Contao\Automator::class, 'generateSymlinks'))));
// Backwards compatibility
// Image crop modes
$GLOBALS['TL_CROP'] = array('image_sizes' => array(), 'relative' => array('proportional', 'box'), 'exact' => array('crop', 'left_top', 'center_top', 'right_top', 'left_center', 'center_center', 'right_center', 'left_bottom', 'center_bottom', 'right_bottom'));
// Backwards compatibility
// Cron jobs
$GLOBALS['TL_CRON'] = array('monthly' => array(), 'weekly' => array(), 'daily' => array('purgeTempFolder' => array(\Contao\Automator::class, 'purgeTempFolder'), 'purgeRegistrations' => array(\Contao\Automator::class, 'purgeRegistrations'), 'purgeOptInTokens' => array(\Contao\Automator::class, 'purgeOptInTokens')), 'hourly' => array(), 'minutely' => array());
// Hooks
$GLOBALS['TL_HOOKS'] = array('getSystemMessages' => array(array(\Contao\Messages::class, 'languageFallback')));
// Register the auto_item keywords
$GLOBALS['TL_AUTO_ITEM'] = array('items', 'events');
// Register the supported CSS units
$GLOBALS['TL_CSS_UNITS'] = array('px', '%', 'em', 'rem', 'vw', 'vh', 'vmin', 'vmax', 'ex', 'pt', 'pc', 'in', 'cm', 'mm');
// Wrapper elements
$GLOBALS['TL_WRAPPERS'] = array('start' => array('accordionStart', 'sliderStart', 'fieldsetStart'), 'stop' => array('accordionStop', 'sliderStop', 'fieldsetStop'), 'single' => array('accordionSingle'), 'separator' => array());
// Models
$GLOBALS['TL_MODELS'] = array('tl_article' => \Contao\ArticleModel::class, 'tl_content' => \Contao\ContentModel::class, 'tl_files' => \Contao\FilesModel::class, 'tl_form_field' => \Contao\FormFieldModel::class, 'tl_form' => \Contao\FormModel::class, 'tl_image_size_item' => \Contao\ImageSizeItemModel::class, 'tl_image_size' => \Contao\ImageSizeModel::class, 'tl_layout' => \Contao\LayoutModel::class, 'tl_member_group' => \Contao\MemberGroupModel::class, 'tl_member' => \Contao\MemberModel::class, 'tl_module' => \Contao\ModuleModel::class, 'tl_opt_in' => \Contao\OptInModel::class, 'tl_page' => \Contao\PageModel::class, 'tl_style' => \Contao\StyleModel::class, 'tl_style_sheet' => \Contao\StyleSheetModel::class, 'tl_theme' => \Contao\ThemeModel::class, 'tl_user_group' => \Contao\UserGroupModel::class, 'tl_user' => \Contao\UserModel::class);
// Other global arrays
$GLOBALS['TL_PERMISSIONS'] = array();
}
namespace {
// Back end modules
$GLOBALS['BE_MOD']['accounts']['debug'] = array('enable' => array(\Contao\ManagerBundle\Controller\DebugController::class, 'enableAction'), 'disable' => array(\Contao\ManagerBundle\Controller\DebugController::class, 'disableAction'), 'hideInNavigation' => \true, 'disablePermissionChecks' => \true);
}
namespace {
/**
* This file is part of menatwork/contao-multicolumnwizard-bundle.
*
* (c) 2012-2019 MEN AT WORK.
*
* For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code.
*
* This project is provided in good faith and hope to be usable by anyone.
*
* @package menatwork/contao-multicolumnwizard-bundle
* @author Andreas Isaak <info@andreas-isaak.de>
* @author Andreas Schempp <andreas.schempp@terminal42.ch>
* @author Christian Schiffler <c.schiffler@cyberspectrum.de>
* @author David Maack <david.maack@arcor.de>
* @author fritzmg <email@spikx.net>
* @author Stefan Heimes <stefan_heimes@hotmail.com>
* @author Tristan Lins <tristan.lins@bit3.de>
* @author Yanick Witschi <yanick.witschi@certo-net.ch>
* @copyright 2011 Andreas Schempp
* @copyright 2011 certo web & design GmbH
* @copyright 2013-2019 MEN AT WORK
* @license https://github.com/menatwork/contao-multicolumnwizard-bundle/blob/master/LICENSE LGPL-3.0-or-later
* @filesource
*/
$GLOBALS['BE_FFL']['multiColumnWizard'] = '\\MenAtWork\\MultiColumnWizardBundle\\Contao\\Widgets\\MultiColumnWizard';
$GLOBALS['TL_HOOKS']['loadDataContainer'][] = array('MenAtWork\\MultiColumnWizardBundle\\EventListener\\Contao\\LoadDataContainer', 'supportModalSelector');
$GLOBALS['TL_HOOKS']['initializeSystem'][] = array('MenAtWork\\MultiColumnWizardBundle\\EventListener\\Contao\\InitializeSystem', 'changeAjaxPostActions');
$GLOBALS['TL_HOOKS']['executePostActions'][] = array('MenAtWork\\MultiColumnWizardBundle\\EventListener\\Contao\\ExecutePostActions', 'executePostActions');
$GLOBALS['TL_HOOKS']['executePostActions'][] = array('MenAtWork\\MultiColumnWizardBundle\\EventListener\\Contao\\ExecutePostActions', 'handleRowCreation');
if (\TL_MODE == 'BE') {
$GLOBALS['TL_HOOKS']['parseTemplate'][] = array('MenAtWork\\MultiColumnWizardBundle\\EventListener\\Contao\\ParseTemplate', 'addVersion');
// Add the JS.
$GLOBALS['TL_JAVASCRIPT']['multicolumnwizard'] = $GLOBALS['TL_CONFIG']['debugMode'] ? 'bundles/multicolumnwizard/js/multicolumnwizard_be_src.js' : 'bundles/multicolumnwizard/js/multicolumnwizard_be.js';
// Add the css.
$GLOBALS['TL_CSS']['multicolumnwizard'] = $GLOBALS['TL_CONFIG']['debugMode'] ? 'bundles/multicolumnwizard/css/multicolumnwizard_src.css' : 'bundles/multicolumnwizard/css/multicolumnwizard.css';
}
}
namespace {
/**
* Haste utilities for Contao Open Source CMS
*
* Copyright (C) 2012-2013 Codefog & terminal42 gmbh
*
* @package Haste
* @link http://github.com/codefog/contao-haste/
* @license http://opensource.org/licenses/lgpl-3.0.html LGPL
*/
/**
* Add the "haste_undo" operation to "undo" module
*/
$GLOBALS['BE_MOD']['system']['undo']['haste_undo'] = array('Haste\\Util\\Undo', 'callback');
/**
* Backend widgets
*/
$GLOBALS['BE_FFL']['numberField'] = 'Haste\\Number\\BackendWidget';
/**
* Hooks
*/
$GLOBALS['TL_HOOKS']['executePostActions'][] = array('Haste\\Dca\\AjaxOperations', 'executePostActions');
$GLOBALS['TL_HOOKS']['getContentElement'][] = ['Haste\\EventListener\\AjaxReloadListener', 'onGetContentElement'];
$GLOBALS['TL_HOOKS']['getFrontendModule'][] = ['Haste\\EventListener\\AjaxReloadListener', 'onGetFrontendModule'];
$GLOBALS['TL_HOOKS']['loadDataContainer'][] = array('Haste\\Dca\\DateRangeFilter', 'addCallbacks');
$GLOBALS['TL_HOOKS']['loadDataContainer'][] = array('Haste\\Dca\\AjaxOperations', 'modifyDca');
$GLOBALS['TL_HOOKS']['loadDataContainer'][] = array('Haste\\Model\\Relations', 'addRelationCallbacks');
$GLOBALS['TL_HOOKS']['modifyFrontendPage'][] = ['Haste\\EventListener\\AjaxReloadListener', 'onModifyFrontendPage'];
$GLOBALS['TL_HOOKS']['replaceInsertTags'][] = array('Haste\\Util\\InsertTag', 'replaceHasteInsertTags');
$GLOBALS['TL_HOOKS']['reviseTable'][] = array('Haste\\Model\\Relations', 'reviseRelatedRecords');
if (\TL_MODE !== 'FE') {
$GLOBALS['TL_HOOKS']['sqlGetFromFile'][] = ['Haste\\Model\\Relations', 'addRelationTables'];
}
/**
* Haste hooks
*/
$GLOBALS['HASTE_HOOKS']['undoData'] = array(array('Haste\\Model\\Relations', 'undoRelations'));
}
namespace {
$GLOBALS['BE_FFL']['conditionalselect'] = \Terminal42\ConditionalSelectMenuBundle\Widget\BackendWidget::class;
$GLOBALS['TL_FFL']['conditionalselect'] = \Terminal42\ConditionalSelectMenuBundle\Widget\FrontendWidget::class;
}
namespace {
$GLOBALS['BE_FFL']['tableLookup'] = \Terminal42\TableLookupWizardBundle\Widget\TableLookupWizard::class;
}
namespace {
/**
* dcawizard extension for Contao Open Source CMS
*
* @copyright Copyright (c) 2014, terminal42 gmbh
* @author terminal42 gmbh <info@terminal42.ch>
* @license http://opensource.org/licenses/lgpl-3.0.html LGPL
* @link https://github.com/terminal42/contao-dcawizard
*/
/**
* Backend form fields
*/
$GLOBALS['BE_FFL']['dcaWizard'] = 'DcaWizard';
$GLOBALS['BE_FFL']['dcaWizardMultilingual'] = 'DcaWizardMultilingual';
/**
* Hooks
*/
$GLOBALS['TL_HOOKS']['executePostActions'][] = array('DcaWizardHelper', 'handleAjaxActions');
$GLOBALS['TL_HOOKS']['loadDataContainer'][] = array('DcaWizardHelper', 'loadDataContainer');
}
namespace {
/**
* notification_center extension for Contao Open Source CMS
*
* @copyright Copyright (c) 2008-2015, terminal42
* @author terminal42 gmbh <info@terminal42.ch>
* @license LGPL
*/
/**
* Back end modules
*/
\array_insert($GLOBALS['BE_MOD'], 1, array('notification_center' => array('nc_notifications' => array('tables' => array('tl_nc_notification', 'tl_nc_message', 'tl_nc_language')), 'nc_queue' => array('tables' => array('tl_nc_queue'), 're-queue' => array('NotificationCenter\\tl_nc_queue', 'reQueue')), 'nc_gateways' => array('tables' => array('tl_nc_gateway')))));
// Load icon in Contao 4.2 backend
if ('BE' === \TL_MODE) {
$GLOBALS['TL_CSS'][] = 'system/modules/notification_center/assets/backend.css';
}
/**
* Front end modules
*/
$GLOBALS['FE_MOD']['user']['lostPasswordNotificationCenter'] = 'ModulePasswordNotificationCenter';
if (\in_array('newsletter', \ModuleLoader::getActive(), \true)) {
$GLOBALS['FE_MOD']['newsletter']['newsletterSubscribeNotificationCenter'] = 'ModuleNewsletterSubscribeNotificationCenter';
$GLOBALS['FE_MOD']['newsletter']['newsletterActivateNotificationCenter'] = 'ModuleNewsletterActivateNotificationCenter';
$GLOBALS['FE_MOD']['newsletter']['newsletterUnsubscribeNotificationCenter'] = 'ModuleNewsletterUnsubscribeNotificationCenter';
}
/**
* Models
*/
$GLOBALS['TL_MODELS']['tl_nc_notification'] = 'NotificationCenter\\Model\\Notification';
$GLOBALS['TL_MODELS']['tl_nc_gateway'] = 'NotificationCenter\\Model\\Gateway';
$GLOBALS['TL_MODELS']['tl_nc_language'] = 'NotificationCenter\\Model\\Language';
$GLOBALS['TL_MODELS']['tl_nc_message'] = 'NotificationCenter\\Model\\Message';
$GLOBALS['TL_MODELS']['tl_nc_queue'] = 'NotificationCenter\\Model\\QueuedMessage';
/**
* Cron jobs
*/
$GLOBALS['TL_CRON']['minutely'][] = array('NotificationCenter\\Frontend\\PoorMansCron', 'minutely');
$GLOBALS['TL_CRON']['hourly'][] = array('NotificationCenter\\Frontend\\PoorMansCron', 'hourly');
$GLOBALS['TL_CRON']['daily'][] = array('NotificationCenter\\Frontend\\PoorMansCron', 'daily');
$GLOBALS['TL_CRON']['weekly'][] = array('NotificationCenter\\Frontend\\PoorMansCron', 'weekly');
$GLOBALS['TL_CRON']['monthly'][] = array('NotificationCenter\\Frontend\\PoorMansCron', 'monthly');
/**
* Hooks
*/
$GLOBALS['TL_HOOKS']['addCustomRegexp'][] = array('NotificationCenter\\AutoSuggester', 'verifyTokens');
$GLOBALS['TL_HOOKS']['processFormData'][] = array('NotificationCenter\\tl_form', 'sendFormNotification');
$GLOBALS['TL_HOOKS']['createNewUser'][] = array('NotificationCenter\\ContaoHelper', 'sendRegistrationEmail');
$GLOBALS['TL_HOOKS']['updatePersonalData'][] = array('NotificationCenter\\ContaoHelper', 'sendPersonalDataEmail');
$GLOBALS['TL_HOOKS']['getUserNavigation'][] = array('NotificationCenter\\ContaoHelper', 'addQueueToUserNavigation');
$GLOBALS['TL_HOOKS']['activateAccount'][] = array('NotificationCenter\\ContaoHelper', 'sendActivationEmail');
$GLOBALS['TL_HOOKS']['getSystemMessages'][] = array('NotificationCenter\\ContaoHelper', 'alertLegacySmtpSetting');
/**
* Queue manager
*/
$GLOBALS['NOTIFICATION_CENTER']['QUEUE_MANAGER'] = new \NotificationCenter\Queue\QueueManager();
/**
* Notification Center Gateways
*/
$GLOBALS['NOTIFICATION_CENTER']['GATEWAY'] = \array_merge((array) ($GLOBALS['NOTIFICATION_CENTER']['GATEWAY'] ?? []), array('queue' => 'NotificationCenter\\Gateway\\Queue', 'email' => 'NotificationCenter\\Gateway\\Email', 'file' => 'NotificationCenter\\Gateway\\File', 'postmark' => 'NotificationCenter\\Gateway\\Postmark'));
/**
* Notification Center Notification Types
*/
$GLOBALS['NOTIFICATION_CENTER']['NOTIFICATION_TYPE'] = \array_merge_recursive((array) ($GLOBALS['NOTIFICATION_CENTER']['NOTIFICATION_TYPE'] ?? []), array('contao' => array('core_form' => array('recipients' => array('admin_email', 'form_*', 'formconfig_*'), 'email_subject' => array('form_*', 'formconfig_*', 'admin_email'), 'email_text' => array('form_*', 'formconfig_*', 'formlabel_*', 'raw_data', 'raw_data_filled', 'admin_email'), 'email_html' => array('form_*', 'formconfig_*', 'formlabel_*', 'raw_data', 'raw_data_filled', 'admin_email'), 'file_name' => array('form_*', 'formconfig_*', 'admin_email'), 'file_content' => array('form_*', 'formconfig_*', 'formlabel_*', 'raw_data', 'raw_data_filled', 'admin_email'), 'email_sender_name' => array('admin_email', 'form_*', 'formconfig_*'), 'email_sender_address' => array('admin_email', 'form_*', 'formconfig_*'), 'email_recipient_cc' => array('admin_email', 'form_*', 'formconfig_*'), 'email_recipient_bcc' => array('admin_email', 'form_*', 'formconfig_*'), 'email_replyTo' => array('admin_email', 'form_*', 'formconfig_*'), 'attachment_tokens' => array('form_*', 'formconfig_*')), 'member_activation' => array('recipients' => array('member_email', 'admin_email'), 'email_subject' => array('domain', 'member_*', 'admin_email'), 'email_text' => array('domain', 'member_*', 'admin_email'), 'email_html' => array('domain', 'member_*', 'admin_email'), 'file_name' => array('domain', 'member_*', 'admin_email'), 'file_content' => array('domain', 'member_*', 'admin_email'), 'email_sender_name' => array('admin_email', 'form_*'), 'email_sender_address' => array('admin_email', 'form_*'), 'email_recipient_cc' => array('admin_email', 'member_*'), 'email_recipient_bcc' => array('admin_email', 'member_*'), 'email_replyTo' => array('admin_email', 'member_*')), 'member_registration' => array('recipients' => array('member_email', 'admin_email'), 'email_subject' => array('domain', 'link', 'member_*', 'admin_email'), 'email_text' => array('domain', 'link', 'member_*', 'admin_email'), 'email_html' => array('domain', 'link', 'member_*', 'admin_email'), 'file_name' => array('domain', 'link', 'member_*', 'admin_email'), 'file_content' => array('domain', 'link', 'member_*', 'admin_email'), 'email_sender_name' => array('admin_email', 'member_*'), 'email_sender_address' => array('admin_email', 'member_*'), 'email_recipient_cc' => array('admin_email', 'member_*'), 'email_recipient_bcc' => array('admin_email', 'member_*'), 'email_replyTo' => array('admin_email', 'member_*')), 'member_personaldata' => array('recipients' => array('member_email', 'admin_email'), 'email_subject' => array('domain', 'member_*', 'member_old_*', 'changed_*', 'admin_email'), 'email_text' => array('domain', 'member_*', 'member_old_*', 'changed_*', 'admin_email'), 'email_html' => array('domain', 'member_*', 'member_old_*', 'changed_*', 'admin_email'), 'email_sender_name' => array('member_*'), 'email_sender_address' => array('member_email', 'admin_email'), 'email_recipient_cc' => array('member_email', 'admin_email'), 'email_recipient_bcc' => array('member_email', 'admin_email'), 'email_replyTo' => array('member_email', 'admin_email')), 'member_password' => array('recipients' => array('recipient_email'), 'email_subject' => array('domain', 'link', 'member_*', 'recipient_email'), 'email_text' => array('domain', 'link', 'member_*', 'recipient_email'), 'email_html' => array('domain', 'link', 'member_*', 'recipient_email'), 'file_name' => array('domain', 'link', 'member_*', 'recipient_email'), 'file_content' => array('domain', 'link', 'member_*', 'recipient_email'), 'email_sender_name' => array('recipient_email'), 'email_sender_address' => array('recipient_email'), 'email_recipient_cc' => array('recipient_email'), 'email_recipient_bcc' => array('recipient_email'), 'email_replyTo' => array('recipient_email')))));
// Add the newsletter tokens only if the extension is active
if (\in_array('newsletter', \Contao\ModuleLoader::getActive(), \true)) {
$GLOBALS['NOTIFICATION_CENTER']['NOTIFICATION_TYPE']['contao']['newsletter_subscribe'] = array('recipients' => array('recipient_email', 'admin_email'), 'email_subject' => array('domain', 'link', 'recipient_email', 'admin_email', 'channels', 'channel_ids', 'subject'), 'email_text' => array('domain', 'link', 'recipient_email', 'admin_email', 'channels', 'channel_ids', 'token'), 'email_html' => array('domain', 'link', 'recipient_email', 'admin_email', 'channels', 'channel_ids', 'token'), 'file_name' => array('domain', 'link', 'recipient_email', 'admin_email', 'channels', 'channel_ids'), 'file_content' => array('domain', 'link', 'recipient_email', 'admin_email', 'channels', 'channel_ids', 'token'), 'email_sender_name' => array('recipient_email', 'admin_email', 'admin_name'), 'email_sender_address' => array('recipient_email', 'admin_email'), 'email_recipient_cc' => array('recipient_email', 'admin_email'), 'email_recipient_bcc' => array('recipient_email', 'admin_email'), 'email_replyTo' => array('recipient_email', 'admin_email'));
$GLOBALS['NOTIFICATION_CENTER']['NOTIFICATION_TYPE']['contao']['newsletter_activate'] = array('recipients' => array('recipient_email', 'admin_email'), 'email_subject' => array('domain', 'recipient_email', 'admin_email', 'channels', 'channel_ids', 'subject'), 'email_text' => array('domain', 'recipient_email', 'admin_email', 'channels', 'channel_ids'), 'email_html' => array('domain', 'recipient_email', 'admin_email', 'channels', 'channel_ids'), 'file_name' => array('domain', 'recipient_email', 'admin_email', 'channels', 'channel_ids'), 'file_content' => array('domain', 'recipient_email', 'admin_email', 'channels', 'channel_ids'), 'email_sender_name' => array('recipient_email', 'admin_email', 'admin_name'), 'email_sender_address' => array('recipient_email', 'admin_email'), 'email_recipient_cc' => array('recipient_email', 'admin_email'), 'email_recipient_bcc' => array('recipient_email', 'admin_email'), 'email_replyTo' => array('recipient_email', 'admin_email'));
$GLOBALS['NOTIFICATION_CENTER']['NOTIFICATION_TYPE']['contao']['newsletter_unsubscribe'] = array('recipients' => array('recipient_email', 'admin_email'), 'email_subject' => array('domain', 'recipient_email', 'admin_email', 'channels', 'channel_ids', 'subject'), 'email_text' => array('domain', 'recipient_email', 'admin_email', 'channels', 'channel_ids'), 'email_html' => array('domain', 'recipient_email', 'admin_email', 'channels', 'channel_ids'), 'file_name' => array('domain', 'recipient_email', 'admin_email', 'channels', 'channel_ids'), 'file_content' => array('domain', 'recipient_email', 'admin_email', 'channels', 'channel_ids'), 'email_sender_name' => array('recipient_email', 'admin_email', 'admin_name'), 'email_sender_address' => array('recipient_email', 'admin_email'), 'email_recipient_cc' => array('recipient_email', 'admin_email'), 'email_recipient_bcc' => array('recipient_email', 'admin_email'), 'email_replyTo' => array('recipient_email', 'admin_email'));
}
}
namespace {
/*
* Isotope eCommerce for Contao Open Source CMS
*
* Copyright (C) 2009 - 2019 terminal42 gmbh & Isotope eCommerce Workgroup
*
* @link https://isotopeecommerce.org
* @license https://opensource.org/licenses/lgpl-3.0.html
*/
/**
* Backend modules
*/
if (!\is_array($GLOBALS['BE_MOD']['isotope'] ?? \null)) {
\array_insert($GLOBALS['BE_MOD'], 1, array('isotope' => array()));
}
\array_insert($GLOBALS['BE_MOD']['isotope'], 0, array('iso_products' => array('tables' => array(\Isotope\Model\Product::getTable(), \Isotope\Model\Group::getTable(), \Isotope\Model\ProductCategory::getTable(), \Isotope\Model\Download::getTable(), \Isotope\Model\RelatedProduct::getTable(), \Isotope\Model\ProductPrice::getTable(), 'tl_iso_product_pricetier', \Isotope\Model\AttributeOption::getTable()), 'javascript' => 'system/modules/isotope/assets/js/backend.js', 'generate' => array('Isotope\\Backend\\Product\\VariantGenerator', 'generate'), 'import' => array('Isotope\\Backend\\Product\\AssetImport', 'generate'), 'fallback' => array('Isotope\\Backend\\Product\\Fallback', 'setFromUrl')), 'iso_orders' => array('tables' => array(\Isotope\Model\ProductCollection::getTable(), \Isotope\Model\ProductCollectionItem::getTable(), \Isotope\Model\ProductCollectionSurcharge::getTable(), \Isotope\Model\ProductCollectionDownload::getTable(), \Isotope\Model\Address::getTable()), 'javascript' => 'system/modules/isotope/assets/js/backend.js', 'print_document' => array('Isotope\\Backend\\ProductCollection\\Callback', 'printDocument'), 'payment' => array('Isotope\\Backend\\ProductCollection\\Callback', 'paymentInterface'), 'shipping' => array('Isotope\\Backend\\ProductCollection\\Callback', 'shippingInterface')), 'iso_setup' => array('callback' => 'Isotope\\BackendModule\\Setup', 'tables' => array(), 'javascript' => 'system/modules/isotope/assets/js/backend.js')));
$GLOBALS['BE_MOD']['accounts']['member']['tables'][] = \Isotope\Model\Address::getTable();
if ('BE' === \TL_MODE) {
$GLOBALS['TL_CSS'][] = 'system/modules/isotope/assets/css/backend.css|static';
}
/**
* Isotope Modules
*/
$GLOBALS['ISO_MOD'] = array('product' => array('producttypes' => array('tables' => array(\Isotope\Model\ProductType::getTable()), 'icon' => 'system/modules/isotope/assets/images/setup-producttypes.png'), 'attributes' => array('tables' => array(\Isotope\Model\Attribute::getTable(), \Isotope\Model\AttributeOption::getTable()), 'icon' => 'system/modules/isotope/assets/images/setup-attributes.png'), 'related_categories' => array('tables' => array(\Isotope\Model\RelatedCategory::getTable()), 'icon' => 'system/modules/isotope/assets/images/setup-related_categories.png'), 'baseprice' => array('tables' => array(\Isotope\Model\BasePrice::getTable()), 'icon' => 'system/modules/isotope/assets/images/setup-baseprice.png')), 'checkout' => array('payment' => array('tables' => array(\Isotope\Model\Payment::getTable()), 'icon' => 'system/modules/isotope/assets/images/setup-payment.png'), 'shipping' => array('tables' => array(\Isotope\Model\Shipping::getTable()), 'icon' => 'system/modules/isotope/assets/images/setup-shipping.png'), 'tax_class' => array('tables' => array(\Isotope\Model\TaxClass::getTable()), 'icon' => 'system/modules/isotope/assets/images/setup-tax_class.png'), 'tax_rate' => array('tables' => array(\Isotope\Model\TaxRate::getTable()), 'icon' => 'system/modules/isotope/assets/images/setup-tax_rate.png')), 'config' => array('configs' => array('tables' => array(\Isotope\Model\Config::getTable()), 'icon' => 'system/modules/isotope/assets/images/setup-config.png'), 'orderstatus' => array('tables' => array(\Isotope\Model\OrderStatus::getTable()), 'icon' => 'system/modules/isotope/assets/images/setup-orderstatus.png'), 'notifications' => array('icon' => 'system/modules/isotope/assets/images/setup-notifications.png', 'redirect' => 'contao/main.php?do=nc_notifications'), 'documents' => array('tables' => array(\Isotope\Model\Document::getTable()), 'icon' => 'system/modules/isotope/assets/images/setup-documents.png'), 'gallery' => array('tables' => array(\Isotope\Model\Gallery::getTable()), 'icon' => 'system/modules/isotope/assets/images/setup-gallery.png')), 'miscellaneous:hide' => array('labels' => array('tables' => array(\Isotope\Model\Label::getTable()), 'icon' => 'system/modules/isotope/assets/images/setup-labels.png'), 'integrity' => array('callback' => 'Isotope\\BackendModule\\Integrity', 'icon' => 'system/modules/isotope/assets/images/setup-integrity.png')));
/**
* Frontend modules
*/
$GLOBALS['FE_MOD']['isotope'] = array('iso_productlist' => 'Isotope\\Module\\ProductList', 'iso_productvariantlist' => 'Isotope\\Module\\ProductVariantList', 'iso_productreader' => 'Isotope\\Module\\ProductReader', 'iso_favorites' => 'Isotope\\Module\\Favorites', 'iso_cart' => 'Isotope\\Module\\Cart', 'iso_checkout' => 'Isotope\\Module\\Checkout', 'iso_productfilter' => 'Isotope\\Module\\ProductFilter', 'iso_cumulativefilter' => 'Isotope\\Module\\CumulativeFilter', 'iso_categoryfilter' => 'Isotope\\Module\\CategoryFilter', 'iso_rangefilter' => 'Isotope\\Module\\RangeFilter', 'iso_orderhistory' => 'Isotope\\Module\\OrderHistory', 'iso_orderdetails' => 'Isotope\\Module\\OrderDetails', 'iso_wishlistmanager' => 'Isotope\\Module\\WishlistManager', 'iso_wishlistviewer' => 'Isotope\\Module\\WishlistViewer', 'iso_wishlistdetails' => 'Isotope\\Module\\WishlistDetails', 'iso_configswitcher' => 'Isotope\\Module\\ConfigSwitcher', 'iso_addressbook' => 'Isotope\\Module\\AddressBook', 'iso_relatedproducts' => 'Isotope\\Module\\RelatedProducts', 'iso_messages' => 'Isotope\\Module\\Messages', 'iso_shipping_calculator' => 'Isotope\\Module\\ShippingCalculator', 'iso_cart_address' => 'Isotope\\Module\\CartAddress', 'iso_trustedshops' => 'Isotope\\Module\\Trustedshops');
/**
* Backend form fields
*/
$GLOBALS['BE_FFL']['mediaManager'] = 'Isotope\\Widget\\MediaManager';
$GLOBALS['BE_FFL']['inheritCheckbox'] = 'Isotope\\Widget\\InheritCheckBox';
/**
* Payment methods
*/
\Isotope\Model\Payment::registerModelType('cash', 'Isotope\\Model\\Payment\\Cash');
\Isotope\Model\Payment::registerModelType('concardis', 'Isotope\\Model\\Payment\\Concardis');
\Isotope\Model\Payment::registerModelType('datatrans', 'Isotope\\Model\\Payment\\Datatrans');
\Isotope\Model\Payment::registerModelType('epay', 'Isotope\\Model\\Payment\\EPay');
\Isotope\Model\Payment::registerModelType('expercash', 'Isotope\\Model\\Payment\\Expercash');
\Isotope\Model\Payment::registerModelType('innopay', 'Isotope\\Model\\Payment\\Innopay');
\Isotope\Model\Payment::registerModelType('paybyway', 'Isotope\\Model\\Payment\\Paybyway');
\Isotope\Model\Payment::registerModelType('payone', 'Isotope\\Model\\Payment\\Payone');
\Isotope\Model\Payment::registerModelType('paypal', 'Isotope\\Model\\Payment\\Paypal');
\Isotope\Model\Payment::registerModelType('paypal_plus', 'Isotope\\Model\\Payment\\PaypalPlus');
\Isotope\Model\Payment::registerModelType('paypal_checkout', 'Isotope\\Model\\Payment\\PaypalCheckout');
\Isotope\Model\Payment::registerModelType('postfinance', 'Isotope\\Model\\Payment\\Postfinance');
\Isotope\Model\Payment::registerModelType('quickpay', 'Isotope\\Model\\Payment\\QuickPay');
\Isotope\Model\Payment::registerModelType('saferpay', 'Isotope\\Model\\Payment\\Saferpay');
\Isotope\Model\Payment::registerModelType('billpay_saferpay', 'Isotope\\Model\\Payment\\BillpayWithSaferpay');
\Isotope\Model\Payment::registerModelType('sparkasse', 'Isotope\\Model\\Payment\\Sparkasse');
\Isotope\Model\Payment::registerModelType('sofortueberweisung', 'Isotope\\Model\\Payment\\Sofortueberweisung');
\Isotope\Model\Payment::registerModelType('viveum', 'Isotope\\Model\\Payment\\Viveum');
\Isotope\Model\Payment::registerModelType('worldpay', 'Isotope\\Model\\Payment\\Worldpay');
\Isotope\Model\Payment::registerModelType('opp', 'Isotope\\Model\\Payment\\OpenPaymentPlatform');
if (\class_exists('Mpay24\\Mpay24')) {
\Isotope\Model\Payment::registerModelType('mpay24', 'Isotope\\Model\\Payment\\Mpay24');
}
if (\class_exists('Terminal42\\SwissbillingApi\\Client')) {
\Isotope\Model\Payment::registerModelType('swissbilling', 'Isotope\\Model\\Payment\\Swissbilling');
}
/**
* Shipping methods
*/
\Isotope\Model\Shipping::registerModelType('flat', 'Isotope\\Model\\Shipping\\Flat');
\Isotope\Model\Shipping::registerModelType('group', 'Isotope\\Model\\Shipping\\Group');
\Isotope\Model\Shipping::registerModelType('product_price', 'Isotope\\Model\\Shipping\\ProductPrice');
if (\class_exists('Petschko\\DHL\\BusinessShipment')) {
\Isotope\Model\Shipping::registerModelType('dhl_business', 'Isotope\\Model\\Shipping\\DHLBusiness');
}
/**
* Documents
*/
\Isotope\Model\Document::registerModelType('standard', 'Isotope\\Model\\Document\\Standard');
/**
* Galleries
*/
\Isotope\Model\Gallery::registerModelType('standard', 'Isotope\\Model\\Gallery\\Standard');
\Isotope\Model\Gallery::registerModelType('inline', 'Isotope\\Model\\Gallery\\Inline');
\Isotope\Model\Gallery::registerModelType('elevatezoom', 'Isotope\\Model\\Gallery\\ElevateZoom');
/**
* Products
*/
\Isotope\Model\Product::registerModelType('standard', 'Isotope\\Model\\Product\\Standard');
/**
* Product collections
*/
\Isotope\Model\ProductCollection::registerModelType('cart', 'Isotope\\Model\\ProductCollection\\Cart');
\Isotope\Model\ProductCollection::registerModelType('order', 'Isotope\\Model\\ProductCollection\\Order');
\Isotope\Model\ProductCollection::registerModelType('favorites', 'Isotope\\Model\\ProductCollection\\Favorites');
\Isotope\Model\ProductCollection::registerModelType('wishlist', 'Isotope\\Model\\ProductCollection\\Wishlist');
/**
* Product collection surcharge
*/
\Isotope\Model\ProductCollectionSurcharge::registerModelType('payment', 'Isotope\\Model\\ProductCollectionSurcharge\\Payment');
\Isotope\Model\ProductCollectionSurcharge::registerModelType('shipping', 'Isotope\\Model\\ProductCollectionSurcharge\\Shipping');
\Isotope\Model\ProductCollectionSurcharge::registerModelType('tax', 'Isotope\\Model\\ProductCollectionSurcharge\\Tax');
/**
* Attributes
*/
\Isotope\Model\Attribute::registerModelType('text', 'Isotope\\Model\\Attribute\\TextField');
\Isotope\Model\Attribute::registerModelType('textarea', 'Isotope\\Model\\Attribute\\TextArea');
\Isotope\Model\Attribute::registerModelType('select', 'Isotope\\Model\\Attribute\\SelectMenu');
\Isotope\Model\Attribute::registerModelType('radio', 'Isotope\\Model\\Attribute\\RadioButton');
\Isotope\Model\Attribute::registerModelType('checkbox', 'Isotope\\Model\\Attribute\\CheckboxMenu');
\Isotope\Model\Attribute::registerModelType('mediaManager', 'Isotope\\Model\\Attribute\\MediaManager');
\Isotope\Model\Attribute::registerModelType('fileTree', 'Isotope\\Model\\Attribute\\FileTree');
\Isotope\Model\Attribute::registerModelType('pageTree', 'Isotope\\Model\\Attribute\\PageTree');
\Isotope\Model\Attribute::registerModelType('downloads', 'Isotope\\Model\\Attribute\\Downloads');
\Isotope\Model\Attribute::registerModelType('upload', 'Isotope\\Model\\Attribute\\Upload');
\Isotope\Model\Attribute::registerModelType('media', 'Isotope\\Model\\Attribute\\Media');
\Isotope\Model\Attribute::registerModelType('quantitySurcharge', 'Isotope\\Model\\Attribute\\QuantitySurcharge');
if (\Composer\InstalledVersions::isInstalled('terminal42/contao-fineuploader')) {
\Isotope\Model\Attribute::registerModelType('fineUploader', 'Isotope\\Model\\Attribute\\FineUploader');
}
/**
* Product actions
*/
\Isotope\Frontend\ProductAction\Registry::add(new \Isotope\Frontend\ProductAction\UpdateAction());
\Isotope\Frontend\ProductAction\Registry::add(new \Isotope\Frontend\ProductAction\CartAction());
\Isotope\Frontend\ProductAction\Registry::add(new \Isotope\Frontend\ProductAction\FavoriteAction());
\Isotope\Frontend\ProductAction\Registry::add(new \Isotope\Frontend\ProductAction\WishlistAction());
/**
* Notification Center notification types
*/
$GLOBALS['NOTIFICATION_CENTER']['NOTIFICATION_TYPE']['isotope']['iso_order_status_change']['recipients'] = array('recipient_email', 'form_*', 'billing_address_email', 'shipping_address_email');
$GLOBALS['NOTIFICATION_CENTER']['NOTIFICATION_TYPE']['isotope']['iso_order_status_change']['attachment_tokens'] = array('form_*', 'document');
$GLOBALS['NOTIFICATION_CENTER']['NOTIFICATION_TYPE']['isotope']['iso_order_status_change']['email_text'] = array(
'uniqid',
'order_status',
'order_status_old',
'order_status_id',
'order_status_id_old',
'order_status_tracking_numbers',
'order_status_notes',
'recipient_email',
'order_id',
'order_items',
'order_products',
'order_subtotal',
'order_total',
'document_number',
'cart_html',
'cart_text',
'document',
'bank_name',
'bank_account',
'bank_code',
'tax_number',
'collection_*',
// All the collection fields
'billing_address',
// Formatted billing address
'billing_address_*',
// All the billing address model fields
'shipping_address',
// Formatted shipping address
'shipping_address_*',
// All the shipping address model fields
'form_*',
// All the order condition form fields
'payment_id',
// Payment method ID
'payment_label',
// Payment method label
'payment_note',
// Payment method note
'payment_*',
'shipping_id',
// Shipping method ID
'shipping_label',
// Shipping method label
'shipping_note',
// Shipping method note
'shipping_*',
'config_*',
// Store configuration model fields
'member_*',
);
$GLOBALS['NOTIFICATION_CENTER']['NOTIFICATION_TYPE']['isotope']['iso_order_status_change']['email_subject'] =& $GLOBALS['NOTIFICATION_CENTER']['NOTIFICATION_TYPE']['isotope']['iso_order_status_change']['email_text'];
$GLOBALS['NOTIFICATION_CENTER']['NOTIFICATION_TYPE']['isotope']['iso_order_status_change']['email_html'] =& $GLOBALS['NOTIFICATION_CENTER']['NOTIFICATION_TYPE']['isotope']['iso_order_status_change']['email_text'];
$GLOBALS['NOTIFICATION_CENTER']['NOTIFICATION_TYPE']['isotope']['iso_order_status_change']['email_replyTo'] =& $GLOBALS['NOTIFICATION_CENTER']['NOTIFICATION_TYPE']['isotope']['iso_order_status_change']['recipients'];
$GLOBALS['NOTIFICATION_CENTER']['NOTIFICATION_TYPE']['isotope']['iso_order_status_change']['email_recipient_cc'] =& $GLOBALS['NOTIFICATION_CENTER']['NOTIFICATION_TYPE']['isotope']['iso_order_status_change']['recipients'];
$GLOBALS['NOTIFICATION_CENTER']['NOTIFICATION_TYPE']['isotope']['iso_order_status_change']['email_recipient_bcc'] =& $GLOBALS['NOTIFICATION_CENTER']['NOTIFICATION_TYPE']['isotope']['iso_order_status_change']['recipients'];
$GLOBALS['NOTIFICATION_CENTER']['NOTIFICATION_TYPE']['isotope']['iso_order_status_change']['file_name'] =& $GLOBALS['NOTIFICATION_CENTER']['NOTIFICATION_TYPE']['isotope']['iso_order_status_change']['email_text'];
$GLOBALS['NOTIFICATION_CENTER']['NOTIFICATION_TYPE']['isotope']['iso_order_status_change']['file_content'] =& $GLOBALS['NOTIFICATION_CENTER']['NOTIFICATION_TYPE']['isotope']['iso_order_status_change']['email_text'];
$GLOBALS['NOTIFICATION_CENTER']['NOTIFICATION_TYPE']['isotope']['iso_memberaddress_change']['recipients'] = array('admin_email', 'address_email', 'member_email');
$GLOBALS['NOTIFICATION_CENTER']['NOTIFICATION_TYPE']['isotope']['iso_memberaddress_change']['email_subject'] = array('admin_email', 'address_*', 'address_old_*', 'member_*', 'config_*');
$GLOBALS['NOTIFICATION_CENTER']['NOTIFICATION_TYPE']['isotope']['iso_memberaddress_change']['email_text'] =& $GLOBALS['NOTIFICATION_CENTER']['NOTIFICATION_TYPE']['isotope']['iso_memberaddress_change']['email_subject'];
$GLOBALS['NOTIFICATION_CENTER']['NOTIFICATION_TYPE']['isotope']['iso_memberaddress_change']['email_sender_name'] =& $GLOBALS['NOTIFICATION_CENTER']['NOTIFICATION_TYPE']['isotope']['iso_memberaddress_change']['email_subject'];
$GLOBALS['NOTIFICATION_CENTER']['NOTIFICATION_TYPE']['isotope']['iso_memberaddress_change']['email_sender_address'] =& $GLOBALS['NOTIFICATION_CENTER']['NOTIFICATION_TYPE']['isotope']['iso_memberaddress_change']['email_subject'];
$GLOBALS['NOTIFICATION_CENTER']['NOTIFICATION_TYPE']['isotope']['iso_memberaddress_change']['email_replyTo'] =& $GLOBALS['NOTIFICATION_CENTER']['NOTIFICATION_TYPE']['isotope']['iso_memberaddress_change']['email_subject'];
$GLOBALS['NOTIFICATION_CENTER']['NOTIFICATION_TYPE']['isotope']['iso_memberaddress_change']['file_name'] =& $GLOBALS['NOTIFICATION_CENTER']['NOTIFICATION_TYPE']['isotope']['iso_memberaddress_change']['email_subject'];
$GLOBALS['NOTIFICATION_CENTER']['NOTIFICATION_TYPE']['isotope']['iso_memberaddress_change']['file_content'] =& $GLOBALS['NOTIFICATION_CENTER']['NOTIFICATION_TYPE']['isotope']['iso_memberaddress_change']['email_subject'];
/**
* Models
*/
$GLOBALS['TL_MODELS'][\Isotope\Model\Address::getTable()] = 'Isotope\\Model\\Address';
$GLOBALS['TL_MODELS'][\Isotope\Model\Attribute::getTable()] = 'Isotope\\Model\\Attribute';
$GLOBALS['TL_MODELS'][\Isotope\Model\AttributeOption::getTable()] = 'Isotope\\Model\\AttributeOption';
$GLOBALS['TL_MODELS'][\Isotope\Model\BasePrice::getTable()] = 'Isotope\\Model\\BasePrice';
$GLOBALS['TL_MODELS'][\Isotope\Model\Config::getTable()] = 'Isotope\\Model\\Config';
$GLOBALS['TL_MODELS'][\Isotope\Model\Document::getTable()] = 'Isotope\\Model\\Document';
$GLOBALS['TL_MODELS'][\Isotope\Model\Download::getTable()] = 'Isotope\\Model\\Download';
$GLOBALS['TL_MODELS'][\Isotope\Model\Gallery::getTable()] = 'Isotope\\Model\\Gallery';
$GLOBALS['TL_MODELS'][\Isotope\Model\Group::getTable()] = 'Isotope\\Model\\Group';
$GLOBALS['TL_MODELS'][\Isotope\Model\Label::getTable()] = 'Isotope\\Model\\Label';
$GLOBALS['TL_MODELS'][\Isotope\Model\OrderStatus::getTable()] = 'Isotope\\Model\\OrderStatus';
$GLOBALS['TL_MODELS'][\Isotope\Model\Payment::getTable()] = 'Isotope\\Model\\Payment';
$GLOBALS['TL_MODELS'][\Isotope\Model\Product::getTable()] = 'Isotope\\Model\\Product';
$GLOBALS['TL_MODELS'][\Isotope\Model\ProductCategory::getTable()] = 'Isotope\\Model\\ProductCategory';
$GLOBALS['TL_MODELS'][\Isotope\Model\ProductCollection::getTable()] = 'Isotope\\Model\\ProductCollection';
$GLOBALS['TL_MODELS'][\Isotope\Model\ProductCollectionDownload::getTable()] = 'Isotope\\Model\\ProductCollectionDownload';
$GLOBALS['TL_MODELS'][\Isotope\Model\ProductCollectionItem::getTable()] = 'Isotope\\Model\\ProductCollectionItem';
$GLOBALS['TL_MODELS'][\Isotope\Model\ProductCollectionLog::getTable()] = 'Isotope\\Model\\ProductCollectionLog';
$GLOBALS['TL_MODELS'][\Isotope\Model\ProductCollectionSurcharge::getTable()] = 'Isotope\\Model\\ProductCollectionSurcharge';
$GLOBALS['TL_MODELS'][\Isotope\Model\ProductPrice::getTable()] = 'Isotope\\Model\\ProductPrice';
$GLOBALS['TL_MODELS'][\Isotope\Model\ProductCache::getTable()] = 'Isotope\\Model\\ProductCache';
$GLOBALS['TL_MODELS'][\Isotope\Model\ProductType::getTable()] = 'Isotope\\Model\\ProductType';
$GLOBALS['TL_MODELS'][\Isotope\Model\RelatedCategory::getTable()] = 'Isotope\\Model\\RelatedCategory';
$GLOBALS['TL_MODELS'][\Isotope\Model\RelatedProduct::getTable()] = 'Isotope\\Model\\RelatedProduct';
$GLOBALS['TL_MODELS'][\Isotope\Model\RequestCache::getTable()] = 'Isotope\\Model\\RequestCache';
$GLOBALS['TL_MODELS'][\Isotope\Model\Shipping::getTable()] = 'Isotope\\Model\\Shipping';
$GLOBALS['TL_MODELS'][\Isotope\Model\TaxClass::getTable()] = 'Isotope\\Model\\TaxClass';
$GLOBALS['TL_MODELS'][\Isotope\Model\TaxRate::getTable()] = 'Isotope\\Model\\TaxRate';
/**
* Checkout steps
*/
$GLOBALS['ISO_CHECKOUTSTEP'] = array('address' => array('Isotope\\CheckoutStep\\BillingAddress', 'Isotope\\CheckoutStep\\ShippingAddress'), 'shipping' => array('Isotope\\CheckoutStep\\ShippingMethod'), 'payment' => array('Isotope\\CheckoutStep\\PaymentMethod'), 'review' => array('Isotope\\CheckoutStep\\OrderInfo', 'Isotope\\CheckoutStep\\OrderProducts'));
/**
* Integrity checks
*/
$GLOBALS['ISO_INTEGRITY'] = array('\\Isotope\\IntegrityCheck\\PriceTable', '\\Isotope\\IntegrityCheck\\VariantPrices', '\\Isotope\\IntegrityCheck\\VariantOrphans', '\\Isotope\\IntegrityCheck\\AttributeOptionOrphans', '\\Isotope\\IntegrityCheck\\MultilingualAttributes', '\\Isotope\\IntegrityCheck\\UnusedRules');
/**
* Vat No Validation
*/
$GLOBALS['ISO_VAT']['eu_vies'] = '\\Isotope\\VatNoValidator\\EuViesValidator';
/**
* Permissions are access settings for user and groups (fields in tl_user and tl_user_group)
*/
$GLOBALS['TL_PERMISSIONS'][] = 'iso_modules';
$GLOBALS['TL_PERMISSIONS'][] = 'iso_product_types';
$GLOBALS['TL_PERMISSIONS'][] = 'iso_product_typep';
$GLOBALS['TL_PERMISSIONS'][] = 'iso_payment_modules';
$GLOBALS['TL_PERMISSIONS'][] = 'iso_payment_modulep';
$GLOBALS['TL_PERMISSIONS'][] = 'iso_shipping_modules';
$GLOBALS['TL_PERMISSIONS'][] = 'iso_shipping_modulep';
$GLOBALS['TL_PERMISSIONS'][] = 'iso_tax_rates';
$GLOBALS['TL_PERMISSIONS'][] = 'iso_tax_ratep';
$GLOBALS['TL_PERMISSIONS'][] = 'iso_tax_classes';
$GLOBALS['TL_PERMISSIONS'][] = 'iso_tax_classp';
$GLOBALS['TL_PERMISSIONS'][] = 'iso_configs';
$GLOBALS['TL_PERMISSIONS'][] = 'iso_configp';
$GLOBALS['TL_PERMISSIONS'][] = 'iso_groups';
$GLOBALS['TL_PERMISSIONS'][] = 'iso_groupp';
$GLOBALS['TL_PERMISSIONS'][] = 'iso_member_groups';
/**
* Allow to delete the cache in maintenance module
*/
$GLOBALS['TL_PURGE']['tables']['iso_productcache'] = array('callback' => array('\\Isotope\\Backend', 'truncateProductCache'), 'affected' => array('tl_iso_productcache'));
$GLOBALS['TL_PURGE']['tables']['iso_requestcache'] = array('callback' => array('\\Isotope\\Backend', 'truncateRequestCache'), 'affected' => array('tl_iso_requestcache'));
/**
* Number formatting
*/
$GLOBALS['ISO_NUM']["10000.00"] = array(2, '.', "");
$GLOBALS['ISO_NUM']["10,000.00"] = array(2, '.', ",");
$GLOBALS['ISO_NUM']["10.000,00"] = array(2, ',', ".");
$GLOBALS['ISO_NUM']["10'000.00"] = array(2, '.', "'");
/**
* Hooks
*/
if (\Contao\Config::getInstance()->isComplete()) {
$GLOBALS['TL_HOOKS']['loadDataContainer'][] = array('Isotope\\Backend\\Product\\DcaManager', 'initialize');
$GLOBALS['TL_HOOKS']['getAttributesFromDca'][] = array('Isotope\\Backend\\Product\\DcaManager', 'addOptionsFromAttribute');
$GLOBALS['TL_HOOKS']['addCustomRegexp'][] = array('Isotope\\Isotope', 'validateRegexp');
$GLOBALS['TL_HOOKS']['getPageIdFromUrl'][] = array('Isotope\\Frontend', 'loadReaderPageFromUrl');
$GLOBALS['TL_HOOKS']['getPageLayout'][] = array('Isotope\\Frontend', 'overrideReaderPage');
$GLOBALS['TL_HOOKS']['getArticles'][] = array('Isotope\\Frontend', 'overrideArticles');
$GLOBALS['TL_HOOKS']['getSearchablePages'][] = array('Isotope\\Frontend', 'addProductsToSearchIndex');
$GLOBALS['TL_HOOKS']['replaceInsertTags'][] = array('Isotope\\Frontend', 'replaceIsotopeTags');
$GLOBALS['TL_HOOKS']['modifyFrontendPage'][] = array('Isotope\\Frontend', 'injectScripts');
$GLOBALS['TL_HOOKS']['executePreActions'][] = array('Isotope\\Backend', 'executePreActions');
$GLOBALS['TL_HOOKS']['executePostActions'][] = array('Isotope\\Backend', 'executePostActions');
$GLOBALS['TL_HOOKS']['getSystemMessages'][] = array('Isotope\\Backend', 'getOrderMessages');
$GLOBALS['TL_HOOKS']['getArticle'][] = array('Isotope\\Frontend', 'storeCurrentArticle');
$GLOBALS['TL_HOOKS']['generateBreadcrumb'][] = array('Isotope\\Frontend', 'addProductToBreadcrumb');
$GLOBALS['ISO_HOOKS']['buttons'][] = array('Isotope\\Isotope', 'defaultButtons');
$GLOBALS['ISO_HOOKS']['findSurchargesForCollection'][] = array('Isotope\\Frontend', 'findShippingAndPaymentSurcharges');
$GLOBALS['ISO_HOOKS']['postCheckout'][] = array('Isotope\\Analytics', 'trackOrder');
$GLOBALS['ISO_HOOKS']['postCheckout'][] = array('Isotope\\EventListener\\PostCheckoutUploads', 'onPostCheckout');
$GLOBALS['ISO_HOOKS']['calculatePrice'][] = array('Isotope\\Frontend', 'addOptionsPrice');
$GLOBALS['ISO_HOOKS']['calculatePrice'][] = array('Isotope\\EventListener\\CalculatePrice\\QuantitySurchagePriceListener', '__invoke');
$GLOBALS['ISO_HOOKS']['orderConditions'][] = array('Isotope\\Model\\Payment\\BillpayWithSaferpay', 'addOrderCondition');
$GLOBALS['ISO_HOOKS']['generateDocumentTemplate'][] = array('Isotope\\Model\\Payment\\BillpayWithSaferpay', 'addToDocumentTemplate');
$GLOBALS['ISO_HOOKS']['initializePostsale'][] = array('Isotope\\Frontend', 'setPostsaleModuleSettings');
// changelanguage
$GLOBALS['TL_HOOKS']['changelanguageNavigation'][] = array('Isotope\\EventListener\\ChangeLanguageListener', '__invoke');
// Set module and module id for payment and/or shipping modules
if ('FE' === \TL_MODE) {
// Only limit countries in FE
$GLOBALS['TL_HOOKS']['loadDataContainer'][] = array('Isotope\\Backend\\Member\\Callback', 'limitCountries');
}
if ('BE' === \TL_MODE) {
// Type agent help is only needed in back end
$GLOBALS['TL_HOOKS']['loadDataContainer'][] = array('Isotope\\Backend', 'loadTypeAgentHelp');
$GLOBALS['TL_HOOKS']['loadLanguageFile'][] = array('Isotope\\Backend\\ProductType\\Help', 'initializeWizard');
// Adjust the product groups manager
$GLOBALS['TL_HOOKS']['parseTemplate'][] = array('Isotope\\Backend', 'adjustGroupsManager');
$GLOBALS['TL_HOOKS']['parseTemplate'][] = array('Isotope\\Backend\\SubtableVersion', 'removeFromWelcomeScreen');
// Enable the module tables in setup
$GLOBALS['TL_HOOKS']['initializeSystem'][] = array('Isotope\\BackendModule\\InitializeListener', 'enableModuleTablesInSetup');
}
if (\class_exists('Petschko\\DHL\\BusinessShipment')) {
$GLOBALS['ISO_HOOKS']['postCheckout'][] = array('Isotope\\EventListener\\DHLBusinessCheckoutListener', 'onPostCheckout');
}
}
/**
* Cron Jobs
*/
$GLOBALS['TL_CRON']['daily'][] = array('Isotope\\Automator', 'deleteOldCarts');
$GLOBALS['TL_CRON']['daily'][] = array('Isotope\\Automator', 'deleteOldOrders');
$GLOBALS['TL_CRON']['daily'][] = array('Isotope\\Automator', 'convertCurrencies');
/**
* Auto_item keywords
*/
$GLOBALS['TL_AUTO_ITEM'][] = 'product';
$GLOBALS['TL_AUTO_ITEM'][] = 'step';
/**
* Default configuration
*/
$GLOBALS['TL_CONFIG']['iso_cartTimeout'] = 2592000;
$GLOBALS['TL_CONFIG']['iso_orderTimeout'] = 604800;
}
namespace {
/*
* Isotope eCommerce for Contao Open Source CMS
*
* Copyright (C) 2009 - 2019 terminal42 gmbh & Isotope eCommerce Workgroup
*
* @link https://isotopeecommerce.org
* @license https://opensource.org/licenses/lgpl-3.0.html
*/
/**
* Backend modules
*/
\array_insert($GLOBALS['BE_MOD']['isotope'], 2, array('reports' => array('callback' => 'Isotope\\BackendModule\\Reports', 'icon' => 'system/modules/isotope_reports/assets/icon.png', 'stylesheet' => \Haste\Util\Debug::uncompressedFile('system/modules/isotope_reports/assets/reports.min.css'), 'modules' => array('sales' => array('sales_total' => array('callback' => 'Isotope\\Report\\SalesTotal', 'label' => &$GLOBALS['TL_LANG']['ISO_REPORT']['sales_total'], 'icon' => 'system/modules/isotope_reports/assets/sales_total.png', 'panels' => array(array('getSelectStopPanel', 'getSelectStartPanel', 'getSelectPeriodPanel'), array('getSortingPanel', 'getFilterByConfigPanel', 'getStatusPanel', 'getDateFieldPanel'))), 'sales_product' => array('callback' => 'Isotope\\Report\\SalesProduct', 'label' => &$GLOBALS['TL_LANG']['ISO_REPORT']['sales_product'], 'icon' => 'system/modules/isotope_reports/assets/sales_product.png', 'panels' => array(array('getSelectFromPanel', 'getSelectColumnsPanel', 'getSelectPeriodPanel', 'getSelectVariantsPanel'), array('getSortingPanel', 'getStatusPanel', 'getDateFieldPanel')))), 'member' => array('members_guests' => array('callback' => 'Isotope\\Report\\MembersGuests', 'label' => &$GLOBALS['TL_LANG']['ISO_REPORT']['members_guests'], 'icon' => 'system/modules/isotope_reports/assets/members_guests.png', 'panels' => array(array('getSelectStopPanel', 'getSelectStartPanel', 'getSelectPeriodPanel'), array('getSortingPanel', 'getFilterByConfigPanel', 'getStatusPanel', 'getDateFieldPanel')))), 'custom' => array()))));
/**
* Permissions are access settings for user and groups (fields in tl_user and tl_user_group)
*/
$GLOBALS['TL_PERMISSIONS'][] = 'iso_reports';
}
namespace {
/**
* HOOKS
*
* Hooks are stored in a global array called "TL_HOOKS". You can register your
* own functions by adding them to the array.
*
* $GLOBALS['TL_HOOKS'] = array
* (
* 'hook_1' => array
* (
* array('MyClass', 'myPostLogin'),
* array('MyClass', 'myPostLogout')
* )
* );
*
* Hooks allow you to add functionality to the core without having to modify the
* source code by registering callback functions to be executed on a particular
* event. For more information see https://contao.org/manual.html.
*/
// $GLOBALS['ISO_HOOKS']['preCheckout'][] = ['MpVimaTickets', 'hookIsotopePreCheckout'];
// $GLOBALS['ISO_HOOKS']['updateItemInCollection'][] = ['MpVimaTickets', 'hookIsotopeUpdateItemInCollection'];
// $GLOBALS['ISO_HOOKS']['addProductToCollection'][] = ['MpVimaTickets', 'hookIsotopeAddProductToCollection'];
$GLOBALS['ISO_HOOKS']['postAddProductToCollection'][] = ['MpVimaTickets', 'hookIsotopePostAddProductToCollection'];
//$GLOBALS['TL_HOOKS']['processFormData'][] = ['MpVimaTickets', 'hookProcessFormData'];
//$GLOBALS['ISO_HOOKS']['updateAddressData'][] = ['MpVimaTickets', 'hookIsotopeUpdateAddressData'];
//$GLOBALS['ISO_HOOKS']['compileCart'][] = array('MpVimaTickets', 'hookCompileCart');
$GLOBALS['ISO_HOOKS']['updateDraftOrder'][] = array('MpVimaTickets', 'hookUpdateDraftOrder');
$GLOBALS['ISO_HOOKS']['postCheckout'][] = array('MpVimaTickets', 'hookIsotopePostCheckout');
}
namespace {
/*
* This file is part of Inszenium Isotope eCommerce OrderExport.
*
* (c) inszenium 2025 <https://inszenium.de>
* @license GPL-3.0-or-later
* For the full copyright and license information,
* please view the LICENSE file that was distributed with this source code.
*
* @author Kirsten Roschanski <kirsten.roschanski@inszenium.de>
* @package InszeniumIsotopeOrderExport
* @license LGPL
* @link https://github.com/inszenium/isotope-export
*/
/**
* BACK END MODULES
*/
$GLOBALS['BE_MOD']['isotope']['iso_orders']['export'] = array('Inszenium\\IsotopeExport\\OrderExport', 'exportOrders');
//$GLOBALS['BE_MOD']['isotope']['iso_orders']['stylesheet'] = 'system/modules/isotope_export/assets/css/backend.css';
}
namespace {
/*
* Isotope eCommerce for Contao Open Source CMS
*
* Copyright (C) 2009 - 2019 terminal42 gmbh & Isotope eCommerce Workgroup
*
* @link https://isotopeecommerce.org
* @license https://opensource.org/licenses/lgpl-3.0.html
*/
/**
* Backend modules
*/
\array_insert($GLOBALS['BE_MOD']['isotope'], 2, array('iso_rules' => array('tables' => array(\Isotope\Model\Rule::getTable()), 'javascript' => \Haste\Util\Debug::uncompressedFile('system/modules/isotope/assets/js/backend.min.js'), 'icon' => 'system/modules/isotope_rules/assets/auction-hammer-gavel.png')));
/**
* Frontend modules
*/
$GLOBALS['FE_MOD']['isotope']['iso_coupons'] = 'Isotope\\Module\\Coupons';
/**
* Models
*/
$GLOBALS['TL_MODELS'][\Isotope\Model\Rule::getTable()] = 'Isotope\\Model\\Rule';
/**
* Checkout Steps
* @todo this will no longer work
*/
\array_insert($GLOBALS['ISO_CHECKOUT_STEPS']['review'], 0, array(array('Isotope\\Rules', 'cleanRuleUsages')));
/**
* Product collection surcharge
*/
\Isotope\Model\ProductCollectionSurcharge::registerModelType('rule', 'Isotope\\Model\\ProductCollectionSurcharge\\Rule');
/**
* Hooks
*/
$GLOBALS['ISO_HOOKS']['calculatePrice'][] = array('Isotope\\Rules', 'calculatePrice');
$GLOBALS['ISO_HOOKS']['compileCart'][] = array('Isotope\\Rules', 'getCouponForm');
$GLOBALS['ISO_HOOKS']['findSurchargesForCollection'][] = array('Isotope\\Rules', 'findSurcharges');
$GLOBALS['ISO_HOOKS']['preCheckout'][] = array('Isotope\\Rules', 'writeRuleUsages');
$GLOBALS['ISO_HOOKS']['copiedCollectionItems'][] = array('Isotope\\Rules', 'transferCoupons');
$GLOBALS['ISO_HOOKS']['postDeleteCollection'][] = array('Isotope\\Rules', 'deleteRuleUsages');
}