'Languages', // do not translate (used for css class) 'ajax' => false )); } /* * displays the item information in a column (default case) * * @since 0.1 * * @param object $item * @param string $column_name * @return string */ function column_default($item, $column_name) { return $item->$column_name; } /* * displays the item information in the column 'name' * displays the edit and delete links * * @since 0.1 * * @param object $item * @return string */ function column_name($item) { return $item->name . $this->row_actions(array( 'edit' => sprintf( '%s', esc_url(admin_url('admin.php?page=mlang&pll_action=edit&lang=' . $item->term_id)), __('Edit','polylang') ), 'delete' => sprintf( '%s', wp_nonce_url('?page=mlang&pll_action=delete&noheader=true&lang=' . $item->term_id, 'delete-lang'), __('You are about to permanently delete this language. Are you sure?', 'polylang'), __('Delete','polylang') ) )); } /* * gets the list of columns * * @since 0.1 * * @return array the list of column titles */ function get_columns() { return array( 'name' => __('Full name', 'polylang'), 'locale' => __('Locale', 'polylang'), 'slug' => __('Code', 'polylang'), 'term_group' => __('Order', 'polylang'), 'flag' => __('Flag', 'polylang'), 'count' => __('Posts', 'polylang') ); } /* * gets the list of sortable columns * * @since 0.1 * * @return array */ function get_sortable_columns() { return array( 'name' => array('name', true), // sorted by name by default 'locale' => array('locale', false), 'slug' => array('slug', false), 'term_group' => array('term_group', false), 'count' => array('count', false) ); } /* * prepares the list of items for displaying * * @since 0.1 * * @param array $data */ function prepare_items($data = array()) { $per_page = $this->get_items_per_page('pll_lang_per_page'); $this->_column_headers = array($this->get_columns(), array(), $this->get_sortable_columns()); function usort_reorder($a, $b){ $orderby = !empty($_REQUEST['orderby']) ? $_REQUEST['orderby'] : 'name'; $result = strcmp($a->$orderby, $b->$orderby); // determine sort order return (empty($_REQUEST['order']) || $_REQUEST['order'] == 'asc') ? $result : -$result; // send final sort direction to usort }; usort($data, 'usort_reorder'); $total_items = count($data); $this->items = array_slice($data, ($this->get_pagenum() - 1) * $per_page, $per_page); $this->set_pagination_args(array( 'total_items' => $total_items, 'per_page' => $per_page, 'total_pages' => ceil($total_items/$per_page) )); } }