Beispiel #1
0
 function display()
 {
     $root = new ExtNode('root', 'root', true);
     $sb = new StudioBrowser();
     $sb->loadModules();
     foreach ($sb->modules as $name => $studioMod) {
         $root->add_node($this->buildStudioNode($studioMod));
     }
     $json = getJSONobj();
     echo $json->encode($root);
 }
 /**
  * Returns a list of available modules for PdfManager
  *
  * @return array
  */
 public static function getAvailableModules()
 {
     $bannedModules = PdfManagerHelper::getBannnedModules();
     $module_names = array_change_key_case($GLOBALS['app_list_strings']['moduleList']);
     require_once 'modules/ModuleBuilder/Module/StudioBrowser.php';
     $studio_browser = new StudioBrowser();
     $studio_browser->loadModules();
     $studio_modules = array_keys($studio_browser->modules);
     foreach ($studio_modules as $module_name) {
         if (!in_array($module_name, $bannedModules)) {
             $available_modules[$module_name] = isset($module_names[strtolower($module_name)]) ? $module_names[strtolower($module_name)] : strtolower($module_name);
         }
     }
     asort($available_modules);
     return $available_modules;
 }
 /**
  * Converts only listViewDefs.
  * Old format contains only default fields, current - default and enabled.
  */
 public function run()
 {
     if (!version_compare($this->from_version, '7.2', '<')) {
         return;
     }
     $sb = new StudioBrowser();
     $sb->loadModules();
     foreach ($sb->modules as $module => $defs) {
         if (!file_exists("custom/modules/{$module}/metadata/popupdefs.php")) {
             continue;
         }
         require "custom/modules/{$module}/metadata/popupdefs.php";
         if (!isset($popupMeta['listviewdefs'])) {
             continue;
         }
         $popupDefaultFieldNames = array();
         foreach ($popupMeta['listviewdefs'] as $key => $popupFieldDefs) {
             $popupDefaultFieldNames[] = isset($popupFieldDefs['name']) ? $popupFieldDefs['name'] : strtolower($key);
         }
         $sidecarParser = new SidecarListLayoutMetaDataParser(MB_SIDECARPOPUPVIEW, $module, null, 'base');
         $panel = $sidecarParser->getOriginalPanelDefs();
         $allFields = array_merge($sidecarParser->getAvailableFields(), $sidecarParser->getAdditionalFields());
         // Sidecar originally enabled and default fields.
         $newPanelDef = $panel[0]['fields'];
         // Reset all defaul fields to save available.
         array_walk($newPanelDef, function (&$val) {
             $val['default'] = false;
         });
         foreach ($popupDefaultFieldNames as $defaultFieldName) {
             // Populate with new default set.
             foreach ($newPanelDef as &$panelDef) {
                 if ($panelDef['name'] == $defaultFieldName) {
                     $panelDef['default'] = true;
                     continue 2;
                 }
             }
             // The field is hidden, populate the result defs with it.
             if (isset($allFields[$defaultFieldName])) {
                 $newPanelDef[] = array_merge($allFields[$defaultFieldName], array('default' => true, 'enabled' => true, 'name' => $defaultFieldName));
             }
         }
         $sidecarParser->setPanelFields($newPanelDef);
         $sidecarParser->handleSave(false);
     }
 }
 static function findRelatableModules($includeActivitiesSubmodules = true)
 {
     $relatableModules = array();
     // add in activities automatically if required
     $relatableModules['Activities']['default'] = translate('LBL_DEFAULT');
     // find all deployed modules
     require_once 'modules/ModuleBuilder/Module/StudioBrowser.php';
     $browser = new StudioBrowser();
     $browser->loadRelatableModules();
     reset($browser->modules);
     while (list($moduleName, $module) = each($browser->modules)) {
         // do not include the submodules of Activities as already have the parent...
         if (!$includeActivitiesSubmodules && in_array($module->module, self::$activities)) {
             continue;
         }
         $relatableModules[$module->module] = $module->getProvidedSubpanels();
     }
     return $relatableModules;
 }
 function generateStudioModuleButtons()
 {
     require_once 'modules/ModuleBuilder/Module/StudioBrowser.php';
     $sb = new StudioBrowser();
     $sb->loadModules();
     $nodes = $sb->getNodes();
     $this->buttons = array();
     //$GLOBALS['log']->debug(print_r($nodes,true));
     foreach ($nodes as $module) {
         $this->buttons[$module['name']] = array('action' => $module['action'], 'imageTitle' => ucfirst($module['module'] . "_32"), 'size' => '32');
     }
 }
 /**
  * @see SugarView::display()
  */
 public function display()
 {
     require_once 'modules/Administration/Forms.php';
     global $mod_strings;
     global $app_list_strings;
     global $app_strings;
     global $license;
     $configurator = new Configurator();
     $this->ss->assign('config', $configurator->config);
     $enabled_modules = array();
     $disabled_modules = array();
     // todo: should we move this config to another place?
     $wireless_not_supported_modules = array('Bugs', 'Campaigns', 'Contracts', 'KBDocuments', 'Prospects', 'Users', 'pmse_Business_Rules', 'pmse_Emails_Templates', 'pmse_Inbox', 'pmse_Project');
     // replicate the essential part of the behavior of the private loadMapping() method in SugarController
     foreach (SugarAutoLoader::existingCustom('include/MVC/Controller/wireless_module_registry.php') as $file) {
         require $file;
     }
     $moduleList = $GLOBALS['moduleList'];
     array_push($moduleList, 'Employees');
     foreach ($wireless_module_registry as $e => $def) {
         if (in_array($e, $moduleList) && !in_array($e, $wireless_not_supported_modules)) {
             $enabled_modules[$e] = empty($app_list_strings['moduleList'][$e]) ? $e : $app_list_strings['moduleList'][$e];
         }
     }
     // Employees should be in the mobile module list by default
     if (!empty($wireless_module_registry['Employees'])) {
         $enabled_modules['Employees'] = $app_strings['LBL_EMPLOYEES'];
     }
     require_once 'modules/ModuleBuilder/Module/StudioBrowser.php';
     $browser = new StudioBrowser();
     $browser->loadModules();
     foreach ($browser->modules as $e => $def) {
         if (empty($enabled_modules[$e]) && in_array($e, $GLOBALS['moduleList']) && !in_array($e, $wireless_not_supported_modules)) {
             $disabled_modules[$e] = empty($app_list_strings['moduleList'][$e]) ? $e : $app_list_strings['moduleList'][$e];
         }
     }
     if (empty($wireless_module_registry['Employees'])) {
         $disabled_modules['Employees'] = $app_strings['LBL_EMPLOYEES'];
     }
     // NOMAD-1793
     // Handling case when modules from initial wireless list are vanishing because they're not listed in studio browser.
     include 'include/MVC/Controller/wireless_module_registry.php';
     foreach ($wireless_module_registry as $moduleName => $def) {
         // not in any list
         if (empty($enabled_modules[$moduleName]) && empty($disabled_modules[$moduleName]) && !in_array($e, $wireless_not_supported_modules)) {
             // add module to disabled modules list
             $disabled_modules[$moduleName] = empty($app_list_strings['moduleList'][$moduleName]) ? $moduleName : $app_list_strings['moduleList'][$moduleName];
         }
     }
     $json_enabled = array();
     foreach ($enabled_modules as $mod => $label) {
         $json_enabled[] = array("module" => $mod, 'label' => $label);
     }
     $json_disabled = array();
     foreach ($disabled_modules as $mod => $label) {
         $json_disabled[] = array("module" => $mod, 'label' => $label);
     }
     // We need to grab the license key
     $key = $license->settings["license_key"];
     $this->ss->assign('url', $this->getMobileEdgeUrl($key));
     $this->ss->assign('enabled_modules', json_encode($json_enabled));
     $this->ss->assign('disabled_modules', json_encode($json_disabled));
     $this->ss->assign('mod', $GLOBALS['mod_strings']);
     $this->ss->assign('APP', $GLOBALS['app_strings']);
     echo getClassicModuleTitle("Administration", array("<a href='index.php?module=Administration&action=index'>{$mod_strings['LBL_MODULE_NAME']}</a>", translate('LBL_WIRELESS_MODULES_ENABLE')), false);
     echo $this->ss->fetch('modules/Administration/templates/enableWirelessModules.tpl');
 }
 public static function getStudioModules($type = '')
 {
     include 'modules/pmse_Inbox/engine/PMSEModules.php';
     $studioBrowser = new StudioBrowser();
     if ($type == 'related') {
         $studioBrowser->loadRelatableModules();
     } else {
         $studioBrowser->loadModules();
     }
     $moduleList = $studioBrowser->modules;
     $blacklisted = $type === '' ? self::$targetBlacklistedModules : self::$relatedBlacklistedModules;
     $removed = array_merge($pmseModulesList, $blacklisted);
     foreach ($moduleList as $key => $module) {
         if (in_array($module->module, $removed)) {
             unset($moduleList[$key]);
         }
     }
     return $moduleList;
 }
 function generateStudioModuleButtons()
 {
     require_once 'modules/ModuleBuilder/Module/StudioBrowser.php';
     $sb = new StudioBrowser();
     $sb->loadModules();
     $nodes = $sb->getNodes();
     $this->buttons = [];
     foreach ($nodes as $module) {
         $this->buttons[$module['name']] = ['action' => $module['action'], 'imageTitle' => ucfirst($module['module'] . "_32"), 'size' => '32', 'linkId' => 'studiolink_' . $module['module']];
     }
 }