auth: store global user metadata in User object
[minimedit.git] / login / list.php
index 1f049d84494fc84eb59323cae6e97ddaa47801dc..698b805dc30bb9989e4bb780be94d50aa05b0957 100644 (file)
@@ -8,24 +8,37 @@ foreach ($users as $col => $userdir) {
        $users[$col] = new User($userdir);
 }
 
-if (@$Place['order'] == 'seen') {
-       $order = array_map(function ($col) { return $col->seen; }, $users);
-#      $order = array_column($users, 'seen');  #TODO php7 simplification
-       array_multisort($order, SORT_DESC, SORT_NUMERIC, $users);
+if (isset($Place['order'])) {
+       $ordercol = $Place['order'];
+       $order = array_map(function ($row) use ($ordercol) {
+               return $row->$ordercol;
+       }, $users);
+#      $order = array_column($users, $ordercol);  #TODO php7 simplification
+       if ($ordercol == 'seen') {
+               array_multisort($order, SORT_DESC, SORT_NUMERIC, $users);
+               $users = array_intersect_key($users, array_filter($order));
+       }
+       else {
+               array_multisort($order, SORT_ASC, SORT_NATURAL, $users);
+       }
+}
+
+if (isset($Place['n'])) {
+       array_splice($users, $Place['n']);  # limit number of results
 }
 
 print '<ul';
 if (@$Place['view'] == 'avatar') {
        print ' class="gallery cat"';
 }
-else {
+elseif (count($users) > 5) {
        print ' class="cols"';
 }
 print ">\n";
 
 foreach ($users as $user) {
        $name = $user->name ?: $user->login;
-       if (!empty($GLOBALS['User']['admin'])) {
+       if ($GLOBALS['User'] and $GLOBALS['User']->admin) {
                $link = '/login/edit/'.$user->login;
                $name = sprintf('<a href="%s">%s</a>', $link, $name);
        }
@@ -52,8 +65,9 @@ foreach ($users as $user) {
                # continue to default
        default:
                if ($user->admin) {
-                       $name .= ' <em>(beheerder)</em>';
+                       $name .= ' <span class="icon admin" title="beheerder">&#x1F527;</span>';
                }
+               $name = "<div>$name</div>";
        }
 
        print "<li>$name</li>\n";