function handleSave($populate = true) { if ($populate) { $this->_populateFromRequest(); if (isset($_REQUEST['subpanel_title']) && isset($_REQUEST['subpanel_title_key'])) { $authenticatedUserLanguage = !empty($_SESSION['authenticated_user_language']) ? $_SESSION['authenticated_user_language'] : false; $selected_lang = !empty($_REQUEST['selected_lang']) ? $_REQUEST['selected_lang'] : $authenticatedUserLanguage; if (empty($selected_lang)) { $selected_lang = $GLOBALS['sugar_config']['default_language']; } require_once 'modules/ModuleBuilder/parsers/parser.label.php'; $labelParser = new ParserLabel($_REQUEST['view_module'], isset($_REQUEST['view_package']) ? $_REQUEST['view_package'] : null); $labelParser->addLabels($selected_lang, array($_REQUEST['subpanel_title_key'] => remove_xss(from_html($_REQUEST['subpanel_title']))), $_REQUEST['view_module']); } } // Bug 46291 - Missing widget_class for edit_button and remove_button foreach ($this->_viewdefs as $key => $def) { if (isset($this->_fielddefs[$key]['widget_class'])) { $this->_viewdefs[$key]['widget_class'] = $this->_fielddefs[$key]['widget_class']; } } $defs = $this->restoreInvisibleFields($this->_invisibleFields, $this->_viewdefs); // unlike our parent, do not force the field names back to upper case $defs = $this->makeRelateFieldsAsLink($defs); $this->implementation->deploy($defs); }
public function testLabelSaving() { $lang = 'en_us'; $test_module = 'Opportunities'; $test_label = 'LBL_ACCOUNT_NAME'; $mod_strings = return_module_language($lang, $test_module); $old_label = $mod_strings[$test_label]; $new_label = 'test ' . $old_label; // save the new label to the language file ParserLabel::addLabels($lang, array($test_label => $new_label), $test_module); // read the language file to get the new value include "custom/modules/{$test_module}/language/en_us.lang.php"; $this->assertEquals($new_label, $mod_strings[$test_label], 'Label not changed.'); }
/** * For a particular module, rename any relevant module strings that need to be replaced. * * @param string $moduleName The name of the module to be renamed. * @param $replacementLabels * @return void */ private function changeModuleModStrings($moduleName, $replacementLabels) { $GLOBALS['log']->info("Begining to change module labels for: {$moduleName}"); $currentModuleStrings = return_module_language($this->selectedLanguage, $moduleName); $labelKeysToReplace = array(array('name' => 'LNK_NEW_RECORD', 'type' => 'plural'), array('name' => 'LNK_LIST', 'type' => 'plural'), array('name' => 'LNK_NEW_###MODULE_SINGULAR###', 'type' => 'singular'), array('name' => 'LNK_###MODULE_SINGULAR###_LIST', 'type' => 'plural'), array('name' => 'LNK_###MODULE_SINGULAR###_REPORTS', 'type' => 'singular'), array('name' => 'LNK_IMPORT_VCARD', 'type' => 'singular'), array('name' => 'LNK_IMPORT_###MODULE_PLURAL###', 'type' => 'plural'), array('name' => 'MSG_SHOW_DUPLICATES', 'type' => 'singular', 'case' => 'both'), array('name' => 'LBL_SAVE_###MODULE_SINGULAR###', 'type' => 'singular'), array('name' => 'LBL_LIST_FORM_TITLE', 'type' => 'singular'), array('name' => 'LBL_SEARCH_FORM_TITLE', 'type' => 'singular')); $replacedLabels = array(); foreach ($labelKeysToReplace as $entry) { $formattedLanguageKey = $this->formatModuleLanguageKey($entry['name'], $replacementLabels); //If the static of dynamic key exists it should be replaced. if (isset($currentModuleStrings[$formattedLanguageKey])) { $oldStringValue = $currentModuleStrings[$formattedLanguageKey]; $replacedLabels[$formattedLanguageKey] = $this->replaceSingleLabel($oldStringValue, $replacementLabels, $entry); if (isset($entry['case']) && $entry['case'] == 'both') { $replacedLabels[$formattedLanguageKey] = $this->replaceSingleLabel($replacedLabels[$formattedLanguageKey], $replacementLabels, $entry, 'strtolower'); } } } //Save all entries ParserLabel::addLabels($this->selectedLanguage, $replacedLabels, $moduleName); $this->renamedModules[$moduleName] = true; }
function handleSave($populate = true) { if ($populate) { $this->_populateFromRequest(); if (isset($_REQUEST['subpanel_title']) && isset($_REQUEST['subpanel_title_key'])) { $selected_lang = !empty($_REQUEST['selected_lang']) ? $_REQUEST['selected_lang'] : $_SESSION['authenticated_user_language']; if (empty($selected_lang)) { $selected_lang = $GLOBALS['sugar_config']['default_language']; } require_once 'modules/ModuleBuilder/parsers/parser.label.php'; $labelParser = new ParserLabel($_REQUEST['view_module'], isset($_REQUEST['view_package']) ? $_REQUEST['view_package'] : null); $labelParser->addLabels($selected_lang, array($_REQUEST['subpanel_title_key'] => $_REQUEST['subpanel_title']), $_REQUEST['view_module']); } } $this->implementation->deploy($this->restoreInvisibleFields($this->_invisibleFields, $this->_viewdefs)); // unlike our parent, do not force the field names back to upper case }
public function tearDown() { ParserLabel::addLabels($this->_lang, array($this->_test_label => $this->_old_label), $this->_test_module); }