'user_id', __('Last Name') => 'user_name', __('First Name') => 'user_firstname', __('Display name') => 'user_displayname', __('Number of entries') => 'nb_post' ]; $sortby_lex = [ // key in sorty_combo (see above) => field in SQL request 'user_id' => 'U.user_id', 'user_name' => 'user_name', 'user_firstname' => 'user_firstname', 'user_displayname' => 'user_displayname']; $order_combo = [ __('Descending') => 'desc', __('Ascending') => 'asc' ]; # Actions combo box $combo_action = [ __('Set permissions') => 'blogs', __('Delete') => 'deleteuser' ]; # --BEHAVIOR-- adminUsersActionsCombo $core->callBehavior('adminUsersActionsCombo', [&$combo_action]); $show_filters = false; #?Get users $page = !empty($_GET['page']) ? max(1, (integer) $_GET['page']) : 1; $nb_per_page = 30; if (!empty($_GET['nb']) && (integer) $_GET['nb'] > 0) { if ($nb_per_page != (integer) $_GET['nb']) { $show_filters = true; } $nb_per_page = (integer) $_GET['nb']; } $q = !empty($_GET['q']) ? $_GET['q'] : ''; $sortby = !empty($_GET['sortby']) ? $_GET['sortby'] : 'user_id'; $order = !empty($_GET['order']) ? $_GET['order'] : 'asc'; $params['limit'] = [(($page - 1) * $nb_per_page), $nb_per_page]; # - Search filter if ($q) { $params['q'] = $q; $show_filters = true; } # - Sortby and order filter if ($sortby !== '' && in_array($sortby, $sortby_combo, true)) { if (array_key_exists($sortby, $sortby_lex)) { $params['order'] = $core->con->lexFields($sortby_lex[$sortby]); } else { $params['order'] = $sortby; } if ($order !== '' && in_array($order, $order_combo, true)) { $params['order'] .= ' ' . $order; } else { $order = 'asc'; } } else { $sortby = 'user_id'; $order = 'asc'; } if ($sortby != 'user_id' || $order != 'asc') { $show_filters = true; } # Get users try { $rs = $core->getUsers($params); $counter = $core->getUsers($params, 1); $rsStatic = $rs->toStatic(); if ($sortby != 'nb_post') { // Sort user list using lexical order if necessary $rsStatic->extend('rsExtUser'); $rsStatic = $rsStatic->toExtStatic(); $rsStatic->lexicalSort($sortby, $order); } $user_list = new adminUserList($core, $rsStatic, $counter->f(0)); } catch (Exception $e) { $core->error->add($e->getMessage()); } /* DISPLAY -------------------------------------------------------- */ dcPage::open(__('Users'), dcPage::jsLoad('js/_users.js') . dcPage::jsFilterControl($show_filters), dcPage::breadcrumb( [ __('System') => '', __('Users') => '' ]) ); if (!$core->error->flag()) { if (!empty($_GET['del'])) { dcPage::message(__('User has been successfully removed.')); } if (!empty($_GET['upd'])) { dcPage::message(__('The permissions have been successfully updated.')); } echo '

' . __('New user') . '

' . '
' . '

' . __('Show filters and display options') . '

' . '
' . '
' . '

' . __('Filters') . '

' . '

' . form::field('q', 20, 255, html::escapeHTML($q)) . '

' . '
' . '
' . '

' . __('Display options') . '

' . '

' . form::combo('sortby', $sortby_combo, $sortby) . '

' . '

' . form::combo('order', $order_combo, $order) . '

' . '

' . __('Show') . '

' . '
' . '
' . '

' . '

' . //Opera sucks '
'; # Show users $user_list->display($page, $nb_per_page, '
' . '%s' . '
' . '

' . '

' . '' . form::hidden(['q'], html::escapeHTML($q)) . form::hidden(['sortby'], $sortby) . form::hidden(['order'], $order) . form::hidden(['page'], $page) . form::hidden(['nb'], $nb_per_page) . $core->formNonce() . '

' . '
' . '
', $show_filters ); } dcPage::helpBlock('core_users'); dcPage::close();