Eliminate use of `extract()` in `WP_List_Table::pagination()`:

* Set variables instead of extracting `$this->_pagination_args`
* Weird: `$infinite_scroll` is only presently set in subclasses of `WP_List_Table` and never initialized otherwise. 		

See #22400.


git-svn-id: https://develop.svn.wordpress.org/trunk@28389 602fd350-edb4-49c9-b593-d223f7449a82
This commit is contained in:
Scott Taylor 2014-05-13 05:26:34 +00:00
parent 31e187faa3
commit 7c0e12f5c6
1 changed files with 20 additions and 12 deletions

View File

@ -517,10 +517,16 @@ class WP_List_Table {
* @access protected
*/
function pagination( $which ) {
if ( empty( $this->_pagination_args ) )
if ( empty( $this->_pagination_args ) ) {
return;
}
extract( $this->_pagination_args, EXTR_SKIP );
$total_items = $this->_pagination_args['total_items'];
$total_pages = $this->_pagination_args['total_pages'];
$infinite_scroll = false;
if ( isset( $this->_pagination_args['infinite_scroll'] ) ) {
$infinite_scroll = $this->_pagination_args['infinite_scroll'];
}
$output = '<span class="displaying-num">' . sprintf( _n( '1 item', '%s items', $total_items ), number_format_i18n( $total_items ) ) . '</span>';
@ -533,11 +539,12 @@ class WP_List_Table {
$page_links = array();
$disable_first = $disable_last = '';
if ( $current == 1 )
if ( $current == 1 ) {
$disable_first = ' disabled';
if ( $current == $total_pages )
}
if ( $current == $total_pages ) {
$disable_last = ' disabled';
}
$page_links[] = sprintf( "<a class='%s' title='%s' href='%s'>%s</a>",
'first-page' . $disable_first,
esc_attr__( 'Go to the first page' ),
@ -552,15 +559,15 @@ class WP_List_Table {
'&lsaquo;'
);
if ( 'bottom' == $which )
if ( 'bottom' == $which ) {
$html_current_page = $current;
else
} else {
$html_current_page = sprintf( "<input class='current-page' title='%s' type='text' name='paged' value='%s' size='%d' />",
esc_attr__( 'Current page' ),
$current,
strlen( $total_pages )
);
}
$html_total_pages = sprintf( "<span class='total-pages'>%s</span>", number_format_i18n( $total_pages ) );
$page_links[] = '<span class="paging-input">' . sprintf( _x( '%1$s of %2$s', 'paging' ), $html_current_page, $html_total_pages ) . '</span>';
@ -579,15 +586,16 @@ class WP_List_Table {
);
$pagination_links_class = 'pagination-links';
if ( ! empty( $infinite_scroll ) )
if ( ! empty( $infinite_scroll ) ) {
$pagination_links_class = ' hide-if-js';
}
$output .= "\n<span class='$pagination_links_class'>" . join( "\n", $page_links ) . '</span>';
if ( $total_pages )
if ( $total_pages ) {
$page_class = $total_pages < 2 ? ' one-page' : '';
else
} else {
$page_class = ' no-pages';
}
$this->_pagination = "<div class='tablenav-pages{$page_class}'>$output</div>";
echo $this->_pagination;