/** * Renders the QuickCreate form from Smarty and returns HTML * @param array $vars request variable global * @param object $email Fetched email object * @param bool $addToAddressBook * @return array */ function getQuickCreateForm($vars, $email, $addToAddressBookButton = false) { require_once "include/EditView/EditView2.php"; global $app_strings; global $mod_strings; global $current_user; global $beanList; global $beanFiles; global $current_language; //Setup the current module languge $mod_strings = return_module_language($current_language, $_REQUEST['qc_module']); $bean = $beanList[$_REQUEST['qc_module']]; $class = $beanFiles[$bean]; require_once $class; $focus = new $bean(); $people = array('Contact', 'Lead'); $emailAddress = array(); // people if (in_array($bean, $people)) { // lead specific $focus->lead_source = 'Email'; $focus->lead_source_description = trim($email->name); $from = isset($email->from_name) && !empty($email->from_name) ? $email->from_name : $email->from_addr; if (isset($_REQUEST['sugarEmail']) && !empty($_REQUEST['sugarEmail'])) { if ($email->status == "sent") { $from = isset($email->to_addrs_names) && !empty($email->to_addrs_names) ? $email->to_addrs_names : $email->to_addrs; } else { $from = isset($email->from_name) && !empty($email->from_name) ? $email->from_name : $email->from_addr_name; } } $name = explode(" ", trim($from)); $address = trim(array_pop($name)); $address = str_replace(array("<", ">", "<", ">"), "", $address); $emailAddress[] = array('email_address' => $address, 'primary_address' => 1, 'invalid_email' => 0, 'opt_out' => 0, 'reply_to_address' => 1); $focus->email1 = $address; if (!empty($name)) { $focus->last_name = trim(array_pop($name)); foreach ($name as $first) { if (!empty($focus->first_name)) { $focus->first_name .= " "; } $focus->first_name .= trim($first); } } } else { // bugs, cases, tasks $focus->name = trim($email->name); } $focus->description = trim(strip_tags($email->description)); $focus->assigned_user_id = $current_user->id; $EditView = new EditView(); $EditView->ss = new Sugar_Smarty(); //MFH BUG#20283 - checks for custom quickcreate fields $EditView->setup($_REQUEST['qc_module'], $focus, 'custom/modules/' . $focus->module_dir . '/metadata/editviewdefs.php', 'include/EditView/EditView.tpl'); $EditView->process(); $EditView->render(); $EditView->defs['templateMeta']['form']['buttons'] = array('email2save' => array('id' => 'e2AjaxSave', 'customCode' => '<input type="button" class="button" value=" ' . $app_strings['LBL_SAVE_BUTTON_LABEL'] . ' " onclick="SUGAR.email2.detailView.saveQuickCreate(false);" />'), 'email2saveandreply' => array('id' => 'e2SaveAndReply', 'customCode' => '<input type="button" class="button" value=" ' . $app_strings['LBL_EMAIL_SAVE_AND_REPLY'] . ' " onclick="SUGAR.email2.detailView.saveQuickCreate(\'reply\');" />'), 'email2cancel' => array('id' => 'e2cancel', 'customCode' => '<input type="button" class="button" value=" ' . $app_strings['LBL_EMAIL_CANCEL'] . ' " onclick="SUGAR.email2.detailView.quickCreateDialog.hide();" />')); if ($addToAddressBookButton) { $EditView->defs['templateMeta']['form']['buttons']['email2saveAddToAddressBook'] = array('id' => 'e2addToAddressBook', 'customCode' => '<input type="button" class="button" value=" ' . $app_strings['LBL_EMAIL_ADDRESS_BOOK_SAVE_AND_ADD'] . ' " onclick="SUGAR.email2.detailView.saveQuickCreate(true);" />'); } //Get the module language for javascript if (!is_file(sugar_cached('jsLanguage/') . $_REQUEST['qc_module'] . '/' . $GLOBALS['current_language'] . '.js')) { require_once 'include/language/jsLanguage.php'; jsLanguage::createModuleStringsCache($_REQUEST['qc_module'], $GLOBALS['current_language']); } $jsLanguage = getVersionedScript("cache/jsLanguage/{$_REQUEST['qc_module']}/{$GLOBALS['current_language']}.js", $GLOBALS['sugar_config']['js_lang_version']); $EditView->view = 'EmailQCView'; $EditView->defs['templateMeta']['form']['headerTpl'] = 'include/EditView/header.tpl'; $EditView->defs['templateMeta']['form']['footerTpl'] = 'include/EditView/footer.tpl'; $meta = array(); $meta['html'] = $jsLanguage . $EditView->display(false, true); $meta['html'] = str_replace("src='" . getVersionedPath('include/SugarEmailAddress/SugarEmailAddress.js') . "'", '', $meta['html']); $meta['emailAddress'] = $emailAddress; $mod_strings = return_module_language($current_language, 'Emails'); return $meta; }
/** * Renders the QuickCreate form from Smarty and returns HTML * @param array $vars request variable global * @param object $email Fetched email object * @param bool $addToAddressBook * @return array */ function getQuickCreateForm($vars, $email, $addToAddressBookButton = false) { require_once "include/EditView/EditView2.php"; global $app_strings; global $mod_strings; global $current_user; global $current_language; $module = $_REQUEST['qc_module']; $beanName = BeanFactory::getBeanName($module); //Setup the current module languge $mod_strings = return_module_language($current_language, $module); $focus = BeanFactory::getBean($module); $people = array('Contact', 'Lead'); $emailAddress = array(); // people if (in_array($beanName, $people)) { // lead specific $focus->lead_source = 'Email'; $focus->lead_source_description = trim($email->name); $from = isset($email->from_name) && !empty($email->from_name) ? $email->from_name : $email->from_addr; if (isset($_REQUEST['sugarEmail']) && !empty($_REQUEST['sugarEmail'])) { if ($email->status == "sent") { $from = isset($email->to_addrs_names) && !empty($email->to_addrs_names) ? $email->to_addrs_names : $email->to_addrs; } else { $from = isset($email->from_name) && !empty($email->from_name) ? $email->from_name : $email->from_addr_name; } } $name = explode(" ", trim($from)); $address = trim(array_pop($name)); $address = str_replace(array("<", ">", "<", ">"), "", $address); $emailAddress[] = array('email_address' => $address, 'primary_address' => 1, 'invalid_email' => 0, 'opt_out' => 0, 'reply_to_address' => 1); $focus->email1 = $address; if (!empty($name)) { $focus->last_name = trim(array_pop($name)); foreach ($name as $first) { if (!empty($focus->first_name)) { $focus->first_name .= " "; } $focus->first_name .= trim($first); } } } else { // case & bug specific $focus->source = 'InboundEmail'; // bugs, cases, tasks $focus->name = trim($email->name); } $focus->description = trim(strip_tags($email->description)); $focus->assigned_user_id = $current_user->id; $focus->team_id = $current_user->default_team; $EditView = new EditView(); $EditView->ss = new Sugar_Smarty(); //MFH BUG#20283 - checks for custom quickcreate fields $EditView->setup($module, $focus, SugarAutoLoader::loadWithMetafiles($module, 'editviewdefs')); $EditView->process(); $EditView->render(); $EditView->defs['templateMeta']['form']['buttons'] = array('email2save' => array('id' => 'e2AjaxSave', 'customCode' => '<input type="button" class="button" value=" ' . $app_strings['LBL_SAVE_BUTTON_LABEL'] . ' " onclick="SUGAR.email2.detailView.saveQuickCreate(false);" />'), 'email2saveandreply' => array('id' => 'e2SaveAndReply', 'customCode' => '<input type="button" class="button" value=" ' . $app_strings['LBL_EMAIL_SAVE_AND_REPLY'] . ' " onclick="SUGAR.email2.detailView.saveQuickCreate(\'reply\');" />'), 'email2cancel' => array('id' => 'e2cancel', 'customCode' => '<input type="button" class="button" value=" ' . $app_strings['LBL_EMAIL_CANCEL'] . ' " onclick="SUGAR.email2.detailView.quickCreateDialog.hide();" />')); if ($addToAddressBookButton) { $EditView->defs['templateMeta']['form']['buttons']['email2saveAddToAddressBook'] = array('id' => 'e2addToAddressBook', 'customCode' => '<input type="button" class="button" value=" ' . $app_strings['LBL_EMAIL_ADDRESS_BOOK_SAVE_AND_ADD'] . ' " onclick="SUGAR.email2.detailView.saveQuickCreate(true);" />'); } //Get the module language for javascript if (!is_file(sugar_cached('jsLanguage/') . "{$module}/{$GLOBALS['current_language']}.js")) { require_once 'include/language/jsLanguage.php'; jsLanguage::createModuleStringsCache($module, $GLOBALS['current_language']); } $jsLanguage = getVersionedScript("cache/jsLanguage/{$module}/{$GLOBALS['current_language']}.js", $GLOBALS['sugar_config']['js_lang_version']); if ($focus->object_name == 'Contact') { $admin = Administration::getSettings(); if (empty($admin->settings['portal_on']) || !$admin->settings['portal_on']) { unset($EditView->sectionPanels[strtoupper('lbl_portal_information')]); } else { $jsLanguage .= getVersionedScript("modules/Contacts/Contact.js"); $jsLanguage .= getVersionedScript("modules/Contacts/QuickCreateEmailContact.js"); $jsLanguage .= <<<EOQ \t\t\t <script language="javascript"> \t\t\t\t addToValidateComparison('form_EmailQCView_Contacts', 'portal_password', 'varchar', false, SUGAR.language.get('app_strings', 'ERR_SQS_NO_MATCH_FIELD') + SUGAR.language.get('Contacts', 'LBL_PORTAL_PASSWORD'), 'portal_password1'); \t\t addToValidateVerified('form_EmailQCView_Contacts', 'portal_name_verified', 'bool', false, SUGAR.language.get('app_strings', 'ERR_EXISTING_PORTAL_USERNAME')); \t\t YAHOO.util.Event.on('portal_name', 'blur', validatePortalName); \t\t\t\t YAHOO.util.Event.on('portal_name', 'keydown', handleKeyDown); \t\t\t </script> EOQ; } } $EditView->view = 'EmailQCView'; $EditView->defs['templateMeta']['form']['headerTpl'] = 'include/EditView/header.tpl'; $EditView->defs['templateMeta']['form']['footerTpl'] = 'include/EditView/footer.tpl'; $meta = array(); $meta['html'] = $jsLanguage . $EditView->display(false, true); $meta['html'] = str_replace("src='" . getVersionedPath('include/SugarEmailAddress/SugarEmailAddress.js') . "'", '', $meta['html']); $meta['emailAddress'] = $emailAddress; $mod_strings = return_module_language($current_language, 'Emails'); return $meta; }