File: /var/www/html/wp-content/plugins/master-slider/admin/includes/classes/class-msp-list-table.php
<?php //
class MSP_List_Table extends Axiom_List_Table {
function __construct(){
//Set parent defaults
parent::__construct( array(
'singular' => 'slider', // singular name of the listed records
'plural' => 'sliders', // plural name of the listed records
'ajax' => false // does this table support ajax?
) );
}
function get_columns(){
$columns = array(
'ID' => __('ID' , 'master-slider' ),
'title' => __('Name' , 'master-slider' ),
'shortcode' => __('Shortcode', 'master-slider' ),
'slides_num' => __('Slides', 'master-slider' ),
'type' => __('Type', 'master-slider' ),
'date_modified' => __('Last Modify', 'master-slider' ),
'date_created' => __('Date Created', 'master-slider' ),
'action' => __('Action', 'master-slider' )
);
return $columns;
}
function get_sortable_columns() {
$sortable_columns = array(
'ID' => array('ID',false),
'date_created' => array('date_created' ,false),
'date_modified' => array('date_modified',false)
);
return $sortable_columns;
}
function column_title( $item ) {
return sprintf(
'<a href="%s">%s</a>',
esc_url( add_query_arg(
array(
'page' => sanitize_text_field( $_GET['page'] ),
'action' => 'edit',
'slider_id' => $item['ID' ]
)
)),
esc_html( $item['title'] )
);
}
function column_action( $item ) {
$paged = $this->get_pagenum();
$paged = (int)$paged > 1 ? $paged : '';
$buttons = '';
if( current_user_can( 'duplicate_masterslider' ) || apply_filters( 'masterslider_admin_display_duplicate_btn', 0 ) ){
$buttons .= sprintf(
'<a class="action-duplicate msp-ac-btn msp-btn-gray msp-iconic" href="%s"><span></span>%s</a>',
esc_url( add_query_arg(
array(
'page' => sanitize_text_field( $_GET['page'] ),
'action' => 'duplicate',
'slider_id' => $item['ID'],
'paged' => $paged
)
)),
__('duplicate')
);
}
if( current_user_can( 'delete_masterslider' ) || apply_filters( 'masterslider_admin_display_delete_btn', 0 ) ) {
$buttons .= sprintf(
'<a class="action-delete msp-ac-btn msp-btn-red msp-iconic" href="%s" onClick="return confirm(\'%s\');" ><span></span>%s</a>',
esc_url( add_query_arg(
array(
'page' => sanitize_text_field( $_GET['page'] ),
'action' => 'delete',
'slider_id' => $item['ID'],
'paged' => $paged
)
)),
wp_slash(
apply_filters( 'masterslider_admin_delete_btn_alert_message', __( 'Are you sure you want to delete this slider?' , 'master-slider' ) )
),
__('delete')
);
}
$buttons .= sprintf(
'<a class="action-preview msp-ac-btn msp-btn-blue msp-iconic" href="%s" onClick="lunchMastersliderPreviewBySliderID(%s);return false;" ><span></span>%s</a>',
esc_url( add_query_arg(
array(
'page' => sanitize_text_field( $_GET['page'] ),
'action' => 'preview',
'slider_id' => $item['ID']
)
)),
$item['ID'],
__('preview')
);
return $buttons;
}
function process_bulk_action() {
$slider_id = isset( $_REQUEST['slider_id'] ) ? sanitize_text_field( $_REQUEST['slider_id'] ) : '';
// check if a delete request recieved
if( current_user_can( 'delete_masterslider' ) && 'delete' === $this->current_action() ) {
global $mspdb;
$mspdb->delete_slider( $slider_id );
msp_save_custom_styles();
// flush slider cache if slider cache is enabled
msp_flush_slider_cache( $slider_id );
} else {
add_action( 'admin_notices', array( $this, 'delete_error_notice' ) );
}
// check if a duplicate request recieved
if( current_user_can( 'duplicate_masterslider' ) && 'duplicate' === $this->current_action() ) {
global $mspdb;
$mspdb->duplicate_slider( $slider_id );
msp_save_custom_styles();
// flush slider cache if slider cache is enabled
msp_flush_slider_cache( $slider_id );
} else {
add_action( 'admin_notices', array( $this, 'duplicate_error_notice' ) );
}
}
function delete_error_notice () {
printf( '<div class="error" style="display:block;" ><p>%s</p></div>',
apply_filters( 'masterslider_delete_insufficient_permissions_notice', __( "Sorry, You don't have enough permission to delete slider.", 'master-slider' ) )
);
}
function duplicate_error_notice () {
printf( '<div class="error" style="display:block;" ><p>%s</p></div>',
apply_filters( 'masterslider_duplicate_insufficient_permissions_notice', __( "Sorry, You don't have enough permission to duplicate slider.", 'master-slider' ) )
);
}
function no_items() {
_e( 'No slider found.', 'master-slider' );
}
function column_default( $item, $column_name ) {
global $mspdb;
switch( $column_name ) {
case 'shortcode':
return sprintf('[masterslider id="%s"]', $item['ID']);
case 'date_modified':
$orig_time = isset( $item['date_modified'] ) ? strtotime($item['date_modified']) : '';
$time = date_i18n( 'Y/m/d @ g:i:s A', $orig_time );
$human = human_time_diff( $orig_time );
return sprintf( '<abbr title="%s">%s</abbr>', $time, $human . __(' ago', 'master-slider') ) ;
case 'date_created':
$orig_time = isset( $item['date_created'] ) ? strtotime($item['date_created']) : '';
$date = date_i18n( 'Y/m/d', $orig_time );
$time = date_i18n( 'Y/m/d @ g:i:s A', $orig_time );
return sprintf( '<abbr title="%s">%s</abbr>', $time, $date );
case 'slides_num':
global $mspdb;
return $mspdb->get_slider_field_val( $item['ID'], 'slides_num' );
case 'ID':
case 'title':
return $item[ $column_name ];
default:
return;
//return print_r( $item, true ) ; //Show the whole array for troubleshooting purposes
}
}
function get_records( $perpage = 20, $paged = 1, $orderby = 'ID', $order = 'DESC', $where = "status='published'" ){
global $mspdb;
$offset = ( (int)$paged - 1 ) * $perpage;
$orderby = isset( $_REQUEST['orderby'] ) ? sanitize_sql_orderby( $_REQUEST['orderby'] ) : 'ID';
$order = isset( $_REQUEST['order'] ) ? sanitize_text_field( $_REQUEST['order'] ) : 'ASC';
$search = isset( $_REQUEST['s'] ) ? " AND title LIKE '%%" . sanitize_text_field( $_REQUEST['s'] ) . "%%'" : '';
return $mspdb->get_sliders( $perpage, $offset, $orderby, $order, $where.$search );
}
function get_total_count(){
global $mspdb;
$all_items = $this->get_records( 0 );
return ! empty( $all_items ) && is_array( $all_items ) ? count( $all_items ) : 0;
}
function prepare_items() {
$columns = $this->get_columns();
$hidden = array();
$sortable = $this->get_sortable_columns();
$this->_column_headers = array( $columns, $hidden, $sortable );
$this->process_bulk_action();
$perpage = (int) apply_filters( 'masterslider_admin_sliders_per_page', 10 );
$current_page = $this->get_pagenum();
$orderby = 'ID';
$order = 'DESC';
$total_items = $this->get_total_count();
$this->items = $this->get_records( $perpage, $current_page, $orderby, $order );
// echo '<pre>'; print_r( $this->items ); echo '</pre>';
// tell the class the total number of items and how many items to show on a page
$this->set_pagination_args( array(
'total_items' => $total_items,
'per_page' => $perpage
));
}
}
// global $master_list_table;
// $master_list_table = new Master_List_Table();
// $master_list_table->prepare_items();