'; echo getClassicModuleTitle( "Administration", array( "" . translate('LBL_MODULE_NAME', 'Administration') . "", $mod_strings['LBL_AOP_ADMIN_MANAGE_AOP'], ), false ); $cfg = new Configurator(); $sugar_smarty = new Sugar_Smarty(); $errors = array(); if (!array_key_exists('aop', $cfg->config)) { $cfg->config['aop'] = array( 'enable_aop' => 1, 'enable_portal' => '', 'joomla_url' => '', 'joomla_access_key' => '', 'distribution_method' => '', 'distribution_options' => '', 'distribution_user_id' => '', 'user_email_template_id' => '', 'contact_email_template_id' => '', 'case_creation_email_template_id' => '', 'case_closure_email_template_id' => '', 'joomla_account_creation_email_template_id' => '', 'support_from_address' => '', 'support_from_name' => '', 'case_status_changes' => json_encode(array()), ); } if (!array_key_exists('enable_aop', $cfg->config['aop'])) { $cfg->config['aop']['enable_aop'] = 1; } if (isset($_REQUEST['do']) && $_REQUEST['do'] == 'save') { $joomlaUrl = strtolower(trim($_REQUEST['joomla_url'])); if (!empty($joomlaUrl)) { $cfg->config['aop']['joomla_url'] = preg_match("@^https?://@", $joomlaUrl) ? $joomlaUrl : 'http://' . $joomlaUrl; } else { $cfg->config['aop']['joomla_url'] = ''; } $cfg->config['aop']['enable_aop'] = !empty($_REQUEST['enable_aop']); $cfg->config['aop']['enable_portal'] = !empty($_REQUEST['enable_portal']); $cfg->config['aop']['joomla_access_key'] = $_REQUEST['joomla_access_key']; $cfg->config['aop']['distribution_method'] = $_REQUEST['distribution_method']; $cfg->config['aop']['distribution_user_id'] = $_REQUEST['distribution_user_id']; $cfg->config['aop']['distribution_options'] = $_REQUEST['distribution_options']; $cfg->config['aop']['user_email_template_id'] = $_REQUEST['user_email_template_id']; $cfg->config['aop']['contact_email_template_id'] = $_REQUEST['contact_email_template_id']; $cfg->config['aop']['case_creation_email_template_id'] = $_REQUEST['case_creation_email_template_id']; $cfg->config['aop']['case_closure_email_template_id'] = $_REQUEST['case_closure_email_template_id']; $cfg->config['aop']['joomla_account_creation_email_template_id'] = $_REQUEST['joomla_account_creation_email_template_id']; $cfg->config['aop']['support_from_address'] = $_REQUEST['support_from_address']; $cfg->config['aop']['support_from_name'] = $_REQUEST['support_from_name']; if(isset($_REQUEST['inbound_email_case_macro'])){ $cfg->config['inbound_email_case_subject_macro'] = $_REQUEST['inbound_email_case_macro']; } /* * We save the case_status_changes array as json since the way config changes are persisted to config.php * means that removing entries is tricky. json simplifies this. */ $cfg->config['aop']['case_status_changes'] = json_encode(array_combine($_POST['if_status'], $_POST['then_status'])); $cfg->saveConfig(); header('Location: index.php?module=Administration&action=index'); exit(); } $distribStrings = $app_list_strings['dom_email_distribution_for_auto_create']; unset($distribStrings['AOPDefault']); $distributionMethod = get_select_options_with_id($distribStrings, $cfg->config['aop']['distribution_method']); $distributionOptions = getAOPAssignField('distribution_options', $cfg->config['aop']['distribution_options']); if (!empty($cfg->config['aop']['distribution_user_id'])) { $distributionUserName = BeanFactory::getBean("Users", $cfg->config['aop']['distribution_user_id'])->name; } else { $distributionUserName = ''; } $sugar_smarty->assign('distribution_user_name', $distributionUserName); $emailTemplateList = get_bean_select_array(true, 'EmailTemplate', 'name', '', 'name'); $userEmailTemplateDropdown = get_select_options_with_id($emailTemplateList, $cfg->config['aop']['user_email_template_id']); $contactEmailTemplateDropdown = get_select_options_with_id($emailTemplateList, $cfg->config['aop']['contact_email_template_id']); $creationEmailTemplateDropdown = get_select_options_with_id($emailTemplateList, $cfg->config['aop']['case_creation_email_template_id']); $closureEmailTemplateDropdown = get_select_options_with_id($emailTemplateList, $cfg->config['aop']['case_closure_email_template_id']); $joomlaEmailTemplateDropdown = get_select_options_with_id($emailTemplateList, $cfg->config['aop']['joomla_account_creation_email_template_id']); $inboundEmailCaseMacro = $cfg->config['inbound_email_case_subject_macro'] ?? ''; $sugar_smarty->assign('inbound_email_case_macro', $inboundEmailCaseMacro); $sugar_smarty->assign('USER_EMAIL_TEMPLATES', $userEmailTemplateDropdown); $sugar_smarty->assign('CONTACT_EMAIL_TEMPLATES', $contactEmailTemplateDropdown); $sugar_smarty->assign('CREATION_EMAIL_TEMPLATES', $creationEmailTemplateDropdown); $sugar_smarty->assign('CLOSURE_EMAIL_TEMPLATES', $closureEmailTemplateDropdown); $sugar_smarty->assign('JOOMLA_EMAIL_TEMPLATES', $joomlaEmailTemplateDropdown); $sugar_smarty->assign('DISTRIBUTION_METHOD', $distributionMethod); $sugar_smarty->assign('DISTRIBUTION_OPTIONS', $distributionOptions); $sugar_smarty->assign('MOD', $mod_strings); $sugar_smarty->assign('APP', $app_strings); $sugar_smarty->assign('APP_LIST', $app_list_strings); $sugar_smarty->assign('LANGUAGES', get_languages()); $sugar_smarty->assign("JAVASCRIPT", get_set_focus_js()); $sugar_smarty->assign('config', $cfg->config['aop']); $sugar_smarty->assign('error', $errors); $cBean = BeanFactory::getBean('Cases'); $statusDropdown = get_select_options($app_list_strings[$cBean->field_name_map['status']['options']], ''); $currentStatuses = ''; if ($cfg->config['aop']['case_status_changes']) { foreach (json_decode($cfg->config['aop']['case_status_changes'], true) as $if => $then) { $ifDropdown = get_select_options($app_list_strings[$cBean->field_name_map['status']['options']], $if); $thenDropdown = get_select_options($app_list_strings[$cBean->field_name_map['status']['options']], $then); $currentStatuses .= getStatusRowTemplate($mod_strings, $ifDropdown, $thenDropdown) . "\n"; } } $sugar_smarty->assign('currentStatuses', $currentStatuses); $buttons = <<   EOQ; $sugar_smarty->assign("BUTTONS", $buttons); $sugar_smarty->display('modules/Administration/AOPAdmin.tpl'); $javascript = new javascript(); $javascript->setFormName('ConfigureSettings'); echo $javascript->getScript(); echo ''; ?> {$mod_strings['LBL_AOP_IF_STATUS']}: {$mod_strings['LBL_AOP_THEN_STATUS']}: EOF; return $html; }