<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
"http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head><meta http-equiv="content-type" content="text/html; charset=utf-8" />
<title>[18782] trunk/wp-admin/includes: Move WP_Screen and friends (15 functions) into admin/includes/screen.php.</title>
</head>
<body>

<style type="text/css"><!--
#msg dl.meta { border: 1px #006 solid; background: #369; padding: 6px; color: #fff; }
#msg dl.meta dt { float: left; width: 6em; font-weight: bold; }
#msg dt:after { content:':';}
#msg dl, #msg dt, #msg ul, #msg li, #header, #footer, #logmsg { font-family: verdana,arial,helvetica,sans-serif; font-size: 10pt;  }
#msg dl a { font-weight: bold}
#msg dl a:link    { color:#fc3; }
#msg dl a:active  { color:#ff0; }
#msg dl a:visited { color:#cc6; }
h3 { font-family: verdana,arial,helvetica,sans-serif; font-size: 10pt; font-weight: bold; }
#msg pre { overflow: auto; background: #ffc; border: 1px #fa0 solid; padding: 6px; }
#logmsg { background: #ffc; border: 1px #fa0 solid; padding: 1em 1em 0 1em; }
#logmsg p, #logmsg pre, #logmsg blockquote { margin: 0 0 1em 0; }
#logmsg p, #logmsg li, #logmsg dt, #logmsg dd { line-height: 14pt; }
#logmsg h1, #logmsg h2, #logmsg h3, #logmsg h4, #logmsg h5, #logmsg h6 { margin: .5em 0; }
#logmsg h1:first-child, #logmsg h2:first-child, #logmsg h3:first-child, #logmsg h4:first-child, #logmsg h5:first-child, #logmsg h6:first-child { margin-top: 0; }
#logmsg ul, #logmsg ol { padding: 0; list-style-position: inside; margin: 0 0 0 1em; }
#logmsg > ul, #logmsg > ol { margin-left: 0; margin: 0 0 1em 0; }
#logmsg pre { background: #eee; padding: 1em; }
#logmsg blockquote { border: 1px solid #fa0; border-left-width: 10px; padding: 1em 1em 0 1em; background: white;}
#logmsg dl { margin: 0; }
#logmsg dt { font-weight: bold; }
#logmsg dd { margin: 0; padding: 0 0 0.5em 0; }
#logmsg dd:before { content:'\00bb';}
#logmsg table { border-spacing: 0px; border-collapse: collapse; border-top: 4px solid #fa0; border-bottom: 1px solid #fa0; background: #fff; }
#logmsg table th { text-align: left; font-weight: normal; padding: 0.2em 0.5em; border-top: 1px dotted #fa0; }
#logmsg table td { text-align: right; border-top: 1px dotted #fa0; padding: 0.2em 0.5em; }
#logmsg table thead th { text-align: center; border-bottom: 1px solid #fa0; }
#logmsg table th.Corner { text-align: left; }
#logmsg hr { border: none 0; border-top: 2px dashed #fa0; height: 1px; }
#header, #footer { color: #fff; background: #636; border: 1px #300 solid; padding: 6px; }
#patch { width: 100%; }
#patch h4 {font-family: verdana,arial,helvetica,sans-serif;font-size:10pt;padding:8px;background:#369;color:#fff;margin:0;}
#patch .propset h4, #patch .binary h4 {margin:0;}
#patch pre {padding:0;line-height:1.2em;margin:0;}
#patch .diff {width:100%;background:#eee;padding: 0 0 10px 0;overflow:auto;}
#patch .propset .diff, #patch .binary .diff  {padding:10px 0;}
#patch span {display:block;padding:0 10px;}
#patch .modfile, #patch .addfile, #patch .delfile, #patch .propset, #patch .binary, #patch .copfile {border:1px solid #ccc;margin:10px 0;}
#patch ins {background:#dfd;text-decoration:none;display:block;padding:0 10px;}
#patch del {background:#fdd;text-decoration:none;display:block;padding:0 10px;}
#patch .lines, .info {color:#888;background:#fff;}
--></style>
<div id="msg">
<dl class="meta">
<dt>Revision</dt> <dd><a href="http://core.trac.wordpress.org/changeset/18782">18782</a></dd>
<dt>Author</dt> <dd>nacin</dd>
<dt>Date</dt> <dd>2011-09-26 21:32:10 +0000 (Mon, 26 Sep 2011)</dd>
</dl>

<h3>Log Message</h3>
<pre>Move WP_Screen and friends (15 functions) into admin/includes/screen.php. see <a href="http://core.trac.wordpress.org/ticket/18690">#18690</a>.</pre>

<h3>Modified Paths</h3>
<ul>
<li><a href="#trunkwpadminincludesadminphp">trunk/wp-admin/includes/admin.php</a></li>
<li><a href="#trunkwpadminincludestemplatephp">trunk/wp-admin/includes/template.php</a></li>
</ul>

<h3>Added Paths</h3>
<ul>
<li><a href="#trunkwpadminincludesscreenphp">trunk/wp-admin/includes/screen.php</a></li>
</ul>

</div>
<div id="patch">
<h3>Diff</h3>
<a id="trunkwpadminincludesadminphp"></a>
<div class="modfile"><h4>Modified: trunk/wp-admin/includes/admin.php (18781 => 18782)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/wp-admin/includes/admin.php        2011-09-26 21:15:57 UTC (rev 18781)
+++ trunk/wp-admin/includes/admin.php        2011-09-26 21:32:10 UTC (rev 18782)
</span><span class="lines">@@ -33,6 +33,9 @@
</span><span class="cx"> /** WordPress Post Administration API */
</span><span class="cx"> require_once(ABSPATH . 'wp-admin/includes/post.php');
</span><span class="cx"> 
</span><ins>+/** WordPress Administration Screen API */
+require_once(ABSPATH . 'wp-admin/includes/screen.php');
+
</ins><span class="cx"> /** WordPress Taxonomy Administration API */
</span><span class="cx"> require_once(ABSPATH . 'wp-admin/includes/taxonomy.php');
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkwpadminincludesscreenphpfromrev18781trunkwpadminincludestemplatephp"></a>
<div class="copfile"><h4>Copied: trunk/wp-admin/includes/screen.php (from rev 18781, trunk/wp-admin/includes/template.php) (0 => 18782)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/wp-admin/includes/screen.php                                (rev 0)
+++ trunk/wp-admin/includes/screen.php        2011-09-26 21:32:10 UTC (rev 18782)
</span><span class="lines">@@ -0,0 +1,694 @@
</span><ins>+&lt;?php
+/**
+ * WordPress Administration Screen API.
+ *
+ * @package WordPress
+ * @subpackage Administration
+ */
+
+/**
+ * Get the column headers for a screen
+ *
+ * @since 2.7.0
+ *
+ * @param string|object $screen The screen you want the headers for
+ * @return array Containing the headers in the format id =&gt; UI String
+ */
+function get_column_headers( $screen ) {
+        if ( is_string( $screen ) )
+                $screen = convert_to_screen( $screen );
+
+        global $_wp_column_headers;
+
+        if ( !isset( $_wp_column_headers[ $screen-&gt;id ] ) ) {
+                $_wp_column_headers[ $screen-&gt;id ] = apply_filters( 'manage_' . $screen-&gt;id . '_columns', array() );
+        }
+
+        return $_wp_column_headers[ $screen-&gt;id ];
+}
+
+/**
+ * Get a list of hidden columns.
+ *
+ * @since 2.7.0
+ *
+ * @param string|object $screen The screen you want the hidden columns for
+ * @return array
+ */
+function get_hidden_columns( $screen ) {
+        if ( is_string( $screen ) )
+                $screen = convert_to_screen( $screen );
+
+        return (array) get_user_option( 'manage' . $screen-&gt;id . 'columnshidden' );
+}
+
+/**
+ * {@internal Missing Short Description}}
+ *
+ * @since 2.7.0
+ *
+ * @param unknown_type $screen
+ */
+function meta_box_prefs($screen) {
+        global $wp_meta_boxes;
+
+        if ( is_string($screen) )
+                $screen = convert_to_screen($screen);
+
+        if ( empty($wp_meta_boxes[$screen-&gt;id]) )
+                return;
+
+        $hidden = get_hidden_meta_boxes($screen);
+
+        foreach ( array_keys($wp_meta_boxes[$screen-&gt;id]) as $context ) {
+                foreach ( array_keys($wp_meta_boxes[$screen-&gt;id][$context]) as $priority ) {
+                        foreach ( $wp_meta_boxes[$screen-&gt;id][$context][$priority] as $box ) {
+                                if ( false == $box || ! $box['title'] )
+                                        continue;
+                                // Submit box cannot be hidden
+                                if ( 'submitdiv' == $box['id'] || 'linksubmitdiv' == $box['id'] )
+                                        continue;
+                                $box_id = $box['id'];
+                                echo '&lt;label for=&quot;' . $box_id . '-hide&quot;&gt;';
+                                echo '&lt;input class=&quot;hide-postbox-tog&quot; name=&quot;' . $box_id . '-hide&quot; type=&quot;checkbox&quot; id=&quot;' . $box_id . '-hide&quot; value=&quot;' . $box_id . '&quot;' . (! in_array($box_id, $hidden) ? ' checked=&quot;checked&quot;' : '') . ' /&gt;';
+                                echo &quot;{$box['title']}&lt;/label&gt;\n&quot;;
+                        }
+                }
+        }
+}
+
+/**
+ * Get Hidden Meta Boxes
+ *
+ * @since 2.7.0
+ *
+ * @param string|object $screen Screen identifier
+ * @return array Hidden Meta Boxes
+ */
+function get_hidden_meta_boxes( $screen ) {
+        if ( is_string( $screen ) )
+                $screen = convert_to_screen( $screen );
+
+        $hidden = get_user_option( &quot;metaboxhidden_{$screen-&gt;id}&quot; );
+
+        // Hide slug boxes by default
+        if ( !is_array( $hidden ) ) {
+                if ( 'post' == $screen-&gt;base || 'page' == $screen-&gt;base )
+                        $hidden = array('slugdiv', 'trackbacksdiv', 'postcustom', 'postexcerpt', 'commentstatusdiv', 'commentsdiv', 'authordiv', 'revisionsdiv');
+                else
+                        $hidden = array( 'slugdiv' );
+                $hidden = apply_filters('default_hidden_meta_boxes', $hidden, $screen);
+        }
+
+        return $hidden;
+}
+
+/**
+ * {@internal Missing Short Description}}
+ *
+ * @since 2.7.0
+ */
+function favorite_actions( $screen = null ) {
+        $default_action = false;
+
+        if ( is_string($screen) )
+                $screen = convert_to_screen($screen);
+
+        if ( $screen-&gt;is_user )
+                return;
+
+        if ( isset($screen-&gt;post_type) ) {
+                $post_type_object = get_post_type_object($screen-&gt;post_type);
+                if ( 'add' != $screen-&gt;action )
+                        $default_action = array('post-new.php?post_type=' . $post_type_object-&gt;name =&gt; array($post_type_object-&gt;labels-&gt;new_item, $post_type_object-&gt;cap-&gt;edit_posts));
+                else
+                        $default_action = array('edit.php?post_type=' . $post_type_object-&gt;name =&gt; array($post_type_object-&gt;labels-&gt;name, $post_type_object-&gt;cap-&gt;edit_posts));
+        }
+
+        if ( !$default_action ) {
+                if ( $screen-&gt;is_network ) {
+                        $default_action = array('sites.php' =&gt; array( __('Sites'), 'manage_sites'));
+                } else {
+                        switch ( $screen-&gt;id ) {
+                                case 'upload':
+                                        $default_action = array('media-new.php' =&gt; array(__('New Media'), 'upload_files'));
+                                        break;
+                                case 'media':
+                                        $default_action = array('upload.php' =&gt; array(__('Edit Media'), 'upload_files'));
+                                        break;
+                                case 'link-manager':
+                                case 'link':
+                                        if ( 'add' != $screen-&gt;action )
+                                                $default_action = array('link-add.php' =&gt; array(__('New Link'), 'manage_links'));
+                                        else
+                                                $default_action = array('link-manager.php' =&gt; array(__('Edit Links'), 'manage_links'));
+                                        break;
+                                case 'users':
+                                        $default_action = array('user-new.php' =&gt; array(__('New User'), 'create_users'));
+                                        break;
+                                case 'user':
+                                        $default_action = array('users.php' =&gt; array(__('Edit Users'), 'edit_users'));
+                                        break;
+                                case 'plugins':
+                                        $default_action = array('plugin-install.php' =&gt; array(__('Install Plugins'), 'install_plugins'));
+                                        break;
+                                case 'plugin-install':
+                                        $default_action = array('plugins.php' =&gt; array(__('Manage Plugins'), 'activate_plugins'));
+                                        break;
+                                case 'themes':
+                                        $default_action = array('theme-install.php' =&gt; array(__('Install Themes'), 'install_themes'));
+                                        break;
+                                case 'theme-install':
+                                        $default_action = array('themes.php' =&gt; array(__('Manage Themes'), 'switch_themes'));
+                                        break;
+                                default:
+                                        $default_action = array('post-new.php' =&gt; array(__('New Post'), 'edit_posts'));
+                                        break;
+                        }
+                }
+        }
+
+        if ( !$screen-&gt;is_network ) {
+                $actions = array(
+                        'post-new.php' =&gt; array(__('New Post'), 'edit_posts'),
+                        'edit.php?post_status=draft' =&gt; array(__('Drafts'), 'edit_posts'),
+                        'post-new.php?post_type=page' =&gt; array(__('New Page'), 'edit_pages'),
+                        'media-new.php' =&gt; array(__('Upload'), 'upload_files'),
+                        'edit-comments.php' =&gt; array(__('Comments'), 'moderate_comments')
+                        );
+        } else {
+                $actions = array(
+                        'sites.php' =&gt; array( __('Sites'), 'manage_sites'),
+                        'users.php' =&gt; array( __('Users'), 'manage_network_users')
+                );
+        }
+
+        $default_key = array_keys($default_action);
+        $default_key = $default_key[0];
+        if ( isset($actions[$default_key]) )
+                unset($actions[$default_key]);
+        $actions = array_merge($default_action, $actions);
+        $actions = apply_filters( 'favorite_actions', $actions, $screen );
+
+        $allowed_actions = array();
+        foreach ( $actions as $action =&gt; $data ) {
+                if ( current_user_can($data[1]) )
+                        $allowed_actions[$action] = $data[0];
+        }
+
+        if ( empty($allowed_actions) )
+                return;
+
+        $first = array_keys($allowed_actions);
+        $first = $first[0];
+        echo '&lt;div id=&quot;favorite-actions&quot;&gt;';
+        echo '&lt;div id=&quot;favorite-first&quot;&gt;&lt;a href=&quot;' . $first . '&quot;&gt;' . $allowed_actions[$first] . '&lt;/a&gt;&lt;/div&gt;&lt;div id=&quot;favorite-toggle&quot;&gt;&lt;br /&gt;&lt;/div&gt;';
+        echo '&lt;div id=&quot;favorite-inside&quot;&gt;';
+
+        array_shift($allowed_actions);
+
+        foreach ( $allowed_actions as $action =&gt; $label) {
+                echo &quot;&lt;div class='favorite-action'&gt;&lt;a href='$action'&gt;&quot;;
+                echo $label;
+                echo &quot;&lt;/a&gt;&lt;/div&gt;\n&quot;;
+        }
+        echo &quot;&lt;/div&gt;&lt;/div&gt;\n&quot;;
+}
+
+/**
+ * Convert a screen string to a screen object
+ *
+ * @since 3.0.0
+ *
+ * @param string $screen The name of the screen
+ * @return object An object containing the safe screen name and id
+ */
+function convert_to_screen( $screen ) {
+        $screen = str_replace( array('.php', '-new', '-add', '-network', '-user' ), '', $screen);
+
+        if ( is_network_admin() )
+                $screen .= '-network';
+        elseif ( is_user_admin() )
+                $screen .= '-user';
+
+        $screen = (string) apply_filters( 'screen_meta_screen', $screen );
+        $screen = (object) array('id' =&gt; $screen, 'base' =&gt; $screen);
+        return $screen;
+}
+
+function screen_meta($screen) {
+        global $wp_meta_boxes, $_wp_contextual_help, $wp_list_table, $wp_current_screen_options;
+
+        if ( is_string($screen) )
+                $screen = convert_to_screen($screen);
+
+        $columns = get_column_headers( $screen );
+        $hidden = get_hidden_columns( $screen );
+
+        $meta_screens = array('index' =&gt; 'dashboard');
+
+        if ( isset($meta_screens[$screen-&gt;id]) ) {
+                $screen-&gt;id = $meta_screens[$screen-&gt;id];
+                $screen-&gt;base = $screen-&gt;id;
+        }
+
+        $show_screen = false;
+        if ( !empty($wp_meta_boxes[$screen-&gt;id]) || !empty($columns) )
+                $show_screen = true;
+
+        $screen_options = screen_options($screen);
+        if ( $screen_options )
+                $show_screen = true;
+
+        if ( !isset($_wp_contextual_help) )
+                $_wp_contextual_help = array();
+
+        $settings = apply_filters('screen_settings', '', $screen);
+
+        switch ( $screen-&gt;id ) {
+                case 'widgets':
+                        $settings = '&lt;p&gt;&lt;a id=&quot;access-on&quot; href=&quot;widgets.php?widgets-access=on&quot;&gt;' . __('Enable accessibility mode') . '&lt;/a&gt;&lt;a id=&quot;access-off&quot; href=&quot;widgets.php?widgets-access=off&quot;&gt;' . __('Disable accessibility mode') . &quot;&lt;/a&gt;&lt;/p&gt;\n&quot;;
+                        $show_screen = true;
+                        break;
+        }
+        if ( ! empty( $settings ) )
+                $show_screen = true;
+
+        if ( !empty($wp_current_screen_options) )
+                $show_screen = true;
+
+        $show_screen = apply_filters('screen_options_show_screen', $show_screen, $screen);
+
+        // If we have screen options, add the menu to the admin bar.
+        if ( $show_screen )
+                add_action( 'admin_bar_menu', 'wp_admin_bar_screen_options_menu', 80 );
+
+
+?&gt;
+&lt;div id=&quot;screen-meta&quot;&gt;
+&lt;?php if ( $show_screen ) : ?&gt;
+&lt;div id=&quot;screen-options-wrap&quot; class=&quot;hidden&quot;&gt;
+        &lt;form id=&quot;adv-settings&quot; action=&quot;&quot; method=&quot;post&quot;&gt;
+        &lt;?php if ( isset($wp_meta_boxes[$screen-&gt;id]) ) : ?&gt;
+                &lt;h5&gt;&lt;?php _ex('Show on screen', 'Metaboxes') ?&gt;&lt;/h5&gt;
+                &lt;div class=&quot;metabox-prefs&quot;&gt;
+                        &lt;?php meta_box_prefs($screen); ?&gt;
+                        &lt;br class=&quot;clear&quot; /&gt;
+                &lt;/div&gt;
+                &lt;?php endif;
+                if ( ! empty($columns) ) : ?&gt;
+                &lt;h5&gt;&lt;?php echo ( isset( $columns['_title'] ) ?  $columns['_title'] :  _x('Show on screen', 'Columns') ) ?&gt;&lt;/h5&gt;
+                &lt;div class=&quot;metabox-prefs&quot;&gt;
+&lt;?php
+        $special = array('_title', 'cb', 'comment', 'media', 'name', 'title', 'username', 'blogname');
+
+        foreach ( $columns as $column =&gt; $title ) {
+                // Can't hide these for they are special
+                if ( in_array( $column, $special ) )
+                        continue;
+                if ( empty( $title ) )
+                        continue;
+
+                if ( 'comments' == $column )
+                        $title = __( 'Comments' );
+                $id = &quot;$column-hide&quot;;
+                echo '&lt;label for=&quot;' . $id . '&quot;&gt;';
+                echo '&lt;input class=&quot;hide-column-tog&quot; name=&quot;' . $id . '&quot; type=&quot;checkbox&quot; id=&quot;' . $id . '&quot; value=&quot;' . $column . '&quot;' . checked( !in_array($column, $hidden), true, false ) . ' /&gt;';
+                echo &quot;$title&lt;/label&gt;\n&quot;;
+        }
+?&gt;
+                        &lt;br class=&quot;clear&quot; /&gt;
+                &lt;/div&gt;
+        &lt;?php endif;
+        echo screen_layout($screen);
+
+        if ( !empty( $screen_options ) ) {
+                ?&gt;
+                &lt;h5&gt;&lt;?php _ex('Show on screen', 'Screen Options') ?&gt;&lt;/h5&gt;
+                &lt;?php
+        }
+
+        echo $screen_options;
+        echo $settings; ?&gt;
+        &lt;div&gt;&lt;?php wp_nonce_field( 'screen-options-nonce', 'screenoptionnonce', false ); ?&gt;&lt;/div&gt;
+        &lt;/form&gt;
+&lt;/div&gt;
+
+&lt;?php endif; // $show_screen
+
+        $_wp_contextual_help = apply_filters('contextual_help_list', $_wp_contextual_help, $screen);
+        ?&gt;
+        &lt;div id=&quot;contextual-help-wrap&quot; class=&quot;hidden&quot;&gt;
+        &lt;?php
+        $contextual_help = '';
+        if ( isset($_wp_contextual_help[$screen-&gt;id]) &amp;&amp; is_array($_wp_contextual_help[$screen-&gt;id]) ) {
+                $contextual_help .= '&lt;div class=&quot;metabox-prefs&quot;&gt;' . &quot;\n&quot;;
+
+                /*
+                 * Loop through ['contextual-help-tabs']
+                 *   - It's a nested array where $key=&gt;$value &gt;&gt; $title=&gt;$content
+                 * Has no output so can only loop the array once
+                 */
+                $contextual_help_tabs = ''; // store looped content for later
+                $contextual_help_panels = ''; // store looped content for later
+
+                $tab_active = true;
+
+                foreach ( $_wp_contextual_help[$screen-&gt;id]['tabs'] as $tab ) {
+                        $tab_slug = sanitize_html_class( $tab[ 0 ] );
+                        $contextual_help_tabs .= '&lt;li class=&quot;tab-' . $tab_slug . ( ($tab_active) ? ' active' : '' ) . '&quot;&gt;';
+                        $contextual_help_tabs .= '&lt;a href=&quot;#' . $tab_slug . '&quot;&gt;' . $tab[1] . '&lt;/a&gt;';
+                        $contextual_help_tabs .= '&lt;/li&gt;' .&quot;\n&quot;;
+                        
+                        $contextual_help_panels .= '&lt;div id=&quot;' . $tab_slug . '&quot; class=&quot;help-tab-content' . ( ($tab_active) ? ' active' : '' ) . '&quot;&gt;';
+                        $contextual_help_panels .= $tab[2];
+                        $contextual_help_panels .= &quot;&lt;/div&gt;\n&quot;;
+
+                        $tab_active = false;
+                }
+
+                // Start output from loop: Tabbed help content
+                $contextual_help .= '&lt;ul class=&quot;contextual-help-tabs&quot;&gt;' . &quot;\n&quot;;
+                $contextual_help .= $contextual_help_tabs;
+                $contextual_help .= '&lt;/ul&gt;' .&quot;\n&quot;;
+                $contextual_help .= '&lt;div class=&quot;contextual-help-tabs-wrap&quot;&gt;' . &quot;\n&quot;;
+                $contextual_help .= $contextual_help_panels;
+                $contextual_help .= &quot;&lt;/div&gt;\n&quot;;
+                // END: Tabbed help content
+
+                // Sidebar to right of tabs
+                $contextual_help .= '&lt;div class=&quot;contextual-help-links&quot;&gt;' . &quot;\n&quot;;
+                $contextual_help .= $_wp_contextual_help[$screen-&gt;id]['sidebar'];
+                $contextual_help .= &quot;&lt;/div&gt;\n&quot;;
+                
+                $contextual_help .= &quot;&lt;/div&gt;\n&quot;; // end metabox
+                
+        } elseif ( isset($_wp_contextual_help[$screen-&gt;id]) ) {
+                $contextual_help .= '&lt;div class=&quot;metabox-prefs&quot;&gt;' . $_wp_contextual_help[$screen-&gt;id] . &quot;&lt;/div&gt;\n&quot;;
+        } else {
+                $contextual_help .= '&lt;div class=&quot;metabox-prefs&quot;&gt;';
+                $default_help  = __('&lt;a href=&quot;http://codex.wordpress.org/&quot; target=&quot;_blank&quot;&gt;Documentation&lt;/a&gt;');
+                $default_help .= '&lt;br /&gt;';
+                $default_help .= __('&lt;a href=&quot;http://wordpress.org/support/&quot; target=&quot;_blank&quot;&gt;Support Forums&lt;/a&gt;');
+                $contextual_help .= apply_filters('default_contextual_help', $default_help);
+                $contextual_help .= '&lt;/div&gt;' . &quot;\n&quot;;
+        }
+
+        echo apply_filters('contextual_help', $contextual_help, $screen-&gt;id, $screen);
+        ?&gt;
+        &lt;/div&gt;
+
+&lt;/div&gt; &lt;?php // #screen-meta
+}
+
+/**
+ * Add contextual help text for a page
+ *
+ * The array $help takes the following format:
+ *         array( 'contextual-help-tabs'         =&gt; array( $tab1_title =&gt; $tab1_value [, $tab2_title =&gt; $tab2_value, ...] ),
+ *                'contextual-help-links' =&gt; $help_links_as_string )
+ *
+ * For backwards compatability, a string is also accepted.
+ *
+ * @since 2.7.0
+ *
+ * @param string         $screen The handle for the screen to add help to.  This is usually the hook name returned by the add_*_page() functions.
+ * @param array|string         $help         Creates tabs &amp; links columns within help text in array.
+ *
+ */
+function add_contextual_help($screen, $help) {
+        global $_wp_contextual_help;
+
+        if ( is_string($screen) )
+                $screen = convert_to_screen($screen);
+
+        if ( !isset($_wp_contextual_help) )
+                $_wp_contextual_help = array();
+
+        $_wp_contextual_help[$screen-&gt;id] = $help;
+}
+
+function screen_layout($screen) {
+        global $screen_layout_columns, $wp_current_screen_options;
+
+        if ( is_string($screen) )
+                $screen = convert_to_screen($screen);
+
+        // Back compat for plugins using the filter instead of add_screen_option()
+        $columns = apply_filters('screen_layout_columns', array(), $screen-&gt;id, $screen);
+        if ( !empty($columns) &amp;&amp; isset($columns[$screen-&gt;id]) )
+                add_screen_option('layout_columns', array('max' =&gt; $columns[$screen-&gt;id]) );
+
+        if ( !isset($wp_current_screen_options['layout_columns']) ) {
+                $screen_layout_columns = 0;
+                return '';
+        }
+
+        $screen_layout_columns = get_user_option(&quot;screen_layout_$screen-&gt;id&quot;);
+        $num = $wp_current_screen_options['layout_columns']['max'];
+
+        if ( ! $screen_layout_columns ) {
+                if ( isset($wp_current_screen_options['layout_columns']['default']) )
+                        $screen_layout_columns = $wp_current_screen_options['layout_columns']['default'];
+                else
+                        $screen_layout_columns = 'auto';
+        }
+
+        $i = 1;
+        $return = '&lt;h5&gt;' . __('Screen Layout') . &quot;&lt;/h5&gt;\n&lt;div class='columns-prefs'&gt;&quot; . __('Number of Columns:') . &quot;\n&quot;;
+        while ( $i &lt;= $num ) {
+                $return .= &quot;&lt;label&gt;&lt;input type='radio' name='screen_columns' value='$i'&quot; . ( ($screen_layout_columns == $i) ? &quot; checked='checked'&quot; : &quot;&quot; ) . &quot; /&gt; $i&lt;/label&gt;\n&quot;;
+                ++$i;
+        }
+        $return .= &quot;&lt;label&gt;&lt;input type='radio' id='wp_auto_columns' name='screen_columns' value='auto'&quot; . ( ($screen_layout_columns == 'auto') ? &quot; checked='checked'&quot; : &quot;&quot; ) . &quot; /&gt;&quot; . __('auto') . &quot;&lt;/label&gt;\n&quot;;
+        $return .= &quot;&lt;/div&gt;\n&quot;;
+        return $return;
+}
+
+/**
+ * Register and configure an admin screen option
+ *
+ * @since 3.1.0
+ *
+ * @param string $option An option name.
+ * @param mixed $args Option dependent arguments
+ * @return void
+ */
+function add_screen_option( $option, $args = array() ) {
+        global $wp_current_screen_options;
+
+        if ( !isset($wp_current_screen_options) )
+                $wp_current_screen_options = array();
+
+        $wp_current_screen_options[$option] = $args;
+}
+
+function screen_options($screen) {
+        global $wp_current_screen_options;
+
+        if ( is_string($screen) )
+                $screen = convert_to_screen($screen);
+
+        if ( !isset($wp_current_screen_options['per_page']) )
+                return '';
+
+        $per_page_label = $wp_current_screen_options['per_page']['label'];
+
+        if ( empty($wp_current_screen_options['per_page']['option']) ) {
+                $option = str_replace( '-', '_', &quot;{$screen-&gt;id}_per_page&quot; );
+        } else {
+                $option = $wp_current_screen_options['per_page']['option'];
+        }
+
+        $per_page = (int) get_user_option( $option );
+        if ( empty( $per_page ) || $per_page &lt; 1 ) {
+                if ( isset($wp_current_screen_options['per_page']['default']) )
+                        $per_page = $wp_current_screen_options['per_page']['default'];
+                else
+                        $per_page = 20;
+        }
+
+        if ( 'edit_comments_per_page' == $option )
+                $per_page = apply_filters( 'comments_per_page', $per_page, isset($_REQUEST['comment_status']) ? $_REQUEST['comment_status'] : 'all' );
+        elseif ( 'categories_per_page' == $option )
+                $per_page = apply_filters( 'edit_categories_per_page', $per_page );
+        else
+                $per_page = apply_filters( $option, $per_page );
+
+        // Back compat
+        if ( isset( $screen-&gt;post_type ) )
+                $per_page = apply_filters( 'edit_posts_per_page', $per_page, $screen-&gt;post_type );
+
+        $return = &quot;&lt;div class='screen-options'&gt;\n&quot;;
+        if ( !empty($per_page_label) )
+                $return .= &quot;&lt;input type='text' class='screen-per-page' name='wp_screen_options[value]' id='$option' maxlength='3' value='$per_page' /&gt; &lt;label for='$option'&gt;$per_page_label&lt;/label&gt;\n&quot;;
+        $return .= get_submit_button( __( 'Apply' ), 'button', 'screen-options-apply', false );
+        $return .= &quot;&lt;input type='hidden' name='wp_screen_options[option]' value='&quot; . esc_attr($option) . &quot;' /&gt;&quot;;
+        $return .= &quot;&lt;/div&gt;\n&quot;;
+        return $return;
+}
+
+function screen_icon( $screen = '' ) {
+        echo get_screen_icon( $screen );
+}
+
+function get_screen_icon( $screen = '' ) {
+        global $current_screen, $typenow;
+
+        if ( empty($screen) )
+                $screen = $current_screen;
+        elseif ( is_string($screen) )
+                $name = $screen;
+
+        $class = 'icon32';
+
+        if ( empty($name) ) {
+                if ( !empty($screen-&gt;parent_base) )
+                        $name = $screen-&gt;parent_base;
+                else
+                        $name = $screen-&gt;base;
+
+                if ( 'edit' == $name &amp;&amp; isset($screen-&gt;post_type) &amp;&amp; 'page' == $screen-&gt;post_type )
+                        $name = 'edit-pages';
+
+                $post_type = '';
+                if ( isset( $screen-&gt;post_type ) )
+                        $post_type = $screen-&gt;post_type;
+                elseif ( $current_screen == $screen )
+                        $post_type = $typenow;
+                if ( $post_type )
+                        $class .= ' ' . sanitize_html_class( 'icon32-posts-' . $post_type );
+        }
+
+        return '&lt;div id=&quot;icon-' . esc_attr( $name ) . '&quot; class=&quot;' . $class . '&quot;&gt;&lt;br /&gt;&lt;/div&gt;';
+}
+
+/**
+ *  Get the current screen object
+ *
+ *  @since 3.1.0
+ *
+ * @return object Current screen object
+ */
+function get_current_screen() {
+        global $current_screen;
+
+        if ( !isset($current_screen) )
+                return null;
+
+        return $current_screen;
+}
+
+/**
+ * Set the current screen object
+ *
+ * @since 3.0.0
+ *
+ * @uses $current_screen
+ *
+ * @param string $id Screen id, optional.
+ */
+function set_current_screen( $id =  '' ) {
+        global $current_screen;
+
+        $current_screen = new WP_Screen( $id );
+
+        $current_screen = apply_filters('current_screen', $current_screen);
+}
+
+class WP_Screen {
+        var $action = '';
+        var $base;
+        var $id;
+        var $is_network;
+        var $is_user;
+        var $parent_base;
+        var $parent_file;
+        var $post_type;
+        var $taxonomy;
+
+        function __construct( $id = '' ) {
+                global $hook_suffix, $typenow, $taxnow;
+
+                $action = '';
+
+                if ( empty( $id ) ) {
+                        $screen = $hook_suffix;
+                        $screen = str_replace('.php', '', $screen);
+                        if ( preg_match('/-add|-new$/', $screen) )
+                                $action = 'add';
+                        $screen = str_replace('-new', '', $screen);
+                        $screen = str_replace('-add', '', $screen);
+                        $this-&gt;id = $this-&gt;base = $screen;
+                } else {
+                        $id = sanitize_key( $id );
+                        if ( false !== strpos($id, '-') ) {
+                                list( $id, $typenow ) = explode('-', $id, 2);
+                                if ( taxonomy_exists( $typenow ) ) {
+                                        $id = 'edit-tags';
+                                        $taxnow = $typenow;
+                                        $typenow = '';
+                                }
+                        }
+                        $this-&gt;id = $this-&gt;base = $id;
+                }
+
+                $this-&gt;action = $action;
+
+                // Map index to dashboard
+                if ( 'index' == $this-&gt;base )
+                        $this-&gt;base = 'dashboard';
+                if ( 'index' == $this-&gt;id )
+                        $this-&gt;id = 'dashboard';
+
+                if ( 'edit' == $this-&gt;id ) {
+                        if ( empty($typenow) )
+                                $typenow = 'post';
+                        $this-&gt;id .= '-' . $typenow;
+                        $this-&gt;post_type = $typenow;
+                } elseif ( 'post' == $this-&gt;id ) {
+                        if ( empty($typenow) )
+                                $typenow = 'post';
+                        $this-&gt;id = $typenow;
+                        $this-&gt;post_type = $typenow;
+                } elseif ( 'edit-tags' == $this-&gt;id ) {
+                        if ( empty($taxnow) )
+                                $taxnow = 'post_tag';
+                        $this-&gt;id = 'edit-' . $taxnow;
+                        $this-&gt;taxonomy = $taxnow;
+                }
+
+                $this-&gt;is_network = is_network_admin();
+                $this-&gt;is_user = is_user_admin();
+
+                if ( $this-&gt;is_network ) {
+                        $this-&gt;base .= '-network';
+                        $this-&gt;id .= '-network';
+                } elseif ( $this-&gt;is_user ) {
+                        $this-&gt;base .= '-user';
+                        $this-&gt;id .= '-user';
+                }
+        }
+
+        function set_parentage( $parent_file ) {
+                $this-&gt;parent_file = $parent_file;
+                $this-&gt;parent_base = preg_replace('/\?.*$/', '', $parent_file);
+                $this-&gt;parent_base = str_replace('.php', '', $this-&gt;parent_base);
+        }
+
+        function add_option( $option, $args = array() ) {
+                return add_screen_option( $option, $args );
+        }
+
+        function add_help_tab( $id, $title, $content) {
+                global $_wp_contextual_help;
+
+                $_wp_contextual_help[$this-&gt;id]['tabs'][] = array( $id, $title, $content );
+        }
+
+        function add_help_sidebar( $content ) {
+                global $_wp_contextual_help;
+
+                $_wp_contextual_help[$this-&gt;id]['sidebar'] = $content;
+        }
+}
</ins><span class="cx">\ No newline at end of file
</span></span></pre></div>
<a id="trunkwpadminincludestemplatephp"></a>
<div class="modfile"><h4>Modified: trunk/wp-admin/includes/template.php (18781 => 18782)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/wp-admin/includes/template.php        2011-09-26 21:15:57 UTC (rev 18781)
+++ trunk/wp-admin/includes/template.php        2011-09-26 21:32:10 UTC (rev 18782)
</span><span class="lines">@@ -221,42 +221,6 @@
</span><span class="cx">         }
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-/**
- * Get the column headers for a screen
- *
- * @since 2.7.0
- *
- * @param string|object $screen The screen you want the headers for
- * @return array Containing the headers in the format id =&gt; UI String
- */
-function get_column_headers( $screen ) {
-        if ( is_string( $screen ) )
-                $screen = convert_to_screen( $screen );
-
-        global $_wp_column_headers;
-
-        if ( !isset( $_wp_column_headers[ $screen-&gt;id ] ) ) {
-                $_wp_column_headers[ $screen-&gt;id ] = apply_filters( 'manage_' . $screen-&gt;id . '_columns', array() );
-        }
-
-        return $_wp_column_headers[ $screen-&gt;id ];
-}
-
-/**
- * Get a list of hidden columns.
- *
- * @since 2.7.0
- *
- * @param string|object $screen The screen you want the hidden columns for
- * @return array
- */
-function get_hidden_columns( $screen ) {
-        if ( is_string( $screen ) )
-                $screen = convert_to_screen( $screen );
-
-        return (array) get_user_option( 'manage' . $screen-&gt;id . 'columnshidden' );
-}
-
</del><span class="cx"> // adds hidden fields with the data for use in the inline editor for posts and pages
</span><span class="cx"> /**
</span><span class="cx">  * {@internal Missing Short Description}}
</span><span class="lines">@@ -1006,67 +970,6 @@
</span><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> /**
</span><del>- * {@internal Missing Short Description}}
- *
- * @since 2.7.0
- *
- * @param unknown_type $screen
- */
-function meta_box_prefs($screen) {
-        global $wp_meta_boxes;
-
-        if ( is_string($screen) )
-                $screen = convert_to_screen($screen);
-
-        if ( empty($wp_meta_boxes[$screen-&gt;id]) )
-                return;
-
-        $hidden = get_hidden_meta_boxes($screen);
-
-        foreach ( array_keys($wp_meta_boxes[$screen-&gt;id]) as $context ) {
-                foreach ( array_keys($wp_meta_boxes[$screen-&gt;id][$context]) as $priority ) {
-                        foreach ( $wp_meta_boxes[$screen-&gt;id][$context][$priority] as $box ) {
-                                if ( false == $box || ! $box['title'] )
-                                        continue;
-                                // Submit box cannot be hidden
-                                if ( 'submitdiv' == $box['id'] || 'linksubmitdiv' == $box['id'] )
-                                        continue;
-                                $box_id = $box['id'];
-                                echo '&lt;label for=&quot;' . $box_id . '-hide&quot;&gt;';
-                                echo '&lt;input class=&quot;hide-postbox-tog&quot; name=&quot;' . $box_id . '-hide&quot; type=&quot;checkbox&quot; id=&quot;' . $box_id . '-hide&quot; value=&quot;' . $box_id . '&quot;' . (! in_array($box_id, $hidden) ? ' checked=&quot;checked&quot;' : '') . ' /&gt;';
-                                echo &quot;{$box['title']}&lt;/label&gt;\n&quot;;
-                        }
-                }
-        }
-}
-
-/**
- * Get Hidden Meta Boxes
- *
- * @since 2.7.0
- *
- * @param string|object $screen Screen identifier
- * @return array Hidden Meta Boxes
- */
-function get_hidden_meta_boxes( $screen ) {
-        if ( is_string( $screen ) )
-                $screen = convert_to_screen( $screen );
-
-        $hidden = get_user_option( &quot;metaboxhidden_{$screen-&gt;id}&quot; );
-
-        // Hide slug boxes by default
-        if ( !is_array( $hidden ) ) {
-                if ( 'post' == $screen-&gt;base || 'page' == $screen-&gt;base )
-                        $hidden = array('slugdiv', 'trackbacksdiv', 'postcustom', 'postexcerpt', 'commentstatusdiv', 'commentsdiv', 'authordiv', 'revisionsdiv');
-                else
-                        $hidden = array( 'slugdiv' );
-                $hidden = apply_filters('default_hidden_meta_boxes', $hidden, $screen);
-        }
-
-        return $hidden;
-}
-
-/**
</del><span class="cx">  * Add a new section to a settings page.
</span><span class="cx">  *
</span><span class="cx">  * Part of the Settings API. Use this to define new settings sections for an admin page.
</span><span class="lines">@@ -1397,118 +1300,6 @@
</span><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> /**
</span><del>- * {@internal Missing Short Description}}
- *
- * @since 2.7.0
- */
-function favorite_actions( $screen = null ) {
-        $default_action = false;
-
-        if ( is_string($screen) )
-                $screen = convert_to_screen($screen);
-
-        if ( $screen-&gt;is_user )
-                return;
-
-        if ( isset($screen-&gt;post_type) ) {
-                $post_type_object = get_post_type_object($screen-&gt;post_type);
-                if ( 'add' != $screen-&gt;action )
-                        $default_action = array('post-new.php?post_type=' . $post_type_object-&gt;name =&gt; array($post_type_object-&gt;labels-&gt;new_item, $post_type_object-&gt;cap-&gt;edit_posts));
-                else
-                        $default_action = array('edit.php?post_type=' . $post_type_object-&gt;name =&gt; array($post_type_object-&gt;labels-&gt;name, $post_type_object-&gt;cap-&gt;edit_posts));
-        }
-
-        if ( !$default_action ) {
-                if ( $screen-&gt;is_network ) {
-                        $default_action = array('sites.php' =&gt; array( __('Sites'), 'manage_sites'));
-                } else {
-                        switch ( $screen-&gt;id ) {
-                                case 'upload':
-                                        $default_action = array('media-new.php' =&gt; array(__('New Media'), 'upload_files'));
-                                        break;
-                                case 'media':
-                                        $default_action = array('upload.php' =&gt; array(__('Edit Media'), 'upload_files'));
-                                        break;
-                                case 'link-manager':
-                                case 'link':
-                                        if ( 'add' != $screen-&gt;action )
-                                                $default_action = array('link-add.php' =&gt; array(__('New Link'), 'manage_links'));
-                                        else
-                                                $default_action = array('link-manager.php' =&gt; array(__('Edit Links'), 'manage_links'));
-                                        break;
-                                case 'users':
-                                        $default_action = array('user-new.php' =&gt; array(__('New User'), 'create_users'));
-                                        break;
-                                case 'user':
-                                        $default_action = array('users.php' =&gt; array(__('Edit Users'), 'edit_users'));
-                                        break;
-                                case 'plugins':
-                                        $default_action = array('plugin-install.php' =&gt; array(__('Install Plugins'), 'install_plugins'));
-                                        break;
-                                case 'plugin-install':
-                                        $default_action = array('plugins.php' =&gt; array(__('Manage Plugins'), 'activate_plugins'));
-                                        break;
-                                case 'themes':
-                                        $default_action = array('theme-install.php' =&gt; array(__('Install Themes'), 'install_themes'));
-                                        break;
-                                case 'theme-install':
-                                        $default_action = array('themes.php' =&gt; array(__('Manage Themes'), 'switch_themes'));
-                                        break;
-                                default:
-                                        $default_action = array('post-new.php' =&gt; array(__('New Post'), 'edit_posts'));
-                                        break;
-                        }
-                }
-        }
-
-        if ( !$screen-&gt;is_network ) {
-                $actions = array(
-                        'post-new.php' =&gt; array(__('New Post'), 'edit_posts'),
-                        'edit.php?post_status=draft' =&gt; array(__('Drafts'), 'edit_posts'),
-                        'post-new.php?post_type=page' =&gt; array(__('New Page'), 'edit_pages'),
-                        'media-new.php' =&gt; array(__('Upload'), 'upload_files'),
-                        'edit-comments.php' =&gt; array(__('Comments'), 'moderate_comments')
-                        );
-        } else {
-                $actions = array(
-                        'sites.php' =&gt; array( __('Sites'), 'manage_sites'),
-                        'users.php' =&gt; array( __('Users'), 'manage_network_users')
-                );
-        }
-
-        $default_key = array_keys($default_action);
-        $default_key = $default_key[0];
-        if ( isset($actions[$default_key]) )
-                unset($actions[$default_key]);
-        $actions = array_merge($default_action, $actions);
-        $actions = apply_filters( 'favorite_actions', $actions, $screen );
-
-        $allowed_actions = array();
-        foreach ( $actions as $action =&gt; $data ) {
-                if ( current_user_can($data[1]) )
-                        $allowed_actions[$action] = $data[0];
-        }
-
-        if ( empty($allowed_actions) )
-                return;
-
-        $first = array_keys($allowed_actions);
-        $first = $first[0];
-        echo '&lt;div id=&quot;favorite-actions&quot;&gt;';
-        echo '&lt;div id=&quot;favorite-first&quot;&gt;&lt;a href=&quot;' . $first . '&quot;&gt;' . $allowed_actions[$first] . '&lt;/a&gt;&lt;/div&gt;&lt;div id=&quot;favorite-toggle&quot;&gt;&lt;br /&gt;&lt;/div&gt;';
-        echo '&lt;div id=&quot;favorite-inside&quot;&gt;';
-
-        array_shift($allowed_actions);
-
-        foreach ( $allowed_actions as $action =&gt; $label) {
-                echo &quot;&lt;div class='favorite-action'&gt;&lt;a href='$action'&gt;&quot;;
-                echo $label;
-                echo &quot;&lt;/a&gt;&lt;/div&gt;\n&quot;;
-        }
-        echo &quot;&lt;/div&gt;&lt;/div&gt;\n&quot;;
-}
-
-/**
</del><span class="cx">  * Get the post title.
</span><span class="cx">  *
</span><span class="cx">  * The post title is fetched and if it is blank then a default string is
</span><span class="lines">@@ -1688,354 +1479,6 @@
</span><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> /**
</span><del>- * Convert a screen string to a screen object
- *
- * @since 3.0.0
- *
- * @param string $screen The name of the screen
- * @return object An object containing the safe screen name and id
- */
-function convert_to_screen( $screen ) {
-        $screen = str_replace( array('.php', '-new', '-add', '-network', '-user' ), '', $screen);
-
-        if ( is_network_admin() )
-                $screen .= '-network';
-        elseif ( is_user_admin() )
-                $screen .= '-user';
-
-        $screen = (string) apply_filters( 'screen_meta_screen', $screen );
-        $screen = (object) array('id' =&gt; $screen, 'base' =&gt; $screen);
-        return $screen;
-}
-
-function screen_meta($screen) {
-        global $wp_meta_boxes, $_wp_contextual_help, $wp_list_table, $wp_current_screen_options;
-
-        if ( is_string($screen) )
-                $screen = convert_to_screen($screen);
-
-        $columns = get_column_headers( $screen );
-        $hidden = get_hidden_columns( $screen );
-
-        $meta_screens = array('index' =&gt; 'dashboard');
-
-        if ( isset($meta_screens[$screen-&gt;id]) ) {
-                $screen-&gt;id = $meta_screens[$screen-&gt;id];
-                $screen-&gt;base = $screen-&gt;id;
-        }
-
-        $show_screen = false;
-        if ( !empty($wp_meta_boxes[$screen-&gt;id]) || !empty($columns) )
-                $show_screen = true;
-
-        $screen_options = screen_options($screen);
-        if ( $screen_options )
-                $show_screen = true;
-
-        if ( !isset($_wp_contextual_help) )
-                $_wp_contextual_help = array();
-
-        $settings = apply_filters('screen_settings', '', $screen);
-
-        switch ( $screen-&gt;id ) {
-                case 'widgets':
-                        $settings = '&lt;p&gt;&lt;a id=&quot;access-on&quot; href=&quot;widgets.php?widgets-access=on&quot;&gt;' . __('Enable accessibility mode') . '&lt;/a&gt;&lt;a id=&quot;access-off&quot; href=&quot;widgets.php?widgets-access=off&quot;&gt;' . __('Disable accessibility mode') . &quot;&lt;/a&gt;&lt;/p&gt;\n&quot;;
-                        $show_screen = true;
-                        break;
-        }
-        if ( ! empty( $settings ) )
-                $show_screen = true;
-
-        if ( !empty($wp_current_screen_options) )
-                $show_screen = true;
-
-        $show_screen = apply_filters('screen_options_show_screen', $show_screen, $screen);
-
-        // If we have screen options, add the menu to the admin bar.
-        if ( $show_screen )
-                add_action( 'admin_bar_menu', 'wp_admin_bar_screen_options_menu', 80 );
-
-
-?&gt;
-&lt;div id=&quot;screen-meta&quot;&gt;
-&lt;?php if ( $show_screen ) : ?&gt;
-&lt;div id=&quot;screen-options-wrap&quot; class=&quot;hidden&quot;&gt;
-        &lt;form id=&quot;adv-settings&quot; action=&quot;&quot; method=&quot;post&quot;&gt;
-        &lt;?php if ( isset($wp_meta_boxes[$screen-&gt;id]) ) : ?&gt;
-                &lt;h5&gt;&lt;?php _ex('Show on screen', 'Metaboxes') ?&gt;&lt;/h5&gt;
-                &lt;div class=&quot;metabox-prefs&quot;&gt;
-                        &lt;?php meta_box_prefs($screen); ?&gt;
-                        &lt;br class=&quot;clear&quot; /&gt;
-                &lt;/div&gt;
-                &lt;?php endif;
-                if ( ! empty($columns) ) : ?&gt;
-                &lt;h5&gt;&lt;?php echo ( isset( $columns['_title'] ) ?  $columns['_title'] :  _x('Show on screen', 'Columns') ) ?&gt;&lt;/h5&gt;
-                &lt;div class=&quot;metabox-prefs&quot;&gt;
-&lt;?php
-        $special = array('_title', 'cb', 'comment', 'media', 'name', 'title', 'username', 'blogname');
-
-        foreach ( $columns as $column =&gt; $title ) {
-                // Can't hide these for they are special
-                if ( in_array( $column, $special ) )
-                        continue;
-                if ( empty( $title ) )
-                        continue;
-
-                if ( 'comments' == $column )
-                        $title = __( 'Comments' );
-                $id = &quot;$column-hide&quot;;
-                echo '&lt;label for=&quot;' . $id . '&quot;&gt;';
-                echo '&lt;input class=&quot;hide-column-tog&quot; name=&quot;' . $id . '&quot; type=&quot;checkbox&quot; id=&quot;' . $id . '&quot; value=&quot;' . $column . '&quot;' . checked( !in_array($column, $hidden), true, false ) . ' /&gt;';
-                echo &quot;$title&lt;/label&gt;\n&quot;;
-        }
-?&gt;
-                        &lt;br class=&quot;clear&quot; /&gt;
-                &lt;/div&gt;
-        &lt;?php endif;
-        echo screen_layout($screen);
-
-        if ( !empty( $screen_options ) ) {
-                ?&gt;
-                &lt;h5&gt;&lt;?php _ex('Show on screen', 'Screen Options') ?&gt;&lt;/h5&gt;
-                &lt;?php
-        }
-
-        echo $screen_options;
-        echo $settings; ?&gt;
-        &lt;div&gt;&lt;?php wp_nonce_field( 'screen-options-nonce', 'screenoptionnonce', false ); ?&gt;&lt;/div&gt;
-        &lt;/form&gt;
-&lt;/div&gt;
-
-&lt;?php endif; // $show_screen
-
-        $_wp_contextual_help = apply_filters('contextual_help_list', $_wp_contextual_help, $screen);
-        ?&gt;
-        &lt;div id=&quot;contextual-help-wrap&quot; class=&quot;hidden&quot;&gt;
-        &lt;?php
-        $contextual_help = '';
-        if ( isset($_wp_contextual_help[$screen-&gt;id]) &amp;&amp; is_array($_wp_contextual_help[$screen-&gt;id]) ) {
-                $contextual_help .= '&lt;div class=&quot;metabox-prefs&quot;&gt;' . &quot;\n&quot;;
-
-                /*
-                 * Loop through ['contextual-help-tabs']
-                 *   - It's a nested array where $key=&gt;$value &gt;&gt; $title=&gt;$content
-                 * Has no output so can only loop the array once
-                 */
-                $contextual_help_tabs = ''; // store looped content for later
-                $contextual_help_panels = ''; // store looped content for later
-
-                $tab_active = true;
-
-                foreach ( $_wp_contextual_help[$screen-&gt;id]['tabs'] as $tab ) {
-                        $tab_slug = sanitize_html_class( $tab[ 0 ] );
-                        $contextual_help_tabs .= '&lt;li class=&quot;tab-' . $tab_slug . ( ($tab_active) ? ' active' : '' ) . '&quot;&gt;';
-                        $contextual_help_tabs .= '&lt;a href=&quot;#' . $tab_slug . '&quot;&gt;' . $tab[1] . '&lt;/a&gt;';
-                        $contextual_help_tabs .= '&lt;/li&gt;' .&quot;\n&quot;;
-                        
-                        $contextual_help_panels .= '&lt;div id=&quot;' . $tab_slug . '&quot; class=&quot;help-tab-content' . ( ($tab_active) ? ' active' : '' ) . '&quot;&gt;';
-                        $contextual_help_panels .= $tab[2];
-                        $contextual_help_panels .= &quot;&lt;/div&gt;\n&quot;;
-
-                        $tab_active = false;
-                }
-
-                // Start output from loop: Tabbed help content
-                $contextual_help .= '&lt;ul class=&quot;contextual-help-tabs&quot;&gt;' . &quot;\n&quot;;
-                $contextual_help .= $contextual_help_tabs;
-                $contextual_help .= '&lt;/ul&gt;' .&quot;\n&quot;;
-                $contextual_help .= '&lt;div class=&quot;contextual-help-tabs-wrap&quot;&gt;' . &quot;\n&quot;;
-                $contextual_help .= $contextual_help_panels;
-                $contextual_help .= &quot;&lt;/div&gt;\n&quot;;
-                // END: Tabbed help content
-
-                // Sidebar to right of tabs
-                $contextual_help .= '&lt;div class=&quot;contextual-help-links&quot;&gt;' . &quot;\n&quot;;
-                $contextual_help .= $_wp_contextual_help[$screen-&gt;id]['sidebar'];
-                $contextual_help .= &quot;&lt;/div&gt;\n&quot;;
-                
-                $contextual_help .= &quot;&lt;/div&gt;\n&quot;; // end metabox
-                
-        } elseif ( isset($_wp_contextual_help[$screen-&gt;id]) ) {
-                $contextual_help .= '&lt;div class=&quot;metabox-prefs&quot;&gt;' . $_wp_contextual_help[$screen-&gt;id] . &quot;&lt;/div&gt;\n&quot;;
-        } else {
-                $contextual_help .= '&lt;div class=&quot;metabox-prefs&quot;&gt;';
-                $default_help  = __('&lt;a href=&quot;http://codex.wordpress.org/&quot; target=&quot;_blank&quot;&gt;Documentation&lt;/a&gt;');
-                $default_help .= '&lt;br /&gt;';
-                $default_help .= __('&lt;a href=&quot;http://wordpress.org/support/&quot; target=&quot;_blank&quot;&gt;Support Forums&lt;/a&gt;');
-                $contextual_help .= apply_filters('default_contextual_help', $default_help);
-                $contextual_help .= '&lt;/div&gt;' . &quot;\n&quot;;
-        }
-
-        echo apply_filters('contextual_help', $contextual_help, $screen-&gt;id, $screen);
-        ?&gt;
-        &lt;/div&gt;
-
-&lt;/div&gt; &lt;?php // #screen-meta
-}
-
-/**
- * Add contextual help text for a page
- *
- * The array $help takes the following format:
- *         array( 'contextual-help-tabs'         =&gt; array( $tab1_title =&gt; $tab1_value [, $tab2_title =&gt; $tab2_value, ...] ),
- *                'contextual-help-links' =&gt; $help_links_as_string )
- *
- * For backwards compatability, a string is also accepted.
- *
- * @since 2.7.0
- *
- * @param string         $screen The handle for the screen to add help to.  This is usually the hook name returned by the add_*_page() functions.
- * @param array|string         $help         Creates tabs &amp; links columns within help text in array.
- *
- */
-function add_contextual_help($screen, $help) {
-        global $_wp_contextual_help;
-
-        if ( is_string($screen) )
-                $screen = convert_to_screen($screen);
-
-        if ( !isset($_wp_contextual_help) )
-                $_wp_contextual_help = array();
-
-        $_wp_contextual_help[$screen-&gt;id] = $help;
-}
-
-function screen_layout($screen) {
-        global $screen_layout_columns, $wp_current_screen_options;
-
-        if ( is_string($screen) )
-                $screen = convert_to_screen($screen);
-
-        // Back compat for plugins using the filter instead of add_screen_option()
-        $columns = apply_filters('screen_layout_columns', array(), $screen-&gt;id, $screen);
-        if ( !empty($columns) &amp;&amp; isset($columns[$screen-&gt;id]) )
-                add_screen_option('layout_columns', array('max' =&gt; $columns[$screen-&gt;id]) );
-
-        if ( !isset($wp_current_screen_options['layout_columns']) ) {
-                $screen_layout_columns = 0;
-                return '';
-        }
-
-        $screen_layout_columns = get_user_option(&quot;screen_layout_$screen-&gt;id&quot;);
-        $num = $wp_current_screen_options['layout_columns']['max'];
-
-        if ( ! $screen_layout_columns ) {
-                if ( isset($wp_current_screen_options['layout_columns']['default']) )
-                        $screen_layout_columns = $wp_current_screen_options['layout_columns']['default'];
-                else
-                        $screen_layout_columns = 'auto';
-        }
-
-        $i = 1;
-        $return = '&lt;h5&gt;' . __('Screen Layout') . &quot;&lt;/h5&gt;\n&lt;div class='columns-prefs'&gt;&quot; . __('Number of Columns:') . &quot;\n&quot;;
-        while ( $i &lt;= $num ) {
-                $return .= &quot;&lt;label&gt;&lt;input type='radio' name='screen_columns' value='$i'&quot; . ( ($screen_layout_columns == $i) ? &quot; checked='checked'&quot; : &quot;&quot; ) . &quot; /&gt; $i&lt;/label&gt;\n&quot;;
-                ++$i;
-        }
-        $return .= &quot;&lt;label&gt;&lt;input type='radio' id='wp_auto_columns' name='screen_columns' value='auto'&quot; . ( ($screen_layout_columns == 'auto') ? &quot; checked='checked'&quot; : &quot;&quot; ) . &quot; /&gt;&quot; . __('auto') . &quot;&lt;/label&gt;\n&quot;;
-        $return .= &quot;&lt;/div&gt;\n&quot;;
-        return $return;
-}
-
-/**
- * Register and configure an admin screen option
- *
- * @since 3.1.0
- *
- * @param string $option An option name.
- * @param mixed $args Option dependent arguments
- * @return void
- */
-function add_screen_option( $option, $args = array() ) {
-        global $wp_current_screen_options;
-
-        if ( !isset($wp_current_screen_options) )
-                $wp_current_screen_options = array();
-
-        $wp_current_screen_options[$option] = $args;
-}
-
-function screen_options($screen) {
-        global $wp_current_screen_options;
-
-        if ( is_string($screen) )
-                $screen = convert_to_screen($screen);
-
-        if ( !isset($wp_current_screen_options['per_page']) )
-                return '';
-
-        $per_page_label = $wp_current_screen_options['per_page']['label'];
-
-        if ( empty($wp_current_screen_options['per_page']['option']) ) {
-                $option = str_replace( '-', '_', &quot;{$screen-&gt;id}_per_page&quot; );
-        } else {
-                $option = $wp_current_screen_options['per_page']['option'];
-        }
-
-        $per_page = (int) get_user_option( $option );
-        if ( empty( $per_page ) || $per_page &lt; 1 ) {
-                if ( isset($wp_current_screen_options['per_page']['default']) )
-                        $per_page = $wp_current_screen_options['per_page']['default'];
-                else
-                        $per_page = 20;
-        }
-
-        if ( 'edit_comments_per_page' == $option )
-                $per_page = apply_filters( 'comments_per_page', $per_page, isset($_REQUEST['comment_status']) ? $_REQUEST['comment_status'] : 'all' );
-        elseif ( 'categories_per_page' == $option )
-                $per_page = apply_filters( 'edit_categories_per_page', $per_page );
-        else
-                $per_page = apply_filters( $option, $per_page );
-
-        // Back compat
-        if ( isset( $screen-&gt;post_type ) )
-                $per_page = apply_filters( 'edit_posts_per_page', $per_page, $screen-&gt;post_type );
-
-        $return = &quot;&lt;div class='screen-options'&gt;\n&quot;;
-        if ( !empty($per_page_label) )
-                $return .= &quot;&lt;input type='text' class='screen-per-page' name='wp_screen_options[value]' id='$option' maxlength='3' value='$per_page' /&gt; &lt;label for='$option'&gt;$per_page_label&lt;/label&gt;\n&quot;;
-        $return .= get_submit_button( __( 'Apply' ), 'button', 'screen-options-apply', false );
-        $return .= &quot;&lt;input type='hidden' name='wp_screen_options[option]' value='&quot; . esc_attr($option) . &quot;' /&gt;&quot;;
-        $return .= &quot;&lt;/div&gt;\n&quot;;
-        return $return;
-}
-
-function screen_icon( $screen = '' ) {
-        echo get_screen_icon( $screen );
-}
-
-function get_screen_icon( $screen = '' ) {
-        global $current_screen, $typenow;
-
-        if ( empty($screen) )
-                $screen = $current_screen;
-        elseif ( is_string($screen) )
-                $name = $screen;
-
-        $class = 'icon32';
-
-        if ( empty($name) ) {
-                if ( !empty($screen-&gt;parent_base) )
-                        $name = $screen-&gt;parent_base;
-                else
-                        $name = $screen-&gt;base;
-
-                if ( 'edit' == $name &amp;&amp; isset($screen-&gt;post_type) &amp;&amp; 'page' == $screen-&gt;post_type )
-                        $name = 'edit-pages';
-
-                $post_type = '';
-                if ( isset( $screen-&gt;post_type ) )
-                        $post_type = $screen-&gt;post_type;
-                elseif ( $current_screen == $screen )
-                        $post_type = $typenow;
-                if ( $post_type )
-                        $class .= ' ' . sanitize_html_class( 'icon32-posts-' . $post_type );
-        }
-
-        return '&lt;div id=&quot;icon-' . esc_attr( $name ) . '&quot; class=&quot;' . $class . '&quot;&gt;&lt;br /&gt;&lt;/div&gt;';
-}
-
-/**
</del><span class="cx">  * Test support for compressing JavaScript from PHP
</span><span class="cx">  *
</span><span class="cx">  * Outputs JavaScript that tests if compression from PHP works as expected
</span><span class="lines">@@ -2101,39 +1544,6 @@
</span><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> /**
</span><del>- *  Get the current screen object
- *
- *  @since 3.1.0
- *
- * @return object Current screen object
- */
-function get_current_screen() {
-        global $current_screen;
-
-        if ( !isset($current_screen) )
-                return null;
-
-        return $current_screen;
-}
-
-/**
- * Set the current screen object
- *
- * @since 3.0.0
- *
- * @uses $current_screen
- *
- * @param string $id Screen id, optional.
- */
-function set_current_screen( $id =  '' ) {
-        global $current_screen;
-
-        $current_screen = new WP_Screen( $id );
-
-        $current_screen = apply_filters('current_screen', $current_screen);
-}
-
-/**
</del><span class="cx">  * Echos a submit button, with provided text and appropriate class
</span><span class="cx">  *
</span><span class="cx">  * @since 3.1.0
</span><span class="lines">@@ -2260,101 +1670,4 @@
</span><span class="cx"> //]]&gt;
</span><span class="cx"> &lt;/script&gt;
</span><span class="cx"> &lt;?php
</span><del>-}
-
-class WP_Screen {
-        var $action = '';
-        var $base;
-        var $id;
-        var $is_network;
-        var $is_user;
-        var $parent_base;
-        var $parent_file;
-        var $post_type;
-        var $taxonomy;
-
-        function __construct( $id = '' ) {
-                global $hook_suffix, $typenow, $taxnow;
-
-                $action = '';
-
-                if ( empty( $id ) ) {
-                        $screen = $hook_suffix;
-                        $screen = str_replace('.php', '', $screen);
-                        if ( preg_match('/-add|-new$/', $screen) )
-                                $action = 'add';
-                        $screen = str_replace('-new', '', $screen);
-                        $screen = str_replace('-add', '', $screen);
-                        $this-&gt;id = $this-&gt;base = $screen;
-                } else {
-                        $id = sanitize_key( $id );
-                        if ( false !== strpos($id, '-') ) {
-                                list( $id, $typenow ) = explode('-', $id, 2);
-                                if ( taxonomy_exists( $typenow ) ) {
-                                        $id = 'edit-tags';
-                                        $taxnow = $typenow;
-                                        $typenow = '';
-                                }
-                        }
-                        $this-&gt;id = $this-&gt;base = $id;
-                }
-
-                $this-&gt;action = $action;
-
-                // Map index to dashboard
-                if ( 'index' == $this-&gt;base )
-                        $this-&gt;base = 'dashboard';
-                if ( 'index' == $this-&gt;id )
-                        $this-&gt;id = 'dashboard';
-
-                if ( 'edit' == $this-&gt;id ) {
-                        if ( empty($typenow) )
-                                $typenow = 'post';
-                        $this-&gt;id .= '-' . $typenow;
-                        $this-&gt;post_type = $typenow;
-                } elseif ( 'post' == $this-&gt;id ) {
-                        if ( empty($typenow) )
-                                $typenow = 'post';
-                        $this-&gt;id = $typenow;
-                        $this-&gt;post_type = $typenow;
-                } elseif ( 'edit-tags' == $this-&gt;id ) {
-                        if ( empty($taxnow) )
-                                $taxnow = 'post_tag';
-                        $this-&gt;id = 'edit-' . $taxnow;
-                        $this-&gt;taxonomy = $taxnow;
-                }
-
-                $this-&gt;is_network = is_network_admin();
-                $this-&gt;is_user = is_user_admin();
-
-                if ( $this-&gt;is_network ) {
-                        $this-&gt;base .= '-network';
-                        $this-&gt;id .= '-network';
-                } elseif ( $this-&gt;is_user ) {
-                        $this-&gt;base .= '-user';
-                        $this-&gt;id .= '-user';
-                }
-        }
-
-        function set_parentage( $parent_file ) {
-                $this-&gt;parent_file = $parent_file;
-                $this-&gt;parent_base = preg_replace('/\?.*$/', '', $parent_file);
-                $this-&gt;parent_base = str_replace('.php', '', $this-&gt;parent_base);
-        }
-
-        function add_option( $option, $args = array() ) {
-                return add_screen_option( $option, $args );
-        }
-
-        function add_help_tab( $id, $title, $content) {
-                global $_wp_contextual_help;
-
-                $_wp_contextual_help[$this-&gt;id]['tabs'][] = array( $id, $title, $content );
-        }
-
-        function add_help_sidebar( $content ) {
-                global $_wp_contextual_help;
-
-                $_wp_contextual_help[$this-&gt;id]['sidebar'] = $content;
-        }
</del><span class="cx"> }
</span><span class="cx">\ No newline at end of file
</span></span></pre>
</div>
</div>

</body>
</html>