getConfig($config); $pref = e107::getConfig(); /* if(strstr(varset($_SERVER["HTTP_ACCEPT_ENCODING"],""), "gzip") && (ini_get("zlib.output_compression") == false) && file_exists(e_PLUGIN."tinymce/tiny_mce_gzip.php")) { //unset($tinymce_plugins[7]); // 'zoom' causes an error with the gzip version. $text = " "; } else {*/ $text = "\n"; //} $text .= "\n "; $this->js = $text; } function tinymce_lang() { $lang = e_LANGUAGE; $tinylang = array( "Arabic" => "ar", "Danish" => "da", "Dutch" => "nl", "English" => "en", "Farsi" => "fa", "French" => "fr", "German" => "de", "Greek" => "el", "Hebrew" => " ", "Hungarian" => "hu", "Italian" => "it", "Japanese" => "ja", "Korean" => "ko", "Norwegian" => "nb", "Polish" => "pl", "Russian" => "ru", "Slovak" => "sk", "Spanish" => "es", "Swedish" => "sv" ); if(!$tinylang[$lang]) { $tinylang[$lang] = "en"; } return $tinylang[$lang]; } function tinyMce_config() { $text = " function start_tinyMce() { //config as $key=>$val) { if($val != 'true' && $val !='false') { $val = "'".$val."'"; } $newConfig[] = "\t\t ".$key." : ".$val; } // foreach($this->config as $key=>$val) // { // if($val != 'true' && $val !='false') // { // $val = "'".$val."'"; // } // $text .= "\t\t ".$key." : '".$val."',\n"; // } $text .= implode(",\n",$newConfig); /* if($tinyMcePrefs['customjs']) { $text .= "\n, // Start Custom TinyMce JS ----- ".$pref['tinymce']['customjs']." // End Custom TinyMce JS --- "; } */ $text .= " }); } "; return $text; } function getConfig($config=FALSE) { $sql = e107::getDb(); if($config) { $query = "SELECT * FROM #tinymce WHERE tinymce_id = ".$config." LIMIT 1"; } else { $query = "SELECT * FROM #tinymce WHERE tinymce_userclass REGEXP '".e_CLASS_REGEXP."' AND NOT (tinymce_userclass REGEXP '(^|,)(".str_replace(",", "|", e_UC_NOBODY).")(,|$)') ORDER BY Field(tinymce_userclass,250,254,253) LIMIT 1"; } $sql -> db_Select_gen($query); $config = $sql->db_Fetch(); //TODO Cache! $plug_array = explode(",",$config['tinymce_plugins']); $this->configName = $config['tinymce_name']; $this->config = array( 'language' => $this->tinymce_lang(), 'mode' => 'textareas', 'editor_selector' => 'e-wysiwyg', 'editor_deselector' => 'e-wysiwyg-off', 'theme' => 'advanced', 'plugins' => $this->filter_plugins($config['tinymce_plugins']) ); $this->config += array( 'theme_advanced_buttons1' => $config['tinymce_buttons1'], 'theme_advanced_buttons2' => $config['tinymce_buttons2'], 'theme_advanced_buttons3' => $config['tinymce_buttons3'], 'theme_advanced_buttons4' => $config['tinymce_buttons4'], 'theme_advanced_toolbar_location' => 'top', 'theme_advanced_toolbar_align' => 'left', 'theme_advanced_blockformats' => 'p,h2,blockquote,code', 'dialog_type' => "modal", // 'theme_advanced_statusbar_location' => 'bottom', 'theme_advanced_resizing' => 'true', 'extended_valid_elements' => '', 'invalid_elements' => 'p,font,align,script,applet,iframe', 'auto_cleanup_word' => 'true', 'convert_fonts_to_spans' => 'true', 'trim_span_elements' => 'true', 'inline_styles' => 'true', 'auto_resize' => 'true', 'debug' => 'false', 'force_br_newlines' => 'false', 'forced_root_block' => '', 'force_p_newlines' => 'false', 'entity_encoding' => 'raw', 'convert_fonts_to_styles' => 'true', 'remove_script_host' => 'true', 'relative_urls' => 'true', 'document_base_url' => SITEURL, 'theme_advanced_styles' => 'border=border;fborder=fborder;tbox=tbox;caption=caption;fcaption=fcaption;forumheader=forumheader;forumheader3=forumheader3', 'verify_css_classes' => 'false' ); // if(!in_array('e107bbcode',$plug_array)) { $this->config['cleanup_callback'] = 'tinymce_e107Paths'; } $paste_plugin = (strpos($config['tinymce_plugins'],'paste')!==FALSE) ? TRUE : FALSE; if($paste_plugin) { $this->config += array( 'remove_linebreaks' => 'false', // remove line break stripping by tinyMCE so that we can read the HTML 'paste_create_paragraphs' => 'false', // for paste plugin - double linefeeds are converted to paragraph elements 'paste_create_linebreaks' => 'false', // for paste plugin - single linefeeds are converted to hard line break elements 'paste_use_dialog' => 'true', // for paste plugin - Mozilla and MSIE will present a paste dialog if true 'paste_auto_cleanup_on_paste' => 'true', // for paste plugin - word paste will be executed when the user copy/paste content 'paste_convert_middot_lists' => 'false', // for paste plugin - middot lists are converted into UL lists 'paste_unindented_list_class' => 'unindentedList', // for paste plugin - specify what class to assign to the UL list of middot cl's 'paste_convert_headers_to_strong' => 'true', // for paste plugin - converts H1-6 elements to strong elements on paste 'paste_insert_word_content_callback' => 'convertWord', // for paste plugin - This callback is executed when the user pastes word content 'auto_cleanup_word' => 'false' // auto clean pastes from Word ); } if(ADMIN) { $this->config['external_link_list_url'] = e_PLUGIN_ABS."tiny_mce/filelist.php"; } } function filter_plugins($plugs) { $smile_pref = e107::getConfig()->getPref('smiley_activate'); $admin_only = array("ibrowser","code"); $plug_array = explode(",",$plugs); foreach($plug_array as $val) { if(in_array($val,$admin_only) && !ADMIN) { continue; } if(!$smile_pref && ($val=="emoticons")) { continue; } $tinymce_plugins[] = $val; } return implode(",",$tinymce_plugins); } function render() { echo $this->js; } } ?>