TYPO3 CMS  TYPO3_8-7
ext_localconf.php
Go to the documentation of this file.
1 <?php
2 defined('TYPO3_MODE') or die();
3 
4 call_user_func(function () {
5  // Register upgrade wizard in install tool
6  $GLOBALS['TYPO3_CONF_VARS']['SC_OPTIONS']['ext/install']['update']['formFileExtension']
7  = \TYPO3\CMS\Form\Hooks\FormFileExtensionUpdate::class;
8 
9  // Context menu item handling for form files
10  $GLOBALS['TYPO3_CONF_VARS']['BE']['ContextMenu']['ItemProviders'][1530637161]
11  = \TYPO3\CMS\Form\Hooks\FormFileProvider::class;
12 
13  $GLOBALS['TYPO3_CONF_VARS']['SC_OPTIONS']['ext/impexp/class.tx_impexp.php']['before_addSysFileRecord'][1530637161]
14  = \TYPO3\CMS\Form\Hooks\ImportExportHook::class . '->beforeAddSysFileRecordOnImport';
15 
16  // File list edit icons
17  $GLOBALS['TYPO3_CONF_VARS']['SC_OPTIONS']['fileList']['editIconsHook'][1530637161]
18  = \TYPO3\CMS\Form\Hooks\FileListEditIconsHook::class;
19 
20  if (TYPO3_MODE === 'BE') {
21  // Hook to enrich tt_content form flex element with finisher settings and form list drop down
22  $GLOBALS['TYPO3_CONF_VARS']['SC_OPTIONS'][\TYPO3\CMS\Core\Configuration\FlexForm\FlexFormTools::class]['flexParsing'][
23  \TYPO3\CMS\Form\Hooks\DataStructureIdentifierHook::class
24  ] = \TYPO3\CMS\Form\Hooks\DataStructureIdentifierHook::class;
25 
26  // Hook to count used forms elements in tt_content
27  $GLOBALS['TYPO3_CONF_VARS']['SC_OPTIONS']['GLOBAL']['softRefParser']['formPersistenceIdentifier'] =
28  \TYPO3\CMS\Form\Hooks\SoftReferenceParserHook::class;
29 
30  // Register for hook to show preview of tt_content element of CType="form_formframework" in page module
31  $GLOBALS['TYPO3_CONF_VARS']['SC_OPTIONS']['cms/layout/class.tx_cms_layout.php']['tt_content_drawItem']['form_formframework'] =
32  \TYPO3\CMS\Form\Hooks\FormPagePreviewRenderer::class;
33 
34  // Add a bunch of icons to icon registry
35  $iconIdentifiers = [
36  'advanced-password',
37  'checkbox',
38  'content-element',
39  'date-picker',
40  'duplicate',
41  'fieldset',
42  'file-upload',
43  'finisher',
44  'form-element-selector',
45  'gridcontainer',
46  'gridrow',
47  'hidden',
48  'image-upload',
49  'insert-after',
50  'insert-in',
51  'multi-checkbox',
52  'multi-select',
53  'page',
54  'password',
55  'radio-button',
56  'single-select',
57  'static-text',
58  'summary-page',
59  'text',
60  'textarea',
61  'validator'
62  ];
63  $iconRegistry = \TYPO3\CMS\Core\Utility\GeneralUtility::makeInstance(\TYPO3\CMS\Core\Imaging\IconRegistry::class);
64  foreach ($iconIdentifiers as $iconIdentifier) {
65  $iconRegistry->registerIcon(
66  't3-form-icon-' . $iconIdentifier,
67  \TYPO3\CMS\Core\Imaging\IconProvider\SvgIconProvider::class,
68  ['source' => 'EXT:form/Resources/Public/Images/' . $iconIdentifier . '.svg']
69  );
70  }
71 
72  // Add new content element wizard entry
74  '<INCLUDE_TYPOSCRIPT: source="FILE:EXT:form/Configuration/PageTS/modWizards.ts">'
75  );
76  }
77 
78  if (TYPO3_MODE === 'FE') {
79  $GLOBALS['TYPO3_CONF_VARS']['SC_OPTIONS']['ext/form']['afterSubmit'][1489772699]
80  = \TYPO3\CMS\Form\Hooks\FormElementsOnSubmitHooks::class;
81 
82  // FE file upload processing
83  $GLOBALS['TYPO3_CONF_VARS']['SC_OPTIONS']['ext/form']['afterBuildingFinished'][1489772699]
84  = \TYPO3\CMS\Form\Mvc\Property\PropertyMappingConfiguration::class;
85 
87  \TYPO3\CMS\Form\Mvc\Property\TypeConverter\UploadedFileReferenceConverter::class
88  );
89  }
90 
92  \TYPO3\CMS\Form\Mvc\Property\TypeConverter\FormDefinitionArrayConverter::class
93  );
94 
95  // Register "formvh:" namespace
96  $GLOBALS['TYPO3_CONF_VARS']['SYS']['fluid']['namespaces']['formvh'][] = 'TYPO3\\CMS\\Form\\ViewHelpers';
97 
98  // Register FE plugin
100  'TYPO3.CMS.Form',
101  'Formframework',
102  ['FormFrontend' => 'render, perform'],
103  ['FormFrontend' => 'perform'],
104  \TYPO3\CMS\Extbase\Utility\ExtensionUtility::PLUGIN_TYPE_CONTENT_ELEMENT
105  );
106 
107  // Register slots for file handling
109  \TYPO3\CMS\Extbase\SignalSlot\Dispatcher::class
110  );
111  $signalSlotDispatcher->connect(
112  \TYPO3\CMS\Core\Resource\ResourceStorage::class,
113  \TYPO3\CMS\Core\Resource\ResourceStorageInterface::SIGNAL_PreFileCreate,
114  \TYPO3\CMS\Form\Slot\FilePersistenceSlot::class,
115  'onPreFileCreate'
116  );
117  $signalSlotDispatcher->connect(
118  \TYPO3\CMS\Core\Resource\ResourceStorage::class,
119  \TYPO3\CMS\Core\Resource\ResourceStorageInterface::SIGNAL_PreFileAdd,
120  \TYPO3\CMS\Form\Slot\FilePersistenceSlot::class,
121  'onPreFileAdd'
122  );
123  $signalSlotDispatcher->connect(
124  \TYPO3\CMS\Core\Resource\ResourceStorage::class,
125  \TYPO3\CMS\Core\Resource\ResourceStorageInterface::SIGNAL_PreFileRename,
126  \TYPO3\CMS\Form\Slot\FilePersistenceSlot::class,
127  'onPreFileRename'
128  );
129  $signalSlotDispatcher->connect(
130  \TYPO3\CMS\Core\Resource\ResourceStorage::class,
131  \TYPO3\CMS\Core\Resource\ResourceStorageInterface::SIGNAL_PreFileReplace,
132  \TYPO3\CMS\Form\Slot\FilePersistenceSlot::class,
133  'onPreFileReplace'
134  );
135  $signalSlotDispatcher->connect(
136  \TYPO3\CMS\Core\Resource\ResourceStorage::class,
137  \TYPO3\CMS\Core\Resource\ResourceStorageInterface::SIGNAL_PreFileMove,
138  \TYPO3\CMS\Form\Slot\FilePersistenceSlot::class,
139  'onPreFileMove'
140  );
141  $signalSlotDispatcher->connect(
142  \TYPO3\CMS\Core\Resource\ResourceStorage::class,
143  \TYPO3\CMS\Core\Resource\ResourceStorageInterface::SIGNAL_PreFileSetContents,
144  \TYPO3\CMS\Form\Slot\FilePersistenceSlot::class,
145  'onPreFileSetContents'
146  );
147 });
static configurePlugin($extensionName, $pluginName, array $controllerActions, array $nonCacheableControllerActions=[], $pluginType=self::PLUGIN_TYPE_PLUGIN)
static registerTypeConverter($typeConverterClassName)
static makeInstance($className,... $constructorArguments)
$iconRegistry
$signalSlotDispatcher
if(TYPO3_MODE==='BE') $GLOBALS['TYPO3_CONF_VARS']['SC_OPTIONS']['t3lib/class.t3lib_tsfebeuserauth.php']['frontendEditingController']['default']