- if ( $teeny ) {
- $mce_buttons = apply_filters( 'teeny_mce_buttons', array('bold, italic, underline, blockquote, separator, strikethrough, bullist, numlist,justifyleft, justifycenter, justifyright, undo, redo, link, unlink, fullscreen') );
- $mce_buttons = implode($mce_buttons, ',');
- $mce_buttons_2 = $mce_buttons_3 = $mce_buttons_4 = '';
- } else {
- $mce_buttons = apply_filters('mce_buttons', array('bold', 'italic', 'strikethrough', '|', 'bullist', 'numlist', 'blockquote', '|', 'justifyleft', 'justifycenter', 'justifyright', '|', 'link', 'unlink', 'wp_more', '|', 'spellchecker', 'fullscreen', 'wp_adv' ));
- $mce_buttons = implode($mce_buttons, ',');
-
- $mce_buttons_2 = array( 'formatselect', 'underline', 'justifyfull', 'forecolor', '|', 'pastetext', 'pasteword', 'removeformat', '|', 'charmap', '|', 'outdent', 'indent', '|', 'undo', 'redo', 'wp_help' );
- $mce_buttons_2 = apply_filters('mce_buttons_2', $mce_buttons_2);
- $mce_buttons_2 = implode($mce_buttons_2, ',');
-
- $mce_buttons_3 = apply_filters('mce_buttons_3', array());
- $mce_buttons_3 = implode($mce_buttons_3, ',');
-
- $mce_buttons_4 = apply_filters('mce_buttons_4', array());
- $mce_buttons_4 = implode($mce_buttons_4, ',');
- }
- $no_captions = (bool) apply_filters( 'disable_captions', '' );
-
- // TinyMCE init settings
- $initArray = array (
- 'mode' => 'specific_textareas',
- 'editor_selector' => 'theEditor',
- 'width' => '100%',
- 'theme' => 'advanced',
- 'skin' => 'wp_theme',
- 'theme_advanced_buttons1' => $mce_buttons,
- 'theme_advanced_buttons2' => $mce_buttons_2,
- 'theme_advanced_buttons3' => $mce_buttons_3,
- 'theme_advanced_buttons4' => $mce_buttons_4,
- 'language' => $mce_locale,
- 'spellchecker_languages' => $mce_spellchecker_languages,
- 'theme_advanced_toolbar_location' => 'top',
- 'theme_advanced_toolbar_align' => 'left',
- 'theme_advanced_statusbar_location' => 'bottom',
- 'theme_advanced_resizing' => true,
- 'theme_advanced_resize_horizontal' => false,
- 'dialog_type' => 'modal',
- 'formats' => "{
- alignleft : [
- {selector : 'p,h1,h2,h3,h4,h5,h6,td,th,div,ul,ol,li', styles : {textAlign : 'left'}},
- {selector : 'img,table', classes : 'alignleft'}
- ],
- aligncenter : [
- {selector : 'p,h1,h2,h3,h4,h5,h6,td,th,div,ul,ol,li', styles : {textAlign : 'center'}},
- {selector : 'img,table', classes : 'aligncenter'}
- ],
- alignright : [
- {selector : 'p,h1,h2,h3,h4,h5,h6,td,th,div,ul,ol,li', styles : {textAlign : 'right'}},
- {selector : 'img,table', classes : 'alignright'}
- ],
- strikethrough : {inline : 'del'}
- }",
- 'relative_urls' => false,
- 'remove_script_host' => false,
- 'convert_urls' => false,
- 'apply_source_formatting' => false,
- 'remove_linebreaks' => true,
- 'gecko_spellcheck' => true,
- 'entities' => '38,amp,60,lt,62,gt',
- 'accessibility_focus' => true,
- 'tabfocus_elements' => 'major-publishing-actions',
- 'media_strict' => false,
- 'paste_remove_styles' => true,
- 'paste_remove_spans' => true,
- 'paste_strip_class_attributes' => 'all',
- 'paste_text_use_dialog' => true,
- 'wpeditimage_disable_captions' => $no_captions,
- 'plugins' => implode( ',', $plugins ),
- );
-
- if ( ! empty( $editor_styles ) && is_array( $editor_styles ) ) {
- $mce_css = array();
- $style_uri = get_stylesheet_directory_uri();
- if ( ! is_child_theme() ) {
- foreach ( $editor_styles as $file )
- $mce_css[] = "$style_uri/$file";
- } else {
- $style_dir = get_stylesheet_directory();
- $template_uri = get_template_directory_uri();
- $template_dir = get_template_directory();
- foreach ( $editor_styles as $file ) {
- if ( file_exists( "$template_dir/$file" ) )
- $mce_css[] = "$template_uri/$file";
- if ( file_exists( "$style_dir/$file" ) )
- $mce_css[] = "$style_uri/$file";
- }
- }
- $mce_css = implode( ',', $mce_css );
- } else {
- $mce_css = '';
- }
-
- $mce_css = trim( apply_filters( 'mce_css', $mce_css ), ' ,' );
-
- if ( ! empty($mce_css) )
- $initArray['content_css'] = $mce_css;
-
- if ( is_array($settings) )
- $initArray = array_merge($initArray, $settings);
-
- // For people who really REALLY know what they're doing with TinyMCE
- // You can modify initArray to add, remove, change elements of the config before tinyMCE.init
- // Setting "valid_elements", "invalid_elements" and "extended_valid_elements" can be done through "tiny_mce_before_init".
- // Best is to use the default cleanup by not specifying valid_elements, as TinyMCE contains full set of XHTML 1.0.
- if ( $teeny ) {
- $initArray = apply_filters('teeny_mce_before_init', $initArray);
- } else {
- $initArray = apply_filters('tiny_mce_before_init', $initArray);
- }
-
- if ( empty($initArray['theme_advanced_buttons3']) && !empty($initArray['theme_advanced_buttons4']) ) {
- $initArray['theme_advanced_buttons3'] = $initArray['theme_advanced_buttons4'];
- $initArray['theme_advanced_buttons4'] = '';
- }
-
- if ( ! isset($concatenate_scripts) )
- script_concat_settings();
-
- $language = $initArray['language'];
-
- $compressed = $compress_scripts && $concatenate_scripts && isset($_SERVER['HTTP_ACCEPT_ENCODING'])
- && false !== strpos( strtolower($_SERVER['HTTP_ACCEPT_ENCODING']), 'gzip');
-
- /**
- * Deprecated
- *
- * The tiny_mce_version filter is not needed since external plugins are loaded directly by TinyMCE.
- * These plugins can be refreshed by appending query string to the URL passed to mce_external_plugins filter.
- * If the plugin has a popup dialog, a query string can be added to the button action that opens it (in the plugin's code).
- */
- $version = apply_filters('tiny_mce_version', '');
- $version = 'ver=' . $tinymce_version . $version;
-
- if ( 'en' != $language )
- include_once(ABSPATH . WPINC . '/js/tinymce/langs/wp-langs.php');
-
- $mce_options = '';
- foreach ( $initArray as $k => $v ) {
- if ( is_bool($v) ) {
- $val = $v ? 'true' : 'false';
- $mce_options .= $k . ':' . $val . ', ';
- continue;
- } elseif ( !empty($v) && is_string($v) && ( '{' == $v{0} || '[' == $v{0} ) ) {
- $mce_options .= $k . ':' . $v . ', ';
- continue;
- }
-
- $mce_options .= $k . ':"' . $v . '", ';
- }
-
- $mce_options = rtrim( trim($mce_options), '\n\r,' ); ?>
-
-<script type="text/javascript">
-/* <![CDATA[ */
-tinyMCEPreInit = {
- base : "<?php echo $baseurl; ?>",
- suffix : "",
- query : "<?php echo $version; ?>",
- mceInit : {<?php echo $mce_options; ?>},
- load_ext : function(url,lang){var sl=tinymce.ScriptLoader;sl.markDone(url+'/langs/'+lang+'.js');sl.markDone(url+'/langs/'+lang+'_dlg.js');}
-};
-/* ]]> */
-</script>
-
-<?php
- if ( $compressed )
- echo "<script type='text/javascript' src='$baseurl/wp-tinymce.php?c=1&$version'></script>\n";
- else
- echo "<script type='text/javascript' src='$baseurl/tiny_mce.js?$version'></script>\n";
-
- if ( 'en' != $language && isset($lang) )
- echo "<script type='text/javascript'>\n$lang\n</script>\n";
- else
- echo "<script type='text/javascript' src='$baseurl/langs/wp-langs-en.js?$version'></script>\n";
-?>
-
-<script type="text/javascript">
-/* <![CDATA[ */
-<?php
- if ( $ext_plugins )
- echo "$ext_plugins\n";
-
- if ( ! $compressed ) {
-?>
-(function(){var t=tinyMCEPreInit,sl=tinymce.ScriptLoader,ln=t.mceInit.language,th=t.mceInit.theme,pl=t.mceInit.plugins;sl.markDone(t.base+'/langs/'+ln+'.js');sl.markDone(t.base+'/themes/'+th+'/langs/'+ln+'.js');sl.markDone(t.base+'/themes/'+th+'/langs/'+ln+'_dlg.js');tinymce.each(pl.split(','),function(n){if(n&&n.charAt(0)!='-'){sl.markDone(t.base+'/plugins/'+n+'/langs/'+ln+'.js');sl.markDone(t.base+'/plugins/'+n+'/langs/'+ln+'_dlg.js');}});})();
-<?php } ?>
-tinyMCE.init(tinyMCEPreInit.mceInit);
-/* ]]> */
-</script>
-<?php
-
- // Load additional inline scripts based on active plugins.
- if ( in_array( 'wpdialogs', $plugins ) ) {
- wp_print_scripts( array( 'wpdialogs-popup' ) );
- wp_print_styles('wp-jquery-ui-dialog');
- }
- if ( in_array( 'wplink', $plugins ) ) {
- require_once ABSPATH . 'wp-admin/includes/internal-linking.php';
- add_action('tiny_mce_preload_dialogs', 'wp_link_dialog');
- wp_print_scripts('wplink');
- wp_print_styles('wplink');
- }