diff --git a/controllers/UsersController.inc b/controllers/UsersController.inc index dad84df3..8bc0f09f 100644 --- a/controllers/UsersController.inc +++ b/controllers/UsersController.inc @@ -54,11 +54,13 @@ { // Set filters $sortorder = 'username'; + $username = null; $page = 1; if($this->request->getRequestMethod() == 'GET') { $sortorder = $this->request->getGetParam('sortorder'); $sortorder = !empty($sortorder) ? $sortorder : 'username'; + $username = (!is_null($this->request->getGetParam('username'))) ? $this->request->getGetParam('username') : $username; $page = $this->request->getGetParam('page'); $page = !empty($page) ? intval($page) : 1; } @@ -67,7 +69,7 @@ $limit = ($all != 'all') ? \nre\configs\AppConfig::$misc['lists_limit'] : null; $offset = ($all != 'all') ? max((intval($page) - 1), 0) * $limit : 0; $usersCount = $this->Users->getUsersCount(); - $users = $this->Users->getUsers($sortorder, $limit, $offset); + $users = $this->Users->getUsers($sortorder, $username, $limit, $offset); foreach($users as &$user) { $user['roles'] = array_map(function($r) { return $r['name']; }, $this->Userroles->getUserrolesForUserById($user['id'])); } diff --git a/locale/de_DE/LC_MESSAGES/The Legend of Z.mo b/locale/de_DE/LC_MESSAGES/The Legend of Z.mo index e9eb3dcd..4ef7e39b 100644 Binary files a/locale/de_DE/LC_MESSAGES/The Legend of Z.mo and b/locale/de_DE/LC_MESSAGES/The Legend of Z.mo differ diff --git a/locale/de_DE/LC_MESSAGES/The Legend of Z.po b/locale/de_DE/LC_MESSAGES/The Legend of Z.po index 9a4df4af..b4f63436 100644 --- a/locale/de_DE/LC_MESSAGES/The Legend of Z.po +++ b/locale/de_DE/LC_MESSAGES/The Legend of Z.po @@ -1,8 +1,8 @@ msgid "" msgstr "" "Project-Id-Version: The Legend of Z\n" -"POT-Creation-Date: 2014-06-24 20:53+0100\n" -"PO-Revision-Date: 2014-06-24 20:53+0100\n" +"POT-Creation-Date: 2014-06-24 21:29+0100\n" +"PO-Revision-Date: 2014-06-24 21:29+0100\n" "Last-Translator: \n" "Language-Team: \n" "Language: de_DE\n" @@ -18,31 +18,31 @@ msgstr "" "X-Poedit-SearchPath-2: controllers\n" #: controllers/CharactersController.inc:382 -#: controllers/UsersController.inc:312 views/ajax/characters/index.tpl:10 +#: controllers/UsersController.inc:314 views/ajax/characters/index.tpl:10 #: views/ajax/users/index.tpl:10 views/html/characters/index.tpl:39 #: views/html/characters/manage.tpl:35 views/html/characters/manage.tpl:50 #: views/html/characters/manage.tpl:58 views/html/userroles/user.tpl:5 -#: views/html/users/index.tpl:26 views/html/users/manage.tpl:28 +#: views/html/users/index.tpl:30 views/html/users/manage.tpl:28 #: views/html/users/manage.tpl:41 views/html/users/manage.tpl:49 msgid "Admin" msgstr "Administrator" #: controllers/CharactersController.inc:388 -#: controllers/UsersController.inc:318 views/ajax/characters/index.tpl:12 +#: controllers/UsersController.inc:320 views/ajax/characters/index.tpl:12 #: views/ajax/users/index.tpl:12 views/html/characters/index.tpl:40 #: views/html/characters/manage.tpl:36 views/html/characters/manage.tpl:51 #: views/html/characters/manage.tpl:59 views/html/userroles/user.tpl:7 -#: views/html/users/index.tpl:27 views/html/users/manage.tpl:29 +#: views/html/users/index.tpl:31 views/html/users/manage.tpl:29 #: views/html/users/manage.tpl:42 views/html/users/manage.tpl:50 msgid "Moderator" msgstr "Moderator" #: controllers/CharactersController.inc:394 -#: controllers/UsersController.inc:324 views/ajax/characters/index.tpl:14 +#: controllers/UsersController.inc:326 views/ajax/characters/index.tpl:14 #: views/ajax/users/index.tpl:14 views/html/characters/index.tpl:41 #: views/html/characters/manage.tpl:37 views/html/characters/manage.tpl:53 #: views/html/characters/manage.tpl:61 views/html/userroles/user.tpl:9 -#: views/html/users/index.tpl:28 views/html/users/manage.tpl:30 +#: views/html/users/index.tpl:32 views/html/users/manage.tpl:30 #: views/html/users/manage.tpl:44 views/html/users/manage.tpl:52 msgid "User" msgstr "Benutzer" @@ -249,7 +249,7 @@ msgstr "Texteingabe" msgid "%d XPs" msgstr "%d XP" -#: views/ajax/users/index.tpl:20 views/html/users/index.tpl:25 +#: views/ajax/users/index.tpl:20 views/html/users/index.tpl:29 #: views/html/users/manage.tpl:31 views/html/users/user.tpl:22 #, php-format msgid "registered on %s" @@ -889,27 +889,27 @@ msgid "Manage" msgstr "Verwalten" #: views/html/characters/index.tpl:23 views/html/characters/manage.tpl:18 -#: views/html/users/index.tpl:15 views/html/users/manage.tpl:15 +#: views/html/users/index.tpl:16 views/html/users/manage.tpl:15 msgid "Role" msgstr "Rolle" #: views/html/characters/index.tpl:24 views/html/characters/manage.tpl:19 -#: views/html/users/index.tpl:16 views/html/users/manage.tpl:16 +#: views/html/users/index.tpl:17 views/html/users/manage.tpl:16 msgid "Date of registration" msgstr "Registrierungsdatum" #: views/html/characters/index.tpl:29 views/html/characters/manage.tpl:24 -#: views/html/users/index.tpl:18 views/html/users/manage.tpl:18 +#: views/html/users/index.tpl:19 views/html/users/manage.tpl:18 msgid "Sort list" msgstr "Liste sortieren" #: views/html/characters/index.tpl:52 views/html/quests/index.tpl:82 -#: views/html/users/index.tpl:36 +#: views/html/users/index.tpl:40 msgid "Show more" msgstr "Weitere anzeigen" #: views/html/characters/index.tpl:53 views/html/quests/index.tpl:83 -#: views/html/users/index.tpl:37 +#: views/html/users/index.tpl:41 msgid "Show all" msgstr "Alle anzeigen" @@ -956,7 +956,8 @@ msgstr "Login" #: views/html/introduction/index.tpl:7 views/html/users/create.tpl:84 #: views/html/users/create.tpl:85 views/html/users/edit.tpl:87 #: views/html/users/edit.tpl:89 views/html/users/edit.tpl:91 -#: views/html/users/index.tpl:14 views/html/users/login.tpl:12 +#: views/html/users/index.tpl:15 views/html/users/index.tpl:20 +#: views/html/users/index.tpl:21 views/html/users/login.tpl:12 #: views/html/users/login.tpl:13 views/html/users/manage.tpl:14 #: views/html/users/register.tpl:83 views/html/users/register.tpl:84 msgid "Username" @@ -1251,8 +1252,8 @@ msgstr "Text für falsche Antwort" msgid "Task" msgstr "Aufgabe" -#: views/html/quests/index.tpl:13 -msgid "Filter" +#: views/html/quests/index.tpl:13 views/html/users/index.tpl:12 +msgid "Filters" msgstr "Filter" #: views/html/quests/index.tpl:16 views/html/quests/index.tpl:23 @@ -1263,7 +1264,7 @@ msgstr "alle" msgid "Questtype" msgstr "Questtyp" -#: views/html/quests/index.tpl:50 +#: views/html/quests/index.tpl:50 views/html/users/index.tpl:23 msgid "Apply filters" msgstr "Filter anwenden" diff --git a/models/UsersModel.inc b/models/UsersModel.inc index 36135b93..b6158911 100644 --- a/models/UsersModel.inc +++ b/models/UsersModel.inc @@ -58,12 +58,13 @@ * Get registered users. * * @throws ParamsNotValidException - * @param string $sort Field to sort by - * @param int $limit Limit amount of Characters (optional) - * @param int $offset Offset (optional) - * @return array Users + * @param string $sort Field to sort by + * @param string $username Only get users with the given username (optional) + * @param int $limit Limit amount of Characters (optional) + * @param int $offset Offset (optional) + * @return array Users */ - public function getUsers($sort, $limit=null, $offset=0) + public function getUsers($sort, $username=null, $limit=null, $offset=0) { switch($sort) { @@ -75,14 +76,11 @@ ); return $this->db->query( - sprintf( - 'SELECT id, created, username, url, surname, prename, email, mailing '. - 'FROM users '. - 'ORDER BY %s %s '. - (!empty($limit) ? sprintf('LIMIT %d, %d', $offset, $limit) : null), - $sort, - $orders[$sort] - ) + 'SELECT id, created, username, url, surname, prename, email, mailing '. + 'FROM users '. + (!is_null($username) ? sprintf('WHERE username LIKE \'%%%s%%\' ', $username) : null). + sprintf('ORDER BY %s %s ', $sort, $orders[$sort]). + (!empty($limit) ? sprintf('LIMIT %d, %d', $offset, $limit) : null) ); break; case 'role': @@ -91,6 +89,7 @@ 'FROM users '. 'LEFT JOIN users_userroles ON users_userroles.user_id = users.id '. 'LEFT JOIN userroles ON userroles.id = users_userroles.user_id '. + (!is_null($username) ? sprintf('WHERE username LIKE \'%%%s%%\' ', $username) : null). 'ORDER BY userroles.id IS NULL, userroles.id ASC '. (!empty($limit) ? sprintf('LIMIT %d, %d', $offset, $limit) : null) ); diff --git a/views/html/users/index.tpl b/views/html/users/index.tpl index 7b319d7c..d8d921d5 100644 --- a/views/html/users/index.tpl +++ b/views/html/users/index.tpl @@ -9,6 +9,7 @@
+

Sortierung:

+ : +
+