function displayTMCE() { require_once "include/SugarTinyMCE.php"; global $locale; $tiny = new SugarTinyMCE(); $tinyMCE = $tiny->getConfig(); $js = <<<JS \t\t<script language="javascript" type="text/javascript"> \t\t{$tinyMCE} \t\tvar df = '{$locale->getPrecedentPreference('default_date_format')}'; \t\ttinyMCE.init({ \t\ttheme : "advanced", \t\ttheme_advanced_toolbar_align : "left", \t\tmode: "exact", \t\t\telements : "description", \t\t\ttheme_advanced_toolbar_location : "top", \t\t\ttheme_advanced_buttons1: "code,help,separator,bold,italic,underline,strikethrough,separator,justifyleft,justifycenter,justifyright,justifyfull,separator,forecolor,backcolor,separator,styleprops,styleselect,formatselect,fontselect,fontsizeselect", \t\t\ttheme_advanced_buttons2: "cut,copy,paste,pastetext,pasteword,selectall,separator,search,replace,separator,bullist,numlist,separator,outdent,indent,separator,ltr,rtl,separator,undo,redo,separator, link,unlink,anchor,separator,sub,sup,separator,charmap,visualaid", \t\t\ttheme_advanced_buttons3: "tablecontrols,separator,advhr,hr,removeformat,separator,insertdate,pagebreak", \t\t\ttheme_advanced_fonts:"Andale Mono=andale mono,times;Arial=arial,helvetica,sans-serif;Arial Black=arial black,avant garde;Book Antiqua=book antiqua,palatino;Comic Sans MS=comic sans ms,sans-serif;Courier New=courier new,courier;Georgia=georgia,palatino;Helvetica=helvetica;Helvetica Neu=helveticaneue,sans-serif;Impact=impact,chicago;Symbol=symbol;Tahoma=tahoma,arial,helvetica,sans-serif;Terminal=terminal,monaco;Times New Roman=times new roman,times;Trebuchet MS=trebuchet ms,geneva;Verdana=verdana,geneva;Webdings=webdings;Wingdings=wingdings,zapf dingbats", \t\t\tplugins : "advhr,insertdatetime,table,paste,searchreplace,directionality,style,pagebreak", \t\t\theight:"auto", \t\t\twidth: "auto", \t\t\tinline_styles : true, \t\t\tdirectionality : "ltr", \t\t\tremove_redundant_brs : true, \t\t\tentity_encoding: 'raw', \t\t\tcleanup_on_startup : true, \t\t\tstrict_loading_mode : true, \t\t\tconvert_urls : false, \t\t\tplugin_insertdate_dateFormat : '{DATE '+df+'}', \t\t\tpagebreak_separator : "<pagebreak />", \t\t\textended_valid_elements : "textblock", \t\t\tcustom_elements: "textblock", \t\t}); \t\t</script> JS; echo $js; }
/** * Generate the config data needed for the Full Compose UI and the Quick Compose UI. The set of config data * returned is the minimum set needed by the quick compose UI. * * @param String $type Drives which tinyMCE options will be included. */ function _generateComposeConfigData($type = "email_compose_light") { global $app_list_strings, $current_user, $app_strings, $mod_strings, $current_language, $locale; //Link drop-downs $parent_types = $app_list_strings['record_type_display']; $disabled_parent_types = ACLController::disabledModuleList($parent_types, false, 'list'); foreach ($disabled_parent_types as $disabled_parent_type) { unset($parent_types[$disabled_parent_type]); } asort($parent_types); $linkBeans = json_encode(get_select_options_with_id($parent_types, '')); //TinyMCE Config require_once "include/SugarTinyMCE.php"; $tiny = new SugarTinyMCE(); $tinyConf = $tiny->getConfig($type); //Generate Language Packs $lang = "var app_strings = new Object();\n"; foreach ($app_strings as $k => $v) { if (strpos($k, 'LBL_EMAIL_') !== false) { $lang .= "app_strings.{$k} = '{$v}';\n"; } } //Get the email mod strings but don't use the global variable as this may be overridden by //other modules when the quick create is rendered. $email_mod_strings = return_module_language($current_language, 'Emails'); $modStrings = "var mod_strings = new Object();\n"; foreach ($email_mod_strings as $k => $v) { $v = str_replace("'", "\\'", $v); $modStrings .= "mod_strings.{$k} = '{$v}';\n"; } $lang .= "\n\n{$modStrings}\n"; //Grab the Inboundemail language pack $ieModStrings = "var ie_mod_strings = new Object();\n"; $ie_mod_strings = return_module_language($current_language, 'InboundEmail'); foreach ($ie_mod_strings as $k => $v) { $v = str_replace("'", "\\'", $v); $ieModStrings .= "ie_mod_strings.{$k} = '{$v}';\n"; } $lang .= "\n\n{$ieModStrings}\n"; $this->smarty->assign('linkBeans', $linkBeans); $this->smarty->assign('linkBeansOptions', $parent_types); $this->smarty->assign('tinyMCE', $tinyConf); $this->smarty->assign('lang', $lang); $this->smarty->assign('app_strings', $app_strings); $this->smarty->assign('mod_strings', $email_mod_strings); $ie1 = new InboundEmail(); //Signatures $defsigID = $current_user->getPreference('signature_default'); $defaultSignature = $current_user->getDefaultSignature(); $sigJson = !empty($defaultSignature) ? json_encode(array($defaultSignature['id'] => from_html($defaultSignature['signature_html']))) : "new Object()"; $this->smarty->assign('defaultSignature', $sigJson); $this->smarty->assign('signatureDefaultId', isset($defaultSignature['id']) ? $defaultSignature['id'] : ""); //User Preferences $this->smarty->assign('userPrefs', json_encode($this->getUserPrefsJS())); //Get the users default outbound id $defaultOutID = $ie1->getUsersDefaultOutboundServerId($current_user); $this->smarty->assign('defaultOutID', $defaultOutID); //Character Set $charsets = json_encode($locale->getCharsetSelect()); $this->smarty->assign('emailCharsets', $charsets); //Relateable List of People for address book search //#20776 jchi $peopleTables = array("users", "contacts", "leads", "prospects", "accounts"); $filterPeopleTables = array(); global $app_list_strings, $app_strings; $filterPeopleTables['LBL_DROPDOWN_LIST_ALL'] = $app_strings['LBL_DROPDOWN_LIST_ALL']; foreach ($peopleTables as $table) { $module = ucfirst($table); $class = substr($module, 0, strlen($module) - 1); require_once "modules/{$module}/{$class}.php"; $person = new $class(); if (!$person->ACLAccess('list')) { continue; } $filterPeopleTables[$person->table_name] = $app_list_strings['moduleList'][$person->module_dir]; } $this->smarty->assign('listOfPersons', get_select_options_with_id($filterPeopleTables, '')); }
/** * Renders the frame for emails */ function displayEmailFrame() { require_once "include/OutboundEmail/OutboundEmail.php"; global $app_strings, $app_list_strings; global $mod_strings; global $sugar_config; global $current_user; global $locale; global $timedate; global $theme; global $sugar_version; global $sugar_flavor; global $current_language; global $server_unique_key; $this->preflightUserCache(); $json = getJSONobj(); $ie = new InboundEmail(); $out = '<script type="text/javascript" language="Javascript" src="modules/Emails/javascript/vars.js"></script>'; // focus listView $list = array('mbox' => 'Home', 'ieId' => '', 'name' => 'Home', 'unreadChecked' => 0, 'out' => array()); // lang pack $lang = "var app_strings = new Object();\n"; foreach ($app_strings as $k => $v) { if (strpos($k, 'LBL_EMAIL_') !== false) { $lang .= "app_strings.{$k} = '{$v}';\n"; } } $modStrings = "var mod_strings = new Object();\n"; foreach ($mod_strings as $k => $v) { $v = str_replace("'", "\\'", $v); $modStrings .= "mod_strings.{$k} = '{$v}';\n"; } $lang .= "\n\n{$modStrings}\n"; // link drop-down $parent_types = $app_list_strings['record_type_display']; $disabled_parent_types = ACLController::disabledModuleList($parent_types, false, 'list'); foreach ($disabled_parent_types as $disabled_parent_type) { unset($parent_types[$disabled_parent_type]); } $linkBeans = $json->encode(get_select_options_with_id($parent_types, '')); //TinyMCE Config require_once "include/SugarTinyMCE.php"; $tiny = new SugarTinyMCE(); $tinyConf = $tiny->getConfig(); //Check quick create module access $QCAvailibleModules = array(); $QCModules = array('Bugs', 'Cases', 'Contacts', 'Leads', 'Tasks'); foreach ($QCModules as $module) { $class = substr($module, 0, strlen($module) - 1); require_once "modules/{$module}/{$class}.php"; if ($class == "Case") { $class = "aCase"; } $seed = new $class(); if ($seed->ACLAccess('edit')) { $QCAvailibleModules[] = $module; } } /////////////////////////////////////////////////////////////////////// //// BASIC ASSIGNS $charsets = $json->encode($locale->getCharsetSelect()); $this->smarty->assign('yuiPath', 'modules/Emails/javascript/yui-ext/'); $this->smarty->assign('app_strings', $app_strings); $this->smarty->assign('mod_strings', $mod_strings); $this->smarty->assign('theme', $theme); $this->smarty->assign('lang', $lang); $this->smarty->assign('linkBeans', $linkBeans); $this->smarty->assign('sugar_config', $sugar_config); $this->smarty->assign('emailCharsets', $charsets); $this->smarty->assign('is_admin', $current_user->is_admin); $this->smarty->assign('sugar_version', $sugar_version); $this->smarty->assign('sugar_flavor', $sugar_flavor); $this->smarty->assign('current_language', $current_language); $this->smarty->assign('server_unique_key', $server_unique_key); $this->smarty->assign('tinyMCE', $tinyConf); $this->smarty->assign('qcModules', $json->encode($QCAvailibleModules)); $extAllDebugValue = "ext-all.js"; $this->smarty->assign('extFileName', $extAllDebugValue); //#20776 jchi $peopleTables = array("users", "contacts", "leads", "prospects"); $filterPeopleTables = array(); global $app_list_strings, $app_strings; $filterPeopleTables['LBL_DROPDOWN_LIST_ALL'] = $app_strings['LBL_DROPDOWN_LIST_ALL']; foreach ($peopleTables as $table) { $module = ucfirst($table); $class = substr($module, 0, strlen($module) - 1); require_once "modules/{$module}/{$class}.php"; $person = new $class(); if (!$person->ACLAccess('list')) { continue; } $filterPeopleTables[$person->table_name] = $app_list_strings['moduleList'][$person->module_dir]; } $this->smarty->assign('listOfPersons', get_select_options_with_id($filterPeopleTables, '')); // settings: general $e2UserPreferences = $this->getUserPrefsJS(); $emailSettings = $e2UserPreferences['emailSettings']; /////////////////////////////////////////////////////////////////////// //// USER SETTINGS // settings: accounts $cuDatePref = $current_user->getUserDateTimePreferences(); $this->smarty->assign('dateFormat', $cuDatePref['date']); $this->smarty->assign('dateFormatExample', str_replace(array("Y", "m", "d"), array("yyyy", "mm", "dd"), $cuDatePref['date'])); $this->smarty->assign('calFormat', $timedate->get_cal_date_format()); $viewRawEmail = 'false'; if (isset($sugar_config['email_inbound_save_raw']) && $sugar_config['email_inbound_save_raw'] == true) { $viewRawEmail = 'true'; } $this->smarty->assign('viewRawSource', $viewRawEmail); $ieAccounts = $ie->retrieveByGroupId($current_user->id); $ieAccountsOptions = "<option value=''>{$app_strings['LBL_NONE']}</option>\n"; foreach ($ieAccounts as $k => $v) { $disabled = !$v->is_personal ? "DISABLED" : ""; $group = !$v->is_personal ? $app_strings['LBL_EMAIL_GROUP'] . "." : ""; $ieAccountsOptions .= "<option value='{$v->id}' {$disabled}>{$group}{$v->name}</option>\n"; } $this->smarty->assign('ieAccounts', $ieAccountsOptions); $this->smarty->assign('rollover', $this->rolloverStyle); $this->smarty->assign('PROTOCOL', get_select_options_with_id($app_list_strings['dom_email_server_type'], '')); $this->smarty->assign('MAIL_SSL_OPTIONS', get_select_options_with_id($app_list_strings['email_settings_for_ssl'], '')); $this->smarty->assign('ie_mod_strings', return_module_language($current_language, 'InboundEmail')); // outbound opts $oe = new OutboundEmail(); $outbounds = $oe->getUserMailers($current_user); $smtpOptions = "SUGAR.mailers = "; $smtpOptions .= $json->encode($outbounds, false); $charset = array('options' => $locale->getCharsetSelect(), 'selected' => $emailSettings['defaultOutboundCharset']); $this->smarty->assign('charset', $charset); $emailCheckInterval = array('options' => $app_strings['LBL_EMAIL_CHECK_INTERVAL_DOM'], 'selected' => $emailSettings['emailCheckInterval']); $this->smarty->assign('emailCheckInterval', $emailCheckInterval); $emailSettings['layoutStyle'] == '2rows' ? $this->smarty->assign('rowsChecked', 'CHECKED') : $this->smarty->assign('colsChecked', 'CHECKED'); //$this->smarty->assign('autoImportChecked', ($emailSettings['autoImport'] == 1) ? 'CHECKED' : ""); $this->smarty->assign('alwaysSaveOutboundChecked', $emailSettings['alwaysSaveOutbound'] ? 'CHECKED' : ""); $this->smarty->assign('sendPlainTextChecked', $emailSettings['sendPlainText'] == 1 ? 'CHECKED' : ''); $this->smarty->assign('tabPositionChecked', $emailSettings['tabPosition'] == 'bottom' ? 'CHECKED' : ''); $this->smarty->assign('showNumInList', get_select_options_with_id($app_strings['LBL_EMAIL_SETTING_NUM_DOM'], $emailSettings['showNumInList'])); $this->smarty->assign('fullScreenChecked', $emailSettings['fullScreen'] == 1 ? "CHECKED" : ""); $this->smarty->assign('userPrefs', $json->encode($this->getUserPrefsJS())); //// END USER SETTINGS /////////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////////// //// SIGNATURES $prependSignature = $current_user->getPreference('signature_prepend') ? 'true' : 'false'; $defsigID = $current_user->getPreference('signature_default'); $defaultSignature = $current_user->getDefaultSignature(); $sigJson = !empty($defaultSignature) ? $json->encode(array($defaultSignature['id'] => from_html($defaultSignature['signature_html']))) : "new Object()"; $this->smarty->assign('defaultSignature', $sigJson); $this->smarty->assign('signatures', $current_user->getSignatures(false, $defsigID)); $this->smarty->assign('signaturesSettings', $current_user->getSignatures(false, $defsigID, false)); $signatureButtons = $current_user->getSignatureButtons('SUGAR.email2.settings.createSignature', !empty($defsigID)); if (!empty($defsigID)) { $signatureButtons = $signatureButtons . '<span name="delete_sig" id="delete_sig" style="visibility:inherit;"><input class="button" onclick="javascript:SUGAR.email2.settings.deleteSignature();" value="' . $app_strings['LBL_EMAIL_DELETE'] . '" type="button" tabindex="392"> </span>'; } else { $signatureButtons = $signatureButtons . '<span name="delete_sig" id="delete_sig" style="visibility:hidden;"><input class="button" onclick="javascript:SUGAR.email2.settings.deleteSignature();" value="' . $app_strings['LBL_EMAIL_DELETE'] . '" type="button" tabindex="392"> </span>'; } $this->smarty->assign('signatureButtons', $signatureButtons); $this->smarty->assign('signaturePrepend', $prependSignature == 'true' ? 'CHECKED' : ''); $this->smarty->assign('signatureDefaultId', isset($defaultSignature['id']) ? $defaultSignature['id'] : ""); //// END SIGNATURES /////////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////////// //// EMAIL TEMPLATES $email_templates_arr = $this->getEmailTemplatesArray(); $this->smarty->assign('EMAIL_TEMPLATE_OPTIONS', get_select_options_with_id($email_templates_arr, '')); //// END EMAIL TEMPLATES /////////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////////// //// FOLDERS & TreeView $this->smarty->assign('groupUserOptions', $ie->getGroupsWithSelectOptions(array('' => $app_strings['LBL_EMAIL_CREATE_NEW']))); $tree = $this->getMailboxNodes(); // preloaded folder $preloadFolder = 'lazyLoadFolder = '; $focusFolderSerial = $current_user->getPreference('focusFolder', 'Emails'); if (!empty($focusFolderSerial)) { $focusFolder = unserialize($focusFolderSerial); //$focusFolder['ieId'], $focusFolder['folder'] $preloadFolder .= $json->encode($focusFolder) . ";"; } else { $preloadFolder .= "new Object();"; } //// END FOLDERS /////////////////////////////////////////////////////////////////////// $fullscreen = ''; if ($emailSettings['fullScreen'] == 1) { $fullscreen = 'SUGAR.ui.toggleHeader();'; } $out .= $this->smarty->fetch("modules/Emails/templates/_baseEmail.tpl"); $out .= $tree->generate_header(); $out .= $tree->generateNodesNoInit(true, 'email2treeinit'); $out .= <<<eoq \t\t\t<script type="text/javascript" language="javascript"> \t\t\t\t{$fullscreen} \t\t\t\tvar loader = new YAHOO.util.YUILoader({ \t\t\t\t require : ["layout", "element", "tabview", "menu", "cookie", "sugarwidgets"], \t\t\t\t loadOptional: true, \t\t\t\t filter: 'debug', \t\t\t\t skin: "", \t\t\t\t onSuccess: email2init, \t\t\t\t allowRollup: true, \t\t\t\t base: "include/javascript/yui/build/" \t\t\t\t}); \t\t\t\tloader.addModule({ \t\t\t\t name :"sugarwidgets", \t\t\t\t type : "js", \t\t\t\t fullpath: "include/javascript/sugarwidgets/SugarYUIWidgets.js", \t\t\t\t varName: "YAHOO.SUGAR", \t\t\t\t requires: ["datatable", "dragdrop", "treeview", "tabview"] \t\t\t\t}); \t\t\t\tloader.insert(); \t\t\t\t{$preloadFolder}; \t\t\t\t{$smtpOptions}; \t\t\t</script> eoq; return $out; }
function displayJS() { require_once "include/JSON.php"; require_once "include/SugarTinyMCE.php"; global $locale; $tiny = new SugarTinyMCE(); $tinyMCE = $tiny->getConfig(); $locationHref = 'http://' . $_SERVER['HTTP_HOST'] . substr($_SERVER['PHP_SELF'], 0, strrpos($_SERVER['PHP_SELF'], '/')); $js = <<<JS \t\t<script language="javascript" type="text/javascript"> \t\t{$tinyMCE} \t\tvar location_href = '{$locationHref}'; \t\tvar df = '{$locale->getPrecedentPreference('default_date_format')}'; \t\t \t\ttinyMCE.baseURL = location_href+'/include/javascript/tiny_mce'; \t\ttinyMCE.srcMode = ''; \t\ttinyMCE.init({ \t\t\ttheme : "advanced", \t\t\ttheme_advanced_toolbar_align : "left", \t\t\tmode: "exact", \t\t\telements : "description", \t\t\ttheme_advanced_toolbar_location : "top", \t\t\ttheme_advanced_buttons1: "code,help,separator,bold,italic,underline,strikethrough,separator,justifyleft,justifycenter,justifyright,justifyfull,separator,forecolor,backcolor,separator,styleprops,styleselect,formatselect,fontselect,fontsizeselect", \t\t\ttheme_advanced_buttons2: "cut,copy,paste,pastetext,pasteword,selectall,separator,search,replace,separator,bullist,numlist,separator,outdent,indent,separator,ltr,rtl,separator,undo,redo,separator, link,unlink,anchor,image,separator,sub,sup,separator,charmap,visualaid", \t\t\ttheme_advanced_buttons3: "tablecontrols,separator,advhr,hr,removeformat,separator,insertdate,pagebreak", \t\t\tplugins : "advhr,insertdatetime,table,paste,searchreplace,directionality,style,pagebreak", \t\t\theight:"500", \t\t\twidth: "100%", \t\t\tinline_styles : true, \t\t\tdirectionality : "ltr", \t\t\tremove_redundant_brs : true, \t\t\tentity_encoding: 'raw', \t\t\tcleanup_on_startup : true, \t\t\tstrict_loading_mode : true, \t\t\tconvert_urls : false, \t\t\tplugin_insertdate_dateFormat : '{DATE '+df+'}', \t\t\tpagebreak_separator : "<pagebreak />", \t\t}); \t\t \t\ttinyMCE.init({ \t\t\ttheme : "advanced", \t\t\ttheme_advanced_toolbar_align : "left", \t\t\tmode: "exact", \t\t\telements : "pdfheader,pdffooter", \t\t\ttheme_advanced_toolbar_location : "top", \t\t\ttheme_advanced_buttons1: "code,separator,bold,italic,underline,strikethrough,separator,justifyleft,justifycenter,justifyright,justifyfull,separator,undo,redo,separator,forecolor,backcolor,separator,styleprops,styleselect,formatselect,fontselect,fontsizeselect,separator,insertdate", \t\t\ttheme_advanced_buttons2 : "", \t\t\ttheme_advanced_buttons3 : "", \t\t\tplugins : "advhr,insertdatetime,table,paste,searchreplace,directionality,style", \t\t\twidth: "100%", \t\t\tinline_styles : true, \t\t\tdirectionality : "ltr", \t\t\tentity_encoding: 'raw', \t\t\tcleanup_on_startup : true, \t\t\tstrict_loading_mode : true, \t\t\tconvert_urls : false, \t\t\tremove_redundant_brs : true, \t\t\tplugin_insertdate_dateFormat : '{DATE '+df+'}', \t\t}); \t\t</script> JS; echo $js; }
function displayTMCE() { require_once "include/SugarTinyMCE.php"; global $locale, $current_user; $tiny = new SugarTinyMCE(); $tinyMCE = $tiny->getConfig(); $js = <<<JS <script language="javascript" type="text/javascript"> {$tinyMCE} var df = '{$locale->getPrecedentPreference('default_date_format')}'; tinyMCE.init({ theme : tinyConfig.theme, theme_advanced_toolbar_align : tinyConfig.theme_advanced_toolbar_align, mode: tinyConfig.mode, elements : "description", theme_advanced_toolbar_location : tinyConfig.theme_advanced_toolbar_location, theme_advanced_buttons1: tinyConfig.theme_advanced_buttons1, theme_advanced_buttons2: tinyConfig.theme_advanced_buttons2, theme_advanced_buttons3: tinyConfig.theme_advanced_buttons3, theme_advanced_fonts:"Andale Mono=andale mono,times;Arial=arial,helvetica,sans-serif;Arial Black=arial black,avant garde;Book Antiqua=book antiqua,palatino;Comic Sans MS=comic sans ms,sans-serif;Courier New=courier new,courier;Georgia=georgia,palatino;Helvetica=helvetica;Helvetica Neu=helveticaneue,sans-serif;Impact=impact,chicago;Symbol=symbol;Tahoma=tahoma,arial,helvetica,sans-serif;Terminal=terminal,monaco;Times New Roman=times new roman,times;Trebuchet MS=trebuchet ms,geneva;Verdana=verdana,geneva;Webdings=webdings;Wingdings=wingdings,zapf dingbats", plugins : "advhr,insertdatetime,table,paste,searchreplace,directionality,style,pagebreak,openmanager,inlinepopups", height: tinyConfig.height, width: tinyConfig.width , inline_styles : true, directionality : "ltr", remove_redundant_brs : true, entity_encoding: 'raw', cleanup_on_startup : true, strict_loading_mode : true, convert_urls : false, plugin_insertdate_dateFormat : '{DATE '+df+'}', pagebreak_separator : "<pagebreak />", extended_valid_elements : "textblock", custom_elements: "textblock", file_browser_callback : tinyConfig.file_browser_callback, open_manager_upload_path : tinyConfig.open_manager_upload_path , }); tinyMCE.init({ theme : tinyConfig.theme, theme_advanced_toolbar_align : tinyConfig.theme_advanced_toolbar_align, mode: tinyConfig.mode, elements : "pdfheader,pdffooter", theme_advanced_toolbar_location : tinyConfig.theme_advanced_toolbar_location, theme_advanced_buttons1: tinyConfig.theme_advanced_buttons1, theme_advanced_buttons2 : "", theme_advanced_buttons3 : "", theme_advanced_fonts:"Andale Mono=andale mono,times;Arial=arial,helvetica,sans-serif;Arial Black=arial black,avant garde;Book Antiqua=book antiqua,palatino;Comic Sans MS=comic sans ms,sans-serif;Courier New=courier new,courier;Georgia=georgia,palatino;Helvetica=helvetica;Helvetica Neu=helveticaneue,sans-serif;Impact=impact,chicago;Symbol=symbol;Tahoma=tahoma,arial,helvetica,sans-serif;Terminal=terminal,monaco;Times New Roman=times new roman,times;Trebuchet MS=trebuchet ms,geneva;Verdana=verdana,geneva;Webdings=webdings;Wingdings=wingdings,zapf dingbats", plugins : "advhr,insertdatetime,table,paste,searchreplace,directionality,style", width: tinyConfig.width, inline_styles : true, directionality : "ltr", entity_encoding: 'raw', cleanup_on_startup : true, strict_loading_mode : true, convert_urls : false, remove_redundant_brs : true, plugin_insertdate_dateFormat : '{DATE '+df+'}', extended_valid_elements : "textblock", custom_elements: "textblock", }); </script> JS; echo $js; }
function displayJS() { require_once "include/SugarTinyMCE.php"; require_once "include/JSON.php"; $tiny = new SugarTinyMCE(); $tinyMCE = $tiny->getConfig(); $locationHref = 'http://' . $_SERVER['HTTP_HOST'] . substr($_SERVER['PHP_SELF'], 0, strrpos($_SERVER['PHP_SELF'], '/')); $js = <<<JS <script type="text/javascript"> \t{$tinyMCE} \tvar location_href = '{$locationHref}'; \tif(typeof(tinyMCE) != 'undefined') { \t\ttinyMCE.baseURL = location_href+'/include/javascript/tiny_mce'; \t\ttinyMCE.srcMode = ''; \t\tif(navigator.appName != 'Netscape') { \t\t\ttinyMCE.init({ \t\t\t\ttheme_advanced_toolbar_align : tinyConfig.theme_advanced_toolbar_align, \t\t\t\tclean : false, \t\t\t\tclean_on_startup : false, \t\t\t\twidth: tinyConfig.width, \t\t\t\ttheme: tinyConfig.theme, \t\t\t\ttheme_advanced_toolbar_location : tinyConfig.theme_advanced_toolbar_location, \t\t\t\ttheme_advanced_buttons1: "code,help,separator,bold,italic,underline,strikethrough,separator,justifyleft,justifycenter,justifyright,justifyfull,separator,forecolor,backcolor,separator,styleselect,formatselect,fontselect,fontsizeselect", \t\t\t\ttheme_advanced_buttons2: "cut,copy,paste,pastetext,pasteword,selectall,separator,search,replace,separator,bullist,numlist,separator,outdent,indent,separator,ltr,rtl,separator,undo,redo,separator, link,unlink,anchor,image,separator,sub,sup,separator,charmap,visualaid", \t\t\t\ttheme_advanced_buttons3: "tablecontrols,separator,advhr,hr,removeformat,separator,insertdate,inserttime,separator,preview", \t\t\t\tstrict_loading_mode: true, \t\t\t\tmode: "exact", \t\t\t\tlanguage: "en", \t\t\t\tplugins : tinyConfig.plugins, \t\t\t\telements : tinyConfig.elements, \t\t\t\textended_valid_elements : tinyConfig.extended_valid_elements, \t\t\t\tmode: tinyConfig.mode \t\t\t}); \t\t} else { \t\t\ttinyMCE.init({ \t\t\t\ttheme_advanced_toolbar_align : tinyConfig.theme_advanced_toolbar_align, \t\t\t\twidth: tinyConfig.width, \t\t\t\ttheme: tinyConfig.theme, \t\t\t\ttheme_advanced_toolbar_location : tinyConfig.theme_advanced_toolbar_location, \t\t\t\ttheme_advanced_buttons1: "code,help,separator,bold,italic,underline,strikethrough,separator,justifyleft,justifycenter,justifyright,justifyfull,separator,forecolor,backcolor,separator,styleselect,formatselect,fontselect,fontsizeselect", \t\t\t\ttheme_advanced_buttons2: "cut,copy,paste,pastetext,pasteword,selectall,separator,search,replace,separator,bullist,numlist,separator,outdent,indent,separator,ltr,rtl,separator,undo,redo,separator, link,unlink,anchor,image,separator,sub,sup,separator,charmap,visualaid", \t\t\t\ttheme_advanced_buttons3: "tablecontrols,separator,advhr,hr,removeformat,separator,insertdate,inserttime,separator,preview", \t\t\t\tstrict_loading_mode: true, \t\t\t\tmode: "exact", \t\t\t\tlanguage: "en", \t\t\t\tplugins : tinyConfig.plugins, \t\t\t\telements : tinyConfig.elements, \t\t\t\textended_valid_elements : tinyConfig.extended_valid_elements, \t\t\t\tmode: tinyConfig.mode, \t\t\t\tstrict_loading_mode : true \t\t\t}); \t\t} \t} </script> <script type="text/javascript" language="Javascript" src="include/javascript/tiny_mce/langs/en.js"></script> <script type="text/javascript" language="Javascript" src="include/javascript/tiny_mce/plugins/insertdatetime/editor_plugin.js"></script> <script type="text/javascript" language="Javascript" src="include/javascript/tiny_mce/plugins/preview/editor_plugin.js"></script> <script type="text/javascript" language="Javascript" src="include/javascript/tiny_mce/plugins/searchreplace/editor_plugin.js"></script> <script type="text/javascript" language="Javascript" src="include/javascript/tiny_mce/plugins/advhr/langs/en.js"></script> <script type="text/javascript" language="Javascript" src="include/javascript/tiny_mce/plugins/paste/langs/en.js"></script> <script language="javascript"> \tif(typeof(tinyMCE) != 'undefined') {\t \t\t var t = tinyMCE.getInstanceById('description'); \t\t if(typeof(t) == 'undefined') { var nav = new String(navigator.appVersion); tinyMCE.execCommand('mceAddControl', false, 'description'); var instance = tinyMCE.getInstanceById('description'); var tableEl = document.getElementById(instance.editorId + '_parent').firstChild; var toolbar = document.getElementById(instance.editorId + '_toolbar'); if (tinyMCE.isMSIE) { instance.iframeElement.style.height = "100%"; instance.iframeElement.height = "100%"; } else { instance.iframeElement.style.height = "100%"; } tableEl.style.height = "100%"; } \t} \t//alert(JSON); </script> JS; echo $js; }