1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
|
// Define sort fields
$sortings = array (
'id' => "?:users.user_id",
'username' => "?:users.user_login",
'email' => "?:users.email",
'name' => array("?:users.firstname", "?:users.lastname"),
'date' => "?:users.timestamp",
'type' => "?:users.user_type",
'active' => "?:users.active",
);
$directions = array (
'asc' => 'asc',
'desc' => 'desc'
);
if (empty($params['sort_order']) || empty($directions[$params['sort_order']])) {
$params['sort_order'] = 'asc';
}
if (empty($params['sort_by']) || empty($sortings[$params['sort_by']])) {
$params['sort_by'] = 'name';
}
$sorting = (is_array($sortings[$params['sort_by']]) ? implode(' ' . $directions[$params['sort_order']]. ', ', $sortings[$params['sort_by']]) : $sortings[$params['sort_by']]). " " .$directions[$params['sort_order']];
// Reverse sorting (for usage in view)
$params['sort_order'] = $params['sort_order'] == 'asc' ? 'desc' : 'asc'; |