/** * @return void */ public function welcomeAction() { $items = array(); $tools = ToolRegistry::getInstance()->getTools($this->getModuleLoader()->getDataType()); foreach ($tools as $index => $tool) { $item = array(); $item['title'] = $tool->getTitle(); $item['description'] = $tool->getDescription(); $items[] = $item; } $this->view->assign('items', $items); }
/** * Renders a dropdown menu for storage. * * @return string */ public function render() { $result = ''; // Compute the additional parameters. $additionalParameters = array($this->getModuleLoader()->getParameterPrefix() => array('controller' => 'Tool', 'action' => 'welcome')); // Get current data type and tell whether there are registered tools. $dataType = $this->getModuleLoader()->getDataType(); if (ToolRegistry::getInstance()->hasAnyTools($dataType)) { $result = sprintf('<a href="%s&returnUrl=%s" class="btn btn-default btn-sm btn-doc-header" title="%s"><span class="t3-icon fa fa-cog" aria-hidden="true"></span></a>', $this->getModuleLoader()->getModuleUrl($additionalParameters), urlencode($this->getModuleLoader()->getModuleUrl()), $this->getLanguageService()->sL('LLL:EXT:vidi/Resources/Private/Language/locallang.xlf:open_tools')); } return $result; }
/** * Check whether $tool is valid. * * @param string $tool * @return void */ public function isValid($tool) { $dataType = $this->getModuleLoader()->getDataType(); $isValid = ToolRegistry::getInstance()->isAllowed($dataType, $tool); if (!$isValid) { $message = sprintf('This Tool "%s" is not allowed for the current data type.', $tool); $this->addError($message, 1409041510); } if (!class_exists($tool)) { $message = sprintf('I could not find class "%s"', $tool); $this->addError($message, 1409041511); } }
# 'Clipboard' => 'save, flush, show', # ), array( # 'access' => 'user,group', # 'icon' => 'EXT:vidi/Resources/Public/Images/list.png', # 'labels' => $labelFile, # ) # ); #} #if ($configuration['hide_module_list']['value']) { # # // Default User TSConfig to be added in any case. # TYPO3\CMS\Core\Utility\ExtensionManagementUtility::addUserTSConfig(' # # # Hide the module in the BE. # options.hideModules.web := addToList(list) # '); #} /** @var \TYPO3\CMS\Extbase\Object\ObjectManager $objectManager */ $objectManager = \TYPO3\CMS\Core\Utility\GeneralUtility::makeInstance('TYPO3\\CMS\\Extbase\\Object\\ObjectManager'); /** @var $signalSlotDispatcher \TYPO3\CMS\Extbase\SignalSlot\Dispatcher */ $signalSlotDispatcher = $objectManager->get('TYPO3\\CMS\\Extbase\\SignalSlot\\Dispatcher'); // Connect "processContentData" signal slot with the "ContentObjectProcessor". $signalSlotDispatcher->connect('Fab\\Vidi\\Controller\\Backend\\ContentController', 'processContentData', 'Fab\\Vidi\\Processor\\ContentObjectProcessor', 'processRelations', TRUE); // Connect "processContentData" signal with the "MarkerProcessor". $signalSlotDispatcher->connect('Fab\\Vidi\\Controller\\Backend\\ContentController', 'processContentData', 'Fab\\Vidi\\Processor\\MarkerProcessor', 'processMarkers', TRUE); // Register default Tools for Vidi. \Fab\Vidi\Tool\ToolRegistry::getInstance()->register('*', 'Fab\\Vidi\\Tool\\ModulePreferencesTool'); \Fab\Vidi\Tool\ToolRegistry::getInstance()->register('*', 'Fab\\Vidi\\Tool\\RelationAnalyserTool'); } // Add new sprite icon. \TYPO3\CMS\Backend\Sprite\SpriteManager::addSingleIcons(['go' => \TYPO3\CMS\Core\Utility\ExtensionManagementUtility::extRelPath('vidi') . 'Resources/Public/Images/bullet_go.png', 'query' => \TYPO3\CMS\Core\Utility\ExtensionManagementUtility::extRelPath('vidi') . 'Resources/Public/Images/drive_disk.png'], 'vidi');
RTE.default.showButtons := addToList(linkcreator,imageeditor) // Toolbar order // Must be completely reset RTE.default.toolbarOrder = formatblock, blockstyle, textstyle, linebreak, bold, italic, underline, strikethrough, bar, textcolor, bgcolor, bar, orderedlist, unorderedlist, bar, left, center, right, justifyfull, copy, cut, paste, bar, undo, redo, bar, findreplace, removeformat, bar, link, unlink, linkcreator, bar, imageeditor, bar, table, bar, line, bar, insertparagraphbefore, insertparagraphafter, bar, chMode, showhelp, about, linebreak, tableproperties, rowproperties, rowinsertabove, rowinsertunder, rowdelete, rowsplit, columninsertbefore, columninsertafter, columndelete, columnsplit, cellproperties, cellinsertbefore, cellinsertafter, celldelete, cellsplit, cellmerge RTE.default.RTEHeightOverride = 700 RTE.default.RTEWidthOverride = 700 '); } \TYPO3\CMS\Extbase\Utility\ExtensionUtility::registerModule('Fab.media', 'user', 'm1', 'bottom', array('Asset' => 'create, update, download, editStorage', 'ImageEditor' => 'show', 'LinkCreator' => 'show', 'ProcessedFile' => 'create'), array('access' => 'user,group', 'icon' => 'EXT:media/ext_icon.gif', 'labels' => 'LLL:EXT:media/Resources/Private/Language/locallang_module.xlf')); $defaultMainModule = (bool) $configuration['has_folder_tree']['value'] ? 'file' : 'content'; /** @var \Fab\Vidi\Module\ModuleLoader $moduleLoader */ $moduleLoader = \TYPO3\CMS\Core\Utility\GeneralUtility::makeInstance('Fab\\Vidi\\Module\\ModuleLoader', 'sys_file'); $moduleLoader->setIcon('EXT:media/ext_icon.gif')->setModuleLanguageFile($moduleFileLanguage)->setMainModule($defaultMainModule)->addJavaScriptFiles(array('EXT:media/Resources/Public/JavaScript/Initialize.js', 'EXT:media/Resources/Public/JavaScript/Media.js', 'EXT:media/Resources/Public/JavaScript/Media.EditStorage.js', 'EXT:media/Resources/Public/JavaScript/Media.BrowseRecursively.js', 'EXT:media/Resources/Public/Libraries/Fineuploader/jquery.fineuploader-5.0.9.min.js'))->addStyleSheetFiles(array('EXT:media/Resources/Public/StyleSheets/media.css', 'EXT:media/Resources/Public/StyleSheets/fineuploader.css'))->setDocHeaderTopLeftComponents(array('Fab\\Media\\View\\Menu\\StorageMenu', 'Fab\\Media\\View\\Checkbox\\RecursiveCheckbox'))->setDocHeaderBottomLeftComponents(array('Fab\\Vidi\\View\\Button\\ClipboardButton', 'Fab\\Media\\View\\Button\\NewFolder', 'Fab\\Media\\View\\Button\\UploadButton'))->setGridTopComponents(array('Fab\\Media\\View\\InlineJavaScript', 'Fab\\Media\\View\\Warning\\ConfigurationWarning', 'Fab\\Media\\View\\Info\\SelectedFolderInfo'))->setGridBottomComponents(array('Fab\\Media\\View\\Plugin\\LinkCreatorPlugin', 'Fab\\Media\\View\\Plugin\\ImageEditorPlugin', 'Fab\\Media\\View\\Plugin\\FilePickerPlugin'))->setGridButtonsComponents(array('Fab\\Media\\View\\Button\\LinkCreatorButton', 'Fab\\Media\\View\\Button\\ImageEditorButton', 'Fab\\Media\\View\\Button\\FilePickerButton', 'Fab\\Media\\View\\Button\\EditButton', 'Fab\\Media\\View\\Button\\DownloadButton', 'Fab\\Media\\View\\Button\\DeleteButton'))->setMenuMassActionComponents(array('Fab\\Vidi\\View\\MenuItem\\ExportXlsMenuItem', 'Fab\\Vidi\\View\\MenuItem\\ExportXmlMenuItem', 'Fab\\Vidi\\View\\MenuItem\\ExportCsvMenuItem', 'Fab\\Vidi\\View\\MenuItem\\DividerMenuItem', 'Fab\\Vidi\\View\\MenuItem\\ClipboardMenuItem', 'Fab\\Media\\View\\MenuItem\\FilePickerMenuItem', 'Fab\\Media\\View\\MenuItem\\ChangeStorageMenuItem', 'Fab\\Vidi\\View\\MenuItem\\MassDeleteMenuItem'))->register(); /** @var \TYPO3\CMS\Extbase\Object\ObjectManager $objectManager */ $objectManager = \TYPO3\CMS\Core\Utility\GeneralUtility::makeInstance('TYPO3\\CMS\\Extbase\\Object\\ObjectManager'); /** @var $signalSlotDispatcher \TYPO3\CMS\Extbase\SignalSlot\Dispatcher */ $signalSlotDispatcher = $objectManager->get('TYPO3\\CMS\\Extbase\\SignalSlot\\Dispatcher'); # Register some tool for Media. \Fab\Vidi\Tool\ToolRegistry::getInstance()->register('sys_file', 'Fab\\Media\\Tool\\ThumbnailGeneratorTool'); \Fab\Vidi\Tool\ToolRegistry::getInstance()->register('sys_file', 'Fab\\Media\\Tool\\CacheWarmUpTool'); \Fab\Vidi\Tool\ToolRegistry::getInstance()->register('sys_file', 'Fab\\Media\\Tool\\MissingFilesFinderTool'); \Fab\Vidi\Tool\ToolRegistry::getInstance()->register('sys_file', 'Fab\\Media\\Tool\\DuplicateRecordsFinderTool'); \Fab\Vidi\Tool\ToolRegistry::getInstance()->register('sys_file', 'Fab\\Media\\Tool\\DuplicateFilesFinderTool'); // Connect some signals with slots. $signalSlotDispatcher->connect('Fab\\Vidi\\Controller\\Backend\\ContentController', 'postProcessMatcherObject', 'Fab\\Media\\Security\\FilePermissionsAspect', 'addFilePermissionsForFileStorages', TRUE); $signalSlotDispatcher->connect('Fab\\Vidi\\Domain\\Repository\\ContentRepository', 'postProcessConstraintsObject', 'Fab\\Media\\Security\\FilePermissionsAspect', 'addFilePermissionsForFileMounts', TRUE); $signalSlotDispatcher->connect('Fab\\Vidi\\Service\\ContentService', 'afterFindContentObjects', 'Fab\\Media\\Facet\\ActionPermissionFacet', 'modifyResultSet', TRUE); } \TYPO3\CMS\Backend\Sprite\SpriteManager::addSingleIcons(array('image-edit' => TYPO3\CMS\Core\Utility\ExtensionManagementUtility::extRelPath('media') . 'Resources/Public/Icons/image_edit.png', 'image-link' => TYPO3\CMS\Core\Utility\ExtensionManagementUtility::extRelPath('media') . 'Resources/Public/Icons/image_link.png', 'image-export' => TYPO3\CMS\Core\Utility\ExtensionManagementUtility::extRelPath('media') . 'Resources/Public/Icons/image_export.png', 'storage-change' => TYPO3\CMS\Core\Utility\ExtensionManagementUtility::extRelPath('media') . 'Resources/Public/Icons/folder_go.png'), 'media');