'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]; } }