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']]; } }