var/cache/dev/contao/config/config.php line 174

Open in your IDE?
  1. <?php
  2. namespace {
  3. // Back end modules
  4. $GLOBALS['BE_MOD'] = array(
  5.     // Content modules
  6.     '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'))),
  7.     // Design modules
  8.     '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'))),
  9.     // Account modules
  10.     '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)),
  11.     // System modules
  12.     '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)),
  13. );
  14. // Front end modules
  15. $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));
  16. // Content elements
  17. $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));
  18. // Back end form fields
  19. $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);
  20. // Front end form fields
  21. $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);
  22. // Page types
  23. $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);
  24. // Maintenance
  25. $GLOBALS['TL_MAINTENANCE'] = array(\Contao\Crawl::class, \Contao\PurgeData::class);
  26. // Purge jobs
  27. $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'))));
  28. // Backwards compatibility
  29. // Image crop modes
  30. $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'));
  31. // Backwards compatibility
  32. // Cron jobs
  33. $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());
  34. // Hooks
  35. $GLOBALS['TL_HOOKS'] = array('getSystemMessages' => array(array(\Contao\Messages::class, 'languageFallback')));
  36. // Register the auto_item keywords
  37. $GLOBALS['TL_AUTO_ITEM'] = array('items''events');
  38. // Register the supported CSS units
  39. $GLOBALS['TL_CSS_UNITS'] = array('px''%''em''rem''vw''vh''vmin''vmax''ex''pt''pc''in''cm''mm');
  40. // Wrapper elements
  41. $GLOBALS['TL_WRAPPERS'] = array('start' => array('accordionStart''sliderStart''fieldsetStart'), 'stop' => array('accordionStop''sliderStop''fieldsetStop'), 'single' => array('accordionSingle'), 'separator' => array());
  42. // Models
  43. $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);
  44. // Other global arrays
  45. $GLOBALS['TL_PERMISSIONS'] = array();
  46. }
  47. namespace {
  48. // Back end modules
  49. $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);
  50. }
  51. namespace {
  52. /**
  53.  * This file is part of menatwork/contao-multicolumnwizard-bundle.
  54.  *
  55.  * (c) 2012-2019 MEN AT WORK.
  56.  *
  57.  * For the full copyright and license information, please view the LICENSE
  58.  * file that was distributed with this source code.
  59.  *
  60.  * This project is provided in good faith and hope to be usable by anyone.
  61.  *
  62.  * @package    menatwork/contao-multicolumnwizard-bundle
  63.  * @author     Andreas Isaak <info@andreas-isaak.de>
  64.  * @author     Andreas Schempp <andreas.schempp@terminal42.ch>
  65.  * @author     Christian Schiffler <c.schiffler@cyberspectrum.de>
  66.  * @author     David Maack <david.maack@arcor.de>
  67.  * @author     fritzmg <email@spikx.net>
  68.  * @author     Stefan Heimes <stefan_heimes@hotmail.com>
  69.  * @author     Tristan Lins <tristan.lins@bit3.de>
  70.  * @author     Yanick Witschi <yanick.witschi@certo-net.ch>
  71.  * @copyright  2011 Andreas Schempp
  72.  * @copyright  2011 certo web & design GmbH
  73.  * @copyright  2013-2019 MEN AT WORK
  74.  * @license    https://github.com/menatwork/contao-multicolumnwizard-bundle/blob/master/LICENSE LGPL-3.0-or-later
  75.  * @filesource
  76.  */
  77. $GLOBALS['BE_FFL']['multiColumnWizard'] = '\\MenAtWork\\MultiColumnWizardBundle\\Contao\\Widgets\\MultiColumnWizard';
  78. $GLOBALS['TL_HOOKS']['loadDataContainer'][] = array('MenAtWork\\MultiColumnWizardBundle\\EventListener\\Contao\\LoadDataContainer''supportModalSelector');
  79. $GLOBALS['TL_HOOKS']['initializeSystem'][] = array('MenAtWork\\MultiColumnWizardBundle\\EventListener\\Contao\\InitializeSystem''changeAjaxPostActions');
  80. $GLOBALS['TL_HOOKS']['executePostActions'][] = array('MenAtWork\\MultiColumnWizardBundle\\EventListener\\Contao\\ExecutePostActions''executePostActions');
  81. $GLOBALS['TL_HOOKS']['executePostActions'][] = array('MenAtWork\\MultiColumnWizardBundle\\EventListener\\Contao\\ExecutePostActions''handleRowCreation');
  82. if (\TL_MODE == 'BE') {
  83.     $GLOBALS['TL_HOOKS']['parseTemplate'][] = array('MenAtWork\\MultiColumnWizardBundle\\EventListener\\Contao\\ParseTemplate''addVersion');
  84.     // Add the JS.
  85.     $GLOBALS['TL_JAVASCRIPT']['multicolumnwizard'] = $GLOBALS['TL_CONFIG']['debugMode'] ? 'bundles/multicolumnwizard/js/multicolumnwizard_be_src.js' 'bundles/multicolumnwizard/js/multicolumnwizard_be.js';
  86.     // Add the css.
  87.     $GLOBALS['TL_CSS']['multicolumnwizard'] = $GLOBALS['TL_CONFIG']['debugMode'] ? 'bundles/multicolumnwizard/css/multicolumnwizard_src.css' 'bundles/multicolumnwizard/css/multicolumnwizard.css';
  88. }
  89. }
  90. namespace {
  91. /**
  92.  * Haste utilities for Contao Open Source CMS
  93.  *
  94.  * Copyright (C) 2012-2013 Codefog & terminal42 gmbh
  95.  *
  96.  * @package    Haste
  97.  * @link       http://github.com/codefog/contao-haste/
  98.  * @license    http://opensource.org/licenses/lgpl-3.0.html LGPL
  99.  */
  100. /**
  101.  * Add the "haste_undo" operation to "undo" module
  102.  */
  103. $GLOBALS['BE_MOD']['system']['undo']['haste_undo'] = array('Haste\\Util\\Undo''callback');
  104. /**
  105.  * Backend widgets
  106.  */
  107. $GLOBALS['BE_FFL']['numberField'] = 'Haste\\Number\\BackendWidget';
  108. /**
  109.  * Hooks
  110.  */
  111. $GLOBALS['TL_HOOKS']['executePostActions'][] = array('Haste\\Dca\\AjaxOperations''executePostActions');
  112. $GLOBALS['TL_HOOKS']['getContentElement'][] = ['Haste\\EventListener\\AjaxReloadListener''onGetContentElement'];
  113. $GLOBALS['TL_HOOKS']['getFrontendModule'][] = ['Haste\\EventListener\\AjaxReloadListener''onGetFrontendModule'];
  114. $GLOBALS['TL_HOOKS']['loadDataContainer'][] = array('Haste\\Dca\\DateRangeFilter''addCallbacks');
  115. $GLOBALS['TL_HOOKS']['loadDataContainer'][] = array('Haste\\Dca\\AjaxOperations''modifyDca');
  116. $GLOBALS['TL_HOOKS']['loadDataContainer'][] = array('Haste\\Model\\Relations''addRelationCallbacks');
  117. $GLOBALS['TL_HOOKS']['modifyFrontendPage'][] = ['Haste\\EventListener\\AjaxReloadListener''onModifyFrontendPage'];
  118. $GLOBALS['TL_HOOKS']['replaceInsertTags'][] = array('Haste\\Util\\InsertTag''replaceHasteInsertTags');
  119. $GLOBALS['TL_HOOKS']['reviseTable'][] = array('Haste\\Model\\Relations''reviseRelatedRecords');
  120. if (\TL_MODE !== 'FE') {
  121.     $GLOBALS['TL_HOOKS']['sqlGetFromFile'][] = ['Haste\\Model\\Relations''addRelationTables'];
  122. }
  123. /**
  124.  * Haste hooks
  125.  */
  126. $GLOBALS['HASTE_HOOKS']['undoData'] = array(array('Haste\\Model\\Relations''undoRelations'));
  127. }
  128. namespace {
  129. $GLOBALS['BE_FFL']['conditionalselect'] = \Terminal42\ConditionalSelectMenuBundle\Widget\BackendWidget::class;
  130. $GLOBALS['TL_FFL']['conditionalselect'] = \Terminal42\ConditionalSelectMenuBundle\Widget\FrontendWidget::class;
  131. }
  132. namespace {
  133. $GLOBALS['BE_FFL']['tableLookup'] = \Terminal42\TableLookupWizardBundle\Widget\TableLookupWizard::class;
  134. }
  135. namespace {
  136. /**
  137.  * dcawizard extension for Contao Open Source CMS
  138.  *
  139.  * @copyright  Copyright (c) 2014, terminal42 gmbh
  140.  * @author     terminal42 gmbh <info@terminal42.ch>
  141.  * @license    http://opensource.org/licenses/lgpl-3.0.html LGPL
  142.  * @link       https://github.com/terminal42/contao-dcawizard
  143.  */
  144. /**
  145.  * Backend form fields
  146.  */
  147. $GLOBALS['BE_FFL']['dcaWizard'] = 'DcaWizard';
  148. $GLOBALS['BE_FFL']['dcaWizardMultilingual'] = 'DcaWizardMultilingual';
  149. /**
  150.  * Hooks
  151.  */
  152. $GLOBALS['TL_HOOKS']['executePostActions'][] = array('DcaWizardHelper''handleAjaxActions');
  153. $GLOBALS['TL_HOOKS']['loadDataContainer'][] = array('DcaWizardHelper''loadDataContainer');
  154. }
  155. namespace {
  156. /**
  157.  * notification_center extension for Contao Open Source CMS
  158.  *
  159.  * @copyright  Copyright (c) 2008-2015, terminal42
  160.  * @author     terminal42 gmbh <info@terminal42.ch>
  161.  * @license    LGPL
  162.  */
  163. /**
  164.  * Back end modules
  165.  */
  166. \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')))));
  167. // Load icon in Contao 4.2 backend
  168. if ('BE' === \TL_MODE) {
  169.     $GLOBALS['TL_CSS'][] = 'system/modules/notification_center/assets/backend.css';
  170. }
  171. /**
  172.  * Front end modules
  173.  */
  174. $GLOBALS['FE_MOD']['user']['lostPasswordNotificationCenter'] = 'ModulePasswordNotificationCenter';
  175. if (\in_array('newsletter'\ModuleLoader::getActive(), \true)) {
  176.     $GLOBALS['FE_MOD']['newsletter']['newsletterSubscribeNotificationCenter'] = 'ModuleNewsletterSubscribeNotificationCenter';
  177.     $GLOBALS['FE_MOD']['newsletter']['newsletterActivateNotificationCenter'] = 'ModuleNewsletterActivateNotificationCenter';
  178.     $GLOBALS['FE_MOD']['newsletter']['newsletterUnsubscribeNotificationCenter'] = 'ModuleNewsletterUnsubscribeNotificationCenter';
  179. }
  180. /**
  181.  * Models
  182.  */
  183. $GLOBALS['TL_MODELS']['tl_nc_notification'] = 'NotificationCenter\\Model\\Notification';
  184. $GLOBALS['TL_MODELS']['tl_nc_gateway'] = 'NotificationCenter\\Model\\Gateway';
  185. $GLOBALS['TL_MODELS']['tl_nc_language'] = 'NotificationCenter\\Model\\Language';
  186. $GLOBALS['TL_MODELS']['tl_nc_message'] = 'NotificationCenter\\Model\\Message';
  187. $GLOBALS['TL_MODELS']['tl_nc_queue'] = 'NotificationCenter\\Model\\QueuedMessage';
  188. /**
  189.  * Cron jobs
  190.  */
  191. $GLOBALS['TL_CRON']['minutely'][] = array('NotificationCenter\\Frontend\\PoorMansCron''minutely');
  192. $GLOBALS['TL_CRON']['hourly'][] = array('NotificationCenter\\Frontend\\PoorMansCron''hourly');
  193. $GLOBALS['TL_CRON']['daily'][] = array('NotificationCenter\\Frontend\\PoorMansCron''daily');
  194. $GLOBALS['TL_CRON']['weekly'][] = array('NotificationCenter\\Frontend\\PoorMansCron''weekly');
  195. $GLOBALS['TL_CRON']['monthly'][] = array('NotificationCenter\\Frontend\\PoorMansCron''monthly');
  196. /**
  197.  * Hooks
  198.  */
  199. $GLOBALS['TL_HOOKS']['addCustomRegexp'][] = array('NotificationCenter\\AutoSuggester''verifyTokens');
  200. $GLOBALS['TL_HOOKS']['processFormData'][] = array('NotificationCenter\\tl_form''sendFormNotification');
  201. $GLOBALS['TL_HOOKS']['createNewUser'][] = array('NotificationCenter\\ContaoHelper''sendRegistrationEmail');
  202. $GLOBALS['TL_HOOKS']['updatePersonalData'][] = array('NotificationCenter\\ContaoHelper''sendPersonalDataEmail');
  203. $GLOBALS['TL_HOOKS']['getUserNavigation'][] = array('NotificationCenter\\ContaoHelper''addQueueToUserNavigation');
  204. $GLOBALS['TL_HOOKS']['activateAccount'][] = array('NotificationCenter\\ContaoHelper''sendActivationEmail');
  205. $GLOBALS['TL_HOOKS']['getSystemMessages'][] = array('NotificationCenter\\ContaoHelper''alertLegacySmtpSetting');
  206. /**
  207.  * Queue manager
  208.  */
  209. $GLOBALS['NOTIFICATION_CENTER']['QUEUE_MANAGER'] = new \NotificationCenter\Queue\QueueManager();
  210. /**
  211.  * Notification Center Gateways
  212.  */
  213. $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'));
  214. /**
  215.  * Notification Center Notification Types
  216.  */
  217. $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')))));
  218. // Add the newsletter tokens only if the extension is active
  219. if (\in_array('newsletter'\Contao\ModuleLoader::getActive(), \true)) {
  220.     $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'));
  221.     $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'));
  222.     $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'));
  223. }
  224. }
  225. namespace {
  226. /*
  227.  * Isotope eCommerce for Contao Open Source CMS
  228.  *
  229.  * Copyright (C) 2009 - 2019 terminal42 gmbh & Isotope eCommerce Workgroup
  230.  *
  231.  * @link       https://isotopeecommerce.org
  232.  * @license    https://opensource.org/licenses/lgpl-3.0.html
  233.  */
  234. /**
  235.  * Backend modules
  236.  */
  237. if (!\is_array($GLOBALS['BE_MOD']['isotope'] ?? \null)) {
  238.     \array_insert($GLOBALS['BE_MOD'], 1, array('isotope' => array()));
  239. }
  240. \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')));
  241. $GLOBALS['BE_MOD']['accounts']['member']['tables'][] = \Isotope\Model\Address::getTable();
  242. if ('BE' === \TL_MODE) {
  243.     $GLOBALS['TL_CSS'][] = 'system/modules/isotope/assets/css/backend.css|static';
  244. }
  245. /**
  246.  * Isotope Modules
  247.  */
  248. $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')));
  249. /**
  250.  * Frontend modules
  251.  */
  252. $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');
  253. /**
  254.  * Backend form fields
  255.  */
  256. $GLOBALS['BE_FFL']['mediaManager'] = 'Isotope\\Widget\\MediaManager';
  257. $GLOBALS['BE_FFL']['inheritCheckbox'] = 'Isotope\\Widget\\InheritCheckBox';
  258. /**
  259.  * Payment methods
  260.  */
  261. \Isotope\Model\Payment::registerModelType('cash''Isotope\\Model\\Payment\\Cash');
  262. \Isotope\Model\Payment::registerModelType('concardis''Isotope\\Model\\Payment\\Concardis');
  263. \Isotope\Model\Payment::registerModelType('datatrans''Isotope\\Model\\Payment\\Datatrans');
  264. \Isotope\Model\Payment::registerModelType('epay''Isotope\\Model\\Payment\\EPay');
  265. \Isotope\Model\Payment::registerModelType('expercash''Isotope\\Model\\Payment\\Expercash');
  266. \Isotope\Model\Payment::registerModelType('innopay''Isotope\\Model\\Payment\\Innopay');
  267. \Isotope\Model\Payment::registerModelType('paybyway''Isotope\\Model\\Payment\\Paybyway');
  268. \Isotope\Model\Payment::registerModelType('payone''Isotope\\Model\\Payment\\Payone');
  269. \Isotope\Model\Payment::registerModelType('paypal''Isotope\\Model\\Payment\\Paypal');
  270. \Isotope\Model\Payment::registerModelType('paypal_plus''Isotope\\Model\\Payment\\PaypalPlus');
  271. \Isotope\Model\Payment::registerModelType('paypal_checkout''Isotope\\Model\\Payment\\PaypalCheckout');
  272. \Isotope\Model\Payment::registerModelType('postfinance''Isotope\\Model\\Payment\\Postfinance');
  273. \Isotope\Model\Payment::registerModelType('quickpay''Isotope\\Model\\Payment\\QuickPay');
  274. \Isotope\Model\Payment::registerModelType('saferpay''Isotope\\Model\\Payment\\Saferpay');
  275. \Isotope\Model\Payment::registerModelType('billpay_saferpay''Isotope\\Model\\Payment\\BillpayWithSaferpay');
  276. \Isotope\Model\Payment::registerModelType('sparkasse''Isotope\\Model\\Payment\\Sparkasse');
  277. \Isotope\Model\Payment::registerModelType('sofortueberweisung''Isotope\\Model\\Payment\\Sofortueberweisung');
  278. \Isotope\Model\Payment::registerModelType('viveum''Isotope\\Model\\Payment\\Viveum');
  279. \Isotope\Model\Payment::registerModelType('worldpay''Isotope\\Model\\Payment\\Worldpay');
  280. \Isotope\Model\Payment::registerModelType('opp''Isotope\\Model\\Payment\\OpenPaymentPlatform');
  281. if (\class_exists('Mpay24\\Mpay24')) {
  282.     \Isotope\Model\Payment::registerModelType('mpay24''Isotope\\Model\\Payment\\Mpay24');
  283. }
  284. if (\class_exists('Terminal42\\SwissbillingApi\\Client')) {
  285.     \Isotope\Model\Payment::registerModelType('swissbilling''Isotope\\Model\\Payment\\Swissbilling');
  286. }
  287. /**
  288.  * Shipping methods
  289.  */
  290. \Isotope\Model\Shipping::registerModelType('flat''Isotope\\Model\\Shipping\\Flat');
  291. \Isotope\Model\Shipping::registerModelType('group''Isotope\\Model\\Shipping\\Group');
  292. \Isotope\Model\Shipping::registerModelType('product_price''Isotope\\Model\\Shipping\\ProductPrice');
  293. if (\class_exists('Petschko\\DHL\\BusinessShipment')) {
  294.     \Isotope\Model\Shipping::registerModelType('dhl_business''Isotope\\Model\\Shipping\\DHLBusiness');
  295. }
  296. /**
  297.  * Documents
  298.  */
  299. \Isotope\Model\Document::registerModelType('standard''Isotope\\Model\\Document\\Standard');
  300. /**
  301.  * Galleries
  302.  */
  303. \Isotope\Model\Gallery::registerModelType('standard''Isotope\\Model\\Gallery\\Standard');
  304. \Isotope\Model\Gallery::registerModelType('inline''Isotope\\Model\\Gallery\\Inline');
  305. \Isotope\Model\Gallery::registerModelType('elevatezoom''Isotope\\Model\\Gallery\\ElevateZoom');
  306. /**
  307.  * Products
  308.  */
  309. \Isotope\Model\Product::registerModelType('standard''Isotope\\Model\\Product\\Standard');
  310. /**
  311.  * Product collections
  312.  */
  313. \Isotope\Model\ProductCollection::registerModelType('cart''Isotope\\Model\\ProductCollection\\Cart');
  314. \Isotope\Model\ProductCollection::registerModelType('order''Isotope\\Model\\ProductCollection\\Order');
  315. \Isotope\Model\ProductCollection::registerModelType('favorites''Isotope\\Model\\ProductCollection\\Favorites');
  316. \Isotope\Model\ProductCollection::registerModelType('wishlist''Isotope\\Model\\ProductCollection\\Wishlist');
  317. /**
  318.  * Product collection surcharge
  319.  */
  320. \Isotope\Model\ProductCollectionSurcharge::registerModelType('payment''Isotope\\Model\\ProductCollectionSurcharge\\Payment');
  321. \Isotope\Model\ProductCollectionSurcharge::registerModelType('shipping''Isotope\\Model\\ProductCollectionSurcharge\\Shipping');
  322. \Isotope\Model\ProductCollectionSurcharge::registerModelType('tax''Isotope\\Model\\ProductCollectionSurcharge\\Tax');
  323. /**
  324.  * Attributes
  325.  */
  326. \Isotope\Model\Attribute::registerModelType('text''Isotope\\Model\\Attribute\\TextField');
  327. \Isotope\Model\Attribute::registerModelType('textarea''Isotope\\Model\\Attribute\\TextArea');
  328. \Isotope\Model\Attribute::registerModelType('select''Isotope\\Model\\Attribute\\SelectMenu');
  329. \Isotope\Model\Attribute::registerModelType('radio''Isotope\\Model\\Attribute\\RadioButton');
  330. \Isotope\Model\Attribute::registerModelType('checkbox''Isotope\\Model\\Attribute\\CheckboxMenu');
  331. \Isotope\Model\Attribute::registerModelType('mediaManager''Isotope\\Model\\Attribute\\MediaManager');
  332. \Isotope\Model\Attribute::registerModelType('fileTree''Isotope\\Model\\Attribute\\FileTree');
  333. \Isotope\Model\Attribute::registerModelType('pageTree''Isotope\\Model\\Attribute\\PageTree');
  334. \Isotope\Model\Attribute::registerModelType('downloads''Isotope\\Model\\Attribute\\Downloads');
  335. \Isotope\Model\Attribute::registerModelType('upload''Isotope\\Model\\Attribute\\Upload');
  336. \Isotope\Model\Attribute::registerModelType('media''Isotope\\Model\\Attribute\\Media');
  337. \Isotope\Model\Attribute::registerModelType('quantitySurcharge''Isotope\\Model\\Attribute\\QuantitySurcharge');
  338. if (\Composer\InstalledVersions::isInstalled('terminal42/contao-fineuploader')) {
  339.     \Isotope\Model\Attribute::registerModelType('fineUploader''Isotope\\Model\\Attribute\\FineUploader');
  340. }
  341. /**
  342.  * Product actions
  343.  */
  344. \Isotope\Frontend\ProductAction\Registry::add(new \Isotope\Frontend\ProductAction\UpdateAction());
  345. \Isotope\Frontend\ProductAction\Registry::add(new \Isotope\Frontend\ProductAction\CartAction());
  346. \Isotope\Frontend\ProductAction\Registry::add(new \Isotope\Frontend\ProductAction\FavoriteAction());
  347. \Isotope\Frontend\ProductAction\Registry::add(new \Isotope\Frontend\ProductAction\WishlistAction());
  348. /**
  349.  * Notification Center notification types
  350.  */
  351. $GLOBALS['NOTIFICATION_CENTER']['NOTIFICATION_TYPE']['isotope']['iso_order_status_change']['recipients'] = array('recipient_email''form_*''billing_address_email''shipping_address_email');
  352. $GLOBALS['NOTIFICATION_CENTER']['NOTIFICATION_TYPE']['isotope']['iso_order_status_change']['attachment_tokens'] = array('form_*''document');
  353. $GLOBALS['NOTIFICATION_CENTER']['NOTIFICATION_TYPE']['isotope']['iso_order_status_change']['email_text'] = array(
  354.     'uniqid',
  355.     'order_status',
  356.     'order_status_old',
  357.     'order_status_id',
  358.     'order_status_id_old',
  359.     'order_status_tracking_numbers',
  360.     'order_status_notes',
  361.     'recipient_email',
  362.     'order_id',
  363.     'order_items',
  364.     'order_products',
  365.     'order_subtotal',
  366.     'order_total',
  367.     'document_number',
  368.     'cart_html',
  369.     'cart_text',
  370.     'document',
  371.     'bank_name',
  372.     'bank_account',
  373.     'bank_code',
  374.     'tax_number',
  375.     'collection_*',
  376.     // All the collection fields
  377.     'billing_address',
  378.     // Formatted billing address
  379.     'billing_address_*',
  380.     // All the billing address model fields
  381.     'shipping_address',
  382.     // Formatted shipping address
  383.     'shipping_address_*',
  384.     // All the shipping address model fields
  385.     'form_*',
  386.     // All the order condition form fields
  387.     'payment_id',
  388.     // Payment method ID
  389.     'payment_label',
  390.     // Payment method label
  391.     'payment_note',
  392.     // Payment method note
  393.     'payment_*',
  394.     'shipping_id',
  395.     // Shipping method ID
  396.     'shipping_label',
  397.     // Shipping method label
  398.     'shipping_note',
  399.     // Shipping method note
  400.     'shipping_*',
  401.     'config_*',
  402.     // Store configuration model fields
  403.     'member_*',
  404. );
  405. $GLOBALS['NOTIFICATION_CENTER']['NOTIFICATION_TYPE']['isotope']['iso_order_status_change']['email_subject'] =& $GLOBALS['NOTIFICATION_CENTER']['NOTIFICATION_TYPE']['isotope']['iso_order_status_change']['email_text'];
  406. $GLOBALS['NOTIFICATION_CENTER']['NOTIFICATION_TYPE']['isotope']['iso_order_status_change']['email_html'] =& $GLOBALS['NOTIFICATION_CENTER']['NOTIFICATION_TYPE']['isotope']['iso_order_status_change']['email_text'];
  407. $GLOBALS['NOTIFICATION_CENTER']['NOTIFICATION_TYPE']['isotope']['iso_order_status_change']['email_replyTo'] =& $GLOBALS['NOTIFICATION_CENTER']['NOTIFICATION_TYPE']['isotope']['iso_order_status_change']['recipients'];
  408. $GLOBALS['NOTIFICATION_CENTER']['NOTIFICATION_TYPE']['isotope']['iso_order_status_change']['email_recipient_cc'] =& $GLOBALS['NOTIFICATION_CENTER']['NOTIFICATION_TYPE']['isotope']['iso_order_status_change']['recipients'];
  409. $GLOBALS['NOTIFICATION_CENTER']['NOTIFICATION_TYPE']['isotope']['iso_order_status_change']['email_recipient_bcc'] =& $GLOBALS['NOTIFICATION_CENTER']['NOTIFICATION_TYPE']['isotope']['iso_order_status_change']['recipients'];
  410. $GLOBALS['NOTIFICATION_CENTER']['NOTIFICATION_TYPE']['isotope']['iso_order_status_change']['file_name'] =& $GLOBALS['NOTIFICATION_CENTER']['NOTIFICATION_TYPE']['isotope']['iso_order_status_change']['email_text'];
  411. $GLOBALS['NOTIFICATION_CENTER']['NOTIFICATION_TYPE']['isotope']['iso_order_status_change']['file_content'] =& $GLOBALS['NOTIFICATION_CENTER']['NOTIFICATION_TYPE']['isotope']['iso_order_status_change']['email_text'];
  412. $GLOBALS['NOTIFICATION_CENTER']['NOTIFICATION_TYPE']['isotope']['iso_memberaddress_change']['recipients'] = array('admin_email''address_email''member_email');
  413. $GLOBALS['NOTIFICATION_CENTER']['NOTIFICATION_TYPE']['isotope']['iso_memberaddress_change']['email_subject'] = array('admin_email''address_*''address_old_*''member_*''config_*');
  414. $GLOBALS['NOTIFICATION_CENTER']['NOTIFICATION_TYPE']['isotope']['iso_memberaddress_change']['email_text'] =& $GLOBALS['NOTIFICATION_CENTER']['NOTIFICATION_TYPE']['isotope']['iso_memberaddress_change']['email_subject'];
  415. $GLOBALS['NOTIFICATION_CENTER']['NOTIFICATION_TYPE']['isotope']['iso_memberaddress_change']['email_sender_name'] =& $GLOBALS['NOTIFICATION_CENTER']['NOTIFICATION_TYPE']['isotope']['iso_memberaddress_change']['email_subject'];
  416. $GLOBALS['NOTIFICATION_CENTER']['NOTIFICATION_TYPE']['isotope']['iso_memberaddress_change']['email_sender_address'] =& $GLOBALS['NOTIFICATION_CENTER']['NOTIFICATION_TYPE']['isotope']['iso_memberaddress_change']['email_subject'];
  417. $GLOBALS['NOTIFICATION_CENTER']['NOTIFICATION_TYPE']['isotope']['iso_memberaddress_change']['email_replyTo'] =& $GLOBALS['NOTIFICATION_CENTER']['NOTIFICATION_TYPE']['isotope']['iso_memberaddress_change']['email_subject'];
  418. $GLOBALS['NOTIFICATION_CENTER']['NOTIFICATION_TYPE']['isotope']['iso_memberaddress_change']['file_name'] =& $GLOBALS['NOTIFICATION_CENTER']['NOTIFICATION_TYPE']['isotope']['iso_memberaddress_change']['email_subject'];
  419. $GLOBALS['NOTIFICATION_CENTER']['NOTIFICATION_TYPE']['isotope']['iso_memberaddress_change']['file_content'] =& $GLOBALS['NOTIFICATION_CENTER']['NOTIFICATION_TYPE']['isotope']['iso_memberaddress_change']['email_subject'];
  420. /**
  421.  * Models
  422.  */
  423. $GLOBALS['TL_MODELS'][\Isotope\Model\Address::getTable()] = 'Isotope\\Model\\Address';
  424. $GLOBALS['TL_MODELS'][\Isotope\Model\Attribute::getTable()] = 'Isotope\\Model\\Attribute';
  425. $GLOBALS['TL_MODELS'][\Isotope\Model\AttributeOption::getTable()] = 'Isotope\\Model\\AttributeOption';
  426. $GLOBALS['TL_MODELS'][\Isotope\Model\BasePrice::getTable()] = 'Isotope\\Model\\BasePrice';
  427. $GLOBALS['TL_MODELS'][\Isotope\Model\Config::getTable()] = 'Isotope\\Model\\Config';
  428. $GLOBALS['TL_MODELS'][\Isotope\Model\Document::getTable()] = 'Isotope\\Model\\Document';
  429. $GLOBALS['TL_MODELS'][\Isotope\Model\Download::getTable()] = 'Isotope\\Model\\Download';
  430. $GLOBALS['TL_MODELS'][\Isotope\Model\Gallery::getTable()] = 'Isotope\\Model\\Gallery';
  431. $GLOBALS['TL_MODELS'][\Isotope\Model\Group::getTable()] = 'Isotope\\Model\\Group';
  432. $GLOBALS['TL_MODELS'][\Isotope\Model\Label::getTable()] = 'Isotope\\Model\\Label';
  433. $GLOBALS['TL_MODELS'][\Isotope\Model\OrderStatus::getTable()] = 'Isotope\\Model\\OrderStatus';
  434. $GLOBALS['TL_MODELS'][\Isotope\Model\Payment::getTable()] = 'Isotope\\Model\\Payment';
  435. $GLOBALS['TL_MODELS'][\Isotope\Model\Product::getTable()] = 'Isotope\\Model\\Product';
  436. $GLOBALS['TL_MODELS'][\Isotope\Model\ProductCategory::getTable()] = 'Isotope\\Model\\ProductCategory';
  437. $GLOBALS['TL_MODELS'][\Isotope\Model\ProductCollection::getTable()] = 'Isotope\\Model\\ProductCollection';
  438. $GLOBALS['TL_MODELS'][\Isotope\Model\ProductCollectionDownload::getTable()] = 'Isotope\\Model\\ProductCollectionDownload';
  439. $GLOBALS['TL_MODELS'][\Isotope\Model\ProductCollectionItem::getTable()] = 'Isotope\\Model\\ProductCollectionItem';
  440. $GLOBALS['TL_MODELS'][\Isotope\Model\ProductCollectionLog::getTable()] = 'Isotope\\Model\\ProductCollectionLog';
  441. $GLOBALS['TL_MODELS'][\Isotope\Model\ProductCollectionSurcharge::getTable()] = 'Isotope\\Model\\ProductCollectionSurcharge';
  442. $GLOBALS['TL_MODELS'][\Isotope\Model\ProductPrice::getTable()] = 'Isotope\\Model\\ProductPrice';
  443. $GLOBALS['TL_MODELS'][\Isotope\Model\ProductCache::getTable()] = 'Isotope\\Model\\ProductCache';
  444. $GLOBALS['TL_MODELS'][\Isotope\Model\ProductType::getTable()] = 'Isotope\\Model\\ProductType';
  445. $GLOBALS['TL_MODELS'][\Isotope\Model\RelatedCategory::getTable()] = 'Isotope\\Model\\RelatedCategory';
  446. $GLOBALS['TL_MODELS'][\Isotope\Model\RelatedProduct::getTable()] = 'Isotope\\Model\\RelatedProduct';
  447. $GLOBALS['TL_MODELS'][\Isotope\Model\RequestCache::getTable()] = 'Isotope\\Model\\RequestCache';
  448. $GLOBALS['TL_MODELS'][\Isotope\Model\Shipping::getTable()] = 'Isotope\\Model\\Shipping';
  449. $GLOBALS['TL_MODELS'][\Isotope\Model\TaxClass::getTable()] = 'Isotope\\Model\\TaxClass';
  450. $GLOBALS['TL_MODELS'][\Isotope\Model\TaxRate::getTable()] = 'Isotope\\Model\\TaxRate';
  451. /**
  452.  * Checkout steps
  453.  */
  454. $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'));
  455. /**
  456.  * Integrity checks
  457.  */
  458. $GLOBALS['ISO_INTEGRITY'] = array('\\Isotope\\IntegrityCheck\\PriceTable''\\Isotope\\IntegrityCheck\\VariantPrices''\\Isotope\\IntegrityCheck\\VariantOrphans''\\Isotope\\IntegrityCheck\\AttributeOptionOrphans''\\Isotope\\IntegrityCheck\\MultilingualAttributes''\\Isotope\\IntegrityCheck\\UnusedRules');
  459. /**
  460.  * Vat No Validation
  461.  */
  462. $GLOBALS['ISO_VAT']['eu_vies'] = '\\Isotope\\VatNoValidator\\EuViesValidator';
  463. /**
  464.  * Permissions are access settings for user and groups (fields in tl_user and tl_user_group)
  465.  */
  466. $GLOBALS['TL_PERMISSIONS'][] = 'iso_modules';
  467. $GLOBALS['TL_PERMISSIONS'][] = 'iso_product_types';
  468. $GLOBALS['TL_PERMISSIONS'][] = 'iso_product_typep';
  469. $GLOBALS['TL_PERMISSIONS'][] = 'iso_payment_modules';
  470. $GLOBALS['TL_PERMISSIONS'][] = 'iso_payment_modulep';
  471. $GLOBALS['TL_PERMISSIONS'][] = 'iso_shipping_modules';
  472. $GLOBALS['TL_PERMISSIONS'][] = 'iso_shipping_modulep';
  473. $GLOBALS['TL_PERMISSIONS'][] = 'iso_tax_rates';
  474. $GLOBALS['TL_PERMISSIONS'][] = 'iso_tax_ratep';
  475. $GLOBALS['TL_PERMISSIONS'][] = 'iso_tax_classes';
  476. $GLOBALS['TL_PERMISSIONS'][] = 'iso_tax_classp';
  477. $GLOBALS['TL_PERMISSIONS'][] = 'iso_configs';
  478. $GLOBALS['TL_PERMISSIONS'][] = 'iso_configp';
  479. $GLOBALS['TL_PERMISSIONS'][] = 'iso_groups';
  480. $GLOBALS['TL_PERMISSIONS'][] = 'iso_groupp';
  481. $GLOBALS['TL_PERMISSIONS'][] = 'iso_member_groups';
  482. /**
  483.  * Allow to delete the cache in maintenance module
  484.  */
  485. $GLOBALS['TL_PURGE']['tables']['iso_productcache'] = array('callback' => array('\\Isotope\\Backend''truncateProductCache'), 'affected' => array('tl_iso_productcache'));
  486. $GLOBALS['TL_PURGE']['tables']['iso_requestcache'] = array('callback' => array('\\Isotope\\Backend''truncateRequestCache'), 'affected' => array('tl_iso_requestcache'));
  487. /**
  488.  * Number formatting
  489.  */
  490. $GLOBALS['ISO_NUM']["10000.00"] = array(2'.'"");
  491. $GLOBALS['ISO_NUM']["10,000.00"] = array(2'.'",");
  492. $GLOBALS['ISO_NUM']["10.000,00"] = array(2','".");
  493. $GLOBALS['ISO_NUM']["10'000.00"] = array(2'.'"'");
  494. /**
  495.  * Hooks
  496.  */
  497. if (\Contao\Config::getInstance()->isComplete()) {
  498.     $GLOBALS['TL_HOOKS']['loadDataContainer'][] = array('Isotope\\Backend\\Product\\DcaManager''initialize');
  499.     $GLOBALS['TL_HOOKS']['getAttributesFromDca'][] = array('Isotope\\Backend\\Product\\DcaManager''addOptionsFromAttribute');
  500.     $GLOBALS['TL_HOOKS']['addCustomRegexp'][] = array('Isotope\\Isotope''validateRegexp');
  501.     $GLOBALS['TL_HOOKS']['getPageIdFromUrl'][] = array('Isotope\\Frontend''loadReaderPageFromUrl');
  502.     $GLOBALS['TL_HOOKS']['getPageLayout'][] = array('Isotope\\Frontend''overrideReaderPage');
  503.     $GLOBALS['TL_HOOKS']['getArticles'][] = array('Isotope\\Frontend''overrideArticles');
  504.     $GLOBALS['TL_HOOKS']['getSearchablePages'][] = array('Isotope\\Frontend''addProductsToSearchIndex');
  505.     $GLOBALS['TL_HOOKS']['replaceInsertTags'][] = array('Isotope\\Frontend''replaceIsotopeTags');
  506.     $GLOBALS['TL_HOOKS']['modifyFrontendPage'][] = array('Isotope\\Frontend''injectScripts');
  507.     $GLOBALS['TL_HOOKS']['executePreActions'][] = array('Isotope\\Backend''executePreActions');
  508.     $GLOBALS['TL_HOOKS']['executePostActions'][] = array('Isotope\\Backend''executePostActions');
  509.     $GLOBALS['TL_HOOKS']['getSystemMessages'][] = array('Isotope\\Backend''getOrderMessages');
  510.     $GLOBALS['TL_HOOKS']['getArticle'][] = array('Isotope\\Frontend''storeCurrentArticle');
  511.     $GLOBALS['TL_HOOKS']['generateBreadcrumb'][] = array('Isotope\\Frontend''addProductToBreadcrumb');
  512.     $GLOBALS['ISO_HOOKS']['buttons'][] = array('Isotope\\Isotope''defaultButtons');
  513.     $GLOBALS['ISO_HOOKS']['findSurchargesForCollection'][] = array('Isotope\\Frontend''findShippingAndPaymentSurcharges');
  514.     $GLOBALS['ISO_HOOKS']['postCheckout'][] = array('Isotope\\Analytics''trackOrder');
  515.     $GLOBALS['ISO_HOOKS']['postCheckout'][] = array('Isotope\\EventListener\\PostCheckoutUploads''onPostCheckout');
  516.     $GLOBALS['ISO_HOOKS']['calculatePrice'][] = array('Isotope\\Frontend''addOptionsPrice');
  517.     $GLOBALS['ISO_HOOKS']['calculatePrice'][] = array('Isotope\\EventListener\\CalculatePrice\\QuantitySurchagePriceListener''__invoke');
  518.     $GLOBALS['ISO_HOOKS']['orderConditions'][] = array('Isotope\\Model\\Payment\\BillpayWithSaferpay''addOrderCondition');
  519.     $GLOBALS['ISO_HOOKS']['generateDocumentTemplate'][] = array('Isotope\\Model\\Payment\\BillpayWithSaferpay''addToDocumentTemplate');
  520.     $GLOBALS['ISO_HOOKS']['initializePostsale'][] = array('Isotope\\Frontend''setPostsaleModuleSettings');
  521.     // changelanguage
  522.     $GLOBALS['TL_HOOKS']['changelanguageNavigation'][] = array('Isotope\\EventListener\\ChangeLanguageListener''__invoke');
  523.     // Set module and module id for payment and/or shipping modules
  524.     if ('FE' === \TL_MODE) {
  525.         // Only limit countries in FE
  526.         $GLOBALS['TL_HOOKS']['loadDataContainer'][] = array('Isotope\\Backend\\Member\\Callback''limitCountries');
  527.     }
  528.     if ('BE' === \TL_MODE) {
  529.         // Type agent help is only needed in back end
  530.         $GLOBALS['TL_HOOKS']['loadDataContainer'][] = array('Isotope\\Backend''loadTypeAgentHelp');
  531.         $GLOBALS['TL_HOOKS']['loadLanguageFile'][] = array('Isotope\\Backend\\ProductType\\Help''initializeWizard');
  532.         // Adjust the product groups manager
  533.         $GLOBALS['TL_HOOKS']['parseTemplate'][] = array('Isotope\\Backend''adjustGroupsManager');
  534.         $GLOBALS['TL_HOOKS']['parseTemplate'][] = array('Isotope\\Backend\\SubtableVersion''removeFromWelcomeScreen');
  535.         // Enable the module tables in setup
  536.         $GLOBALS['TL_HOOKS']['initializeSystem'][] = array('Isotope\\BackendModule\\InitializeListener''enableModuleTablesInSetup');
  537.     }
  538.     if (\class_exists('Petschko\\DHL\\BusinessShipment')) {
  539.         $GLOBALS['ISO_HOOKS']['postCheckout'][] = array('Isotope\\EventListener\\DHLBusinessCheckoutListener''onPostCheckout');
  540.     }
  541. }
  542. /**
  543.  * Cron Jobs
  544.  */
  545. $GLOBALS['TL_CRON']['daily'][] = array('Isotope\\Automator''deleteOldCarts');
  546. $GLOBALS['TL_CRON']['daily'][] = array('Isotope\\Automator''deleteOldOrders');
  547. $GLOBALS['TL_CRON']['daily'][] = array('Isotope\\Automator''convertCurrencies');
  548. /**
  549.  * Auto_item keywords
  550.  */
  551. $GLOBALS['TL_AUTO_ITEM'][] = 'product';
  552. $GLOBALS['TL_AUTO_ITEM'][] = 'step';
  553. /**
  554.  * Default configuration
  555.  */
  556. $GLOBALS['TL_CONFIG']['iso_cartTimeout'] = 2592000;
  557. $GLOBALS['TL_CONFIG']['iso_orderTimeout'] = 604800;
  558. }
  559. namespace {
  560. /*
  561.  * Isotope eCommerce for Contao Open Source CMS
  562.  *
  563.  * Copyright (C) 2009 - 2019 terminal42 gmbh & Isotope eCommerce Workgroup
  564.  *
  565.  * @link       https://isotopeecommerce.org
  566.  * @license    https://opensource.org/licenses/lgpl-3.0.html
  567.  */
  568. /**
  569.  * Backend modules
  570.  */
  571. \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()))));
  572. /**
  573.  * Permissions are access settings for user and groups (fields in tl_user and tl_user_group)
  574.  */
  575. $GLOBALS['TL_PERMISSIONS'][] = 'iso_reports';
  576. }
  577. namespace {
  578. /**
  579.  * HOOKS
  580.  *
  581.  * Hooks are stored in a global array called "TL_HOOKS". You can register your
  582.  * own functions by adding them to the array.
  583.  *
  584.  * $GLOBALS['TL_HOOKS'] = array
  585.  * (
  586.  *    'hook_1' => array
  587.  *    (
  588.  *       array('MyClass', 'myPostLogin'),
  589.  *       array('MyClass', 'myPostLogout')
  590.  *    )
  591.  * );
  592.  *
  593.  * Hooks allow you to add functionality to the core without having to modify the
  594.  * source code by registering callback functions to be executed on a particular
  595.  * event. For more information see https://contao.org/manual.html.
  596.  */
  597. // $GLOBALS['ISO_HOOKS']['preCheckout'][] = ['MpVimaTickets', 'hookIsotopePreCheckout'];
  598. // $GLOBALS['ISO_HOOKS']['updateItemInCollection'][] = ['MpVimaTickets', 'hookIsotopeUpdateItemInCollection'];
  599. // $GLOBALS['ISO_HOOKS']['addProductToCollection'][] = ['MpVimaTickets', 'hookIsotopeAddProductToCollection'];
  600. $GLOBALS['ISO_HOOKS']['postAddProductToCollection'][] = ['MpVimaTickets''hookIsotopePostAddProductToCollection'];
  601. //$GLOBALS['TL_HOOKS']['processFormData'][] = ['MpVimaTickets', 'hookProcessFormData'];
  602. //$GLOBALS['ISO_HOOKS']['updateAddressData'][] = ['MpVimaTickets', 'hookIsotopeUpdateAddressData'];
  603. //$GLOBALS['ISO_HOOKS']['compileCart'][]  = array('MpVimaTickets', 'hookCompileCart');
  604. $GLOBALS['ISO_HOOKS']['updateDraftOrder'][] = array('MpVimaTickets''hookUpdateDraftOrder');
  605. $GLOBALS['ISO_HOOKS']['postCheckout'][] = array('MpVimaTickets''hookIsotopePostCheckout');
  606. }
  607. namespace {
  608. /*
  609.  * This file is part of Inszenium Isotope eCommerce OrderExport.
  610.  * 
  611.  * (c) inszenium 2025 <https://inszenium.de>
  612.  * @license GPL-3.0-or-later
  613.  * For the full copyright and license information,
  614.  * please view the LICENSE file that was distributed with this source code.
  615.  *
  616.  * @author     Kirsten Roschanski <kirsten.roschanski@inszenium.de>
  617.  * @package    InszeniumIsotopeOrderExport
  618.  * @license    LGPL 
  619.  * @link       https://github.com/inszenium/isotope-export
  620.  */
  621. /**
  622.  * BACK END MODULES
  623.  */
  624. $GLOBALS['BE_MOD']['isotope']['iso_orders']['export'] = array('Inszenium\\IsotopeExport\\OrderExport''exportOrders');
  625. //$GLOBALS['BE_MOD']['isotope']['iso_orders']['stylesheet'] = 'system/modules/isotope_export/assets/css/backend.css';
  626. }
  627. namespace {
  628. /*
  629.  * Isotope eCommerce for Contao Open Source CMS
  630.  *
  631.  * Copyright (C) 2009 - 2019 terminal42 gmbh & Isotope eCommerce Workgroup
  632.  *
  633.  * @link       https://isotopeecommerce.org
  634.  * @license    https://opensource.org/licenses/lgpl-3.0.html
  635.  */
  636. /**
  637.  * Backend modules
  638.  */
  639. \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')));
  640. /**
  641.  * Frontend modules
  642.  */
  643. $GLOBALS['FE_MOD']['isotope']['iso_coupons'] = 'Isotope\\Module\\Coupons';
  644. /**
  645.  * Models
  646.  */
  647. $GLOBALS['TL_MODELS'][\Isotope\Model\Rule::getTable()] = 'Isotope\\Model\\Rule';
  648. /**
  649.  * Checkout Steps
  650.  * @todo this will no longer work
  651.  */
  652. \array_insert($GLOBALS['ISO_CHECKOUT_STEPS']['review'], 0, array(array('Isotope\\Rules''cleanRuleUsages')));
  653. /**
  654.  * Product collection surcharge
  655.  */
  656. \Isotope\Model\ProductCollectionSurcharge::registerModelType('rule''Isotope\\Model\\ProductCollectionSurcharge\\Rule');
  657. /**
  658.  * Hooks
  659.  */
  660. $GLOBALS['ISO_HOOKS']['calculatePrice'][] = array('Isotope\\Rules''calculatePrice');
  661. $GLOBALS['ISO_HOOKS']['compileCart'][] = array('Isotope\\Rules''getCouponForm');
  662. $GLOBALS['ISO_HOOKS']['findSurchargesForCollection'][] = array('Isotope\\Rules''findSurcharges');
  663. $GLOBALS['ISO_HOOKS']['preCheckout'][] = array('Isotope\\Rules''writeRuleUsages');
  664. $GLOBALS['ISO_HOOKS']['copiedCollectionItems'][] = array('Isotope\\Rules''transferCoupons');
  665. $GLOBALS['ISO_HOOKS']['postDeleteCollection'][] = array('Isotope\\Rules''deleteRuleUsages');
  666. }