Use add_option() method, introduce add_option_context() method for adding specific text above the screen options, see #18690

git-svn-id: http://svn.automattic.com/wordpress/trunk@18867 1a063a9b-81f0-0310-95a4-ce76da25c4cd
This commit is contained in:
azaozz 2011-10-03 04:00:57 +00:00
parent dbd18bea3d
commit bbafdfa0e5
21 changed files with 226 additions and 190 deletions

View File

@ -1506,15 +1506,13 @@ form.upgrade .hint {
#screen-options-wrap h5, #screen-options-wrap h5,
#contextual-help-wrap h5 { #contextual-help-wrap h5 {
margin: 8px 0; margin: 12px 0 2px;
font-size: 13px; font-size: 13px;
} }
.metabox-prefs label { .metabox-prefs label {
display: inline-block;
padding-right: 15px; padding-right: 15px;
white-space: nowrap; white-space: nowrap;
line-height: 30px;
} }
.metabox-prefs label input { .metabox-prefs label input {

View File

@ -109,11 +109,8 @@ if ( $post_id )
else else
$title = __('Comments'); $title = __('Comments');
add_screen_option( 'per_page', array('label' => _x( 'Comments', 'comments per page (screen options)' )) ); $current_screen->add_option( 'per_page', array('label' => _x( 'Comments', 'comments per page (screen options)' )) );
$current_screen->add_option_context( '<p>test</p>' );
$current_screen->add_screen_options(
'<p>test</p>'
);
add_contextual_help( $current_screen, '<p>' . __( 'You can manage comments made on your site similar to the way you manage Posts and other content. This screen is customizable in the same ways as other management screens, and you can act on comments using the on-hover action links or the Bulk Actions.' ) . '</p>' . add_contextual_help( $current_screen, '<p>' . __( 'You can manage comments made on your site similar to the way you manage Posts and other content. This screen is customizable in the same ways as other management screens, and you can act on comments using the on-hover action links or the Bulk Actions.' ) . '</p>' .
'<p>' . __( 'A yellow row means the comment is waiting for you to moderate it.' ) . '</p>' . '<p>' . __( 'A yellow row means the comment is waiting for you to moderate it.' ) . '</p>' .

View File

@ -161,7 +161,7 @@ do_action('do_meta_boxes', $post_type, 'side', $post);
$current_screen->add_option('layout_columns', array('max' => 2, 'default' => 'auto') ); $current_screen->add_option('layout_columns', array('max' => 2, 'default' => 'auto') );
$current_screen->add_screen_options( $current_screen->add_option_context(
'<p>test</p>' '<p>test</p>'
); );

View File

@ -37,9 +37,9 @@ do_action('do_meta_boxes', 'link', 'normal', $link);
do_action('do_meta_boxes', 'link', 'advanced', $link); do_action('do_meta_boxes', 'link', 'advanced', $link);
do_action('do_meta_boxes', 'link', 'side', $link); do_action('do_meta_boxes', 'link', 'side', $link);
add_screen_option('layout_columns', array('max' => 2, 'default' => 'auto') ); $current_screen->add_option('layout_columns', array('max' => 2, 'default' => 'auto') );
$current_screen->add_screen_options( $current_screen->add_option_context(
'<p>test</p>' '<p>test</p>'
); );

View File

@ -28,9 +28,9 @@ if ( 'post' != $post_type ) {
$submenu_file = "edit-tags.php?taxonomy=$taxonomy"; $submenu_file = "edit-tags.php?taxonomy=$taxonomy";
} }
add_screen_option( 'per_page', array('label' => $title, 'default' => 20, 'option' => 'edit_' . $tax->name . '_per_page') ); $current_screen->add_option( 'per_page', array('label' => $title, 'default' => 20, 'option' => 'edit_' . $tax->name . '_per_page') );
$current_screen->add_screen_options( $current_screen->add_option_context(
'<p>test</p>' '<p>test</p>'
); );

View File

@ -148,11 +148,8 @@ wp_enqueue_script('inline-edit-post');
$title = $post_type_object->labels->name; $title = $post_type_object->labels->name;
add_screen_option( 'per_page', array('label' => $title, 'default' => 20) ); $current_screen->add_option( 'per_page', array('label' => $title, 'default' => 20) );
$current_screen->add_option_context( '<p>test</p>' );
$current_screen->add_screen_options(
'<p>test</p>'
);
if ( 'post' == $post_type ) { if ( 'post' == $post_type ) {
add_contextual_help($current_screen, add_contextual_help($current_screen,

View File

@ -14,7 +14,7 @@
* @param string|object $screen The screen you want the headers for * @param string|object $screen The screen you want the headers for
* @return array Containing the headers in the format id => UI String * @return array Containing the headers in the format id => UI String
*/ */
function get_column_headers( $screen ) { function get_column_headers( $screen ) { // TODO: fold into WP_Screen
if ( is_string( $screen ) ) if ( is_string( $screen ) )
$screen = convert_to_screen( $screen ); $screen = convert_to_screen( $screen );
@ -35,7 +35,7 @@ function get_column_headers( $screen ) {
* @param string|object $screen The screen you want the hidden columns for * @param string|object $screen The screen you want the hidden columns for
* @return array * @return array
*/ */
function get_hidden_columns( $screen ) { function get_hidden_columns( $screen ) { // TODO: fold into WP_Screen
if ( is_string( $screen ) ) if ( is_string( $screen ) )
$screen = convert_to_screen( $screen ); $screen = convert_to_screen( $screen );
@ -49,7 +49,7 @@ function get_hidden_columns( $screen ) {
* *
* @param unknown_type $screen * @param unknown_type $screen
*/ */
function meta_box_prefs($screen) { function meta_box_prefs($screen) { // TODO: fold into WP_Screen
global $wp_meta_boxes; global $wp_meta_boxes;
if ( is_string($screen) ) if ( is_string($screen) )
@ -85,7 +85,7 @@ function meta_box_prefs($screen) {
* @param string|object $screen Screen identifier * @param string|object $screen Screen identifier
* @return array Hidden Meta Boxes * @return array Hidden Meta Boxes
*/ */
function get_hidden_meta_boxes( $screen ) { function get_hidden_meta_boxes( $screen ) { // TODO: fold into WP_Screen
if ( is_string( $screen ) ) if ( is_string( $screen ) )
$screen = convert_to_screen( $screen ); $screen = convert_to_screen( $screen );
@ -108,7 +108,7 @@ function get_hidden_meta_boxes( $screen ) {
* *
* @since 2.7.0 * @since 2.7.0
*/ */
function favorite_actions( $screen = null ) { function favorite_actions( $screen = null ) { // TODO: deprecate and remove?
$default_action = false; $default_action = false;
if ( is_string($screen) ) if ( is_string($screen) )
@ -223,7 +223,7 @@ function favorite_actions( $screen = null ) {
* @param string $screen The name of the screen * @param string $screen The name of the screen
* @return object An object containing the safe screen name and id * @return object An object containing the safe screen name and id
*/ */
function convert_to_screen( $screen ) { function convert_to_screen( $screen ) { // TODO: fold into WP_Screen
$screen = str_replace( array('.php', '-new', '-add', '-network', '-user' ), '', $screen); $screen = str_replace( array('.php', '-new', '-add', '-network', '-user' ), '', $screen);
if ( is_network_admin() ) if ( is_network_admin() )
@ -231,7 +231,7 @@ function convert_to_screen( $screen ) {
elseif ( is_user_admin() ) elseif ( is_user_admin() )
$screen .= '-user'; $screen .= '-user';
$screen = (string) apply_filters( 'screen_meta_screen', $screen ); // why do we need this? $screen = (string) apply_filters( 'screen_meta_screen', $screen );
$screen = (object) array('id' => $screen, 'base' => $screen); $screen = (object) array('id' => $screen, 'base' => $screen);
return $screen; return $screen;
} }
@ -245,10 +245,8 @@ function convert_to_screen( $screen ) {
* *
* @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 string $screen The handle for the screen to add help to. This is usually the hook name returned by the add_*_page() functions.
* @param string $help The content of a 'Screen Info' help tab. * @param string $help The content of a 'Screen Info' help tab.
*
* @todo: deprecate?
*/ */
function add_contextual_help($screen, $help) { function add_contextual_help($screen, $help) { // TODO: deprecate
global $_wp_contextual_help; global $_wp_contextual_help;
if ( is_string($screen) ) if ( is_string($screen) )
@ -269,7 +267,7 @@ function add_contextual_help($screen, $help) {
* @param mixed $args Option dependent arguments * @param mixed $args Option dependent arguments
* @return void * @return void
*/ */
function add_screen_option( $option, $args = array() ) { function add_screen_option( $option, $args = array() ) { // TODO: set deprecated
$current_screen = get_current_screen(); $current_screen = get_current_screen();
if ( ! $current_screen ) if ( ! $current_screen )
@ -278,11 +276,11 @@ function add_screen_option( $option, $args = array() ) {
return $current_screen->add_option( $option, $args ); return $current_screen->add_option( $option, $args );
} }
function screen_icon( $screen = '' ) { function screen_icon( $screen = '' ) { // TODO: fold into WP_Screen
echo get_screen_icon( $screen ); echo get_screen_icon( $screen );
} }
function get_screen_icon( $screen = '' ) { function get_screen_icon( $screen = '' ) { // TODO: fold into WP_Screen
global $current_screen, $typenow; global $current_screen, $typenow;
if ( empty($screen) ) if ( empty($screen) )
@ -341,9 +339,12 @@ function get_current_screen() {
function set_current_screen( $id = '' ) { function set_current_screen( $id = '' ) {
global $current_screen; global $current_screen;
if ( is_a( $current_screen, 'WP_Screen' ) )
return;
$current_screen = new WP_Screen( $id ); $current_screen = new WP_Screen( $id );
$current_screen = apply_filters('current_screen', $current_screen); // why do we need this? $current_screen = apply_filters('current_screen', $current_screen);
} }
/** /**
@ -464,17 +465,19 @@ final class WP_Screen {
* @var array * @var array
* @access private * @access private
*/ */
private $_options = array(); private $_options = array(
'_context' => '',
'_screen_settings' => ''
);
/** /**
* Stores the result of the public show_screen_options function. * Show screen options if any.
* *
* @since 3.3.0 * @since 3.3.0
* @var bool * @var bool
* @access private * @access private
*/ */
private $_show_screen_options; private $_show_options = false;
/** /**
* Stores the 'screen_settings' section of screen options. * Stores the 'screen_settings' section of screen options.
@ -483,7 +486,7 @@ final class WP_Screen {
* @var string * @var string
* @access private * @access private
*/ */
private $_screen_settings; private $_screen_settings = '';
/** /**
* Constructor * Constructor
@ -500,15 +503,19 @@ final class WP_Screen {
if ( empty( $id ) ) { if ( empty( $id ) ) {
$screen = $hook_suffix; $screen = $hook_suffix;
$screen = str_replace('.php', '', $screen); $screen = str_replace('.php', '', $screen);
if ( preg_match('/-add|-new$/', $screen) ) if ( preg_match('/-add|-new$/', $screen) )
$action = 'add'; $action = 'add';
$screen = str_replace('-new', '', $screen); $screen = str_replace('-new', '', $screen);
$screen = str_replace('-add', '', $screen); $screen = str_replace('-add', '', $screen);
$this->id = $this->base = $screen; $this->id = $this->base = $screen;
} else { } else {
$id = sanitize_key( $id ); $id = sanitize_key( $id );
if ( false !== strpos($id, '-') ) { if ( false !== strpos($id, '-') ) {
list( $id, $typenow ) = explode('-', $id, 2); list( $id, $typenow ) = explode('-', $id, 2);
if ( taxonomy_exists( $typenow ) ) { if ( taxonomy_exists( $typenow ) ) {
$id = 'edit-tags'; $id = 'edit-tags';
$taxnow = $typenow; $taxnow = $typenow;
@ -523,22 +530,26 @@ final class WP_Screen {
// Map index to dashboard // Map index to dashboard
if ( 'index' == $this->base ) if ( 'index' == $this->base )
$this->base = 'dashboard'; $this->base = 'dashboard';
if ( 'index' == $this->id ) if ( 'index' == $this->id )
$this->id = 'dashboard'; $this->id = 'dashboard';
if ( 'edit' == $this->id ) { if ( 'edit' == $this->id ) {
if ( empty($typenow) ) if ( empty($typenow) )
$typenow = 'post'; $typenow = 'post';
$this->id .= '-' . $typenow; $this->id .= '-' . $typenow;
$this->post_type = $typenow; $this->post_type = $typenow;
} elseif ( 'post' == $this->id ) { } elseif ( 'post' == $this->id ) {
if ( empty($typenow) ) if ( empty($typenow) )
$typenow = 'post'; $typenow = 'post';
$this->id = $typenow; $this->id = $typenow;
$this->post_type = $typenow; $this->post_type = $typenow;
} elseif ( 'edit-tags' == $this->id ) { } elseif ( 'edit-tags' == $this->id ) {
if ( empty($taxnow) ) if ( empty($taxnow) )
$taxnow = 'post_tag'; $taxnow = 'post_tag';
$this->id = 'edit-' . $taxnow; $this->id = 'edit-' . $taxnow;
$this->taxonomy = $taxnow; $this->taxonomy = $taxnow;
} }
@ -571,27 +582,44 @@ final class WP_Screen {
/** /**
* Adds an option for the screen. * Adds an option for the screen.
* Call this in template files after admin.php is loaded and before admin-header.php is loaded to add screen options. * Use the 'add_screen_help_and_options' action to add screen options.
* *
* @since 3.3.0 * @since 3.3.0
* *
* @param string $option Option ID * @param string $option Option ID
* @param array $args Associative array of arguments particular to the given $option. * @param mixed $args Associative array of arguments particular to the default $option or the HTML string to be printed in the Screen Options tab.
*/ */
public function add_option( $option, $args = array() ) { public function add_option( $option = false, $args ) {
if ( is_array($args) && !empty($option) )
$this->_options[ $option ] = $args; $this->_options[ $option ] = $args;
elseif ( is_string($args) )
$this->_options['_screen_settings'] .= $args;
$this->_show_options = true;
}
/**
* Adds option context.
* Use the 'add_screen_help_and_options' action to add it. Will not be shown if there aren't any screen options.
*
* @since 3.3.0
*
* @param string $text
*/
public function add_option_context( $text ) {
$this->_options['_context'] .= $text;
} }
/** /**
* Add a help tab to the contextual help for the screen. * Add a help tab to the contextual help for the screen.
* Call this in template files after admin.php is loaded and before admin-header.php is loaded to add contextual help tabs. * Use the 'add_screen_help_and_options' action to add contextual help tabs.
* *
* @since 3.3.0 * @since 3.3.0
* *
* @param array $args * @param array $args
* - string - title - Title for the tab. * - string - title - Title for the tab.
* - string - id - Tab ID.
* - string - section - Section title for the tab. Optional. * - string - section - Section title for the tab. Optional.
* - string - id - Tab ID. Optional.
* - string - content - Help tab content in plain text or HTML. Optional. * - string - content - Help tab content in plain text or HTML. Optional.
* - callback - callback - A callback to generate the tab content. Optional. * - callback - callback - A callback to generate the tab content. Optional.
* *
@ -599,33 +627,30 @@ final class WP_Screen {
public function add_help_tab( $args ) { public function add_help_tab( $args ) {
$defaults = array( $defaults = array(
'title' => false, 'title' => false,
'section' => false,
'id' => false, 'id' => false,
'section' => false,
'content' => '', 'content' => '',
'callback' => false, 'callback' => false
); );
$args = wp_parse_args( $args, $defaults ); $args = wp_parse_args( $args, $defaults );
// Ensure we have a title. // Ensure we have title and ID.
if ( ! $args['title'] ) if ( ! $args['title'] || ! $args['id'] )
return; return;
// Create an id from the title if one is not provided.
if ( ! $args['id'] )
$args['id'] = sanitize_html_class( $args['title'] );
$this->_help_tabs[] = $args; $this->_help_tabs[] = $args;
} }
/** /**
* Add a sidebar to the contextual help for the screen. * Add a sidebar to the contextual help for the screen.
* Call this in template files after admin.php is loaded and before admin-header.php is loaded to add a sidebar to the contextual help. * Use the 'add_screen_help_and_options' action to add a sidebar to the contextual help.
* *
* @since 3.3.0 * @since 3.3.0
* *
* @param string $content Sidebar content in plain text or HTML. * @param string $content Sidebar content in plain text or HTML.
*/ */
public function add_help_sidebar( $content ) { public function add_help_sidebar( $content ) {
if ( empty($this->_help_sidebar) ) // add only one
$this->_help_sidebar = $content; $this->_help_sidebar = $content;
} }
@ -639,19 +664,23 @@ final class WP_Screen {
public function render_screen_meta() { public function render_screen_meta() {
global $_wp_contextual_help; global $_wp_contextual_help;
do_action('add_screen_help_and_options');
// Call old contextual_help_list filter. // Call old contextual_help_list filter.
if ( ! isset( $_wp_contextual_help ) ) if ( ! isset( $_wp_contextual_help ) )
$_wp_contextual_help = array(); $_wp_contextual_help = array();
$_wp_contextual_help = apply_filters( 'contextual_help_list', $_wp_contextual_help, $this ); // why are we filtering a global? $_wp_contextual_help = apply_filters( 'contextual_help_list', $_wp_contextual_help, $this );
if ( isset( $_wp_contextual_help[ $this->id ] ) ) { if ( isset( $_wp_contextual_help[ $this->id ] ) ) {
// Call old contextual_help filter. // Call old contextual_help filter.
// why are we filtering the same global second time??
$contextual_help = apply_filters( 'contextual_help', $_wp_contextual_help[ $this->id ], $this->id, $this ); $contextual_help = apply_filters( 'contextual_help', $_wp_contextual_help[ $this->id ], $this->id, $this );
$this->add_help_tab( array( $this->add_help_tab( array(
'title' => __('Screen Info'), 'title' => __('Screen Info'),
'content' => $contextual_help, 'id' => 'screen-info',
'content' => $_wp_contextual_help[ $this->id ]
) ); ) );
} }
@ -661,33 +690,56 @@ final class WP_Screen {
<div id="contextual-help-wrap" class="hidden"> <div id="contextual-help-wrap" class="hidden">
<div class="contextual-help-tabs"> <div class="contextual-help-tabs">
<ul> <ul>
<?php foreach ( $this->_help_tabs as $i => $tab ): <?php
$link_id = "tab-link-{$tab['id']}";
$panel_id = "tab-panel-{$tab['id']}";
$classes = ( $i == 0 ) ? 'active' : '';
?>
<li id="<?php echo esc_attr( $link_id ); ?>" class="<?php echo esc_attr( $classes ); ?>"> if ( $this->_show_options ) {
<a href="<?php echo esc_url( "#$panel_id" ); ?>"> $class = true;
?>
<li id="tab-link-screen-options" class="active">
<a href="#tab-panel-screen-options">
<?php _e('Screen Options'); ?>
</a>
</li>
<?php
}
foreach ( $this->_help_tabs as $i => $tab ) {
$id = esc_attr($tab['id']);
$class = empty($class) && $i == 0 ? ' class="active"' : '';
?>
<li id="<?php echo "tab-link-$id"; ?>"<?php echo $class; ?>>
<a href="<?php echo "#tab-panel-$id"; ?>">
<?php echo esc_html( $tab['title'] ); ?> <?php echo esc_html( $tab['title'] ); ?>
</a> </a>
</li> </li>
<?php endforeach; ?> <?php } ?>
</ul> </ul>
</div> </div>
<?php
<div class="contextual-help-sidebar"> if ( $this->_help_sidebar )
<?php echo $this->_help_sidebar; ?> echo '<div class="contextual-help-sidebar">' . $this->_help_sidebar . '</div>';
</div>
?>
<div class="contextual-help-tabs-wrap"> <div class="contextual-help-tabs-wrap">
<?php foreach ( $this->_help_tabs as $i => $tab ): <?php
$panel_id = "tab-panel-{$tab['id']}";
$classes = ( $i == 0 ) ? 'active' : ''; if ( $this->_show_options ) {
$classes .= ' help-tab-content'; $class2 = true;
echo '<div id="tab-panel-screen-options" class="help-tab-content active">';
if ( !empty($this->_options['_context']) )
echo $this->_options['_context'];
$this->render_screen_options();
echo '</div>';
}
foreach ( $this->_help_tabs as $i => $tab ) {
$class2 = empty($class2) && $i == 0 ? ' active' : '';
?> ?>
<div id="<?php echo esc_attr( $panel_id ); ?>" class="<?php echo esc_attr( $classes ); ?>"> <div id="<?php echo esc_attr( "tab-panel-{$tab['id']}" ); ?>" class="help-tab-content<?php echo $class2; ?>">
<?php <?php
if ( $tab['section'] ) if ( $tab['section'] )
echo '<h3>' . esc_html( $tab['section'] ) . '</h3>'; echo '<h3>' . esc_html( $tab['section'] ) . '</h3>';
@ -700,84 +752,59 @@ final class WP_Screen {
call_user_func( $tab['callback'], $this ); call_user_func( $tab['callback'], $this );
?> ?>
</div> </div>
<?php endforeach; ?> <?php } ?>
</div> </div>
</div> </div>
</div> </div>
<?php <?php
} }
public function show_screen_options() { // not needed?
global $wp_meta_boxes, $wp_list_table;
if ( is_bool( $this->_show_screen_options ) )
return $this->_show_screen_options;
$columns = get_column_headers( $this );
$show_screen = false;
if ( ! empty( $wp_meta_boxes[ $this->id ] ) || ! empty( $columns ) )
$show_screen = true;
// Check if there are per-page options.
$show_screen = $show_screen || isset( $this->_options['per_page'] );
$this->_screen_settings = apply_filters( 'screen_settings', '', $this );
switch ( $this->id ) {
case 'widgets':
$this->_screen_settings = '<p><a id="access-on" href="widgets.php?widgets-access=on">' . __('Enable accessibility mode') . '</a><a id="access-off" href="widgets.php?widgets-access=off">' . __('Disable accessibility mode') . "</a></p>\n";
$show_screen = true;
break;
}
if ( ! empty( $this->_screen_settings ) )
$show_screen = true;
if ( ! empty( $this->_options ) )
$show_screen = true;
$this->_show_screen_options = apply_filters( 'screen_options_show_screen', $show_screen, $this );
return $this->_show_screen_options;
}
public function add_screen_options($before = '') {
$this->add_help_tab( array(
'title' => __('Screen Options'),
'id' => 'screen-options',
'callback' => array( $this, 'render_screen_options' ),
'content' => $before
));
}
/** /**
* Render the screen options tab. * Render the screen options tab.
* *
* @since 3.3.0 * @since 3.3.0
*/ */
public function render_screen_options() { public function render_screen_options() {
global $wp_meta_boxes, $wp_list_table;
$columns = get_column_headers( $this ); $screen_settings = $this->_options['_screen_settings'];
$hidden = get_hidden_columns( $this );
$this->_screen_settings = apply_filters( 'screen_settings', '', $this );
// Default screen_settings for various screens.
// TODO: should probably be set on these screens, not here.
switch ( $this->id ) { switch ( $this->id ) {
case 'widgets': case 'widgets':
$this->_screen_settings = '<p><a id="access-on" href="widgets.php?widgets-access=on">' . __('Enable accessibility mode') . '</a><a id="access-off" href="widgets.php?widgets-access=off">' . __('Disable accessibility mode') . "</a></p>\n"; $screen_settings .= '<p><a id="access-on" href="widgets.php?widgets-access=on">' . __('Enable accessibility mode') . '</a><a id="access-off" href="widgets.php?widgets-access=off">' . __('Disable accessibility mode') . "</a></p>\n";
break; break;
} }
// TODO: deprecate
$screen_settings = apply_filters( 'screen_settings', $screen_settings, $this );
?> ?>
<form id="adv-settings" action="" method="post"> <form id="adv-settings" action="" method="post">
<?php if ( isset( $wp_meta_boxes[ $this->id ] ) ) : ?> <?php
<h5><?php _ex('Show on screen', 'Metaboxes') ?></h5>
<div class="metabox-prefs"> $this->render_table_columns_prefs();
<?php meta_box_prefs( $this ); ?> $this->render_metabox_prefs();
<br class="clear" /> $this->render_screen_layout();
</div> $this->render_per_page_options();
<?php endif; echo $screen_settings;
if ( ! empty( $columns ) ) : ?>
wp_nonce_field( 'screen-options-nonce', 'screenoptionnonce', false ); ?>
</form>
<?php
}
/**
* Render the option for hiding table columns on the page
*
* @since 3.3.0
*/
function render_table_columns_prefs() {
$columns = get_column_headers( $this );
if ( ! empty( $columns ) ) {
$hidden = get_hidden_columns( $this );
?>
<h5><?php echo ( isset( $columns['_title'] ) ? $columns['_title'] : _x('Show on screen', 'Columns') ) ?></h5> <h5><?php echo ( isset( $columns['_title'] ) ? $columns['_title'] : _x('Show on screen', 'Columns') ) ?></h5>
<div class="metabox-prefs"> <div class="metabox-prefs">
<?php <?php
@ -792,6 +819,7 @@ final class WP_Screen {
if ( 'comments' == $column ) if ( 'comments' == $column )
$title = __( 'Comments' ); $title = __( 'Comments' );
$id = "$column-hide"; $id = "$column-hide";
echo '<label for="' . $id . '">'; echo '<label for="' . $id . '">';
echo '<input class="hide-column-tog" name="' . $id . '" type="checkbox" id="' . $id . '" value="' . $column . '"' . checked( !in_array($column, $hidden), true, false ) . ' />'; echo '<input class="hide-column-tog" name="' . $id . '" type="checkbox" id="' . $id . '" value="' . $column . '"' . checked( !in_array($column, $hidden), true, false ) . ' />';
@ -800,17 +828,27 @@ final class WP_Screen {
?> ?>
<br class="clear" /> <br class="clear" />
</div> </div>
<?php endif; <?php }
}
$this->render_screen_layout(); /**
$this->render_per_page_options(); * Render the option for hiding metaboxes on the page
echo $this->_screen_settings; *
* @since 3.3.0
*/
function render_metabox_prefs() {
global $wp_meta_boxes;
if ( isset( $wp_meta_boxes[ $this->id ] ) ) {
?> ?>
<div><?php wp_nonce_field( 'screen-options-nonce', 'screenoptionnonce', false ); ?></div> <h5><?php _ex('Show on screen', 'Metaboxes') ?></h5>
</form> <div class="metabox-prefs">
<?php meta_box_prefs( $this ); ?>
<br class="clear" />
</div>
<?php <?php
} }
}
/** /**
* Render the option for number of columns on the page * Render the option for number of columns on the page
@ -821,10 +859,11 @@ final class WP_Screen {
global $screen_layout_columns; global $screen_layout_columns;
// Back compat for plugins using the filter instead of add_screen_option() // Back compat for plugins using the filter instead of add_screen_option()
// TODO: deprecate it
$columns = apply_filters( 'screen_layout_columns', array(), $this->id, $this ); $columns = apply_filters( 'screen_layout_columns', array(), $this->id, $this );
if ( ! empty( $columns ) && isset( $columns[ $this->id ] ) ) if ( ! empty( $columns ) && isset( $columns[ $this->id ] ) )
add_screen_option( 'layout_columns', array('max' => $columns[ $this->id ] ) ); $this->add_option( 'layout_columns', array('max' => $columns[ $this->id ] ) );
if ( ! isset( $this->_options['layout_columns'] ) ) { if ( ! isset( $this->_options['layout_columns'] ) ) {
$screen_layout_columns = 0; $screen_layout_columns = 0;
@ -869,7 +908,7 @@ final class WP_Screen {
* @since 3.3.0 * @since 3.3.0
*/ */
function render_per_page_options() { function render_per_page_options() {
if ( ! isset( $this->_options['per_page'] ) ) if ( empty( $this->_options['per_page'] ) )
return; return;
$per_page_label = $this->_options['per_page']['label']; $per_page_label = $this->_options['per_page']['label'];
@ -919,3 +958,4 @@ final class WP_Screen {
<?php <?php
} }
} }

View File

@ -23,61 +23,65 @@ $title = __('Dashboard');
$parent_file = 'index.php'; $parent_file = 'index.php';
if ( is_user_admin() ) if ( is_user_admin() )
add_screen_option('layout_columns', array('max' => 4, 'default' => 1) ); $current_screen->add_option('layout_columns', array('max' => 4, 'default' => 1) );
else else
add_screen_option('layout_columns', array('max' => 4, 'default' => 'auto') ); $current_screen->add_option('layout_columns', array('max' => 4, 'default' => 'auto') );
$current_screen->add_screen_options( $current_screen->add_option_context(
'<p>test</p>' '<p>test</p>'
); );
// Help tabs // Help tabs
$help_overview = '<p>' . __('Welcome to your WordPress Dashboard! This is the screen you will see when you log in to your site, and gives you access to all the site management features of WordPress. You can get help for any screen by clicking the Help tab in the top bar.') . '</p>'; $help = '<p>' . __('Welcome to your WordPress Dashboard! This is the screen you will see when you log in to your site, and gives you access to all the site management features of WordPress. You can get help for any screen by clicking the Help tab in the top bar.') . '</p>';
$current_screen->add_help_tab( array( $current_screen->add_help_tab( array(
'title' => __('Overview'), 'title' => __('Overview'),
'content' => $help_overview, 'id' => 'overview',
'content' => $help
) ); ) );
$help_navigation = '<p>' . __('The left-hand navigation menu provides links to all of the WordPress administration screens, with submenu items displayed on hover. You can minimize this menu to a narrow icon strip by clicking on the Collapse Menu arrow at the bottom.') . '</p>'; $help = '<p>' . __('The left-hand navigation menu provides links to all of the WordPress administration screens, with submenu items displayed on hover. You can minimize this menu to a narrow icon strip by clicking on the Collapse Menu arrow at the bottom.') . '</p>
$help_navigation .= '<p>' . __('Links in the &#8220;admin bar&#8221; at the top of the screen connect your dashboard and the front end of your site, and provide access to your profile and helpful WordPress information.') . '</p>'; <p>' . __('Links in the &#8220;admin bar&#8221; at the top of the screen connect your dashboard and the front end of your site, and provide access to your profile and helpful WordPress information.') . '</p>';
$current_screen->add_help_tab( array( $current_screen->add_help_tab( array(
'title' => __('Navigation'), 'title' => __('Navigation'),
'content' => $help_navigation, 'id' => 'navigation',
'content' => $help
) ); ) );
$help_layout = '<p>' . __('You can use the following controls to arrange your Dashboard screen to suit your workflow. This is true on most other administration screens as well.') . '</p>'; $help = '<p>' . __('You can use the following controls to arrange your Dashboard screen to suit your workflow. This is true on most other administration screens as well.') . '</p>
$help_layout .= '<p>' . __('<strong>Screen Options</strong> - Use the Screen Options tab to choose which Dashboard boxes to show, and how many columns to display.') . '</p>'; <p>' . __('<strong>Screen Options</strong> - Use the Screen Options tab to choose which Dashboard boxes to show, and how many columns to display.') . '</p>
$help_layout .= '<p>' . __('<strong>Drag and Drop</strong> - To rearrange the boxes, drag and drop by clicking on the title bar of the selected box and releasing when you see a gray dotted-line rectangle appear in the location you want to place the box.') . '</p>'; <p>' . __('<strong>Drag and Drop</strong> - To rearrange the boxes, drag and drop by clicking on the title bar of the selected box and releasing when you see a gray dotted-line rectangle appear in the location you want to place the box.') . '</p>
$help_layout .= '<p>' . __('<strong>Box Controls</strong> - Click the title bar of the box to expand or collapse it. In addition, some box have configurable content, and will show a &#8220;Configure&#8221; link in the title bar if you hover over it.') . '</p>'; <p>' . __('<strong>Box Controls</strong> - Click the title bar of the box to expand or collapse it. In addition, some box have configurable content, and will show a &#8220;Configure&#8221; link in the title bar if you hover over it.') . '</p>';
$current_screen->add_help_tab( array( $current_screen->add_help_tab( array(
'title' => __('Layout'), 'title' => __('Layout'),
'content' => $help_layout, 'id' => 'layout',
'content' => $help
) ); ) );
$help_content = '<p>' . __('The boxes on your Dashboard screen are:') . '</p>'; $help = '<p>' . __('The boxes on your Dashboard screen are:') . '</p>
$help_content .= '<p>' . __('<strong>Right Now</strong> - Displays a summary of the content on your site and identifies which theme and version of WordPress you are using.') . '</p>'; <p>' . __('<strong>Right Now</strong> - Displays a summary of the content on your site and identifies which theme and version of WordPress you are using.') . '</p>
$help_content .= '<p>' . __('<strong>Recent Comments</strong> - Shows the most recent comments on your posts (configurable, up to 30) and allows you to moderate them.') . '</p>'; <p>' . __('<strong>Recent Comments</strong> - Shows the most recent comments on your posts (configurable, up to 30) and allows you to moderate them.') . '</p>
$help_content .= '<p>' . __('<strong>Incoming Links</strong> - Shows links to your site found by Google Blog Search.') . '</p>'; <p>' . __('<strong>Incoming Links</strong> - Shows links to your site found by Google Blog Search.') . '</p>
$help_content .= '<p>' . __('<strong>QuickPress</strong> - Allows you to create a new post and either publish it or save it as a draft.') . '</p>'; <p>' . __('<strong>QuickPress</strong> - Allows you to create a new post and either publish it or save it as a draft.') . '</p>
$help_content .= '<p>' . __('<strong>Recent Drafts</strong> - Displays links to the 5 most recent draft posts you&#8217;ve started.') . '</p>'; <p>' . __('<strong>Recent Drafts</strong> - Displays links to the 5 most recent draft posts you&#8217;ve started.') . '</p>
$help_content .= '<p>' . __('<strong>WordPress Blog</strong> - Latest news from the official WordPress project.') . '</p>'; <p>' . __('<strong>WordPress Blog</strong> - Latest news from the official WordPress project.') . '</p>
$help_content .= '<p>' . __('<strong>Other WordPress News</strong> - Shows the <a href="http://planet.wordpress.org" target="_blank">WordPress Planet</a> feed. You can configure it to show a different feed of your choosing.') . '</p>'; <p>' . __('<strong>Other WordPress News</strong> - Shows the <a href="http://planet.wordpress.org" target="_blank">WordPress Planet</a> feed. You can configure it to show a different feed of your choosing.') . '</p>
$help_content .= '<p>' . __('<strong>Plugins</strong> - Features the most popular, newest, and recently updated plugins from the WordPress.org Plugin Directory.') . '</p>'; <p>' . __('<strong>Plugins</strong> - Features the most popular, newest, and recently updated plugins from the WordPress.org Plugin Directory.') . '</p>';
$current_screen->add_help_tab( array( $current_screen->add_help_tab( array(
'title' => __('Content'), 'title' => __('Content'),
'content' => $help_content, 'id' => 'content',
'content' => $help
) ); ) );
$current_screen->add_help_sidebar( $current_screen->add_help_sidebar('
'<p><strong>' . __( 'For more information:' ) . '</strong></p>' . <p><strong>' . __( 'For more information:' ) . '</strong></p>
'<p>' . __( '<a href="http://codex.wordpress.org/Dashboard_Screen" target="_blank">Documentation on Dashboard</a>' ) . '</p>' . <p>' . __( '<a href="http://codex.wordpress.org/Dashboard_Screen" target="_blank">Documentation on Dashboard</a>' ) . '</p>
'<p>' . __( '<a href="http://wordpress.org/support/" target="_blank">Support Forums</a>' ) . '</p>' <p>' . __( '<a href="http://wordpress.org/support/" target="_blank">Support Forums</a>' ) . '</p>
); ');
include (ABSPATH . 'wp-admin/admin-header.php'); include (ABSPATH . 'wp-admin/admin-header.php');

View File

@ -40,7 +40,7 @@ $wp_list_table->prepare_items();
$title = __('Links'); $title = __('Links');
$this_file = $parent_file = 'link-manager.php'; $this_file = $parent_file = 'link-manager.php';
$current_screen->add_screen_options( $current_screen->add_option_context(
'<p>test</p>' '<p>test</p>'
); );

View File

@ -445,7 +445,7 @@ wp_initial_nav_menu_meta_boxes();
if ( ! current_theme_supports( 'menus' ) && ! wp_get_nav_menus() ) if ( ! current_theme_supports( 'menus' ) && ! wp_get_nav_menus() )
$messages[] = '<div id="message" class="updated"><p>' . __('The current theme does not natively support menus, but you can use the &#8220;Custom Menu&#8221; widget to add any menus you create here to the theme&#8217;s sidebar.') . '</p></div>'; $messages[] = '<div id="message" class="updated"><p>' . __('The current theme does not natively support menus, but you can use the &#8220;Custom Menu&#8221; widget to add any menus you create here to the theme&#8217;s sidebar.') . '</p></div>';
$current_screen->add_screen_options( $current_screen->add_option_context(
'<p>test</p>' '<p>test</p>'
); );

View File

@ -38,9 +38,9 @@ wp_enqueue_script( 'dashboard' );
wp_enqueue_script( 'plugin-install' ); wp_enqueue_script( 'plugin-install' );
add_thickbox(); add_thickbox();
add_screen_option('layout_columns', array('max' => 4, 'default' => 'auto') ); $current_screen->add_option('layout_columns', array('max' => 4, 'default' => 'auto') );
$current_screen->add_screen_options( $current_screen->add_option_context(
'<p>test</p>' '<p>test</p>'
); );

View File

@ -122,9 +122,9 @@ if ( isset( $_GET['action'] ) && 'update-site' == $_GET['action'] ) {
} }
add_thickbox(); add_thickbox();
add_screen_option( 'per_page', array( 'label' => _x( 'Themes', 'themes per page (screen options)' ) ) ); $current_screen->add_option( 'per_page', array( 'label' => _x( 'Themes', 'themes per page (screen options)' ) ) );
$current_screen->add_screen_options( $current_screen->add_option_context(
'<p>test</p>' '<p>test</p>'
); );

View File

@ -153,9 +153,9 @@ if ( isset( $_GET['action'] ) && 'update-site' == $_GET['action'] ) {
exit(); exit();
} }
add_screen_option( 'per_page', array( 'label' => _x( 'Users', 'users per page (screen options)' ) ) ); $current_screen->add_option( 'per_page', array( 'label' => _x( 'Users', 'users per page (screen options)' ) ) );
$current_screen->add_screen_options( $current_screen->add_option_context(
'<p>test</p>' '<p>test</p>'
); );

View File

@ -22,9 +22,9 @@ $pagenum = $wp_list_table->get_pagenum();
$title = __( 'Sites' ); $title = __( 'Sites' );
$parent_file = 'sites.php'; $parent_file = 'sites.php';
add_screen_option( 'per_page', array('label' => _x( 'Sites', 'sites per page (screen options)' )) ); $current_screen->add_option( 'per_page', array('label' => _x( 'Sites', 'sites per page (screen options)' )) );
$current_screen->add_screen_options( $current_screen->add_option_context(
'<p>test</p>' '<p>test</p>'
); );

View File

@ -173,9 +173,9 @@ $wp_list_table->prepare_items();
add_thickbox(); add_thickbox();
add_screen_option( 'per_page', array('label' => _x( 'Themes', 'themes per page (screen options)' )) ); $current_screen->add_option( 'per_page', array('label' => _x( 'Themes', 'themes per page (screen options)' )) );
$current_screen->add_screen_options( $current_screen->add_option_context(
'<p>test</p>' '<p>test</p>'
); );

View File

@ -227,9 +227,9 @@ if ( $pagenum > $total_pages && $total_pages > 0 ) {
$title = __( 'Users' ); $title = __( 'Users' );
$parent_file = 'users.php'; $parent_file = 'users.php';
add_screen_option( 'per_page', array('label' => _x( 'Users', 'users per page (screen options)' )) ); $current_screen->add_option( 'per_page', array('label' => _x( 'Users', 'users per page (screen options)' )) );
$current_screen->add_screen_options( $current_screen->add_option_context(
'<p>test</p>' '<p>test</p>'
); );

View File

@ -35,7 +35,7 @@ $body_id = $tab;
do_action('install_plugins_pre_' . $tab); //Used to override the general interface, Eg, install or plugin information. do_action('install_plugins_pre_' . $tab); //Used to override the general interface, Eg, install or plugin information.
$current_screen->add_screen_options( $current_screen->add_option_context(
'<p>test</p>' '<p>test</p>'
); );

View File

@ -316,9 +316,9 @@ $wp_list_table->prepare_items();
wp_enqueue_script('plugin-install'); wp_enqueue_script('plugin-install');
add_thickbox(); add_thickbox();
add_screen_option( 'per_page', array('label' => _x( 'Plugins', 'plugins per page (screen options)' )) ); $current_screen->add_option( 'per_page', array('label' => _x( 'Plugins', 'plugins per page (screen options)' )) );
$current_screen->add_screen_options( $current_screen->add_option_context(
'<p>test</p>' '<p>test</p>'
); );

View File

@ -137,9 +137,9 @@ wp_enqueue_script( 'wp-ajax-response' );
wp_enqueue_script( 'jquery-ui-draggable' ); wp_enqueue_script( 'jquery-ui-draggable' );
wp_enqueue_script( 'media' ); wp_enqueue_script( 'media' );
add_screen_option( 'per_page', array('label' => _x( 'Media items', 'items per page (screen options)' )) ); $current_screen->add_option( 'per_page', array('label' => _x( 'Media items', 'items per page (screen options)' )) );
$current_screen->add_screen_options( $current_screen->add_option_context(
'<p>test</p>' '<p>test</p>'
); );

View File

@ -17,9 +17,9 @@ $pagenum = $wp_list_table->get_pagenum();
$title = __('Users'); $title = __('Users');
$parent_file = 'users.php'; $parent_file = 'users.php';
add_screen_option( 'per_page', array('label' => _x( 'Users', 'users per page (screen options)' )) ); $current_screen->add_option( 'per_page', array('label' => _x( 'Users', 'users per page (screen options)' )) );
$current_screen->add_screen_options( $current_screen->add_option_context(
'<p>test</p>' '<p>test</p>'
); );

View File

@ -31,7 +31,7 @@ do_action( 'sidebar_admin_setup' );
$title = __( 'Widgets' ); $title = __( 'Widgets' );
$parent_file = 'themes.php'; $parent_file = 'themes.php';
$current_screen->add_screen_options( $current_screen->add_option_context(
'<p>test</p>' '<p>test</p>'
); );