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

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. * Copyright MADE/YOUR/DAY OG <mail@madeyourday.net>
  54. *
  55. * For the full copyright and license information, please view the LICENSE
  56. * file that was distributed with this source code.
  57. */
  58. /**
  59. * RockSolid Custom Elements configuration
  60. *
  61. * @author Martin Auswöger <martin@madeyourday.net>
  62. */
  63. $GLOBALS['TL_HOOKS']['initializeSystem'][] = array('MadeYourDay\\RockSolidCustomElements\\CustomElements', 'loadConfig');
  64. $GLOBALS['TL_HOOKS']['loadLanguageFile'][] = array('MadeYourDay\\RockSolidCustomElements\\CustomElements', 'loadLanguageFileHook');
  65. $GLOBALS['TL_HOOKS']['exportTheme'][] = array('MadeYourDay\\RockSolidCustomElements\\CustomElements', 'exportThemeHook');
  66. $GLOBALS['TL_HOOKS']['extractThemeFiles'][] = array('MadeYourDay\\RockSolidCustomElements\\CustomElements', 'extractThemeFilesHook');
  67. $GLOBALS['BE_FFL']['rsce_list_start'] = 'MadeYourDay\\RockSolidCustomElements\\Widget\\ListStart';
  68. $GLOBALS['BE_FFL']['rsce_list_stop'] = 'MadeYourDay\\RockSolidCustomElements\\Widget\\ListStop';
  69. $GLOBALS['BE_FFL']['rsce_list_item_start'] = 'MadeYourDay\\RockSolidCustomElements\\Widget\\ListItemStart';
  70. $GLOBALS['BE_FFL']['rsce_list_item_stop'] = 'MadeYourDay\\RockSolidCustomElements\\Widget\\ListItemStop';
  71. $GLOBALS['BE_FFL']['rsce_group_start'] = 'MadeYourDay\\RockSolidCustomElements\\Widget\\GroupStart';
  72. $GLOBALS['BE_FFL']['rsce_data'] = 'MadeYourDay\\RockSolidCustomElements\\Widget\\Data';
  73. $GLOBALS['TL_MAINTENANCE'][] = 'MadeYourDay\\RockSolidCustomElements\\CustomElementsConvert';
  74. $GLOBALS['TL_PURGE']['custom']['rocksolid_custom_elements'] = array('callback' => array('MadeYourDay\\RockSolidCustomElements\\CustomElements', 'purgeCache'));
  75. // Insert the custom_elements category
  76. \Contao\ArrayUtil::arrayInsert($GLOBALS['TL_CTE'], 1, array('custom_elements' => array()));
  77. \Contao\ArrayUtil::arrayInsert($GLOBALS['FE_MOD'], 0, array('custom_elements' => array()));
  78. }
  79. namespace {
  80. $GLOBALS['BE_FFL']['multiColumnWizard'] = \MenAtWork\MultiColumnWizardBundle\Contao\Widgets\MultiColumnWizard::class;
  81. $GLOBALS['TL_HOOKS']['loadDataContainer'][] = [\MenAtWork\MultiColumnWizardBundle\EventListener\Contao\LoadDataContainer::class, 'supportModalSelector'];
  82. $GLOBALS['TL_HOOKS']['initializeSystem'][] = [\MenAtWork\MultiColumnWizardBundle\EventListener\Contao\InitializeSystem::class, 'addSystemNecessaryThings'];
  83. $GLOBALS['TL_HOOKS']['initializeSystem'][] = [\MenAtWork\MultiColumnWizardBundle\EventListener\Contao\InitializeSystem::class, 'changeAjaxPostActions'];
  84. $GLOBALS['TL_HOOKS']['executePostActions'][] = [\MenAtWork\MultiColumnWizardBundle\EventListener\Contao\ExecutePostActions::class, 'executePostActions'];
  85. $GLOBALS['TL_HOOKS']['executePostActions'][] = [\MenAtWork\MultiColumnWizardBundle\EventListener\Contao\ExecutePostActions::class, 'handleRowCreation'];
  86. /*
  87. * All Hooks for the BE are moved to the following function:
  88. * \MenAtWork\MultiColumnWizardBundle\EventListener\Contao\InitializeSystem::addSystemNecessaryThings
  89. */
  90. }
  91. namespace {
  92. $GLOBALS['BE_MOD']['content']['hc_mailchimp'] = array('tables' => array('tl_hc_mailchimp'), 'icon' => 'system/modules/hc_mailchimp/assets/images/mailchimp_icon.png');
  93. $GLOBALS['FE_MOD']['hc_mailchimp'] = array('hc_mailchimp_subscribeFormShort' => 'ModuleHcMailchimpSubscribeFormShort', 'hc_mailchimp_subscribeForm' => 'ModuleHcMailchimpSubscribeForm', 'hc_mailchimp_unsubscribeForm' => 'ModuleHcMailchimpUnsubscribeForm', 'hc_mailchimp_archive' => 'ModuleHcMailchimpArchive');
  94. }
  95. namespace {
  96. /**
  97. * TYPOlight webCMS
  98. *
  99. * The TYPOlight webCMS is an accessible web content management system that
  100. * specializes in accessibility and generates W3C-compliant HTML code. It
  101. * provides a wide range of functionality to develop professional websites
  102. * including a built-in search engine, form generator, file and user manager,
  103. * CSS engine, multi-language support and many more. For more information and
  104. * additional TYPOlight applications like the TYPOlight MVC Framework please
  105. * visit the project website http://www.typolight.org.
  106. *
  107. * This is the subcolumns configuration file.
  108. *
  109. * PHP version 5
  110. * @copyright Felix Pfeiffer : Neue Medien 2007 - 2012
  111. * @author Felix Pfeiffer <info@felixpfeiffer.com>
  112. * @package Subcolumns
  113. * @license CC-A 2.0
  114. * @filesource
  115. */
  116. /**
  117. * -------------------------------------------------------------------------
  118. * CONTENT ELEMENTS
  119. * -------------------------------------------------------------------------
  120. */
  121. $GLOBALS['TL_CTE']['subcolumn'] = array('colsetStart' => 'Subcolumns\\colsetStart', 'colsetPart' => 'Subcolumns\\colsetPart', 'colsetEnd' => 'Subcolumns\\colsetEnd');
  122. \array_insert($GLOBALS['FE_MOD']['application'], 4, array('subcolumns' => 'Subcolumns\\ModuleSubcolumns'));
  123. /**
  124. * Form fields
  125. */
  126. $GLOBALS['TL_FFL']['formcolstart'] = 'Subcolumns\\FormColStart';
  127. $GLOBALS['TL_FFL']['formcolpart'] = 'Subcolumns\\FormColPart';
  128. $GLOBALS['TL_FFL']['formcolend'] = 'Subcolumns\\FormColEnd';
  129. /**
  130. * Hooks
  131. */
  132. #$GLOBALS['TL_HOOKS']['clipboardContentTitle'][] = array('SemanticHTML5Helper', 'clipboardContentTitle');
  133. $GLOBALS['TL_HOOKS']['clipboardCopy'][] = array('tl_content_sc', 'clipboardCopy');
  134. $GLOBALS['TL_HOOKS']['clipboardCopyAll'][] = array('tl_subcolumnsCallback', 'clipboardCopyAll');
  135. /**
  136. * Einrücken von Elementen
  137. */
  138. $GLOBALS['TL_WRAPPERS']['start'][] = 'colsetStart';
  139. $GLOBALS['TL_WRAPPERS']['separator'][] = 'colsetPart';
  140. $GLOBALS['TL_WRAPPERS']['stop'][] = 'colsetEnd';
  141. /**
  142. * Spaltensets
  143. **/
  144. $GLOBALS['TL_SUBCL'] = array('yaml3' => array(
  145. 'label' => 'YAML 3 Standard',
  146. // Label for the selectmenu
  147. 'scclass' => 'subcolumns',
  148. // Class for the wrapping container
  149. 'equalize' => 'equalize',
  150. // Is a equilize heights class included and what is it's name?
  151. 'inside' => \true,
  152. // Are inside containers used?
  153. 'gap' => \true,
  154. // A gap between the columns can be entered in backend
  155. 'files' => array(
  156. // Enter the location of the css files
  157. 'css' => 'system/modules/Subcolumns/assets/yaml3/subcols.css||static',
  158. 'ie' => 'system/modules/Subcolumns/assets/yaml3/subcolsIEHacks.css',
  159. ),
  160. /*
  161. * Define the sets that can be used as an array.
  162. * Each array contains two or more arrays with the definition for the single columns.
  163. * The key is used as the label in the select menu.
  164. * Example: '50x50' => array(array([class(es) for the first column],[optional classes for the inside container]),array([class(es) for the second column],[optional classes for the inside container]))
  165. */
  166. 'sets' => array('20x20x20x20x20' => array(array('c20l', 'subcl'), array('c20l', 'subc'), array('c20l', 'subc'), array('c20l', 'subc'), array('c20r', 'subcr')), '25x25x25x25' => array(array('c25l', 'subcl'), array('c25l', 'subc'), array('c25l', 'subc'), array('c25r', 'subcr')), '50x16x16x16' => array(array('c50l', 'subcl'), array('c16l', 'subc'), array('c16l', 'subc'), array('c16r', 'subcr')), '33x33x33' => array(array('c33l', 'subcl'), array('c33l', 'subc'), array('c33r', 'subcr')), '50x25x25' => array(array('c50l', 'subcl'), array('c25l', 'subc'), array('c25r', 'subcr')), '25x50x25' => array(array('c25l', 'subcl'), array('c50l', 'subc'), array('c25r', 'subcr')), '25x25x50' => array(array('c25l', 'subcl'), array('c25l', 'subc'), array('c50r', 'subcr')), '40x30x30' => array(array('c40l', 'subcl'), array('c30l', 'subc'), array('c30r', 'subcr')), '30x40x30' => array(array('c30l', 'subcl'), array('c40l', 'subc'), array('c30r', 'subcr')), '30x30x40' => array(array('c30l', 'subcl'), array('c30l', 'subc'), array('c40r', 'subcr')), '20x40x40' => array(array('c20l', 'subcl'), array('c40l', 'subc'), array('c40r', 'subcr')), '40x20x40' => array(array('c40l', 'subcl'), array('c20l', 'subc'), array('c40r', 'subcr')), '40x40x20' => array(array('c40l', 'subcl'), array('c40l', 'subc'), array('c20r', 'subcr')), '85x15' => array(array('c85l', 'subcl'), array('c15r', 'subcr')), '80x20' => array(array('c80l', 'subcl'), array('c20r', 'subcr')), '75x25' => array(array('c75l', 'subcl'), array('c25r', 'subcr')), '70x30' => array(array('c70l', 'subcl'), array('c30r', 'subcr')), '66x33' => array(array('c66l', 'subcl'), array('c33r', 'subcr')), '62x38' => array(array('c62l', 'subcl'), array('c38r', 'subcr')), '60x40' => array(array('c60l', 'subcl'), array('c40r', 'subcr')), '55x45' => array(array('c55l', 'subcl'), array('c45r', 'subcr')), '50x50' => array(array('c50l', 'subcl'), array('c50r', 'subcr')), '45x55' => array(array('c45l', 'subcl'), array('c55r', 'subcr')), '40x60' => array(array('c40l', 'subcl'), array('c60r', 'subcr')), '38x62' => array(array('c38l', 'subcl'), array('c62r', 'subcr')), '33x66' => array(array('c33l', 'subcl'), array('c66r', 'subcr')), '30x70' => array(array('c30l', 'subcl'), array('c70r', 'subcr')), '25x75' => array(array('c25l', 'subcl'), array('c75r', 'subcr')), '20x80' => array(array('c20l', 'subcl'), array('c80r', 'subcr')), '15x85' => array(array('c15l', 'subcl'), array('c85r', 'subcr'))),
  167. ), 'yaml3_additional' => array('label' => 'YAML 3 Erweitert', 'scclass' => 'subcolumns', 'equalize' => 'equalize', 'inside' => \true, 'gap' => \true, 'files' => array('css' => 'system/modules/Subcolumns/assets/yaml3/subcols_extended.css||static', 'ie' => 'system/modules/Subcolumns/assets/yaml3/subcolsIEHacks_extended.css'), 'sets' => array('20x20x20x20x20' => array(array('c20l', 'subcl'), array('c20l', 'subc'), array('c20l', 'subc'), array('c20l', 'subc'), array('c20r', 'subcr')), '25x25x25x25' => array(array('c25l', 'subcl'), array('c25l', 'subc'), array('c25l', 'subc'), array('c25r', 'subcr')), '50x16x16x16' => array(array('c50l', 'subcl'), array('c16l', 'subc'), array('c16l', 'subc'), array('c16r', 'subcr')), '33x33x33' => array(array('c33l', 'subcl'), array('c33l', 'subc'), array('c33r', 'subcr')), '50x25x25' => array(array('c50l', 'subcl'), array('c25l', 'subc'), array('c25r', 'subcr')), '25x50x25' => array(array('c25l', 'subcl'), array('c50l', 'subc'), array('c25r', 'subcr')), '25x25x50' => array(array('c25l', 'subcl'), array('c25l', 'subc'), array('c50r', 'subcr')), '40x30x30' => array(array('c40l', 'subcl'), array('c30l', 'subc'), array('c30r', 'subcr')), '30x40x30' => array(array('c30l', 'subcl'), array('c40l', 'subc'), array('c30r', 'subcr')), '30x30x40' => array(array('c30l', 'subcl'), array('c30l', 'subc'), array('c40r', 'subcr')), '20x40x40' => array(array('c20l', 'subcl'), array('c40l', 'subc'), array('c40r', 'subcr')), '40x20x40' => array(array('c40l', 'subcl'), array('c20l', 'subc'), array('c40r', 'subcr')), '40x40x20' => array(array('c40l', 'subcl'), array('c40l', 'subc'), array('c20r', 'subcr')), '85x15' => array(array('c85l', 'subcl'), array('c15r', 'subcr')), '80x20' => array(array('c80l', 'subcl'), array('c20r', 'subcr')), '75x25' => array(array('c75l', 'subcl'), array('c25r', 'subcr')), '70x30' => array(array('c70l', 'subcl'), array('c30r', 'subcr')), '66x33' => array(array('c66l', 'subcl'), array('c33r', 'subcr')), '62x38' => array(array('c62l', 'subcl'), array('c38r', 'subcr')), '60x40' => array(array('c60l', 'subcl'), array('c40r', 'subcr')), '55x45' => array(array('c55l', 'subcl'), array('c45r', 'subcr')), '50x50' => array(array('c50l', 'subcl'), array('c50r', 'subcr')), '45x55' => array(array('c45l', 'subcl'), array('c55r', 'subcr')), '40x60' => array(array('c40l', 'subcl'), array('c60r', 'subcr')), '38x62' => array(array('c38l', 'subcl'), array('c62r', 'subcr')), '33x66' => array(array('c33l', 'subcl'), array('c66r', 'subcr')), '30x70' => array(array('c30l', 'subcl'), array('c70r', 'subcr')), '25x75' => array(array('c25l', 'subcl'), array('c75r', 'subcr')), '20x80' => array(array('c20l', 'subcl'), array('c80r', 'subcr')), '15x85' => array(array('c15l', 'subcl'), array('c85r', 'subcr')))), 'yaml4' => array('label' => 'YAML 4 Standard', 'scclass' => 'ym-grid', 'equalize' => 'ym-equalize', 'inside' => \true, 'gap' => \true, 'files' => array('css' => 'system/modules/Subcolumns/assets/yaml4/subcols.css||static', 'ie' => 'system/modules/Subcolumns/assets/yaml4/subcolsIEHacks.css'), 'sets' => array('20x20x20x20x20' => array(array('ym-g20 ym-gl', 'ym-gbox-left'), array('ym-g20 ym-gl', 'ym-gbox'), array('ym-g20 ym-gl', 'ym-gbox'), array('ym-g20 ym-gl', 'ym-gbox'), array('ym-g20 ym-gr', 'ym-gbox-right')), '50x16x16x16' => array(array('ym-g50 ym-gl', 'ym-gbox-left'), array('ym-g16 ym-gl', 'ym-gbox'), array('ym-g16 ym-gl', 'ym-gbox'), array('ym-g16 ym-gr', 'ym-gbox-right')), '25x25x25x25' => array(array('ym-g25 ym-gl', 'ym-gbox-left'), array('ym-g25 ym-gl', 'ym-gbox'), array('ym-g25 ym-gl', 'ym-gbox'), array('ym-g25 ym-gr', 'ym-gbox-right')), '25x25x50' => array(array('ym-g25 ym-gl', 'ym-gbox-left'), array('ym-g25 ym-gl', 'ym-gbox'), array('ym-g50 ym-gr', 'ym-gbox-right')), '25x50x25' => array(array('ym-g25 ym-gl', 'ym-gbox-left'), array('ym-g50 ym-gl', 'ym-gbox'), array('ym-g25 ym-gr', 'ym-gbox-right')), '50x25x25' => array(array('ym-g50 ym-gl', 'ym-gbox-left'), array('ym-g25 ym-gl', 'ym-gbox'), array('ym-g25 ym-gr', 'ym-gbox-right')), '40x40x20' => array(array('ym-g40 ym-gl', 'ym-gbox-left'), array('ym-g40 ym-gl', 'ym-gbox'), array('ym-g20 ym-gr', 'ym-gbox-right')), '40x20x40' => array(array('ym-g40 ym-gl', 'ym-gbox-left'), array('ym-g20 ym-gl', 'ym-gbox'), array('ym-g40 ym-gr', 'ym-gbox-right')), '20x40x40' => array(array('ym-g20 ym-gl', 'ym-gbox-left'), array('ym-g40 ym-gl', 'ym-gbox'), array('ym-g40 ym-gr', 'ym-gbox-right')), '33x33x33' => array(array('ym-g33 ym-gl', 'ym-gbox-left'), array('ym-g33 ym-gl', 'ym-gbox'), array('ym-g33 ym-gr', 'ym-gbox-right')), '85x15' => array(array('ym-g85 ym-gl', 'ym-gbox-left'), array('ym-g15 ym-gr', 'ym-gbox-right')), '80x20' => array(array('ym-g80 ym-gl', 'ym-gbox-left'), array('ym-g20 ym-gr', 'ym-gbox-right')), '75x25' => array(array('ym-g75 ym-gl', 'ym-gbox-left'), array('ym-g25 ym-gr', 'ym-gbox-right')), '70x30' => array(array('ym-g70 ym-gl', 'ym-gbox-left'), array('ym-g30 ym-gr', 'ym-gbox-right')), '66x33' => array(array('ym-g66 ym-gl', 'ym-gbox-left'), array('ym-g33 ym-gr', 'ym-gbox-right')), '65x35' => array(array('ym-g65 ym-gl', 'ym-gbox-left'), array('ym-g35 ym-gr', 'ym-gbox-right')), '60x40' => array(array('ym-g60 ym-gl', 'ym-gbox-left'), array('ym-g40 ym-gr', 'ym-gbox-right')), '55x45' => array(array('ym-g55 ym-gl', 'ym-gbox-left'), array('ym-g45 ym-gr', 'ym-gbox-right')), '50x50' => array(array('ym-g50 ym-gl', 'ym-gbox-left'), array('ym-g50 ym-gr', 'ym-gbox-right')), '45x55' => array(array('ym-g45 ym-gl', 'ym-gbox-left'), array('ym-g55 ym-gr', 'ym-gbox-right')), '40x60' => array(array('ym-g40 ym-gl', 'ym-gbox-left'), array('ym-g60 ym-gr', 'ym-gbox-right')), '35x65' => array(array('ym-g35 ym-gl', 'ym-gbox-left'), array('ym-g65 ym-gr', 'ym-gbox-right')), '33x66' => array(array('ym-g33 ym-gl', 'ym-gbox-left'), array('ym-g66 ym-gr', 'ym-gbox-right')), '30x70' => array(array('ym-g30 ym-gl', 'ym-gbox-left'), array('ym-g70 ym-gr', 'ym-gbox-right')), '25x75' => array(array('ym-g25 ym-gl', 'ym-gbox-left'), array('ym-g75 ym-gr', 'ym-gbox-right')), '20x80' => array(array('ym-g20 ym-gl', 'ym-gbox-left'), array('ym-g80 ym-gr', 'ym-gbox-right')), '15x85' => array(array('ym-g15 ym-gl', 'ym-gbox-left'), array('ym-g85 ym-gr', 'ym-gbox-right')))), 'yaml4_additional' => array('label' => 'YAML 4 Erweitert', 'scclass' => 'ym-grid', 'equalize' => 'ym-equalize', 'inside' => \true, 'gap' => \true, 'files' => array('css' => 'system/modules/Subcolumns/assets/yaml4/subcols_extended.css||static'), 'sets' => array('20x20x20x20x20' => array(array('ym-g20 ym-gl', 'ym-gbox-left'), array('ym-g20 ym-gl', 'ym-gbox'), array('ym-g20 ym-gl', 'ym-gbox'), array('ym-g20 ym-gl', 'ym-gbox'), array('ym-g20 ym-gr', 'ym-gbox-right')), '50x16x16x16' => array(array('ym-g50 ym-gl', 'ym-gbox-left'), array('ym-g16 ym-gl', 'ym-gbox'), array('ym-g16 ym-gl', 'ym-gbox'), array('ym-g16 ym-gr', 'ym-gbox-right')), '25x25x25x25' => array(array('ym-g25 ym-gl', 'ym-gbox-left'), array('ym-g25 ym-gl', 'ym-gbox'), array('ym-g25 ym-gl', 'ym-gbox'), array('ym-g25 ym-gr', 'ym-gbox-right')), '25x25x50' => array(array('ym-g25 ym-gl', 'ym-gbox-left'), array('ym-g25 ym-gl', 'ym-gbox'), array('ym-g50 ym-gr', 'ym-gbox-right')), '25x50x25' => array(array('ym-g25 ym-gl', 'ym-gbox-left'), array('ym-g50 ym-gl', 'ym-gbox'), array('ym-g25 ym-gr', 'ym-gbox-right')), '50x25x25' => array(array('ym-g50 ym-gl', 'ym-gbox-left'), array('ym-g25 ym-gl', 'ym-gbox'), array('ym-g25 ym-gr', 'ym-gbox-right')), '40x40x20' => array(array('ym-g40 ym-gl', 'ym-gbox-left'), array('ym-g40 ym-gl', 'ym-gbox'), array('ym-g20 ym-gr', 'ym-gbox-right')), '40x20x40' => array(array('ym-g40 ym-gl', 'ym-gbox-left'), array('ym-g20 ym-gl', 'ym-gbox'), array('ym-g40 ym-gr', 'ym-gbox-right')), '20x40x40' => array(array('ym-g20 ym-gl', 'ym-gbox-left'), array('ym-g40 ym-gl', 'ym-gbox'), array('ym-g40 ym-gr', 'ym-gbox-right')), '33x33x33' => array(array('ym-g33 ym-gl', 'ym-gbox-left'), array('ym-g33 ym-gl', 'ym-gbox'), array('ym-g33 ym-gr', 'ym-gbox-right')), '85x15' => array(array('ym-g85 ym-gl', 'ym-gbox-left'), array('ym-g15 ym-gr', 'ym-gbox-right')), '80x20' => array(array('ym-g80 ym-gl', 'ym-gbox-left'), array('ym-g20 ym-gr', 'ym-gbox-right')), '75x25' => array(array('ym-g75 ym-gl', 'ym-gbox-left'), array('ym-g25 ym-gr', 'ym-gbox-right')), '70x30' => array(array('ym-g70 ym-gl', 'ym-gbox-left'), array('ym-g30 ym-gr', 'ym-gbox-right')), '66x33' => array(array('ym-g66 ym-gl', 'ym-gbox-left'), array('ym-g33 ym-gr', 'ym-gbox-right')), '65x35' => array(array('ym-g65 ym-gl', 'ym-gbox-left'), array('ym-g35 ym-gr', 'ym-gbox-right')), '60x40' => array(array('ym-g60 ym-gl', 'ym-gbox-left'), array('ym-g40 ym-gr', 'ym-gbox-right')), '55x45' => array(array('ym-g55 ym-gl', 'ym-gbox-left'), array('ym-g45 ym-gr', 'ym-gbox-right')), '50x50' => array(array('ym-g50 ym-gl', 'ym-gbox-left'), array('ym-g50 ym-gr', 'ym-gbox-right')), '45x55' => array(array('ym-g45 ym-gl', 'ym-gbox-left'), array('ym-g55 ym-gr', 'ym-gbox-right')), '40x60' => array(array('ym-g40 ym-gl', 'ym-gbox-left'), array('ym-g60 ym-gr', 'ym-gbox-right')), '35x65' => array(array('ym-g35 ym-gl', 'ym-gbox-left'), array('ym-g65 ym-gr', 'ym-gbox-right')), '33x66' => array(array('ym-g33 ym-gl', 'ym-gbox-left'), array('ym-g66 ym-gr', 'ym-gbox-right')), '30x70' => array(array('ym-g30 ym-gl', 'ym-gbox-left'), array('ym-g70 ym-gr', 'ym-gbox-right')), '25x75' => array(array('ym-g25 ym-gl', 'ym-gbox-left'), array('ym-g75 ym-gr', 'ym-gbox-right')), '20x80' => array(array('ym-g20 ym-gl', 'ym-gbox-left'), array('ym-g80 ym-gr', 'ym-gbox-right')), '15x85' => array(array('ym-g15 ym-gl', 'ym-gbox-left'), array('ym-g85 ym-gr', 'ym-gbox-right')))));
  168. }
  169. namespace {
  170. // Add back end modules
  171. $GLOBALS['BE_MOD']['content']['faq'] = array('tables' => array('tl_faq_category', 'tl_faq'));
  172. // Front end modules
  173. $GLOBALS['FE_MOD']['faq'] = array('faqlist' => \Contao\ModuleFaqList::class, 'faqreader' => \Contao\ModuleFaqReader::class, 'faqpage' => \Contao\ModuleFaqPage::class);
  174. // Style sheet
  175. if (\defined('TL_MODE') && \TL_MODE == 'BE') {
  176. $GLOBALS['TL_CSS'][] = 'bundles/contaofaq/faq.min.css|static';
  177. }
  178. // Register hooks
  179. $GLOBALS['TL_HOOKS']['getSearchablePages'][] = array(\Contao\ModuleFaq::class, 'getSearchablePages');
  180. // Add permissions
  181. $GLOBALS['TL_PERMISSIONS'][] = 'faqs';
  182. $GLOBALS['TL_PERMISSIONS'][] = 'faqp';
  183. // Models
  184. $GLOBALS['TL_MODELS']['tl_faq_category'] = \Contao\FaqCategoryModel::class;
  185. $GLOBALS['TL_MODELS']['tl_faq'] = \Contao\FaqModel::class;
  186. }
  187. namespace {
  188. // Add the "haste_undo" operation to "undo" module
  189. $GLOBALS['BE_MOD']['system']['undo']['haste_undo'] = [\Codefog\HasteBundle\UndoManager::class, 'onUndoCallback'];
  190. }
  191. namespace {
  192. $GLOBALS['BE_FFL']['dcaWizard'] = \Terminal42\DcawizardBundle\Widget\DcaWizard::class;
  193. $GLOBALS['BE_FFL']['dcaWizardMultilingual'] = \Terminal42\DcawizardBundle\Widget\DcaWizardMultilingual::class;
  194. }
  195. namespace {
  196. // Add content element
  197. $GLOBALS['TL_CTE']['includes']['comments'] = \Contao\ContentComments::class;
  198. // Front end modules
  199. $GLOBALS['FE_MOD']['application']['comments'] = \Contao\ModuleComments::class;
  200. // Back end modules
  201. $GLOBALS['BE_MOD']['content']['comments'] = array('tables' => array('tl_comments'), 'stylesheet' => 'bundles/contaocomments/comments.min.css');
  202. // Cron jobs
  203. $GLOBALS['TL_CRON']['daily']['purgeCommentSubscriptions'] = array(\Contao\Comments::class, 'purgeSubscriptions');
  204. // Models
  205. $GLOBALS['TL_MODELS']['tl_comments'] = \Contao\CommentsModel::class;
  206. $GLOBALS['TL_MODELS']['tl_comments_notify'] = \Contao\CommentsNotifyModel::class;
  207. }
  208. namespace {
  209. /**
  210. * Contao Open Source CMS
  211. *
  212. * Copyright (c) 2005-2014 Leo Feyer
  213. *
  214. * @package novo_margin_before_after
  215. */
  216. }
  217. namespace {
  218. // Custom backend CSS (w25, w33)
  219. if (\TL_MODE === 'BE') {
  220. $GLOBALS['TL_CSS'][] = 'system/modules/hideaway/assets/css/backend.css';
  221. }
  222. $GLOBALS['hideaway'] = array();
  223. $GLOBALS['hideaway']['hotel_reader_id'] = 17;
  224. $GLOBALS['hideaway']['travel_reader_id'] = 18;
  225. $GLOBALS['hideaway']['combi_reader_id'] = 20;
  226. $GLOBALS['hideaway']['trip_reader_id'] = 19;
  227. $GLOBALS['hideaway']['country_reader_url'] = 'land/';
  228. $GLOBALS['hideaway']['region_reader_url'] = 'region/';
  229. $GLOBALS['hideaway']['types'] = array('trip' => array('title' => 'Ausflug'), 'hotel' => array('title' => 'Hotel'), 'combi' => array('title' => 'Kombinationsreise'), 'travel' => array('title' => 'Rundreise'));
  230. /**
  231. * Contao Open Source CMS
  232. *
  233. * Copyright (c) 2005-2014 Leo Feyer
  234. *
  235. * @package hideaway
  236. * @author hideaway
  237. * @license hideaway
  238. * @copyright hideaway
  239. */
  240. /**
  241. * BACK END MODULES
  242. *
  243. * Back end modules are stored in a global array called "BE_MOD". You can add
  244. * your own modules by adding them to the array.
  245. *
  246. * $GLOBALS['BE_MOD'] = array
  247. * (
  248. * 'group_1' => array
  249. * (
  250. * 'module_1' => array
  251. * (
  252. * 'tables' => array('table_1', 'table_2'),
  253. * 'callback' => 'ClassName',
  254. * 'key' => array('Class', 'method'),
  255. * 'icon' => 'path/to/icon.gif',
  256. * 'stylesheet' => 'path/to/stylesheet.css',
  257. * 'javascript' => 'path/to/javascript.js'
  258. * )
  259. * )
  260. * );
  261. *
  262. * Not all of the keys mentioned above (like "tables", "key", "callback" etc.)
  263. * have to be set. Take a look at the system/modules/core/config/config.php
  264. * file to see how back end modules are configured.
  265. */
  266. $i = \array_search('design', \array_keys($GLOBALS['BE_MOD']));
  267. $GLOBALS['BE_MOD'] = \array_merge(\array_slice($GLOBALS['BE_MOD'], 0, $i), array('Hideaway' => array('Features' => array('tables' => array('tl_hideaway_feature'), 'icon' => 'system/modules/hideaway/assets/images/features.png'), 'Zielgruppen' => array('tables' => array('tl_hideaway_target'), 'icon' => 'system/modules/hideaway/assets/images/target.png'), 'Erlebnisse' => array('tables' => array('tl_hideaway_experience'), 'icon' => 'system/modules/hideaway/assets/images/experience.png'), 'Countries' => array('tables' => array('tl_hideaway_country', 'tl_content'), 'icon' => 'system/modules/hideaway/assets/images/country.png'), 'Regions' => array('tables' => array('tl_hideaway_region', 'tl_content'), 'icon' => 'system/modules/hideaway/assets/images/region.png'), 'Hotels' => array('tables' => array('tl_hideaway_hotel'), 'icon' => 'system/modules/hideaway/assets/images/hotel.png'), 'Travels' => array('tables' => array('tl_hideaway_travel'), 'icon' => 'system/modules/hideaway/assets/images/travel.png'), 'Trips' => array('tables' => array('tl_hideaway_trip'), 'icon' => 'system/modules/hideaway/assets/images/trip.png'), 'Combis' => array('tables' => array('tl_hideaway_combis'), 'icon' => 'system/modules/hideaway/assets/images/combis.png'), 'Kundenbewertungen' => array('tables' => array('tl_hideaway_testimonial'), 'icon' => 'system/modules/hideaway/assets/images/features.png'))), \array_slice($GLOBALS['BE_MOD'], $i));
  268. /**
  269. * FRONT END MODULES
  270. *
  271. * Front end modules are stored in a global array called "FE_MOD". You can add
  272. * your own modules by adding them to the array.
  273. *
  274. * $GLOBALS['FE_MOD'] = array
  275. * (
  276. * 'group_1' => array
  277. * (
  278. * 'module_1' => 'ModuleClass1',
  279. * 'module_2' => 'ModuleClass2'
  280. * )
  281. * );
  282. *
  283. * The keys (like "module_1") are the module names, which are e.g. stored in the
  284. * database and used to find the corresponding translations. The values (like
  285. * "ModuleClass1") are the names of the classes, which will be loaded when the
  286. * module is rendered. The class "ModuleClass1" has to be stored in a file
  287. * named "ModuleClass1.php" in your module folder.
  288. */
  289. $GLOBALS['FE_MOD']['Hideaway']['Navigation'] = 'CeHideawayNavigation';
  290. $GLOBALS['FE_MOD']['Hideaway']['NavigationExperience'] = 'CeHideawayNavigationExperience';
  291. $GLOBALS['FE_MOD']['Hideaway']['ExperienceList'] = 'CeHideawayExperienceList';
  292. $GLOBALS['FE_MOD']['Hideaway']['CountryList'] = 'CeHideawayCountryList';
  293. $GLOBALS['FE_MOD']['Hideaway']['TargetList'] = 'CeHideawayTargetList';
  294. $GLOBALS['FE_MOD']['Hideaway']['Filter'] = 'CeHideawayFilter';
  295. /**
  296. * CONTENT ELEMENTS
  297. *
  298. * Content elements are stored in a global array called "TL_CTE". You can add
  299. * your own content elements by adding them to the array.
  300. *
  301. * $GLOBALS['TL_CTE'] = array
  302. * (
  303. * 'group_1' => array
  304. * (
  305. * 'cte_1' => 'ContentClass1',
  306. * 'cte_2' => 'ContentClass2'
  307. * )
  308. * );
  309. *
  310. * The keys (like "cte_1") are the element names, which are e.g. stored in the
  311. * database and used to find the corresponding translations. The values (like
  312. * "ContentClass1") are the names of the classes, which will be loaded when the
  313. * element is rendered. The class "ContentClass1" has to be stored in a file
  314. * named "ContentClass1.php" in your module folder.
  315. */
  316. $GLOBALS['TL_CTE']['Hideaway']['List'] = 'CeHideawayList';
  317. $GLOBALS['TL_CTE']['Hideaway']['ListHeader'] = 'CeHideawayListHeader';
  318. $GLOBALS['TL_CTE']['Hideaway']['HotelReader'] = 'CeHideawayHotelReader';
  319. $GLOBALS['TL_CTE']['Hideaway']['TravelReader'] = 'CeHideawayTravelReader';
  320. $GLOBALS['TL_CTE']['Hideaway']['CombiReader'] = 'CeHideawayCombiReader';
  321. $GLOBALS['TL_CTE']['Hideaway']['TripReader'] = 'CeHideawayTripReader';
  322. $GLOBALS['TL_CTE']['Hideaway']['CountryHeaderReader'] = 'CeHideawayCountryHeaderReader';
  323. $GLOBALS['TL_CTE']['Hideaway']['CountryContentReader'] = 'CeHideawayCountryContentReader';
  324. $GLOBALS['TL_CTE']['Hideaway']['RegionHeaderReader'] = 'CeHideawayRegionHeaderReader';
  325. $GLOBALS['TL_CTE']['Hideaway']['RegionContentReader'] = 'CeHideawayRegionContentReader';
  326. $GLOBALS['TL_CTE']['Hideaway']['Watchlist'] = 'CeHideawayWatchlist';
  327. $GLOBALS['TL_CTE']['Hideaway']['Testimonials'] = 'CeHideawayTestimonials';
  328. /**
  329. * BACK END FORM FIELDS
  330. *
  331. * Back end form fields are stored in a global array called "BE_FFL". You can
  332. * add your own form fields by adding them to the array.
  333. *
  334. * $GLOBALS['BE_FFL'] = array
  335. * (
  336. * 'input' => 'FieldClass1',
  337. * 'select' => 'FieldClass2'
  338. * );
  339. *
  340. * The keys (like "input") are the field names, which are e.g. stored in the
  341. * database and used to find the corresponding translations. The values (like
  342. * "FieldClass1") are the names of the classes, which will be loaded when the
  343. * field is rendered. The class "FieldClass1" has to be stored in a file named
  344. * "FieldClass1.php" in your module folder.
  345. */
  346. /**
  347. * FRONT END FORM FIELDS
  348. *
  349. * Front end form fields are stored in a global array called "TL_FFL". You can
  350. * add your own form fields by adding them to the array.
  351. *
  352. * $GLOBALS['TL_FFL'] = array
  353. * (
  354. * 'input' => 'FieldClass1',
  355. * 'select' => 'FieldClass2'
  356. * );
  357. *
  358. * The keys (like "input") are the field names, which are e.g. stored in the
  359. * database and used to find the corresponding translations. The values (like
  360. * "FieldClass1") are the names of the classes, which will be loaded when the
  361. * field is rendered. The class "FieldClass1" has to be stored in a file named
  362. * "FieldClass1.php" in your module folder.
  363. */
  364. /**
  365. * PAGE TYPES
  366. *
  367. * Page types are stored in a global array called "TL_PTY". You can add your own
  368. * page types by adding them to the array.
  369. *
  370. * $GLOBALS['TL_PTY'] = array
  371. * (
  372. * 'type_1' => 'PageType1',
  373. * 'type_2' => 'PageType2'
  374. * );
  375. *
  376. * The keys (like "type_1") are the field names, which are e.g. stored in the
  377. * database and used to find the corresponding translations. The values (like
  378. * "PageType1") are the names of the classes, which will be loaded when the
  379. * page is rendered. The class "PageType1" has to be stored in a file named
  380. * "PageType1.php" in your module folder.
  381. */
  382. /**
  383. * MODEL MAPPINGS
  384. *
  385. * Model names are usually built from the table names, e.g. "tl_user_group"
  386. * becomes "UserGroupModel". There might be situations, however, where you need
  387. * to specify a custom mapping, e.g. when you are using nested namespaces.
  388. *
  389. * $GLOBALS['TL_MODELS'] = array
  390. * (
  391. * 'tl_user' => 'Vendor\Application\UserModel',
  392. * 'tl_user_group' => 'Vendor\Application\UserGroupModel'
  393. * );
  394. *
  395. * You can register your mappings in the config.php file of your extension.
  396. */
  397. /**
  398. * MAINTENANCE MODULES
  399. *
  400. * Maintenance modules are stored in a global array called "TL_MAINTENANCE". You
  401. * can add your own maintenance modules by adding them to the array.
  402. *
  403. * $GLOBALS['TL_MAINTENANCE'] = array
  404. * (
  405. * 'ClearCache',
  406. * 'RebuildSearchIndex'
  407. * );
  408. *
  409. * Take a look at the system/modules/core/classes/PurgeData.php file to see how
  410. * maintenance modules are set up. The class "ClearCache" has to be stored in a
  411. * file named "ClearCache.php" in your module folder.
  412. */
  413. /**
  414. * PURGE JOBS
  415. *
  416. * Purge jobs are stored in a global array called "TL_PURGE". You can add your
  417. * own purge jobs by adding them to the array.
  418. *
  419. * $GLOBALS['TL_PURGE'] = array
  420. * (
  421. * 'job_1' => array
  422. * (
  423. * 'tables' => array
  424. * (
  425. * 'index' => array
  426. * (
  427. * 'callback' => array('Automator', 'purgeSearchTables'),
  428. * 'affected' => array('tl_search', 'tl_search_index')
  429. * ),
  430. * )
  431. * );
  432. *
  433. * There are three categories: "tables" stores jobs which truncate database
  434. * tables, "folders" stores jobs which purge folders and "custom" stores jobs
  435. * which only trigger a callback function.
  436. */
  437. /**
  438. * CRON JOBS
  439. *
  440. * Cron jobs are stored in a global array called "TL_CRON". You can add your own
  441. * cron jobs by adding them to the array.
  442. *
  443. * $GLOBALS['TL_CRON'] = array
  444. * (
  445. * 'monthly' => array
  446. * (
  447. * array('Automator', 'purgeImageCache')
  448. * ),
  449. * 'weekly' => array(),
  450. * 'daily' => array(),
  451. * 'hourly' => array(),
  452. * 'minutely' => array()
  453. * );
  454. *
  455. * Note that this is rather a command scheduler than a cron job, which does not
  456. * guarantee an exact execution time. You can replace the command scheduler with
  457. * a real cron job though.
  458. */
  459. /**
  460. * HOOKS
  461. *
  462. * Hooks are stored in a global array called "TL_HOOKS". You can register your
  463. * own functions by adding them to the array.
  464. *
  465. * $GLOBALS['TL_HOOKS'] = array
  466. * (
  467. * 'hook_1' => array
  468. * (
  469. * array('MyClass', 'myPostLogin'),
  470. * array('MyClass', 'myPostLogout')
  471. * )
  472. * );
  473. *
  474. * Hooks allow you to add functionality to the core without having to modify the
  475. * source code by registering callback functions to be executed on a particular
  476. * event. For more information see https://contao.org/manual.html.
  477. */
  478. $GLOBALS['TL_HOOKS']['generateFrontendUrl'][] = array('URLBuilder', 'removeItemFromUrl');
  479. $GLOBALS['TL_HOOKS']['getPageIdFromUrl'][] = array('URLBuilder', 'addItemToUrl');
  480. $GLOBALS['TL_HOOKS']['replaceInsertTags'][] = array('MyInserttags', 'myReplaceInserttags');
  481. /**
  482. * AUTO ITEMS
  483. *
  484. * Auto items are stored in a global array called "TL_AUTO_ITEM". You can
  485. * register your own auto items by adding them to the array.
  486. *
  487. * $GLOBALS['TL_AUTO_ITEM'] = array('items', 'events');
  488. *
  489. * Auto items are keywords, which are used as parameters by certain modules.
  490. * When rebuilding the search index URLs, Contao needs to know about these
  491. * keywords so it can handle them properly.
  492. */
  493. }
  494. namespace {
  495. /*
  496. * Add the backend module if allowed.
  497. */
  498. if (\Contao\System::getContainer()->getParameter('terminal42_url_rewrite.backend_management')) {
  499. $GLOBALS['BE_MOD']['system']['url_rewrites'] = ['tables' => ['tl_url_rewrite'], 'qrCode' => ['terminal42_url_rewrite.qr_code_controller', 'index']];
  500. }
  501. /*
  502. * Hooks
  503. */
  504. $GLOBALS['TL_HOOKS']['insertTagFlags'][] = ['terminal42_url_rewrite.listener.insert_tags', 'onInsertTagFlags'];
  505. }
  506. namespace {
  507. // Back end modules
  508. $GLOBALS['BE_MOD']['content']['news'] = array('tables' => array('tl_news_archive', 'tl_news', 'tl_news_feed', 'tl_content'), 'table' => array(\Contao\TableWizard::class, 'importTable'), 'list' => array(\Contao\ListWizard::class, 'importList'));
  509. // Front end modules
  510. $GLOBALS['FE_MOD']['news'] = array('newslist' => \Contao\ModuleNewsList::class, 'newsreader' => \Contao\ModuleNewsReader::class, 'newsarchive' => \Contao\ModuleNewsArchive::class, 'newsmenu' => \Contao\ModuleNewsMenu::class);
  511. // Cron jobs
  512. $GLOBALS['TL_CRON']['daily']['generateNewsFeeds'] = array(\Contao\News::class, 'generateFeeds');
  513. // Style sheet
  514. if (\defined('TL_MODE') && \TL_MODE == 'BE') {
  515. $GLOBALS['TL_CSS'][] = 'bundles/contaonews/news.min.css|static';
  516. }
  517. // Register hooks
  518. $GLOBALS['TL_HOOKS']['removeOldFeeds'][] = array(\Contao\News::class, 'purgeOldFeeds');
  519. $GLOBALS['TL_HOOKS']['getSearchablePages'][] = array(\Contao\News::class, 'getSearchablePages');
  520. $GLOBALS['TL_HOOKS']['generateXmlFiles'][] = array(\Contao\News::class, 'generateFeeds');
  521. // Add permissions
  522. $GLOBALS['TL_PERMISSIONS'][] = 'news';
  523. $GLOBALS['TL_PERMISSIONS'][] = 'newp';
  524. $GLOBALS['TL_PERMISSIONS'][] = 'newsfeeds';
  525. $GLOBALS['TL_PERMISSIONS'][] = 'newsfeedp';
  526. // Models
  527. $GLOBALS['TL_MODELS']['tl_news_archive'] = \Contao\NewsArchiveModel::class;
  528. $GLOBALS['TL_MODELS']['tl_news_feed'] = \Contao\NewsFeedModel::class;
  529. $GLOBALS['TL_MODELS']['tl_news'] = \Contao\NewsModel::class;
  530. }
  531. namespace {
  532. \Contao\ArrayUtil::arrayInsert($GLOBALS['BE_MOD'], 1, ['leads' => ['lead' => ['tables' => ['tl_lead', 'tl_lead_data']]]]);
  533. $GLOBALS['BE_MOD']['content']['form']['tables'][] = 'tl_lead_export';
  534. $GLOBALS['TL_PERMISSIONS'][] = 'leadp';
  535. }
  536. namespace {
  537. // Front end module
  538. $GLOBALS['FE_MOD']['application']['listing'] = \Contao\ModuleListing::class;
  539. }
  540. namespace {
  541. $GLOBALS['BE_MOD']['notification_center'] = ['nc_notifications' => ['tables' => ['tl_nc_notification', 'tl_nc_message', 'tl_nc_language']], 'nc_gateways' => ['tables' => ['tl_nc_gateway']]];
  542. }
  543. namespace {
  544. // Back end modules
  545. $GLOBALS['BE_MOD']['content']['calendar'] = array('tables' => array('tl_calendar', 'tl_calendar_events', 'tl_calendar_feed', 'tl_content'), 'table' => array(\Contao\TableWizard::class, 'importTable'), 'list' => array(\Contao\ListWizard::class, 'importList'));
  546. // Front end modules
  547. $GLOBALS['FE_MOD']['events'] = array('calendar' => \Contao\ModuleCalendar::class, 'eventreader' => \Contao\ModuleEventReader::class, 'eventlist' => \Contao\ModuleEventlist::class, 'eventmenu' => \Contao\ModuleEventMenu::class);
  548. // Cron jobs
  549. $GLOBALS['TL_CRON']['daily']['generateCalendarFeeds'] = array(\Contao\Calendar::class, 'generateFeeds');
  550. // Style sheet
  551. if (\defined('TL_MODE') && \TL_MODE == 'BE') {
  552. $GLOBALS['TL_CSS'][] = 'bundles/contaocalendar/calendar.min.css|static';
  553. }
  554. // Register hooks
  555. $GLOBALS['TL_HOOKS']['removeOldFeeds'][] = array(\Contao\Calendar::class, 'purgeOldFeeds');
  556. $GLOBALS['TL_HOOKS']['getSearchablePages'][] = array(\Contao\Calendar::class, 'getSearchablePages');
  557. $GLOBALS['TL_HOOKS']['generateXmlFiles'][] = array(\Contao\Calendar::class, 'generateFeeds');
  558. // Add permissions
  559. $GLOBALS['TL_PERMISSIONS'][] = 'calendars';
  560. $GLOBALS['TL_PERMISSIONS'][] = 'calendarp';
  561. $GLOBALS['TL_PERMISSIONS'][] = 'calendarfeeds';
  562. $GLOBALS['TL_PERMISSIONS'][] = 'calendarfeedp';
  563. // Models
  564. $GLOBALS['TL_MODELS']['tl_calendar_events'] = \Contao\CalendarEventsModel::class;
  565. $GLOBALS['TL_MODELS']['tl_calendar_feed'] = \Contao\CalendarFeedModel::class;
  566. $GLOBALS['TL_MODELS']['tl_calendar'] = \Contao\CalendarModel::class;
  567. }
  568. namespace {
  569. // Back end modules
  570. $GLOBALS['BE_MOD']['content']['newsletter'] = array('tables' => array('tl_newsletter_channel', 'tl_newsletter', 'tl_newsletter_recipients'), 'send' => array(\Contao\Newsletter::class, 'send'), 'import' => array(\Contao\Newsletter::class, 'importRecipients'), 'stylesheet' => 'bundles/contaonewsletter/newsletter.min.css');
  571. // Front end modules
  572. $GLOBALS['FE_MOD']['newsletter'] = array('subscribe' => \Contao\ModuleSubscribe::class, 'unsubscribe' => \Contao\ModuleUnsubscribe::class, 'newsletterlist' => \Contao\ModuleNewsletterList::class, 'newsletterreader' => \Contao\ModuleNewsletterReader::class);
  573. // Register hooks
  574. $GLOBALS['TL_HOOKS']['createNewUser'][] = array(\Contao\Newsletter::class, 'createNewUser');
  575. $GLOBALS['TL_HOOKS']['activateAccount'][] = array(\Contao\Newsletter::class, 'activateAccount');
  576. $GLOBALS['TL_HOOKS']['getSearchablePages'][] = array(\Contao\Newsletter::class, 'getSearchablePages');
  577. $GLOBALS['TL_HOOKS']['closeAccount'][] = array(\Contao\Newsletter::class, 'removeSubscriptions');
  578. // Add permissions
  579. $GLOBALS['TL_PERMISSIONS'][] = 'newsletters';
  580. $GLOBALS['TL_PERMISSIONS'][] = 'newsletterp';
  581. // Cron jobs
  582. $GLOBALS['TL_CRON']['daily']['purgeNewsletterSubscriptions'] = array(\Contao\Newsletter::class, 'purgeSubscriptions');
  583. // Models
  584. $GLOBALS['TL_MODELS']['tl_newsletter_channel'] = \Contao\NewsletterChannelModel::class;
  585. $GLOBALS['TL_MODELS']['tl_newsletter_deny_list'] = \Contao\NewsletterDenyListModel::class;
  586. $GLOBALS['TL_MODELS']['tl_newsletter'] = \Contao\NewsletterModel::class;
  587. $GLOBALS['TL_MODELS']['tl_newsletter_recipients'] = \Contao\NewsletterRecipientsModel::class;
  588. }
  589. namespace {
  590. $GLOBALS['TL_HOOKS']['parseFrontendTemplate'][] = array('SubcolumnsBootstrap', 'parseFrontendTemplateHook');
  591. $GLOBALS['TL_SUBCL']['bootstrap'] = array('label' => 'Bootstrap', 'scclass' => 'row', 'equalize' => \false, 'inside' => \false, 'gap' => \false, 'files' => array(), 'sets' => array(
  592. // two columns
  593. '2/10' => array(array('col-lg-4', 'inside'), array('col-lg-10', 'inside')),
  594. // ~15x85
  595. '4/8' => array(array('col-lg-4', 'inside'), array('col-lg-6"', 'inside')),
  596. // ~33x66
  597. '6/6' => array(array('col-lg-6', 'inside'), array('col-lg-6', 'inside')),
  598. // ~50x50
  599. '8/4' => array(array('col-lg-8', 'inside'), array('col-lg-4', 'inside')),
  600. // ~66x33
  601. '10/2' => array(array('col-lg-10', 'inside'), array('col-lg-2', 'inside')),
  602. // ~85x15
  603. // three columns
  604. '4/4/4' => array(array('col-lg-4', 'inside'), array('col-lg-4', 'inside'), array('col-lg-4', 'inside')),
  605. // ~33x33x33
  606. // four columns
  607. '3/3/3/3' => array(array('col-lg-3', 'inside'), array('col-lg-3', 'inside'), array('col-lg-3', 'inside'), array('col-lg-3
  608. ', 'inside')),
  609. ));
  610. }
  611. namespace {
  612. /**
  613. * Contao Open Source CMS
  614. *
  615. * Copyright (c) 2005-2015 Leo Feyer
  616. *
  617. * @license LGPL-3.0+
  618. */
  619. // Prefix
  620. \define('DMA_EG_PREFIX', 'dma_eg_');
  621. // Backend module definition
  622. \array_insert($GLOBALS['BE_MOD']['design'], 1, array('dma_eg' => array('tables' => array('tl_dma_eg', 'tl_dma_eg_fields'), 'icon' => 'system/modules/dma_elementgenerator/html/icon.png', 'javascript' => 'system/modules/dma_elementgenerator/html/tl_dma_eg-uncompressed.js')));
  623. // include the localconfig since Contao 3
  624. include \TL_ROOT . '/system/config/localconfig.php';
  625. // Get defined frontend modules from configuration
  626. if ($GLOBALS['TL_CONFIG']['dma_eg_modules'] ?? \null) {
  627. $arrModules = \unserialize($GLOBALS['TL_CONFIG']['dma_eg_modules']);
  628. } else {
  629. $arrModules = array();
  630. }
  631. // Get defined Contentelements from configuration
  632. if ($GLOBALS['TL_CONFIG']['dma_eg_content'] ?? \null) {
  633. $arrContent = \unserialize($GLOBALS['TL_CONFIG']['dma_eg_content']);
  634. } else {
  635. $arrContent = array();
  636. }
  637. // Include modules in list
  638. foreach ($arrModules as $strCategory => $arrElements) {
  639. foreach ($arrElements as $strElement) {
  640. $GLOBALS['FE_MOD'][$strCategory][\DMA_EG_PREFIX . $strElement] = 'DMAElementGeneratorModule';
  641. }
  642. }
  643. // Include Contentelements in list
  644. foreach ($arrContent as $strCategory => $arrElements) {
  645. foreach ($arrElements as $strElement) {
  646. $GLOBALS['TL_CTE'][$strCategory][\DMA_EG_PREFIX . $strElement] = 'DMAElementGeneratorContent';
  647. }
  648. }
  649. // Define dummy data widget
  650. $GLOBALS['BE_FFL']['dma_eg_hidden'] = 'DMAElementGeneratorHiddenWidget';
  651. $GLOBALS['BE_FFL']['dma_eg_combobox'] = 'DMAElementGeneratorComboBox';
  652. $GLOBALS['DMA_EG']['EL_COUNT'] = array();
  653. // Hooks
  654. if (\version_compare(\VERSION . \BUILD, '3.10', '>=') && \version_compare(\VERSION . \BUILD, '3.20', '<')) {
  655. $GLOBALS['TL_HOOKS']['executePostActions'][] = array('DMAElementGenerator', 'fixedAjaxRequest');
  656. }
  657. $GLOBALS['TL_HOOKS']['loadLanguageFile'][] = array('DMA\\DMAElementGenerator', 'dmaEgLoadLanguageFile');
  658. }