";
echo $this->_pagination;
}
/**
* Get a list of columns. The format is internal_name => title
*
* @since 3.1.0
* @access protected
*
* @return array
*/
function get_columns() {
die( 'function WP_List_Table::get_columns() must be over-ridden in a sub-class.' );
}
/**
* Get a list of sortable columns. The format is internal_name => orderby
*
* @since 3.1.0
* @access protected
*
* @return array
*/
function get_sortable_columns() {
return array();
}
/**
* Get a list of hidden columns.
*
* @since 3.1.0
* @access private
*
* @return array
*/
function get_hidden_columns() {
return (array) get_user_option( 'manage' . $this->_screen->id. 'columnshidden' );
}
/**
* Get a list of all, hidden and sortable columns, with filter applied
*
* @since 3.1.0
* @access protected
*
* @return array
*/
function get_column_headers() {
if ( !isset( $this->_column_headers ) ) {
$columns = apply_filters( 'manage_' . $this->_screen->id . '_columns', $this->get_columns() );
$sortable = apply_filters( 'manage_' . $this->_screen->id . '_sortable_columns', $this->get_sortable_columns() );
$hidden = $this->get_hidden_columns();
$this->_column_headers = array( $columns, $hidden, $sortable );
}
return $this->_column_headers;
}
/**
* Print column headers, accounting for hidden and sortable columns.
*
* @since 3.1.0
* @access protected
*/
function print_column_headers( $with_id = true ) {
$screen = $this->_screen;
list( $columns, $hidden, $sortable ) = $this->get_column_headers();
$styles = array();
$current_url = ( is_ssl() ? 'https://' : 'http://' ) . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI'];
if ( isset( $_GET['orderby'] ) )
$current_orderby = $_GET['orderby'];
else
$current_orderby = '';
if ( isset( $_GET['order'] ) && 'desc' == $_GET['order'] )
$current_order = 'desc';
else
$current_order = 'asc';
foreach ( $columns as $column_key => $column_display_name ) {
$class = array( 'manage-column', "column-$column_key" );
$style = '';
if ( in_array( $column_key, $hidden ) )
$style = 'display:none;';
if ( isset( $styles[$screen->id] ) && isset( $styles[$screen->id][$column_key] ) )
$style .= ' ' . $styles[$screen->id][$column_key];
$style = ' style="' . $style . '"';
if ( 'cb' == $column_key )
$class[] = 'check-column';
elseif ( in_array( $column_key, array( 'posts', 'comments', 'links' ) ) )
$class[] = 'num';
if ( isset( $sortable[$column_key] ) ) {
$orderby = $sortable[$column_key];
if ( $current_orderby == $orderby ) {
$order = 'asc' == $current_order ? 'desc' : 'asc';
$class[] = "sorted-$current_order";
} else {
$order = 'asc';
$class[] = 'sortable';
}
$column_display_name = '' . $column_display_name . '';
$column_display_name .= '';
}
$id = $with_id ? "id='$column_key'" : '';
if ( !empty( $class ) )
$class = "class='" . join( ' ', $class ) . "'";
echo "
$column_display_name
";
}
}
/**
* Display the table or a message if there are no items
*
* @since 3.1.0
* @access public
*/
function display() {
if ( $this->has_items() ) {
$this->display_table();
} else {
echo ' ';
echo '
';
$this->no_items();
echo '
';
}
}
/**
* Get a list of CSS classes for the
tag
*
* @since 3.1.0
* @access protected
*
* @return array
*/
function get_table_classes() {
extract( $this->_args );
return array( 'widefat', 'fixed', $plural );
}
/**
* Display the full table
*
* @since 3.1.0
* @access public
*/
function display_table() {
extract( $this->_args );
$this->display_tablenav( 'top' );
?>
print_column_headers(); ?>
print_column_headers( false ); ?>
>
display_rows(); ?>
display_tablenav( 'bottom' );
}
/**
* Generate the table navigation above or below the table
*
* @since 3.1.0
* @access protected
*/
function display_tablenav( $which ) {
if ( 'top' == $which )
wp_nonce_field( 'bulk-' . $this->_args['plural'] );
?>