function __construct($arguments) { global $wpdb; extract($arguments); // TODO: Require fields $this->key = $key; $this->name = $name; $this->table_id = piklist::slug($this->name); $this->column = $column; $this->columns = $columns; $this->classes = isset($classes) ? $classes : array('widefat', 'fixed'); $this->sortable_columns = isset($sortable_columns) ? $sortable_columns : false; $this->actions = isset($actions) ? $actions : $this->actions; $this->per_page = isset($per_page) ? $per_page : 10; $this->ajax = isset($ajax) ? $ajax : false; $this->export = isset($export) ? $export : false; if (isset($data)) { $this->data = is_object($data) || is_array($data) ? piklist::object_to_array($data) : $wpdb->get_results($data, ARRAY_A); usort($this->data, array($this, 'data_sort')); $this->current_page = $this->get_pagenum(); $this->total_items = count($this->data); // TODO: If sql use orderby // TODO: Implement offset in sql with current_page } else { $this->data = array(); $this->current_page = 1; $this->total_items = 0; } parent::__construct(array('singular' => piklist::singularize($this->name), 'plural' => piklist::pluralize($this->name), 'ajax' => $this->ajax)); }