Pressbooks\Admin\Network_Managers_List_Table::prepare_items PHP Метод

prepare_items() публичный Метод

************************************************************************ Prepare data for display
public prepare_items ( )
    function prepare_items()
    {
        global $wpdb;
        /**
         * Define column headers.
         */
        $columns = $this->get_columns();
        $hidden = array();
        $sortable = $this->get_sortable_columns();
        /**
         * Build column header array.
         */
        $this->_column_headers = array($columns, $hidden, $sortable);
        /**
         * Check for sorting input and sort the data in our array accordingly.
         */
        $data = $wpdb->get_results("SELECT * FROM {$wpdb->sitemeta} WHERE meta_key = 'site_admins'");
        // Get site admins
        $data = maybe_unserialize($data[0]->meta_value);
        if (!is_array($data)) {
            $data = array($data);
        }
        $restricted = $wpdb->get_results("SELECT * FROM {$wpdb->sitemeta} WHERE meta_key = 'pressbooks_network_managers'");
        // Get restricted site admins (network managers)
        if ($restricted) {
            $restricted = maybe_unserialize($restricted[0]->meta_value);
        } else {
            $restricted = array();
        }
        $tmp = array();
        foreach ($data as $id => $username) {
            $user = get_user_by('slug', $username);
            $user = $user->data;
            $is_restricted = in_array($user->ID, $restricted) ? true : false;
            // Determine admin's restricted status
            $tmp[$id] = array('ID' => $user->ID, 'user_login' => $user->user_login, 'display_name' => $user->display_name, 'user_email' => $user->user_email, 'restricted' => $is_restricted);
        }
        $data = $tmp;
        usort($data, function ($a, $b) {
            $orderby = !empty($_REQUEST['orderby']) ? $_REQUEST['orderby'] : 'user_login';
            $order = !empty($_REQUEST['order']) ? $_REQUEST['order'] : 'asc';
            $result = strcmp($a[$orderby], $b[$orderby]);
            return 'asc' === $order ? $result : -$result;
        });
        $this->items = $data;
        // Return our data
    }