Пример #1
0
 /**
  * Returns title for the shortcut icon
  *
  * @param string $shortcutLabel Shortcut label
  * @param string $moduleName Backend module name (key)
  * @param string $parentModuleName Parent module label
  * @return string Title for the shortcut icon
  */
 protected function getShortcutIconTitle($shortcutLabel, $moduleName, $parentModuleName = '')
 {
     $languageService = $this->getLanguageService();
     if (substr($moduleName, 0, 5) == 'xMOD_') {
         $title = substr($moduleName, 5);
     } else {
         list($mainModule, $subModule) = explode('_', $moduleName);
         $mainModuleLabels = $this->moduleLoader->getLabelsForModule($mainModule);
         $title = $languageService->sL($mainModuleLabels['title']);
         if (!empty($subModule)) {
             $subModuleLabels = $this->moduleLoader->getLabelsForModule($moduleName);
             $title .= '>' . $languageService->sL($subModuleLabels['title']);
         }
     }
     if ($parentModuleName) {
         $title .= ' (' . $parentModuleName . ')';
     }
     $title .= ': ' . $shortcutLabel;
     return $title;
 }
 /**
  * @test
  * @dataProvider addModuleLabelsDataProvider
  *
  * @param string $moduleName
  * @param string|array $labels
  * @param array $expectedResult
  */
 public function validateLabelsString($moduleName, $labels, array $expectedResult)
 {
     $moduleLoader = new ModuleLoader();
     $moduleLoader->addLabelsForModule($moduleName, $labels);
     $this->assertEquals($expectedResult, $moduleLoader->getLabelsForModule($moduleName));
 }
Пример #3
0
 /**
  * Create array with data of all subModules of a specific main module
  *
  * @param ModuleLoader $loadedModules the module loader instance
  * @param string $moduleName Name of the main module
  * @return array
  */
 protected function getSubModuleData(ModuleLoader $loadedModules, $moduleName)
 {
     $subModulesData = [];
     foreach ($loadedModules->modules[$moduleName]['sub'] as $subModuleName => $subModuleInfo) {
         $moduleLabels = $loadedModules->getLabelsForModule($moduleName . '_' . $subModuleName);
         $subModuleData = [];
         $subModuleData['name'] = $subModuleName;
         $subModuleData['icon'] = $subModuleInfo['icon'];
         $subModuleData['iconIdentifier'] = $subModuleInfo['iconIdentifier'];
         $subModuleData['label'] = $moduleLabels['title'];
         $subModuleData['shortDescription'] = $moduleLabels['shortdescription'];
         $subModuleData['longDescription'] = $moduleLabels['description'];
         $subModulesData[] = $subModuleData;
     }
     return $subModulesData;
 }
Пример #4
0
 /**
  * Returns a select with all modules for startup
  *
  * @param array $params
  * @param SetupModuleController $pObj
  *
  * @return string Complete select as HTML string
  */
 public function renderStartModuleSelect($params, $pObj)
 {
     // Load available backend modules
     $this->loadModules = GeneralUtility::makeInstance(ModuleLoader::class);
     $this->loadModules->observeWorkspaces = true;
     $this->loadModules->load($GLOBALS['TBE_MODULES']);
     $startModuleSelect = '<option value="">' . htmlspecialchars($this->getLanguageService()->getLL('startModule.firstInMenu')) . '</option>';
     foreach ($pObj->loadModules->modules as $mainMod => $modData) {
         if (!empty($modData['sub']) && is_array($modData['sub'])) {
             $modules = '';
             foreach ($modData['sub'] as $subData) {
                 $modName = $subData['name'];
                 $modules .= '<option value="' . htmlspecialchars($modName) . '"';
                 $modules .= $this->getBackendUser()->uc['startModule'] === $modName ? ' selected="selected"' : '';
                 $modules .= '>' . htmlspecialchars($this->getLanguageService()->sL($this->loadModules->getLabelsForModule($modName)['title'])) . '</option>';
             }
             $groupLabel = htmlspecialchars($this->getLanguageService()->sL($this->loadModules->getLabelsForModule($mainMod)['title']));
             $startModuleSelect .= '<optgroup label="' . htmlspecialchars($groupLabel) . '">' . $modules . '</optgroup>';
         }
     }
     return '<select id="field_startModule" name="data[startModule]" class="form-control">' . $startModuleSelect . '</select>';
 }