function handleSave() { $out = "<script>ajaxStatus.flashStatus(SUGAR.language.get('app_strings', 'LBL_REQUEST_PROCESSED'), 2000);</script>"; if (!empty($_REQUEST['relationships'])) { $out .= $this->removeCustomRelationships(); } if (!empty($_REQUEST['fields'])) { $out .= $this->removeCustomFields(); } if (!empty($_REQUEST['layouts'])) { $out .= $this->removeCustomLayouts(); } if (!empty($_REQUEST['labels'])) { $out .= $this->removeCustomLabels(); } if (!empty($_REQUEST['extensions'])) { $out .= $this->removeCustomExtensions(); } if ($this->module === 'Opportunities') { $opp_settings = Opportunity::getSettings(); if ($opp_settings['opps_view_by'] == 'RevenueLineItems') { require_once 'modules/Opportunities/include/OpportunityWithRevenueLineItem.php'; $opp_setup = new OpportunityWithRevenueLineItem(); $opp_setup->doMetadataConvert(); $out .= 'Enabling Opportunities with RevenueLineItems<br />'; } } $out .= "Complete!"; $ajax = new AjaxCompose(); $ajax->addCrumb(translate('LBL_STUDIO'), 'ModuleBuilder.main("studio")'); $ajax->addCrumb(translate($this->module), 'ModuleBuilder.getContent("module=ModuleBuilder&action=wizard&view_module=' . $this->module . '")'); $ajax->addCrumb("Reset " . translate($this->module), ''); $ajax->addSection('center', "Reset " . translate($this->module), $out); echo $ajax->getJavascript(); }
function display() { global $mod_strings; $smarty = new Sugar_Smarty(); $mb = new ModuleBuilder(); //if (!empty($_REQUEST['package'])) { if (empty($_REQUEST['package']) && empty($_REQUEST['new'])) { $this->generatePackageButtons($mb->getPackageList()); $smarty->assign('buttons', $this->buttons); $smarty->assign('title', $GLOBALS['mod_strings']['LBL_MODULEBUILDER']); $smarty->assign("question", $GLOBALS['mod_strings']['LBL_QUESTION_PACKAGE']); $smarty->assign("defaultHelp", "mbHelp"); $ajax = new AjaxCompose(); $ajax->addCrumb($GLOBALS['mod_strings']['LBL_MODULEBUILDER'], 'ModuleBuilder.getContent("module=ModuleBuilder&action=package")'); $ajax->addCrumb($GLOBALS['mod_strings']['LBL_PACKAGE_LIST'], ''); $ajax->addSection('center', $GLOBALS['mod_strings']['LBL_PACKAGE_LIST'], $smarty->fetch('modules/ModuleBuilder/tpls/wizard.tpl')); echo $ajax->getJavascript(); } else { $name = !empty($_REQUEST['package']) ? $_REQUEST['package'] : ''; $mb->getPackage($name); require_once 'modules/ModuleBuilder/MB/MBPackageTree.php'; $mbt = new MBPackageTree(); $nodes = $mbt->fetchNodes(); $package_labels = array(); if (!empty($nodes['tree_data']['nodes'])) { foreach ($nodes['tree_data']['nodes'] as $entry) { if (!empty($entry['data']['label']) && $name != $entry['data']['label']) { $package_labels[] = strtoupper($entry['data']['label']); } } } $json = getJSONobj(); $smarty->assign('package_labels', $json->encode($package_labels)); $this->package =& $mb->packages[$name]; $this->loadModuleTypes(); $this->loadPackageHelp($name); $this->package->date_modified = $GLOBALS['timedate']->to_display_date_time($this->package->date_modified); $smarty->assign('package', $this->package); $smarty->assign('mod_strings', $mod_strings); $smarty->assign('package_already_deployed', 'false'); foreach ($this->package->modules as $a_module) { if (in_array($a_module->key_name, $GLOBALS['moduleList'])) { $smarty->assign('package_already_deployed', 'true'); break; } } $ajax = new AjaxCompose(); $ajax->addCrumb($GLOBALS['mod_strings']['LBL_MODULEBUILDER'], 'ModuleBuilder.getContent("module=ModuleBuilder&action=package")'); if (empty($name)) { $name = $mod_strings['LBL_NEW_PACKAGE']; } $ajax->addCrumb($name, ''); $html = $smarty->fetch('modules/ModuleBuilder/tpls/MBPackage/package.tpl'); if (!empty($_REQUEST['action']) && $_REQUEST['action'] == 'SavePackage') { $html .= "<script>ModuleBuilder.treeRefresh('ModuleBuilder')</script>"; } $ajax->addSection('center', translate('LBL_SECTION_PACKAGE', 'ModuleBuilder'), $html); echo $ajax->getJavascript(); } }
function display() { $this->parser = ParserFactory::getParser(MB_PORTAL . strtolower($this->editLayout), $this->editModule, null, null, MB_PORTAL); $smarty = new Sugar_Smarty(); //Add in the module we are viewing to our current mod strings global $mod_strings, $current_language; $editModStrings = return_module_language($current_language, $this->editModule); $mod_strings = sugarArrayMerge($editModStrings, $mod_strings); $smarty->assign('mod', $mod_strings); $smarty->assign('MOD', $mod_strings); // assign buttons $images = array('icon_save' => 'studio_save', 'icon_publish' => 'studio_publish', 'icon_address' => 'icon_Address', 'icon_emailaddress' => 'icon_EmailAddress', 'icon_phone' => 'icon_Phone'); foreach ($images as $image => $file) { $smarty->assign($image, SugarThemeRegistry::current()->getImage($file, '', null, null, '.gif', $file)); } $smarty->assign('icon_delete', SugarThemeRegistry::current()->getImage('icon_Delete', '', 48, 48, '.gif', $mod_strings['LBL_MB_DELETE'])); $buttons = array(); $buttons[] = array('id' => 'saveBtn', 'image' => SugarThemeRegistry::current()->getImage($images['icon_save'], '', null, null, '.gif', $mod_strings['LBL_BTN_SAVE']), 'text' => $GLOBALS['mod_strings']['LBL_BTN_SAVE'], 'actionScript' => "onclick='if(Studio2.checkCalcFields(\"{$_REQUEST['view']}\", \"ERROR_CALCULATED_PORTAL_FIELDS\"))Studio2.handleSave();'"); $buttons[] = array('id' => 'publishBtn', 'image' => SugarThemeRegistry::current()->getImage($images['icon_publish'], '', null, null, '.gif', $mod_strings['LBL_BTN_PUBLISH']), 'text' => $GLOBALS['mod_strings']['LBL_BTN_SAVEPUBLISH'], 'actionScript' => "onclick='if(Studio2.checkCalcFields(\"{$_REQUEST['view']}\", \"ERROR_CALCULATED_PORTAL_FIELDS\"))Studio2.handlePublish();'"); $html = ""; foreach ($buttons as $button) { if ($button['id'] == "spacer") { $html .= "<td style='width:{$button['width']}'> </td>"; } else { $html .= "<td><input id='{$button['id']}' type='button' valign='center' class='button' style='cursor:pointer' " . "onmousedown='this.className=\"buttonOn\";return false;' onmouseup='this.className=\"button\"' " . "onmouseout='this.className=\"button\"' {$button['actionScript']} value = '{$button['text']}' ></td>"; } } $smarty->assign('buttons', $html); // assign fields and layout $smarty->assign('available_fields', $this->parser->getAvailableFields()); $smarty->assign('field_defs', $this->parser->getFieldDefs()); $smarty->assign('layout', $this->parser->getLayout()); $smarty->assign('view_module', $this->editModule); $smarty->assign('calc_field_list', json_encode($this->parser->getCalculatedFields())); $smarty->assign('view', $this->editLayout); $smarty->assign('maxColumns', $this->parser->getMaxColumns()); $smarty->assign('fieldwidth', '150px'); $smarty->assign('translate', true); $smarty->assign('fromPortal', true); // flag for form submittal - when the layout is submitted the actions are the same for layouts and portal layouts, but the parsers must be different... if (!empty($this->parser->usingWorkingFile)) { $smarty->assign('layouttitle', $GLOBALS['mod_strings']['LBL_LAYOUT_PREVIEW']); } else { $smarty->assign('layouttitle', $GLOBALS['mod_strings']['LBL_CURRENT_LAYOUT']); } $ajax = new AjaxCompose(); $ajax->addCrumb(translate('LBL_SUGARPORTAL', 'ModuleBuilder'), 'ModuleBuilder.main("sugarportal")'); $ajax->addCrumb(translate('LBL_LAYOUTS', 'ModuleBuilder'), 'ModuleBuilder.getContent("module=ModuleBuilder&action=wizard&portal=1&layout=1")'); $ajax->addCrumb(ucwords(translate('LBL_MODULE_NAME', $this->editModule)), 'ModuleBuilder.getContent("module=ModuleBuilder&action=wizard&portal=1&view_module=' . $this->editModule . '")'); $ajax->addCrumb(ucwords($this->editLayout), ''); // set up language files $smarty->assign('language', $this->parser->getLanguage()); // for sugar_translate in the smarty template //navjeet- assistant logic has changed //include('modules/ModuleBuilder/language/en_us.lang.php'); //$smarty->assign('assistantBody', $mod_strings['assistantHelp']['module']['editView'] ); $ajax->addSection('center', $GLOBALS['mod_strings']['LBL_EDIT_LAYOUT'], $smarty->fetch('modules/ModuleBuilder/tpls/layoutView.tpl')); echo $ajax->getJavascript(); }
function constructAjax() { require_once 'modules/ModuleBuilder/MB/AjaxCompose.php'; $ajax = new AjaxCompose(); $ajax->addCrumb(translate('LBL_SUGARPORTAL', 'ModuleBuilder'), 'ModuleBuilder.main("sugarportal")'); $ajax->addCrumb(translate('LBL_LAYOUTS', 'ModuleBuilder'), 'ModuleBuilder.getContent("module=ModuleBuilder&action=wizard&portal=1&layout=1")'); $ajax->addCrumb(ucwords(translate('LBL_MODULE_NAME', $this->editModule)), 'ModuleBuilder.getContent("module=ModuleBuilder&action=wizard&portal=1&view_module=' . $this->editModule . '")'); $ajax->addCrumb(ucwords($this->editLayout), ''); return $ajax; }
public function display() { $smarty = $this->constructSmarty(); $ajax = new AjaxCompose(); $ajax->addCrumb(translate('LBL_STUDIO', 'ModuleBuilder'), 'ModuleBuilder.getContent("module=ModuleBuilder&action=wizard")'); $ajax->addCrumb(translate('LBL_MODULE_NAME'), 'ModuleBuilder.getContent("module=ModuleBuilder&action=wizard&view_module=Leads")'); $ajax->addCrumb(translate('LBL_LAYOUTS', 'ModuleBuilder'), 'ModuleBuilder.getContent("module=ModuleBuilder&action=wizard&view=layouts&view_module=Leads")'); $ajax->addCrumb(translate('LBL_CONVERTLEAD'), ""); $ajax->addSection('center', 'Convert Layout', $smarty->fetch("modules/Leads/tpls/EditConvertLead.tpl")); echo $ajax->getJavascript(); }
function ViewDisplaydeploy() { $smarty = new Sugar_Smarty(); $smarty->assign('package', $_REQUEST['name']); $smarty->assign('message', $GLOBALS['mod_strings']['LBL_DEPLOY_IN_PROGRESS']); $ajax = new AjaxCompose(); $ajax->addCrumb($GLOBALS['mod_strings']['LBL_MODULEBUILDER'], 'ModuleBuilder.main("mb")'); $ajax->addCrumb($_REQUEST['name'], 'ModuleBuilder.getContent("module=ModuleBuilder&action=package&package=' . $_REQUEST['name'] . '")'); $ajax->addCrumb(translate('LBL_SECTION_DEPLOY', 'ModuleBuilder'), ''); $ajax->addSection('center', translate('LBL_SECTION_DEPLOY', 'ModuleBuilder'), $smarty->fetch('modules/ModuleBuilder/tpls/MBPackage/deploy.tpl')); echo $ajax->getJavascript(); }
function constructAjax() { require_once 'modules/ModuleBuilder/MB/AjaxCompose.php'; $ajax = new AjaxCompose(); if ($this->fromModuleBuilder) { $ajax->addCrumb(translate('LBL_MODULEBUILDER', 'ModuleBuilder'), 'ModuleBuilder.main("mb")'); $ajax->addCrumb($_REQUEST['view_package'], 'ModuleBuilder.getContent("module=ModuleBuilder&action=package&package=' . $this->editPackage . '")'); $ajax->addCrumb($this->editModule, 'ModuleBuilder.getContent("module=ModuleBuilder&action=module&view_package=' . $this->editPackage . '&view_module=' . $this->editModule . '")'); $ajax->addCrumb(translate('LBL_LAYOUTS', 'ModuleBuilder'), 'ModuleBuilder.getContent("module=ModuleBuilder&action=wizard&layouts=1&MB=1&view_package=' . $this->editPackage . '&view_module=' . $this->editModule . '")'); $ajax->addCrumb(translate('LBL_DASHLET', 'ModuleBuilder'), 'ModuleBuilder.getContent("module=ModuleBuilder&action=wizard&dashlet=1&MB=1&view_package=' . $this->editPackage . '&view_module=' . $this->editModule . '")'); $ViewLabel = $this->editLayout == MB_DASHLET ? 'LBL_DASHLETLISTVIEW' : 'LBL_DASHLETSEARCHVIEW'; $ajax->addCrumb(translate($ViewLabel, 'ModuleBuilder'), 'ModuleBuilder.getContent("module=ModuleBuilder&MB=true&action=editLayout&view=' . $this->editLayout . '&view_module=' . $this->editModule . '&view_package=' . $this->editPackage . '")'); } return $ajax; }
function display() { global $current_user, $mod_strings; $smarty = new Sugar_Smarty(); $mb = new MBPackage("packageCustom"); $mod = $mb->getCustomModules(); $modules = array(); $custom = array(); if (is_array($mod)) { foreach ($mod as $key => $value) { $modules[] = $key; $custom[] = $value; } } $nb_mod = count($modules); $smarty->assign('mod_strings', $mod_strings); $smarty->assign('modules', $mod); $smarty->assign('custom', $custom); $smarty->assign('nb_mod', $nb_mod); $smarty->assign('defaultHelp', 'exportHelp'); $smarty->assign('moduleList', $GLOBALS['app_list_strings']['moduleList']); $smarty->assign('moduleList', $GLOBALS['app_list_strings']['moduleList']); $ajax = new AjaxCompose(); $ajax->addCrumb($mod_strings['LBL_STUDIO'], 'ModuleBuilder.getContent("module=ModuleBuilder&action=wizard")'); $ajax->addSection('center', $mod_strings['LBL_EC_TITLE'], $smarty->fetch($this->getCustomFilePathIfExists('modules/ModuleBuilder/tpls/exportcustomizations.tpl'))); echo $ajax->getJavascript(); }
function display() { $smarty = new Sugar_Smarty(); //$smarty->assign('welcome', $GLOBALS['mod_strings']['LBL_SP_UPLOADSTYLE']); $smarty->assign('mod', $GLOBALS['mod_strings']); if (isset($_REQUEST['label'])) { $GLOBALS['log']->debug('ViewPortalStyle->display(): label = ' . $_REQUEST['label']); $smarty->assign('label', $_REQUEST['label']); } $ajax = new AjaxCompose(); $ajax->addCrumb(translate('LBL_SUGARPORTAL', 'ModuleBuilder'), 'ModuleBuilder.main("sugarportal")'); $ajax->addCrumb(translate('LBL_UP_STYLE_SHEET', 'ModuleBuilder'), 'ModuleBuilder.getContent("module=ModuleBuilder&action=portalstyle")'); $ajax->addSection('center', translate('LBL_UP_STYLE_SHEET', 'ModuleBuilder'), $smarty->fetch('modules/ModuleBuilder/tpls/portalstyle.tpl')); $GLOBALS['log']->debug('ViewPortalStyle->display(): ' . $ajax->getJavascript()); echo $ajax->getJavascript(); }
function display() { $moduleName = !empty($_REQUEST['view_module']) ? $_REQUEST['view_module'] : $_REQUEST['edit_module']; $smarty = new Sugar_Smarty(); // set the mod_strings as we can be called after doing a Repair and the mod_strings are set to Administration $GLOBALS['mod_strings'] = return_module_language($GLOBALS['current_language'], 'ModuleBuilder'); $smarty->assign('mod_strings', $GLOBALS['mod_strings']); $smarty->assign('view_module', $moduleName); $ajax = new AjaxCompose(); $json = getJSONobj(); $this->fromModuleBuilder = !empty($_REQUEST['MB']) || !empty($_REQUEST['view_package']) && $_REQUEST['view_package'] != 'studio'; $smarty->assign('fromModuleBuilder', $this->fromModuleBuilder); if (!$this->fromModuleBuilder) { $smarty->assign('view_package', ''); $relationships = new DeployedRelationships($moduleName); $ajaxRelationships = $this->getAjaxRelationships($relationships); $smarty->assign('relationships', $json->encode($ajaxRelationships)); $smarty->assign('empty', sizeof($ajaxRelationships) == 0); $smarty->assign('studio', true); //crumb global $app_list_strings; $moduleNames = array_change_key_case($app_list_strings['moduleList']); $translatedModule = $moduleNames[strtolower($moduleName)]; $ajax->addCrumb(translate('LBL_STUDIO'), 'ModuleBuilder.main("studio")'); $ajax->addCrumb($translatedModule, 'ModuleBuilder.getContent("module=ModuleBuilder&action=wizard&view_module=' . $moduleName . '")'); $ajax->addCrumb(translate('LBL_RELATIONSHIPS'), ''); $ajax->addSection('center', $moduleName . ' ' . translate('LBL_RELATIONSHIPS'), $this->fetchTemplate($smarty, 'modules/ModuleBuilder/tpls/studioRelationships.tpl')); } else { $smarty->assign('view_package', $_REQUEST['view_package']); $mb = new ModuleBuilder(); $module =& $mb->getPackageModule($_REQUEST['view_package'], $_REQUEST['view_module']); $package = $mb->packages[$_REQUEST['view_package']]; $package->loadModuleTitles(); $relationships = new UndeployedRelationships($module->getModuleDir()); $ajaxRelationships = $this->getAjaxRelationships($relationships); $smarty->assign('relationships', $json->encode($ajaxRelationships)); $smarty->assign('empty', sizeof($ajaxRelationships) == 0); $module->help['default'] = empty($_REQUEST['view_module']) ? 'create' : 'modify'; $module->help['group'] = 'module'; $ajax->addCrumb(translate('LBL_MODULEBUILDER'), 'ModuleBuilder.main("mb")'); $ajax->addCrumb($package->name, 'ModuleBuilder.getContent("module=ModuleBuilder&action=package&package=' . $package->name . '")'); $ajax->addCrumb($moduleName, 'ModuleBuilder.getContent("module=ModuleBuilder&action=module&view_package=' . $package->name . '&view_module=' . $moduleName . '")'); $ajax->addCrumb(translate('LBL_RELATIONSHIPS'), ''); $ajax->addSection('center', $moduleName . ' ' . translate('LBL_RELATIONSHIPS'), $this->fetchTemplate($smarty, 'modules/ModuleBuilder/tpls/studioRelationships.tpl')); } echo $ajax->getJavascript(); }
function display() { $smarty = new Sugar_Smarty(); $smarty->assign('welcome', $GLOBALS['mod_strings']['LBL_SYNCP_WELCOME']); $smarty->assign('mod', $GLOBALS['mod_strings']); if (isset($_REQUEST['label'])) { $smarty->assign('label', $_REQUEST['label']); } $options = !empty($GLOBALS['system_config']->settings['system_portal_url']) ? $GLOBALS['system_config']->settings['system_portal_url'] : 'https://'; $smarty->assign('options', $options); $ajax = new AjaxCompose(); $ajax->addCrumb(translate('LBL_SUGARPORTAL', 'ModuleBuilder'), 'ModuleBuilder.main("sugarportal")'); $ajax->addCrumb(translate('LBL_SYNCPORTAL', 'ModuleBuilder'), 'ModuleBuilder.getContent("module=ModuleBuilder&action=portalsync")'); $ajax->addSection('center', translate('LBL_SYNCPORTAL', 'ModuleBuilder'), $smarty->fetch('modules/ModuleBuilder/tpls/portalsync.tpl')); $GLOBALS['log']->debug($smarty->fetch('modules/ModuleBuilder/tpls/portalsync.tpl')); echo $ajax->getJavascript(); }
/** * This function loads portal config vars from db and sets them for the view * @see SugarView::display() for more info */ function display() { global $current_user, $app_strings; $smarty = new Sugar_Smarty(); $smarty->assign('mod', $GLOBALS['mod_strings']); $smarty->assign("token", session_id()); $smarty->assign("siteURL", $GLOBALS['sugar_config']['site_url']); //Loading label $smarty->assign('LBL_LOADING', $app_strings['LBL_ALERT_TITLE_LOADING']); $theme = new SidecarTheme(); $smarty->assign("css_url", $theme->getCSSURL()); $ajax = new AjaxCompose(); $ajax->addCrumb(translate('LBL_SUGARPORTAL', 'ModuleBuilder'), 'ModuleBuilder.main("sugarportal")'); $ajax->addCrumb(ucwords(translate('LBL_PORTAL_THEME')), ''); $ajax->addSection('center', translate('LBL_SUGARPORTAL', 'ModuleBuilder'), $smarty->fetch('modules/ModuleBuilder/tpls/portaltheme.tpl')); echo $ajax->getJavascript(); }
function constructAjax() { require_once 'modules/ModuleBuilder/MB/AjaxCompose.php'; $ajax = new AjaxCompose(); switch ($this->editLayout) { case MB_WIRELESSBASICSEARCH: case MB_WIRELESSADVANCEDSEARCH: $searchLabel = 'LBL_WIRELESSSEARCH'; break; default: if (isModuleBWC($this->editModule)) { $searchLabel = 'LBL_' . strtoupper($this->editLayout); } else { $searchLabel = 'LBL_FILTER_SEARCH'; } break; } $layoutLabel = 'LBL_LAYOUTS'; $layoutView = 'layouts'; if (in_array($this->editLayout, array(MB_WIRELESSBASICSEARCH, MB_WIRELESSADVANCEDSEARCH))) { $layoutLabel = 'LBL_WIRELESSLAYOUTS'; $layoutView = 'wirelesslayouts'; } if ($this->fromModuleBuilder) { $ajax->addCrumb(translate('LBL_MODULEBUILDER', 'ModuleBuilder'), 'ModuleBuilder.main("mb")'); $ajax->addCrumb($_REQUEST['view_package'], 'ModuleBuilder.getContent("module=ModuleBuilder&action=package&package=' . $_REQUEST['view_package'] . '")'); $ajax->addCrumb($this->editModule, 'ModuleBuilder.getContent("module=ModuleBuilder&action=module&view_package=' . $_REQUEST['view_package'] . "&view_module={$this->editModule}" . '")'); $ajax->addCrumb(translate($layoutLabel, 'ModuleBuilder'), 'ModuleBuilder.getContent("module=ModuleBuilder&MB=true&action=wizard&view_module=' . $this->editModule . '&view_package=' . $_REQUEST['view_package'] . '")'); if ($layoutLabel == 'LBL_LAYOUTS') { $ajax->addCrumb(translate('LBL_SEARCH_FORMS', 'ModuleBuilder'), 'ModuleBuilder.getContent("module=ModuleBuilder&MB=true&action=wizard&view=search&view_module=' . $this->editModule . '&view_package=' . $_REQUEST['view_package'] . '")'); } $ajax->addCrumb(translate($searchLabel, 'ModuleBuilder'), ''); } else { $ajax->addCrumb(translate('LBL_STUDIO', 'ModuleBuilder'), 'ModuleBuilder.main("studio")'); $ajax->addCrumb($this->translatedEditModule, 'ModuleBuilder.getContent("module=ModuleBuilder&action=wizard&view_module=' . $this->editModule . '")'); $ajax->addCrumb(translate($layoutLabel, 'ModuleBuilder'), 'ModuleBuilder.getContent("module=ModuleBuilder&action=wizard&view=' . $layoutView . '&view_module=' . $this->editModule . '")'); if ($layoutLabel == 'LBL_LAYOUTS') { $ajax->addCrumb(translate('LBL_SEARCH_FORMS', 'ModuleBuilder'), 'ModuleBuilder.getContent("module=ModuleBuilder&action=wizard&view=search&view_module=' . $this->editModule . '")'); } $ajax->addCrumb(translate($searchLabel, 'ModuleBuilder'), ''); } $this->title = $searchLabel; return $ajax; }
/** * This function loads portal config vars from db and sets them for the view * @see SugarView::display() for more info */ function display() { $portalFields = array('appStatus' => 'offline', 'logoURL' => '', 'maxQueryResult' => '20', 'maxSearchQueryResult' => '5', 'defaultUser' => ''); $userList = get_user_array(); $userList[''] = ''; require_once "modules/MySettings/TabController.php"; $controller = new TabController(); $disabledModulesFlag = false; $disabledModules = array_diff($controller->getAllPortalTabs(), $controller->getPortalTabs()); if (!empty($disabledModules)) { $disabledModulesFlag = true; array_walk($disabledModules, function (&$item) { $item = translate($item); }); } $admin = Administration::getSettings(); $portalConfig = $admin->getConfigForModule('portal', 'support', true); $portalConfig['appStatus'] = !empty($portalConfig['on']) ? 'online' : 'offline'; $smarty = new Sugar_Smarty(); $smarty->assign('disabledDisplayModulesList', $disabledModules); $smarty->assign('disabledDisplayModules', $disabledModulesFlag); foreach ($portalFields as $fieldName => $fieldDefault) { if (isset($portalConfig[$fieldName])) { $smarty->assign($fieldName, html_entity_decode($portalConfig[$fieldName])); } else { $smarty->assign($fieldName, $fieldDefault); } } $smarty->assign('userList', $userList); $smarty->assign('welcome', $GLOBALS['mod_strings']['LBL_SYNCP_WELCOME']); $smarty->assign('mod', $GLOBALS['mod_strings']); $smarty->assign('siteURL', $GLOBALS['sugar_config']['site_url']); if (isset($_REQUEST['label'])) { $smarty->assign('label', $_REQUEST['label']); } $options = !empty($GLOBALS['system_config']->settings['system_portal_url']) ? $GLOBALS['system_config']->settings['system_portal_url'] : 'https://'; $smarty->assign('options', $options); $ajax = new AjaxCompose(); $ajax->addCrumb(translate('LBL_SUGARPORTAL', 'ModuleBuilder'), 'ModuleBuilder.main("sugarportal")'); $ajax->addCrumb(ucwords(translate('LBL_PORTAL_CONFIGURE')), ''); $ajax->addSection('center', translate('LBL_SUGARPORTAL', 'ModuleBuilder'), $smarty->fetch('modules/ModuleBuilder/tpls/portalconfig.tpl')); $GLOBALS['log']->debug($smarty->fetch('modules/ModuleBuilder/tpls/portalconfig.tpl')); echo $ajax->getJavascript(); }
function display() { $this->fromModuleBuilder = isset($_REQUEST['MB']) || !empty($_REQUEST['view_package']) && $_REQUEST['view_package'] != 'studio'; if ($this->fromModuleBuilder) { return; //no support for MB } global $current_user; global $mod_strings; $smarty = new Sugar_Smarty(); $smarty->assign('title', $mod_strings['LBL_DEVELOPER_TOOLS']); $smarty->assign('question', $mod_strings['LBL_REMOVE_LAYOUT']); $smarty->assign('mod_strings', $mod_strings); $module_name = $_REQUEST['view_module']; $smarty->assign('view_module', $module_name); $groupLayout = $_REQUEST['grpLayout']; $smarty->assign('groupLayout', $groupLayout); require_once 'modules/SecurityGroups/SecurityGroup.php'; $groupFocus = new SecurityGroup(); $groupFocus->retrieve($groupLayout); $groupName = $groupFocus->name; // set up language files //$smarty->assign ( 'language', $parser->getLanguage() ) ; // for sugar_translate in the smarty template //$smarty->assign('from_mb',$this->fromModuleBuilder); $mb = new ModuleBuilder(); if (!isset($_REQUEST['view_package'])) { $_REQUEST['view_package'] = 'studio'; } $module =& $mb->getPackageModule($_REQUEST['view_package'], $_REQUEST['view_module']); $package = $mb->packages[$_REQUEST['view_package']]; $package->loadModuleTitles(); $ajax = new AjaxCompose(); $ajax->addCrumb(translate('LBL_STUDIO', 'ModuleBuilder'), 'ModuleBuilder.main("studio")'); $ajax->addCrumb(translate($module_name), 'ModuleBuilder.getContent("module=ModuleBuilder&action=wizard&view_module=' . $module_name . '")'); $ajax->addCrumb(translate('LBL_LAYOUTS', 'ModuleBuilder'), 'ModuleBuilder.getContent("module=ModuleBuilder&action=addlayout&layouts=1&view_module=' . $module_name . '")'); $ajax->addCrumb(translate($groupName), ''); $ajax->addCrumb($mod_strings['LBL_REMOVE_LAYOUT'], ''); //$ajax->addSection ( 'center', $moduleName . ' ' . translate('LBL_ADD_LAYOUT'), $ajax->addSection('center', $mod_strings['LBL_ADD_LAYOUT'], $smarty->fetch('modules/ModuleBuilder/tpls/removegrouplayoutprompt.tpl')); echo $ajax->getJavascript(); }
public function display() { global $mod_strings, $locale; $bak_mod_strings = $mod_strings; $smarty = new Sugar_Smarty(); $smarty->assign('mod_strings', $mod_strings); $package_name = $_REQUEST['view_package']; $module_name = $_REQUEST['view_module']; require_once 'modules/ModuleBuilder/MB/ModuleBuilder.php'; $mb = new ModuleBuilder(); $mb->getPackage($_REQUEST['view_package']); $package = $mb->packages[$_REQUEST['view_package']]; $package->getModule($module_name); $mbModule = $package->modules[$module_name]; if (!empty($_REQUEST['selected_lang'])) { $selected_lang = $_REQUEST['selected_lang']; } else { $selected_lang = $locale->getAuthenticatedUserLanguage(); } //need to change the following to interface with MBlanguage. $smarty->assign('MOD', $mbModule->getModStrings($selected_lang)); $smarty->assign('APP', $GLOBALS['app_strings']); $smarty->assign('selected_lang', $selected_lang); $smarty->assign('view_package', $package_name); $smarty->assign('view_module', $module_name); $smarty->assign('mb', '1'); $smarty->assign('available_languages', get_languages()); /////////////////////////////////////////////////////////////////// ////ASSISTANT $smarty->assign('assistant', array('group' => 'module', 'key' => 'labels')); ///////////////////////////////////////////////////////////////// ////ASSISTANT $ajax = new AjaxCompose(); $ajax->addCrumb($bak_mod_strings['LBL_MODULEBUILDER'], 'ModuleBuilder.main("mb")'); $ajax->addCrumb($package_name, 'ModuleBuilder.getContent("module=ModuleBuilder&action=package&package=' . $package->name . '")'); $ajax->addCrumb($module_name, 'ModuleBuilder.getContent("module=ModuleBuilder&action=module&view_package=' . $package->name . '&view_module=' . $module_name . '")'); $ajax->addCrumb($bak_mod_strings['LBL_LABELS'], ''); $ajax->addSection('center', $bak_mod_strings['LBL_LABELS'], $smarty->fetch('modules/ModuleBuilder/tpls/labels.tpl')); echo $ajax->getJavascript(); }
function display() { global $mod_strings; $smarty = new Sugar_Smarty(); $mb = new ModuleBuilder(); //if (!empty($_REQUEST['package'])) { if (empty($_REQUEST['package']) && empty($_REQUEST['new'])) { $this->generatePackageButtons($mb->getPackageList()); $smarty->assign('buttons', $this->buttons); $smarty->assign('title', $GLOBALS['mod_strings']['LBL_MODULEBUILDER']); $smarty->assign("question", $GLOBALS['mod_strings']['LBL_QUESTION_PACKAGE']); $smarty->assign("defaultHelp", "mbHelp"); $ajax = new AjaxCompose(); $ajax->addCrumb($GLOBALS['mod_strings']['LBL_MODULEBUILDER'], 'ModuleBuilder.getContent("module=ModuleBuilder&action=package")'); $ajax->addCrumb($GLOBALS['mod_strings']['LBL_PACKAGE_LIST'], ''); $ajax->addSection('center', $GLOBALS['mod_strings']['LBL_PACKAGE_LIST'], $smarty->fetch('modules/ModuleBuilder/tpls/wizard.tpl')); echo $ajax->getJavascript(); } else { $name = !empty($_REQUEST['package']) ? $_REQUEST['package'] : ''; $mb->getPackage($name); $this->package =& $mb->packages[$name]; $this->loadModuleTypes(); $this->loadPackageHelp($name); $this->package->date_modified = $GLOBALS['timedate']->to_display_date_time($this->package->date_modified); $smarty->assign('package', $this->package); $smarty->assign('mod_strings', $mod_strings); $ajax = new AjaxCompose(); $ajax->addCrumb($GLOBALS['mod_strings']['LBL_MODULEBUILDER'], 'ModuleBuilder.getContent("module=ModuleBuilder&action=package")'); if (empty($name)) { $name = $mod_strings['LBL_NEW_PACKAGE']; } $ajax->addCrumb($name, ''); $html = $smarty->fetch('modules/ModuleBuilder/tpls/MBPackage/package.tpl'); if (!empty($_REQUEST['action']) && $_REQUEST['action'] == 'SavePackage') { $html .= "<script>ModuleBuilder.treeRefresh('ModuleBuilder')</script>"; } $ajax->addSection('center', translate('LBL_SECTION_PACKAGE', 'ModuleBuilder'), $html); echo $ajax->getJavascript(); } }
function display() { global $mod_strings; $smarty = new Sugar_Smarty(); require_once 'modules/ModuleBuilder/MB/ModuleBuilder.php'; $mb = new ModuleBuilder(); $mb->getPackage($_REQUEST['view_package']); $package = $mb->packages[$_REQUEST['view_package']]; $module_name = !empty($_REQUEST['view_module']) ? $_REQUEST['view_module'] : ''; $package->getModule($module_name); $this->mbModule = $package->modules[$module_name]; $this->loadPackageHelp($module_name); // set up the list of either available types for a new module, or implemented types for an existing one $types = empty($module_name) ? MBModule::getTypes() : $this->mbModule->mbvardefs->templates; foreach ($types as $type => $definition) { $translated_type[$type] = translate('LBL_TYPE_' . strtoupper($type), 'ModuleBuilder'); } natcasesort($translated_type); $smarty->assign('types', $translated_type); $smarty->assign('package', $package); $smarty->assign('module', $this->mbModule); $smarty->assign('mod_strings', $mod_strings); $ajax = new AjaxCompose(); $ajax->addCrumb($GLOBALS['mod_strings']['LBL_MODULEBUILDER'], 'ModuleBuilder.main("mb")'); $ajax->addCrumb(' ' . $package->name, 'ModuleBuilder.getContent("module=ModuleBuilder&action=package&package=' . $package->name . '")'); if (empty($module_name)) { $module_name = translate('LBL_NEW_MODULE', 'ModuleBuilder'); } $ajax->addCrumb($module_name, ''); $html = $smarty->fetch('modules/ModuleBuilder/tpls/MBModule/module.tpl'); if (!empty($_REQUEST['action']) && $_REQUEST['action'] == 'SaveModule') { $html .= "<script>ModuleBuilder.treeRefresh('ModuleBuilder')</script>"; } $ajax->addSection('center', translate('LBL_SECTION_MODULE', 'ModuleBuilder'), $html); echo $ajax->getJavascript(); }
function display() { $ajax = new AjaxCompose(); $smarty = new Sugar_Smarty(); if (isset($_REQUEST['refreshTree'])) { require_once 'modules/ModuleBuilder/Module/DropDownTree.php'; $mbt = new DropDownTree(); $ajax->addSection('west', $mbt->getName(), $mbt->fetchNodes()); $smarty->assign('refreshTree', true); } global $mod_strings; $ajax->addCrumb($mod_strings['LBL_DROPDOWNEDITOR'], 'ModuleBuilder.main("dropdowns")'); require_once 'modules/ModuleBuilder/Module/DropDownBrowser.php'; $dd = new DropDownBrowser(); $smarty->assign('LBL_BTN_ADDDROPDOWN', translate('LBL_BTN_ADDDROPDOWN')); $smarty->assign('dropdowns', $dd->getNodes()); $smarty->assign('deleteImage', SugarThemeRegistry::current()->getImage('delete_inline', '', null, null, '.gif', $mod_strings['LBL_MB_DELETE'])); $smarty->assign('editImage', SugarThemeRegistry::current()->getImage('edit_inline', '', null, null, '.gif', $mod_strings['LBL_EDIT'])); $smarty->assign('action', 'savedropdown'); $ajax->addSection('center', $GLOBALS['mod_strings']['LBL_DROPDOWNEDITOR'], $smarty->fetch('modules/ModuleBuilder/tpls/MBModule/dropdowns.tpl')); echo $ajax->getJavascript(); }
function display() { $editModule = $_REQUEST['view_module']; if (!isset($_REQUEST['MB'])) { global $app_list_strings; $moduleNames = array_change_key_case($app_list_strings['moduleList']); $translatedEditModule = $moduleNames[strtolower($editModule)]; } $selected_lang = !empty($_REQUEST['selected_lang']) ? $_REQUEST['selected_lang'] : $_SESSION['authenticated_user_language']; if (empty($selected_lang)) { $selected_lang = $GLOBALS['sugar_config']['default_language']; } $smarty = new Sugar_Smarty(); global $mod_strings; $smarty->assign('mod_strings', $mod_strings); $smarty->assign('available_languages', get_languages()); global $beanList; $objectName = $beanList[$editModule]; if ($objectName == 'aCase') { $objectName = 'Case'; } VardefManager::loadVardef($editModule, $objectName); global $dictionary; $vnames = array(); //jchi 24557 . We should list all the lables in viewdefs(list,detail,edit,quickcreate) that the user can edit them. require_once 'modules/ModuleBuilder/parsers/views/ListLayoutMetaDataParser.php'; $parser = new ListLayoutMetaDataParser(MB_LISTVIEW, $editModule); foreach ($parser->getLayout() as $key => $def) { if (isset($def['label'])) { $vnames[$def['label']] = $def['label']; } } require_once 'modules/ModuleBuilder/parsers/views/GridLayoutMetaDataParser.php'; $variableMap = array(MB_EDITVIEW => 'EditView', MB_DETAILVIEW => 'DetailView', MB_QUICKCREATE => 'QuickCreate'); if ($editModule == 'KBDocuments') { $variableMap = array(); } foreach ($variableMap as $key => $value) { $gridLayoutMetaDataParserTemp = new GridLayoutMetaDataParser($value, $editModule); foreach ($gridLayoutMetaDataParserTemp->getLayout() as $panel) { foreach ($panel as $row) { foreach ($row as $fieldArray) { // fieldArray is an array('name'=>name,'label'=>label) if (isset($fieldArray['label'])) { $vnames[$fieldArray['label']] = $fieldArray['label']; } } } } } //end //Get Subpanel Labels: require_once 'include/SubPanel/SubPanel.php'; $subList = SubPanel::getModuleSubpanels($editModule); foreach ($subList as $subpanel => $titleLabel) { $vnames[$titleLabel] = $titleLabel; } foreach ($dictionary[$objectName]['fields'] as $name => $def) { if (isset($def['vname'])) { $vnames[$def['vname']] = $def['vname']; } } $formatted_mod_strings = array(); //we shouldn't set the $refresh=true here, or will lost template language mod_strings. //return_module_language($selected_lang, $editModule,false) : the mod_strings will be included from cache files here. foreach (return_module_language($selected_lang, $editModule, false) as $name => $label) { //#25294 if (isset($vnames[$name]) || preg_match('/lbl_city|lbl_country|lbl_billing_address|lbl_alt_address|lbl_shipping_address|lbl_postal_code|lbl_state$/si', $name)) { $formatted_mod_strings[$name] = htmlentities($label, ENT_QUOTES, 'UTF-8'); } } //Grab everything from the custom files $mod_bak = $mod_strings; $files = array("custom/modules/{$editModule}/language/{$selected_lang}.lang.php", "custom/modules/{$editModule}/Ext/Language/{$selected_lang}.lang.ext.php"); foreach ($files as $langfile) { $mod_strings = array(); if (is_file($langfile)) { include $langfile; foreach ($mod_strings as $key => $label) { $formatted_mod_strings[$key] = htmlentities($label, ENT_QUOTES, 'UTF-8'); } } } $mod_strings = $mod_bak; ksort($formatted_mod_strings); $smarty->assign('MOD', $formatted_mod_strings); $smarty->assign('view_module', $editModule); $smarty->assign('APP', $GLOBALS['app_strings']); $smarty->assign('selected_lang', $selected_lang); $smarty->assign('defaultHelp', 'labelsBtn'); $smarty->assign('assistant', array('key' => 'labels', 'group' => 'module')); $ajax = new AjaxCompose(); $ajax->addCrumb($mod_strings['LBL_STUDIO'], 'ModuleBuilder.getContent("module=ModuleBuilder&action=wizard")'); $ajax->addCrumb($translatedEditModule, 'ModuleBuilder.getContent("module=ModuleBuilder&action=wizard&view_module=' . $editModule . '")'); $ajax->addCrumb($mod_strings['LBL_LABELS'], ''); $html = $smarty->fetch('modules/ModuleBuilder/tpls/labels.tpl'); $ajax->addSection('center', $GLOBALS['mod_strings']['LBL_SECTION_EDLABELS'], $html); echo $ajax->getJavascript(); }
function display() { $smarty = new Sugar_Smarty(); global $mod_strings; $bak_mod_strings = $mod_strings; $smarty->assign('mod_strings', $mod_strings); $module_name = $_REQUEST['view_module']; if (!isset($_REQUEST['view_package']) || $_REQUEST['view_package'] == 'studio') { //$this->loadPackageHelp($module_name); $studioClass = new stdClass(); $studioClass->name = $module_name; global $beanList; $objectName = $beanList[$module_name]; if ($objectName == 'aCase') { // Bug 17614 - renamed aCase as Case in vardefs for backwards compatibililty with 451 modules $objectName = 'Case'; } VardefManager::loadVardef($module_name, $objectName, true); global $dictionary; $f = array($mod_strings['LBL_HCUSTOM'] => array(), $mod_strings['LBL_HDEFAULT'] => array()); // TODO: replace this section to select fields to list with the algorithm in AbstractMetaDataImplmentation::validField() $def = $this->cullFields($dictionary[$objectName]['fields']); foreach ($dictionary[$objectName]['fields'] as $def) { if ($this->isValidStudioField($def)) { //Custom relate fields will have a non-db source, but custom_module set if (isset($def['source']) && $def['source'] == 'custom_fields' || isset($def['custom_module'])) { $f[$mod_strings['LBL_HCUSTOM']][$def['name']] = $def; } else { $f[$mod_strings['LBL_HDEFAULT']][$def['name']] = $def; } } } $studioClass->mbvardefs->vardefs['fields'] = $f; $smarty->assign('module', $studioClass); $package = new stdClass(); $package->name = ''; $smarty->assign('package', $package); $ajax = new AjaxCompose(); $ajax->addCrumb($mod_strings['LBL_STUDIO'], 'ModuleBuilder.getContent("module=ModuleBuilder&action=wizard")'); $ajax->addCrumb(translate($module_name), 'ModuleBuilder.getContent("module=ModuleBuilder&action=wizard&view_module=' . $module_name . '")'); $ajax->addCrumb($mod_strings['LBL_FIELDS'], ''); $ajax->addSection('center', $mod_strings['LBL_EDIT_FIELDS'], $smarty->fetch('modules/ModuleBuilder/tpls/MBModule/fields.tpl')); $_REQUEST['field'] = ''; echo $ajax->getJavascript(); } else { require_once 'modules/ModuleBuilder/MB/ModuleBuilder.php'; $mb = new ModuleBuilder(); $mb->getPackage($_REQUEST['view_package']); $package = $mb->packages[$_REQUEST['view_package']]; $package->getModule($module_name); $this->module = $package->modules[$module_name]; $this->loadPackageHelp($module_name); $this->module->getVardefs(true); $this->module->mbvardefs->vardefs['fields'] = array_reverse($this->module->mbvardefs->vardefs['fields'], true); $loadedFields = array(); foreach ($this->module->mbvardefs->vardefs['fields'] as $k => $v) { if ($k != $module_name) { $titleLBL[$k] = translate("LBL_" . strtoupper($k), 'ModuleBuilder'); } else { $titleLBL[$k] = $k; } foreach ($v as $field => $def) { if (isset($loadedFields[$field])) { unset($this->module->mbvardefs->vardefs['fields'][$k][$field]); } else { $loadedFields[$field] = true; } } } $this->module->mbvardefs->vardefs['fields'][$module_name] = $this->cullFields($this->module->mbvardefs->vardefs['fields'][$module_name]); if (file_exists($this->module->path . '/language/' . $GLOBALS['current_language'] . '.lang.php')) { include $this->module->path . '/language/' . $GLOBALS['current_language'] . '.lang.php'; $this->module->setModStrings($GLOBALS['current_language'], $mod_strings); } elseif (file_exists($this->module->path . '/language/en_us.lang.php')) { include $this->module->path . '/language/en_us.lang.php'; $this->module->setModStrings('en_us', $mod_strings); } $smarty->assign('title', $titleLBL); $smarty->assign('package', $package); $smarty->assign('module', $this->module); $smarty->assign('editLabelsMb', '1'); //need to merge MB labels and studio labels. quick fix for now. $ajax = new AjaxCompose(); $ajax->addCrumb($bak_mod_strings['LBL_MODULEBUILDER'], 'ModuleBuilder.main("mb")'); $ajax->addCrumb($package->name, 'ModuleBuilder.getContent("module=ModuleBuilder&action=package&package=' . $package->name . '")'); $ajax->addCrumb($module_name, 'ModuleBuilder.getContent("module=ModuleBuilder&action=module&view_package=' . $package->name . '&view_module=' . $module_name . '")'); $ajax->addCrumb($bak_mod_strings['LBL_FIELDS'], ''); $ajax->addSection('center', $bak_mod_strings["LBL_FIELDS"], $smarty->fetch('modules/ModuleBuilder/tpls/MBModule/fields.tpl')); $_REQUEST['field'] = ''; echo $ajax->getJavascript(); } }
function constructAjax() { require_once 'modules/ModuleBuilder/MB/AjaxCompose.php'; $ajax = new AjaxCompose(); $layoutLabel = 'LBL_LAYOUTS'; $layoutView = 'layouts'; $labels = array(MB_LISTVIEW => 'LBL_LISTVIEW'); $translatedViewType = ''; if (isset($labels[strtolower($this->editLayout)])) { $translatedViewType = translate($labels[strtolower($this->editLayout)], 'ModuleBuilder'); } $this->translatedViewType = $translatedViewType; if ($this->fromModuleBuilder) { $ajax->addCrumb(translate('LBL_MODULEBUILDER', 'ModuleBuilder'), 'ModuleBuilder.main("mb")'); $ajax->addCrumb($_REQUEST['view_package'], 'ModuleBuilder.getContent("module=ModuleBuilder&action=package&package=' . $_REQUEST['view_package'] . '")'); $ajax->addCrumb($this->editModule, 'ModuleBuilder.getContent("module=ModuleBuilder&action=module&view_package=' . $_REQUEST['view_package'] . '&view_module=' . $_REQUEST['view_module'] . '")'); if ($this->subpanel != "") { $ajax->addCrumb(translate('LBL_AVAILABLE_SUBPANELS', 'ModuleBuilder'), ''); if ($this->subpanelLabel) { $subpanelLabel = $this->subpanelLabel; // If the subpanel title has changed, use that for the label instead if (!empty($_REQUEST['subpanel_title']) && $_REQUEST['subpanelLabel'] != $_REQUEST['subpanel_title']) { $subpanelLabel = $_REQUEST['subpanel_title']; } $ajax->addCrumb($subpanelLabel, ''); $this->translatedViewType = $subpanelLabel . " " . translate("LBL_SUBPANEL", "ModuleBuilder"); } else { $ajax->addCrumb($this->subpanel, ''); $this->translatedViewType = translate("LBL_SUBPANEL", "ModuleBuilder"); } } else { $ajax->addCrumb(translate($layoutLabel, 'ModuleBuilder'), 'ModuleBuilder.getContent("module=ModuleBuilder&MB=true&action=wizard&view_module=' . $_REQUEST['view_module'] . '&view_package=' . $_REQUEST['view_package'] . '")'); $ajax->addCrumb($translatedViewType, ''); } } else { $ajax->addCrumb(translate('LBL_STUDIO', 'ModuleBuilder'), 'ModuleBuilder.getContent("module=ModuleBuilder&action=wizard")'); $ajax->addCrumb($this->translatedEditModule, 'ModuleBuilder.getContent("module=ModuleBuilder&action=wizard&view_module=' . $this->editModule . '")'); if ($this->subpanel) { $ajax->addCrumb(translate('LBL_SUBPANELS', 'ModuleBuilder'), 'ModuleBuilder.getContent("module=ModuleBuilder&action=wizard&view=subpanels&view_module=' . $this->editModule . '")'); if ($this->subpanelLabel) { $subpanelLabel = $this->subpanelLabel; // If the subpanel title has changed, use that for the label instead if (!empty($_REQUEST['subpanel_title']) && $_REQUEST['subpanelLabel'] != $_REQUEST['subpanel_title']) { $subpanelLabel = $_REQUEST['subpanel_title']; } $ajax->addCrumb($subpanelLabel, ''); $this->translatedViewType = $subpanelLabel . " " . translate("LBL_SUBPANEL", "ModuleBuilder"); } else { $ajax->addCrumb($this->subpanel, ''); $this->translatedViewType = translate("LBL_SUBPANEL", "ModuleBuilder"); } } else { $ajax->addCrumb(translate($layoutLabel, 'ModuleBuilder'), 'ModuleBuilder.getContent("module=ModuleBuilder&action=wizard&view=' . $layoutView . '&view_module=' . $this->editModule . '")'); $ajax->addCrumb($translatedViewType, ''); } } return $ajax; }
function constructAjax() { require_once 'modules/ModuleBuilder/MB/AjaxCompose.php'; $ajax = new AjaxCompose(); $layoutLabel = 'LBL_LAYOUTS'; $layoutView = 'layouts'; $labels = array(MB_LISTVIEW => 'LBL_LISTVIEW'); $translatedViewType = ''; if (isset($labels[strtolower($this->editLayout)])) { $translatedViewType = translate($labels[strtolower($this->editLayout)], 'ModuleBuilder'); } $this->translatedViewType = $translatedViewType; if ($this->fromModuleBuilder) { $ajax->addCrumb(translate('LBL_MODULEBUILDER', 'ModuleBuilder'), 'ModuleBuilder.main("mb")'); $ajax->addCrumb($_REQUEST['view_package'], 'ModuleBuilder.getContent("module=ModuleBuilder&action=package&package=' . $_REQUEST['view_package'] . '")'); $ajax->addCrumb($this->editModule, 'ModuleBuilder.getContent("module=ModuleBuilder&action=module&view_package=' . $_REQUEST['view_package'] . '&view_module=' . $_REQUEST['view_module'] . '")'); if ($this->subpanel != "") { $ajax->addCrumb(translate('LBL_AVAILABLE_SUBPANELS', 'ModuleBuilder'), ''); if ($this->subpanelLabel) { $ajax->addCrumb($this->subpanelLabel, ''); $this->translatedViewType = $this->subpanelLabel . " " . translate("LBL_SUBPANEL", "ModuleBuilder"); } else { $ajax->addCrumb($this->subpanel, ''); $this->translatedViewType = translate("LBL_SUBPANEL", "ModuleBuilder"); } } else { $ajax->addCrumb(translate($layoutLabel, 'ModuleBuilder'), 'ModuleBuilder.getContent("module=ModuleBuilder&MB=true&action=wizard&view_module=' . $_REQUEST['view_module'] . '&view_package=' . $_REQUEST['view_package'] . '")'); $ajax->addCrumb($translatedViewType, ''); } } else { $ajax->addCrumb(translate('LBL_STUDIO', 'ModuleBuilder'), 'ModuleBuilder.getContent("module=ModuleBuilder&action=wizard")'); $ajax->addCrumb($this->translatedEditModule, 'ModuleBuilder.getContent("module=ModuleBuilder&action=wizard&view_module=' . $this->editModule . '")'); if ($this->subpanel) { $ajax->addCrumb(translate('LBL_SUBPANELS', 'ModuleBuilder'), 'ModuleBuilder.getContent("module=ModuleBuilder&action=wizard&view=subpanels&view_module=' . $this->editModule . '")'); if ($this->subpanelLabel) { $ajax->addCrumb($this->subpanelLabel, ''); $this->translatedViewType = $this->subpanelLabel . " " . translate("LBL_SUBPANEL", "ModuleBuilder"); } else { $ajax->addCrumb($this->subpanel, ''); $this->translatedViewType = translate("LBL_SUBPANEL", "ModuleBuilder"); } } else { $ajax->addCrumb(translate($layoutLabel, 'ModuleBuilder'), 'ModuleBuilder.getContent("module=ModuleBuilder&action=wizard&view=' . $layoutView . '&view_module=' . $this->editModule . '")'); /* BEGIN - SECURITY GROUPS */ global $groupName; $ajax->addCrumb(translate($groupName), ''); /* END - SECURITY GROUPS */ $ajax->addCrumb($translatedViewType, ''); } } return $ajax; }
function constructAjax() { require_once 'modules/ModuleBuilder/MB/AjaxCompose.php'; $ajax = new AjaxCompose(); switch ($this->editLayout) { default: $searchLabel = 'LBL_' . strtoupper($this->editLayout); } $layoutLabel = 'LBL_LAYOUTS'; $layoutView = 'layouts'; if ($this->fromModuleBuilder) { $ajax->addCrumb(translate('LBL_MODULEBUILDER', 'ModuleBuilder'), 'ModuleBuilder.main("mb")'); $ajax->addCrumb($_REQUEST['view_package'], 'ModuleBuilder.getContent("module=ModuleBuilder&action=package&package=' . $_REQUEST['view_package'] . '")'); $ajax->addCrumb($this->editModule, 'ModuleBuilder.getContent("module=ModuleBuilder&action=module&view_package=' . $_REQUEST['view_package'] . "&view_module={$this->editModule}" . '")'); $ajax->addCrumb(translate($layoutLabel, 'ModuleBuilder'), 'ModuleBuilder.getContent("module=ModuleBuilder&MB=true&action=wizard&view_module=' . $this->editModule . '&view_package=' . $_REQUEST['view_package'] . '")'); if ($layoutLabel == 'LBL_LAYOUTS') { $ajax->addCrumb(translate('LBL_SEARCH_FORMS', 'ModuleBuilder'), 'ModuleBuilder.getContent("module=ModuleBuilder&MB=true&action=wizard&view=search&view_module=' . $this->editModule . '&view_package=' . $_REQUEST['view_package'] . '")'); } $ajax->addCrumb(translate($searchLabel, 'ModuleBuilder'), ''); } else { $ajax->addCrumb(translate('LBL_STUDIO', 'ModuleBuilder'), 'ModuleBuilder.main("studio")'); $ajax->addCrumb($this->translatedEditModule, 'ModuleBuilder.getContent("module=ModuleBuilder&action=wizard&view_module=' . $this->editModule . '")'); $ajax->addCrumb(translate($layoutLabel, 'ModuleBuilder'), 'ModuleBuilder.getContent("module=ModuleBuilder&action=wizard&view=' . $layoutView . '&view_module=' . $this->editModule . '")'); if ($layoutLabel == 'LBL_LAYOUTS') { $ajax->addCrumb(translate('LBL_SEARCH_FORMS', 'ModuleBuilder'), 'ModuleBuilder.getContent("module=ModuleBuilder&action=wizard&view=search&view_module=' . $this->editModule . '")'); } $ajax->addCrumb(translate($searchLabel, 'ModuleBuilder'), ''); } $this->title = $searchLabel; return $ajax; }
function handleSave() { $out = "<script>ajaxStatus.flashStatus(SUGAR.language.get('app_strings', 'LBL_REQUEST_PROCESSED'), 2000);</script>"; if (!empty($_REQUEST['relationships'])) { $out .= $this->removeCustomRelationships(); } if (!empty($_REQUEST['fields'])) { $out .= $this->removeCustomFields(); } if (!empty($_REQUEST['layouts'])) { $out .= $this->removeCustomLayouts(); } if (!empty($_REQUEST['labels'])) { $out .= $this->removeCustomLabels(); } if (!empty($_REQUEST['extensions'])) { $out .= $this->removeCustomExtensions(); } $out .= "Complete!"; $ajax = new AjaxCompose(); $ajax->addCrumb(translate('LBL_STUDIO'), 'ModuleBuilder.main("studio")'); $ajax->addCrumb(translate($this->module), 'ModuleBuilder.getContent("module=ModuleBuilder&action=wizard&view_module=' . $this->module . '")'); $ajax->addCrumb("Reset " . translate($this->module), ''); $ajax->addSection('center', "Reset " . translate($this->module), $out); echo $ajax->getJavascript(); }
function display($preview = false) { global $mod_strings; $parser = ParserFactory::getParser($this->editLayout, $this->editModule, $this->package); if (isset($this->view_object_map['new_parser'])) { $parser = $this->view_object_map['new_parser']; } $history = $parser->getHistory(); $smarty = new Sugar_Smarty(); //Add in the module we are viewing to our current mod strings if (!$this->fromModuleBuilder) { global $current_language; $editModStrings = return_module_language($current_language, $this->editModule); $mod_strings = sugarArrayMerge($editModStrings, $mod_strings); } $smarty->assign('mod', $mod_strings); $smarty->assign('MOD', $mod_strings); // assign buttons $images = array('icon_save' => 'studio_save', 'icon_publish' => 'studio_publish', 'icon_address' => 'icon_Address', 'icon_emailaddress' => 'icon_EmailAddress', 'icon_phone' => 'icon_Phone'); foreach ($images as $image => $file) { $smarty->assign($image, SugarThemeRegistry::current()->getImage($file, '', null, null, '.gif', $file)); } $requiredFields = implode($parser->getRequiredFields(), ','); $slashedRequiredFields = addslashes($requiredFields); $buttons = array(); $disableLayout = false; if ($preview) { $smarty->assign('layouttitle', translate('LBL_LAYOUT_PREVIEW', 'ModuleBuilder')); } else { $smarty->assign('layouttitle', translate('LBL_CURRENT_LAYOUT', 'ModuleBuilder')); //Check if we need to synch edit view to other layouts if ($this->editLayout == MB_DETAILVIEW || $this->editLayout == MB_QUICKCREATE) { $parser2 = ParserFactory::getParser(MB_EDITVIEW, $this->editModule, $this->package); if ($this->editLayout == MB_DETAILVIEW) { $disableLayout = $parser2->getSyncDetailEditViews(); } if (!empty($_REQUEST['copyFromEditView'])) { $editViewPanels = $parser2->convertFromCanonicalForm($parser2->_viewdefs['panels'], $parser2->_fielddefs); $parser->_viewdefs['panels'] = $editViewPanels; $parser->_fielddefs = $parser2->_fielddefs; $parser->setUseTabs($parser2->getUseTabs()); $parser->setTabDefs($parser2->getTabDefs()); } } if (!$this->fromModuleBuilder) { $buttons[] = array('id' => 'saveBtn', 'text' => translate('LBL_BTN_SAVE'), 'actionScript' => "onclick='if(Studio2.checkGridLayout(\"{$this->editLayout}\")) Studio2.handleSave();'", 'disabled' => $disableLayout); $buttons[] = array('id' => 'publishBtn', 'text' => translate('LBL_BTN_SAVEPUBLISH'), 'actionScript' => "onclick='if(Studio2.checkGridLayout(\"{$this->editLayout}\")) Studio2.handlePublish();'", 'disabled' => $disableLayout); $buttons[] = array('id' => 'spacer', 'width' => '33px'); $buttons[] = array('id' => 'historyBtn', 'text' => translate('LBL_HISTORY'), 'actionScript' => "onclick='ModuleBuilder.history.browse(\"{$this->editModule}\", \"{$this->editLayout}\")'", 'disabled' => $disableLayout); $buttons[] = array('id' => 'historyDefault', 'text' => translate('LBL_RESTORE_DEFAULT'), 'actionScript' => "onclick='ModuleBuilder.history.revert(\"{$this->editModule}\", \"{$this->editLayout}\", \"{$history->getLast()}\", \"\")'", 'disabled' => $disableLayout); } else { $buttons[] = array('id' => 'saveBtn', 'text' => $GLOBALS['mod_strings']['LBL_BTN_SAVE'], 'actionScript' => "onclick='if(Studio2.checkGridLayout(\"{$this->editLayout}\")) Studio2.handlePublish();'", 'disabled' => $disableLayout); $buttons[] = array('id' => 'spacer', 'width' => '33px'); $buttons[] = array('id' => 'historyBtn', 'text' => translate('LBL_HISTORY'), 'actionScript' => "onclick='ModuleBuilder.history.browse(\"{$this->editModule}\", \"{$this->editLayout}\")'", 'disabled' => $disableLayout); $buttons[] = array('id' => 'historyDefault', 'text' => translate('LBL_RESTORE_DEFAULT'), 'actionScript' => "onclick='ModuleBuilder.history.revert(\"{$this->editModule}\", \"{$this->editLayout}\", \"{$history->getLast()}\", \"\")'", 'disabled' => $disableLayout); } if ($this->editLayout == MB_DETAILVIEW || $this->editLayout == MB_QUICKCREATE) { $buttons[] = array('id' => 'copyFromEditView', 'text' => translate('LBL_COPY_FROM_EDITVIEW'), 'actionScript' => "onclick='ModuleBuilder.copyFromView(\"{$this->editModule}\", \"{$this->editLayout}\")'", 'disabled' => $disableLayout); } } $html = ""; foreach ($buttons as $button) { if ($button['id'] == "spacer") { $html .= "<td style='width:{$button['width']}'> </td>"; } else { $html .= "<td><input id='{$button['id']}' type='button' valign='center' class='button' style='cursor:pointer' " . "onmousedown='this.className=\"buttonOn\";return false;' onmouseup='this.className=\"button\"' " . "onmouseout='this.className=\"button\"' {$button['actionScript']} value = '{$button['text']}'"; if (!empty($button['disabled'])) { $html .= " disabled"; } $html .= "></td>"; } } $smarty->assign('buttons', $html); // assign fields and layout $smarty->assign('available_fields', $parser->getAvailableFields()); $smarty->assign('disable_layout', $disableLayout); $smarty->assign('required_fields', $requiredFields); $smarty->assign('layout', $parser->getLayout()); $smarty->assign('field_defs', $parser->getFieldDefs()); $smarty->assign('view_module', $this->editModule); $smarty->assign('view', $this->editLayout); $smarty->assign('maxColumns', $parser->getMaxColumns()); $smarty->assign('nextPanelId', $parser->getFirstNewPanelId()); $smarty->assign('displayAsTabs', $parser->getUseTabs()); $smarty->assign('tabDefs', $parser->getTabDefs()); $smarty->assign('syncDetailEditViews', $parser->getSyncDetailEditViews()); $smarty->assign('fieldwidth', 150); $smarty->assign('translate', $this->fromModuleBuilder ? false : true); if ($this->fromModuleBuilder) { $smarty->assign('fromModuleBuilder', $this->fromModuleBuilder); $smarty->assign('view_package', $this->package); } $labels = array(MB_EDITVIEW => 'LBL_EDITVIEW', MB_DETAILVIEW => 'LBL_DETAILVIEW', MB_QUICKCREATE => 'LBL_QUICKCREATE'); $layoutLabel = 'LBL_LAYOUTS'; $layoutView = 'layouts'; $ajax = new AjaxCompose(); $translatedViewType = ''; if (isset($labels[strtolower($this->editLayout)])) { $translatedViewType = translate($labels[strtolower($this->editLayout)], 'ModuleBuilder'); } else { if (isset($this->sm)) { foreach ($this->sm->sources as $file => $def) { if (!empty($def['view']) && $def['view'] == $this->editLayout && !empty($def['name'])) { $translatedViewType = $def['name']; } } if (empty($translatedViewType)) { $label = "LBL_" . strtoupper($this->editLayout); $translated = translate($label, $this->editModule); if ($translated != $label) { $translatedViewType = $translated; } } } } if ($this->fromModuleBuilder) { $ajax->addCrumb(translate('LBL_MODULEBUILDER', 'ModuleBuilder'), 'ModuleBuilder.main("mb")'); $ajax->addCrumb($this->package, 'ModuleBuilder.getContent("module=ModuleBuilder&action=package&package=' . $this->package . '")'); $ajax->addCrumb($this->editModule, 'ModuleBuilder.getContent("module=ModuleBuilder&action=module&view_package=' . $this->package . '&view_module=' . $this->editModule . '")'); $ajax->addCrumb(translate($layoutLabel, 'ModuleBuilder'), 'ModuleBuilder.getContent("module=ModuleBuilder&MB=true&action=wizard&view=' . $layoutView . '&view_module=' . $this->editModule . '&view_package=' . $this->package . '")'); $ajax->addCrumb($translatedViewType, ''); } else { $ajax->addCrumb(translate('LBL_STUDIO', 'ModuleBuilder'), 'ModuleBuilder.main("studio")'); $ajax->addCrumb($this->translatedEditModule, 'ModuleBuilder.getContent("module=ModuleBuilder&action=wizard&view_module=' . $this->editModule . '")'); $ajax->addCrumb(translate($layoutLabel, 'ModuleBuilder'), 'ModuleBuilder.getContent("module=ModuleBuilder&action=wizard&view=' . $layoutView . '&view_module=' . $this->editModule . '")'); $ajax->addCrumb($translatedViewType, ''); } // set up language files $smarty->assign('language', $parser->getLanguage()); // for sugar_translate in the smarty template $smarty->assign('from_mb', $this->fromModuleBuilder); $smarty->assign('calc_field_list', json_encode($parser->getCalculatedFields())); if ($this->fromModuleBuilder) { $mb = new ModuleBuilder(); $module =& $mb->getPackageModule($this->package, $this->editModule); $smarty->assign('current_mod_strings', $module->getModStrings()); } $ajax->addSection('center', $translatedViewType, $smarty->fetch('modules/ModuleBuilder/tpls/layoutView.tpl')); if ($preview) { echo $smarty->fetch('modules/ModuleBuilder/tpls/Preview/layoutView.tpl'); } else { echo $ajax->getJavascript(); } }
function display() { $smarty = new Sugar_Smarty(); global $mod_strings; $bak_mod_strings = $mod_strings; $smarty->assign('mod_strings', $mod_strings); $module_name = $_REQUEST['view_module']; global $current_language; $module_strings = return_module_language($current_language, $module_name); $fieldsData = array(); $customFieldsData = array(); //use fieldTypes variable to map field type to displayed field type $fieldTypes = $mod_strings['fieldTypes']; //add datetimecombo type field from the vardef overrides to point to Datetime type $fieldTypes['datetime'] = $fieldTypes['datetimecombo']; if (!isset($_REQUEST['view_package']) || $_REQUEST['view_package'] == 'studio') { //$this->loadPackageHelp($module_name); $studioClass = new stdClass(); $studioClass->name = $module_name; $objectName = BeanFactory::getObjectName($module_name); VardefManager::loadVardef($module_name, $objectName, true); global $dictionary; $f = array($mod_strings['LBL_HCUSTOM'] => array(), $mod_strings['LBL_HDEFAULT'] => array()); foreach ($dictionary[$objectName]['fields'] as $def) { if (!$this->isValidStudioField($def)) { continue; } if (!empty($def['vname'])) { $def['label'] = translate($def['vname'], $module_name); } elseif (!empty($def['label'])) { $def['label'] = translate($def['label'], $module_name); } else { $def['label'] = $def['name']; } //Custom relate fields will have a non-db source, but custom_module set if (isset($def['source']) && $def['source'] == 'custom_fields' || isset($def['custom_module'])) { $f[$mod_strings['LBL_HCUSTOM']][$def['name']] = $def; $def['custom'] = true; } else { $f[$mod_strings['LBL_HDEFAULT']][$def['name']] = $def; $def['custom'] = false; } $def['type'] = isset($fieldTypes[$def['type']]) ? $fieldTypes[$def['type']] : ucfirst($def['type']); $fieldsData[] = $def; $customFieldsData[$def['name']] = $def['custom']; } $studioClass->mbvardefs->vardefs['fields'] = $f; $smarty->assign('module', $studioClass); $package = new stdClass(); $package->name = ''; $smarty->assign('package', $package); global $current_user; $sortPreferences = $current_user->getPreference('fieldsTableColumn', 'ModuleBuilder'); $smarty->assign('sortPreferences', $sortPreferences); $smarty->assign('fieldsData', getJSONobj()->encode($fieldsData)); $smarty->assign('customFieldsData', getJSONobj()->encode($customFieldsData)); $smarty->assign('studio', true); $ajax = new AjaxCompose(); $ajax->addCrumb($mod_strings['LBL_STUDIO'], 'ModuleBuilder.getContent("module=ModuleBuilder&action=wizard")'); $ajax->addCrumb(translate($module_name), 'ModuleBuilder.getContent("module=ModuleBuilder&action=wizard&view_module=' . $module_name . '")'); $ajax->addCrumb($mod_strings['LBL_FIELDS'], ''); $ajax->addSection('center', $mod_strings['LBL_EDIT_FIELDS'], $smarty->fetch('modules/ModuleBuilder/tpls/MBModule/fields.tpl')); $_REQUEST['field'] = ''; echo $ajax->getJavascript(); } else { require_once 'modules/ModuleBuilder/MB/ModuleBuilder.php'; $mb = new ModuleBuilder(); $mb->getPackage($_REQUEST['view_package']); $package = $mb->packages[$_REQUEST['view_package']]; $package->getModule($module_name); $this->mbModule = $package->modules[$module_name]; // We need the type to determine true custom fields $moduleType = $this->mbModule->getModuleType(); $this->loadPackageHelp($module_name); $this->mbModule->getVardefs(true); $this->mbModule->mbvardefs->vardefs['fields'] = array_reverse($this->mbModule->mbvardefs->vardefs['fields'], true); $loadedFields = array(); if (file_exists($this->mbModule->path . '/language/' . $current_language . '.lang.php')) { include $this->mbModule->path . '/language/' . $current_language . '.lang.php'; $this->mbModule->setModStrings($current_language, $mod_strings); } elseif (file_exists($this->mbModule->path . '/language/en_us.lang.php')) { include $this->mbModule->path . '/language/en_us.lang.php'; $this->mbModule->setModStrings('en_us', $mod_strings); } foreach ($this->mbModule->mbvardefs->vardefs['fields'] as $k => $v) { if ($k != $this->mbModule->name) { foreach ($v as $field => $def) { if (in_array($field, array_keys($this->mbModule->mbvardefs->vardefs['fields'][$this->mbModule->name]))) { $this->mbModule->mbvardefs->vardefs['fields'][$k][$field] = $this->mbModule->mbvardefs->vardefs['fields'][$this->mbModule->name][$field]; unset($this->mbModule->mbvardefs->vardefs['fields'][$this->mbModule->name][$field]); } } } } foreach ($this->mbModule->mbvardefs->vardefs['fields'] as $k => $v) { if ($k != $module_name) { $titleLBL[$k] = translate("LBL_" . strtoupper($k), 'ModuleBuilder'); } else { $titleLBL[$k] = $k; } foreach ($v as $field => $def) { if (isset($loadedFields[$field])) { unset($this->mbModule->mbvardefs->vardefs['fields'][$k][$field]); } else { $this->mbModule->mbvardefs->vardefs['fields'][$k][$field]['label'] = isset($def['vname']) && isset($this->mbModule->mblanguage->strings[$current_language . '.lang.php'][$def['vname']]) ? $this->mbModule->mblanguage->strings[$current_language . '.lang.php'][$def['vname']] : $field; // It's only custom if the module name is the same as the key AND not the same as the module type $custom = $k == $this->mbModule->name && $this->mbModule->name != $moduleType; $customFieldsData[$field] = $custom ? true : false; $loadedFields[$field] = true; $type = $this->mbModule->mbvardefs->vardefs['fields'][$k][$field]['type']; $this->mbModule->mbvardefs->vardefs['fields'][$k][$field]['type'] = isset($fieldTypes[$type]) ? $fieldTypes[$type] : ucfirst($type); if ($this->isValidStudioField($this->mbModule->mbvardefs->vardefs['fields'][$k][$field])) { $fieldsData[] = $this->mbModule->mbvardefs->vardefs['fields'][$k][$field]; } } } } $this->mbModule->mbvardefs->vardefs['fields'][$module_name] = $this->cullFields($this->mbModule->mbvardefs->vardefs['fields'][$module_name]); $smarty->assign('fieldsData', getJSONobj()->encode($fieldsData)); $smarty->assign('customFieldsData', getJSONobj()->encode($customFieldsData)); global $current_user; $sortPreferences = $current_user->getPreference('fieldsTableColumn', 'ModuleBuilder'); $smarty->assign('sortPreferences', $sortPreferences); $smarty->assign('title', $titleLBL); $smarty->assign('package', $package); $smarty->assign('module', $this->mbModule); $smarty->assign('editLabelsMb', '1'); $smarty->assign('studio', false); $ajax = new AjaxCompose(); $ajax->addCrumb($bak_mod_strings['LBL_MODULEBUILDER'], 'ModuleBuilder.main("mb")'); $ajax->addCrumb($package->name, 'ModuleBuilder.getContent("module=ModuleBuilder&action=package&package=' . $package->name . '")'); $ajax->addCrumb($module_name, 'ModuleBuilder.getContent("module=ModuleBuilder&action=module&view_package=' . $package->name . '&view_module=' . $module_name . '")'); $ajax->addCrumb($bak_mod_strings['LBL_FIELDS'], ''); $ajax->addSection('center', $bak_mod_strings["LBL_FIELDS"], $smarty->fetch('modules/ModuleBuilder/tpls/MBModule/fields.tpl')); $_REQUEST['field'] = ''; echo $ajax->getJavascript(); } }
function display($preview = false) { global $mod_strings; $parser = ParserFactory::getParser($this->editLayout, $this->editModule, $this->package); $history = $parser->getHistory(); $smarty = new Sugar_Smarty(); //Add in the module we are viewing to our current mod strings if (!$this->fromModuleBuilder) { global $current_language; $editModStrings = return_module_language($current_language, $this->editModule); $mod_strings = sugarArrayMerge($editModStrings, $mod_strings); } $smarty->assign('mod', $mod_strings); $smarty->assign('MOD', $mod_strings); // assign buttons $images = array('icon_save' => 'studio_save', 'icon_publish' => 'studio_publish', 'icon_address' => 'icon_Address', 'icon_emailaddress' => 'icon_EmailAddress', 'icon_phone' => 'icon_Phone'); foreach ($images as $image => $file) { $smarty->assign($image, SugarThemeRegistry::current()->getImage($file)); } $buttons = array(); if ($preview) { $smarty->assign('layouttitle', translate('LBL_LAYOUT_PREVIEW', 'ModuleBuilder')); } else { $smarty->assign('layouttitle', translate('LBL_CURRENT_LAYOUT', 'ModuleBuilder')); if (!$this->fromModuleBuilder) { $buttons[] = array('id' => 'saveBtn', 'text' => translate('LBL_BTN_SAVE'), 'actionScript' => "onclick='if (countGridFields()==0) ModuleBuilder.layoutValidation.popup() ; else Studio2.handleSave();'"); $buttons[] = array('id' => 'publishBtn', 'text' => translate('LBL_BTN_SAVEPUBLISH'), 'actionScript' => "onclick='if (countGridFields()==0) ModuleBuilder.layoutValidation.popup() ; else Studio2.handlePublish();'"); $buttons[] = array('id' => 'spacer', 'width' => '50px'); $buttons[] = array('id' => 'historyBtn', 'text' => translate('LBL_HISTORY'), 'actionScript' => "onclick='ModuleBuilder.history.browse(\"{$this->editModule}\", \"{$this->editLayout}\")'"); $buttons[] = array('id' => 'historyDefault', 'text' => translate('LBL_RESTORE_DEFAULT'), 'actionScript' => "onclick='ModuleBuilder.history.revert(\"{$this->editModule}\", \"{$this->editLayout}\", \"{$history->getLast()}\", \"\")'"); } else { $buttons[] = array('id' => 'saveBtn', 'text' => $GLOBALS['mod_strings']['LBL_BTN_SAVE'], 'actionScript' => "onclick='if (countGridFields()==0) ModuleBuilder.layoutValidation.popup() ; else Studio2.handlePublish();'"); $buttons[] = array('id' => 'spacer', 'width' => '50px'); $buttons[] = array('id' => 'historyBtn', 'text' => translate('LBL_HISTORY'), 'actionScript' => "onclick='ModuleBuilder.history.browse(\"{$this->editModule}\", \"{$this->editLayout}\")'"); $buttons[] = array('id' => 'historyDefault', 'text' => translate('LBL_RESTORE_DEFAULT'), 'actionScript' => "onclick='ModuleBuilder.history.revert(\"{$this->editModule}\", \"{$this->editLayout}\", \"{$history->getLast()}\", \"\")'"); } } $html = ""; foreach ($buttons as $button) { if ($button['id'] == "spacer") { $html .= "<td style='width:{$button['width']}'> </td>"; } else { $html .= "<td><input id='{$button['id']}' type='button' valign='center' class='button' style='cursor:pointer' " . "onmousedown='this.className=\"buttonOn\";return false;' onmouseup='this.className=\"button\"' " . "onmouseout='this.className=\"button\"' {$button['actionScript']} value = '{$button['text']}' ></td>"; } } $smarty->assign('buttons', $html); // assign fields and layout $smarty->assign('available_fields', $parser->getAvailableFields()); $smarty->assign('layout', $parser->getLayout()); $smarty->assign('view_module', $this->editModule); $smarty->assign('view', $this->editLayout); $smarty->assign('maxColumns', $parser->getMaxColumns()); $smarty->assign('nextPanelId', $parser->getFirstNewPanelId()); $smarty->assign('fieldwidth', 150); $smarty->assign('translate', true); if ($this->fromModuleBuilder) { $smarty->assign('fromModuleBuilder', $this->fromModuleBuilder); $smarty->assign('view_package', $this->package); } $labels = array(MB_EDITVIEW => 'LBL_EDITVIEW', MB_DETAILVIEW => 'LBL_DETAILVIEW', MB_QUICKCREATE => 'LBL_QUICKCREATE'); $layoutLabel = 'LBL_LAYOUTS'; $layoutView = 'layouts'; $ajax = new AjaxCompose(); $viewType; $translatedViewType = ''; if (isset($labels[strtolower($this->editLayout)])) { $translatedViewType = translate($labels[strtolower($this->editLayout)], 'ModuleBuilder'); } if ($this->fromModuleBuilder) { $ajax->addCrumb(translate('LBL_MODULEBUILDER', 'ModuleBuilder'), 'ModuleBuilder.main("mb")'); $ajax->addCrumb($this->package, 'ModuleBuilder.getContent("module=ModuleBuilder&action=package&package=' . $this->package . '")'); $ajax->addCrumb($this->editModule, 'ModuleBuilder.getContent("module=ModuleBuilder&action=module&view_package=' . $this->package . '&view_module=' . $this->editModule . '")'); $ajax->addCrumb(translate($layoutLabel, 'ModuleBuilder'), 'ModuleBuilder.getContent("module=ModuleBuilder&MB=true&action=wizard&view=' . $layoutView . '&view_module=' . $this->editModule . '&view_package=' . $this->package . '")'); $ajax->addCrumb($translatedViewType, ''); } else { $ajax->addCrumb(translate('LBL_STUDIO', 'ModuleBuilder'), 'ModuleBuilder.main("studio")'); $ajax->addCrumb($this->translatedEditModule, 'ModuleBuilder.getContent("module=ModuleBuilder&action=wizard&view_module=' . $this->editModule . '")'); $ajax->addCrumb(translate($layoutLabel, 'ModuleBuilder'), 'ModuleBuilder.getContent("module=ModuleBuilder&action=wizard&view=' . $layoutView . '&view_module=' . $this->editModule . '")'); $ajax->addCrumb($translatedViewType, ''); } // set up language files $smarty->assign('language', $parser->getLanguage()); // for sugar_translate in the smarty template $smarty->assign('from_mb', $this->fromModuleBuilder); $ajax->addSection('center', $translatedViewType, $smarty->fetch('modules/ModuleBuilder/tpls/layoutView.tpl')); if ($preview) { echo $smarty->fetch('modules/ModuleBuilder/tpls/Preview/layoutView.tpl'); } else { echo $ajax->getJavascript(); } }
function display() { global $locale; $editModule = $_REQUEST['view_module']; $allLabels = !empty($_REQUEST['labels']) && $_REQUEST['labels'] == 'all'; if (!isset($_REQUEST['MB'])) { global $app_list_strings; $moduleNames = array_change_key_case($app_list_strings['moduleList']); $translatedEditModule = $moduleNames[strtolower($editModule)]; } $selected_lang = null; if (!empty($_REQUEST['selected_lang'])) { $selected_lang = $_REQUEST['selected_lang']; } else { $selected_lang = $locale->getAuthenticatedUserLanguage(); } $smarty = new Sugar_Smarty(); global $mod_strings; $smarty->assign('mod_strings', $mod_strings); $smarty->assign('available_languages', get_languages()); $objectName = BeanFactory::getObjectName($editModule); VardefManager::loadVardef($editModule, $objectName); global $dictionary; $vnames = array(); //jchi 24557 . We should list all the lables in viewdefs(list,detail,edit,quickcreate) that the user can edit them. $parser = ParserFactory::getParser(MB_LISTVIEW, $editModule); foreach ($parser->getLayout() as $key => $def) { if (isset($def['label'])) { $vnames[$def['label']] = $def['label']; } } require_once 'modules/ModuleBuilder/parsers/views/GridLayoutMetaDataParser.php'; $variableMap = $this->getVariableMap($editModule); foreach ($variableMap as $key => $value) { $gridLayoutMetaDataParserTemp = ParserFactory::getParser($key, $editModule); foreach ($gridLayoutMetaDataParserTemp->getLayout() as $panel) { foreach ($panel as $row) { foreach ($row as $fieldArray) { // fieldArray is an array('name'=>name,'label'=>label) if (isset($fieldArray['label'])) { $vnames[$fieldArray['label']] = $fieldArray['label']; } } } } } //end //Get Subpanel Labels: require_once 'include/SubPanel/SubPanel.php'; $subList = SubPanel::getModuleSubpanels($editModule); foreach ($subList as $subpanel => $titleLabel) { $vnames[$titleLabel] = $titleLabel; } foreach ($dictionary[$objectName]['fields'] as $name => $def) { if (isset($def['vname'])) { $vnames[$def['vname']] = $def['vname']; } } $formatted_mod_strings = array(); // we shouldn't set the $refresh=true here, or will lost template language // mod_strings. // return_module_language($selected_lang, $editModule,false) : // the mod_strings will be included from cache files here. foreach (return_module_language($selected_lang, $editModule, false) as $name => $label) { //#25294 if ($allLabels || isset($vnames[$name]) || preg_match('/lbl_city|lbl_country|lbl_billing_address|lbl_alt_address|lbl_shipping_address|lbl_postal_code|lbl_state$/si', $name)) { // Bug 58174 - Escaped labels are sent to the client escaped // even in the label editor in studio $formatted_mod_strings[$name] = html_entity_decode($label, null, 'UTF-8'); } } //Grab everything from the custom files $mod_bak = $mod_strings; $files = array("custom/modules/{$editModule}/language/{$selected_lang}.lang.php", "custom/modules/{$editModule}/Ext/Language/{$selected_lang}.lang.ext.php"); foreach ($files as $langfile) { $mod_strings = array(); if (is_file($langfile)) { include $langfile; foreach ($mod_strings as $key => $label) { // Bug 58174 - Escaped labels are sent to the client escaped // even in the label editor in studio $formatted_mod_strings[$key] = html_entity_decode($label, null, 'UTF-8'); } } } $mod_strings = $mod_bak; ksort($formatted_mod_strings); $smarty->assign('MOD', $formatted_mod_strings); $smarty->assign('view_module', $editModule); $smarty->assign('APP', $GLOBALS['app_strings']); $smarty->assign('selected_lang', $selected_lang); $smarty->assign('defaultHelp', 'labelsBtn'); $smarty->assign('assistant', array('key' => 'labels', 'group' => 'module')); $smarty->assign('labels_choice', $mod_strings['labelTypes']); $smarty->assign('labels_current', $allLabels ? "all" : ""); $ajax = new AjaxCompose(); $ajax->addCrumb($mod_strings['LBL_STUDIO'], 'ModuleBuilder.getContent("module=ModuleBuilder&action=wizard")'); $ajax->addCrumb($translatedEditModule, 'ModuleBuilder.getContent("module=ModuleBuilder&action=wizard&view_module=' . $editModule . '")'); $ajax->addCrumb($mod_strings['LBL_LABELS'], ''); $html = $smarty->fetch('modules/ModuleBuilder/tpls/labels.tpl'); $ajax->addSection('center', $GLOBALS['mod_strings']['LBL_SECTION_EDLABELS'], $html); echo $ajax->getJavascript(); }
function display() { $this->fromModuleBuilder = isset($_REQUEST['MB']) || !empty($_REQUEST['view_package']) && $_REQUEST['view_package'] != 'studio'; if ($this->fromModuleBuilder) { return; //no support for MB } global $current_user; global $mod_strings; $smarty = new Sugar_Smarty(); $smarty->assign('title', $mod_strings['LBL_DEVELOPER_TOOLS']); $smarty->assign('question', $mod_strings['LBL_QUESTION_ADD_LAYOUT']); $smarty->assign('mod_strings', $mod_strings); $module_name = $_REQUEST['view_module']; // set up language files //$smarty->assign ( 'language', $parser->getLanguage() ) ; // for sugar_translate in the smarty template //$smarty->assign('from_mb',$this->fromModuleBuilder); $mb = new ModuleBuilder(); if (!isset($_REQUEST['view_package'])) { $_REQUEST['view_package'] = 'studio'; } $module =& $mb->getPackageModule($_REQUEST['view_package'], $_REQUEST['view_module']); $package = $mb->packages[$_REQUEST['view_package']]; $package->loadModuleTitles(); $ajax = new AjaxCompose(); $ajax->addCrumb(translate('LBL_STUDIO', 'ModuleBuilder'), 'ModuleBuilder.main("studio")'); $ajax->addCrumb(translate($module_name), 'ModuleBuilder.getContent("module=ModuleBuilder&action=wizard&view_module=' . $module_name . '")'); $ajax->addCrumb(translate('LBL_LAYOUTS', 'ModuleBuilder'), 'ModuleBuilder.getContent("module=ModuleBuilder&action=addlayout&layouts=1&view_module=' . $module_name . '")'); $ajax->addCrumb($mod_strings['LBL_ADD_LAYOUT'], ''); //$ajax->addSection ( 'center', $moduleName . ' ' . translate('LBL_ADD_LAYOUT'), $html = $smarty->fetch('modules/ModuleBuilder/tpls/addlayoutdone.tpl'); $html .= "<script>ModuleBuilder.treeRefresh('Studio')</script>"; $ajax->addSection('center', $mod_strings['LBL_ADD_LAYOUT'], $html); echo $ajax->getJavascript(); }