';
$output .= Groups_Admin::render_messages();
$row_count = isset( $_POST['row_count'] ) ? intval( $_POST['row_count'] ) : 0;
if ($row_count <= 0) {
$row_count = Groups_Options::get_user_option( 'groups_per_page', GROUPS_GROUPS_PER_PAGE );
} else {
Groups_Options::update_user_option('groups_per_page', $row_count );
}
$offset = isset( $_GET['offset'] ) ? intval( $_GET['offset'] ) : 0;
if ( $offset < 0 ) {
$offset = 0;
}
$paged = isset( $_REQUEST['paged'] ) ? intval( $_REQUEST['paged'] ) : 0;
if ( $paged < 0 ) {
$paged = 0;
}
$orderby = isset( $_GET['orderby'] ) ? $_GET['orderby'] : null;
switch ( $orderby ) {
case 'group_id' :
case 'name' :
case 'description' :
break;
default:
$orderby = 'name';
}
$order = isset( $_GET['order'] ) ? $_GET['order'] : null;
switch ( $order ) {
case 'asc' :
case 'ASC' :
$switch_order = 'DESC';
break;
case 'desc' :
case 'DESC' :
$switch_order = 'ASC';
break;
default:
$order = 'ASC';
$switch_order = 'DESC';
}
$filters = array( " 1=%d " );
$filter_params = array( 1 );
if ( $group_id ) {
$filters[] = " $group_table.group_id = %d ";
$filter_params[] = $group_id;
}
if ( $group_name ) {
$filters[] = " $group_table.name LIKE '%%%s%%' ";
$filter_params[] = $group_name;
}
if ( !empty( $filters ) ) {
$filters = " WHERE " . implode( " AND ", $filters );
} else {
$filters = '';
}
$count_query = $wpdb->prepare( "SELECT COUNT(*) FROM $group_table $filters", $filter_params );
$count = $wpdb->get_var( $count_query );
if ( $count > $row_count ) {
$paginate = true;
} else {
$paginate = false;
}
$pages = ceil ( $count / $row_count );
if ( $paged > $pages ) {
$paged = $pages;
}
if ( $paged != 0 ) {
$offset = ( $paged - 1 ) * $row_count;
}
$query = $wpdb->prepare(
"SELECT * FROM $group_table
$filters
ORDER BY $orderby $order
LIMIT $row_count OFFSET $offset",
$filter_params
);
$results = $wpdb->get_results( $query, OBJECT );
$column_display_names = array(
'group_id' => __( 'ID', 'groups' ),
'name' => __( 'Group', 'groups' ),
'description' => __( 'Description', 'groups' ),
'capabilities' => __( 'Capabilities', 'groups' )
);
$output .= '
';
$output .=
'
' .
'' .
'
';
if ( $paginate ) {
require_once( GROUPS_CORE_LIB . '/class-groups-pagination.php' );
$pagination = new Groups_Pagination( $count, null, $row_count );
$output .= '
';
}
$output .= '
';
$output .= '
';
$output .= '
';
$capability_table = _groups_get_tablename( "capability" );
$group_capability_table = _groups_get_tablename( "group_capability" );
// capabilities select
$capabilities = $wpdb->get_results( "SELECT * FROM $capability_table ORDER BY capability" );
$capabilities_select = sprintf(
'
';
$capabilities_select .= Groups_UIE::render_select( '.select.capability' );
$output .= '
'; // #groups-action
if ( $paginate ) {
require_once( GROUPS_CORE_LIB . '/class-groups-pagination.php' );
$pagination = new Groups_Pagination($count, null, $row_count);
$output .= '
';
$output .= $pagination->pagination( 'bottom' );
$output .= '
';
}
$output .= '