'items',
'signular' => 'item',
'ajax' => false
) );
$this->prepare_items($this->prepare_condition);
}
private function call_ent ($func, $params=array()) {
return call_user_func_array(array($this->entity, $func), $params);
}
public function prepare_items ($condition=null) {
$this->_column_headers = array(
$this->get_columns(),
array('id'=>'Item Id'),
$this->get_sortable_columns()
);
if ($this->bulk_delete_available and $this->current_action()=='delete' and !empty($_REQUEST['item'])) {
if (!check_admin_referer('bulk-' . $this->_args['plural'])) {
echo "
Unable to delete entities with ids: ".implode(",",$_REQUEST['item']).". Notice error.
";
} elseif (!$this->call_ent('deleteByIds', array($_REQUEST['item']))){ // array_map intval will be called in this function
echo "
Unable to delete entities with ids: ".implode(",",$_REQUEST['item'])."
";
}
}
$sorting = '';
if (in_array(@$_REQUEST['orderby'],array_keys($this->get_sortable_columns())) and
in_array(strtolower($_REQUEST['order']),array('asc','desc'))) {
$sorting = "{$_REQUEST['orderby']} {$_REQUEST['order']}";
}
if (empty($sorting)) $sorting = "id DESC";
$entities = $this->call_ent('getList', array($condition, $sorting));
if (!empty($entities)){
$total = $this->call_ent('getLastRowsCount');
$this->set_pagination_args(array(
'total_items' => $total,
'total_pages' => 1,
'per_page' => $total
));
$this->items=array_map(function($g){
return (array)$g;
},$entities);
}
}
protected function get_bulk_actions() {
if ($this->bulk_delete_available)
return array(
'delete' => "Delete"
);
return array();
}
public function get_columns () {
return array_merge(array(
'cb' => ''
),$this->columns);
}
public function get_sortable_columns() {
$a = array();
foreach($this->sortable_columns as $v) {
$a[$v] = array($v, false);
}
return $a;
}
public function column_cb( $item ) {
return sprintf(
'',
'item',
$item['id']
);
}
public function column_default( $item, $column_name ) {
if ($column_name == 'name') {
return ''.$item[$column_name].'';
}
return $item[$column_name];
}
}