Пример #1
0
 /**
  * Outputs the HTML for a single instance of the editor.
  *
  * @param string $content The initial content of the editor.
  * @param string $editor_id ID for the textarea and TinyMCE and Quicktags instances (can contain only ASCII letters and numbers).
  * @param array $settings See the _parse_settings() method for description.
  */
 public static function editor($content, $editor_id, $settings = array())
 {
     $set = self::parse_settings($editor_id, $settings);
     $editor_class = ' class="' . trim($set['editor_class'] . ' wp-editor-area') . '"';
     $tabindex = $set['tabindex'] ? ' tabindex="' . (int) $set['tabindex'] . '"' : '';
     $switch_class = 'html-active';
     $toolbar = $buttons = $autocomplete = '';
     $return = '';
     if ($set['drag_drop_upload']) {
         self::$drag_drop_upload = true;
     }
     if (!empty($set['editor_height'])) {
         $height = ' style="height: ' . $set['editor_height'] . 'px"';
     } else {
         $height = ' rows="' . $set['textarea_rows'] . '"';
     }
     if (!current_user_can('upload_files')) {
         $set['media_buttons'] = false;
     }
     if (!self::$this_quicktags && self::$this_tinymce) {
         $switch_class = 'tmce-active';
         $autocomplete = ' autocomplete="off"';
     } elseif (self::$this_quicktags && self::$this_tinymce) {
         $default_editor = $set['default_editor'] ? $set['default_editor'] : wp_default_editor();
         $autocomplete = ' autocomplete="off"';
         // 'html' is used for the "Text" editor tab.
         if ('html' === $default_editor) {
             add_filter('the_editor_content', 'wp_htmledit_pre');
             $switch_class = 'html-active';
         } else {
             add_filter('the_editor_content', 'wp_richedit_pre');
             $switch_class = 'tmce-active';
         }
         $buttons .= '<a id="' . $editor_id . '-html" class="wp-switch-editor switch-html" onclick="switchEditors.switchto(this);">' . _x('Text', 'Name for the Text editor tab (formerly HTML)') . "</a>\n";
         $buttons .= '<a id="' . $editor_id . '-tmce" class="wp-switch-editor switch-tmce" onclick="switchEditors.switchto(this);">' . __('Visual') . "</a>\n";
     }
     $wrap_class = 'wp-core-ui wp-editor-wrap ' . $switch_class;
     if ($set['dfw']) {
         $wrap_class .= ' has-dfw';
     }
     $return .= '<div id="wp-' . $editor_id . '-wrap" class="' . $wrap_class . '">';
     if (self::$editor_buttons_css) {
         wp_print_styles('editor-buttons');
         self::$editor_buttons_css = false;
     }
     if (!empty($set['editor_css'])) {
         $return .= $set['editor_css'] . "\n";
     }
     if (!empty($buttons) || $set['media_buttons']) {
         $return .= '<div id="wp-' . $editor_id . '-editor-tools" class="wp-editor-tools hide-if-no-js">';
         if ($set['media_buttons']) {
             self::$has_medialib = true;
             if (!function_exists('media_buttons')) {
                 include ABSPATH . 'wp-admin/includes/media.php';
             }
             $return .= '<div id="wp-' . $editor_id . '-media-buttons" class="wp-media-buttons">';
             /**
              * Fires after the default media button(s) are displayed.
              *
              * @since 2.5.0
              *
              * @param string $editor_id Unique editor identifier, e.g. 'content'.
              */
             //do_action( 'media_buttons', $editor_id );
             $return .= "</div>\n";
         }
         $return .= '<div class="wp-editor-tabs">' . $buttons . "</div>\n";
         $return .= "</div>\n";
     }
     /**
      * Filter the HTML markup output that displays the editor.
      *
      * @since 2.1.0
      *
      * @param string $output Editor's HTML markup.
      */
     $the_editor = apply_filters('the_editor', '<div id="wp-' . $editor_id . '-editor-container" class="wp-editor-container">' . '<textarea' . $editor_class . $height . $tabindex . $autocomplete . ' cols="40" name="' . $set['textarea_name'] . '" ' . 'id="' . $editor_id . '">%s</textarea></div>');
     /**
      * Filter the default editor content.
      *
      * @since 2.1.0
      *
      * @param string $content Default editor content.
      */
     $content = apply_filters('the_editor_content', $content);
     $return .= sprintf($the_editor, $content);
     $return .= "\n</div>\n\n";
     self::editor_settings($editor_id, $set);
 }