From f74d18c668b80af29bf4307ce91d4b0b1a7be94f Mon Sep 17 00:00:00 2001 From: coderkun Date: Mon, 28 Apr 2014 10:09:17 +0200 Subject: [PATCH] ipmlement CRUD for Character (groups-) groups --- configs/AppConfig.inc | 65 ++- controllers/CharactergroupsController.inc | 384 +++++++++++++++++- locale/de_DE/LC_MESSAGES/The Legend of Z.mo | Bin 10378 -> 11866 bytes locale/de_DE/LC_MESSAGES/The Legend of Z.po | 363 +++++++++++------ models/CharactergroupsModel.inc | 195 +++++++++ views/html/charactergroups/creategroup.tpl | 60 +++ .../charactergroups/creategroupsgroup.tpl | 51 +++ views/html/charactergroups/deletegroup.tpl | 17 + .../charactergroups/deletegroupsgroup.tpl | 16 + views/html/charactergroups/editgroup.tpl | 60 +++ .../html/charactergroups/editgroupsgroup.tpl | 51 +++ views/html/charactergroups/group.tpl | 4 +- views/html/charactergroups/groupsgroup.tpl | 7 + views/html/charactergroups/index.tpl | 7 + views/html/charactergroups/managegroup.tpl | 2 + 15 files changed, 1140 insertions(+), 142 deletions(-) create mode 100644 views/html/charactergroups/creategroup.tpl create mode 100644 views/html/charactergroups/creategroupsgroup.tpl create mode 100644 views/html/charactergroups/deletegroup.tpl create mode 100644 views/html/charactergroups/deletegroupsgroup.tpl create mode 100644 views/html/charactergroups/editgroup.tpl create mode 100644 views/html/charactergroups/editgroupsgroup.tpl diff --git a/configs/AppConfig.inc b/configs/AppConfig.inc index 2093a173..5f8d6d75 100644 --- a/configs/AppConfig.inc +++ b/configs/AppConfig.inc @@ -134,6 +134,22 @@ 'minlength' => 5, 'maxlength' => 12, 'regex' => '/^\w*$/' + ), + 'charactergroupsgroupname' => array( + 'minlength' => 4, + 'maxlength' => 32, + 'regex' => '/^(\S| )*$/' + ), + 'preferred' => array( + 'regex' => '/^(0|1)$/' + ), + 'charactergroupname' => array( + 'minlength' => 4, + 'maxlength' => 32, + 'regex' => '/^(\S| )*$/' + ), + 'motto' => array( + 'maxlength' => 128 ) ); @@ -145,24 +161,27 @@ * @var array */ public static $routes = array( - array('^users/([^/]+)/(edit|delete)/?$', 'users/$2/$1', true), - array('^users/(?!(index|login|register|logout|create|edit|delete))/?', 'users/user/$1', true), - array('^seminaries/([^/]+)/(edit|delete)/?$', 'seminaries/$2/$1', true), - array('^seminaries/(?!(index|create|edit|delete))/?', 'seminaries/seminary/$1', true), - array('^questgroups/([^/]+)/(create)/?$', 'questgroups/$2/$1', true), - array('^questgroups/([^/]+)/([^/]+)/?$', 'questgroups/questgroup/$1/$2', true), - array('^quests/([^/]+)/(create|createmedia)/?$', 'quests/$2/$1' , true), - array('^quests/([^/]+)/([^/]+)/([^/]+)/(submissions)/?$', 'quests/$4/$1/$2/$3', true), - array('^quests/([^/]+)/([^/]+)/([^/]+)/(submission)/([^/]+)/?$', 'quests/$4/$1/$2/$3/$5', true), - array('^quests/(?!(index|create|createmedia))/?', 'quests/quest/$1', true), - array('^characters/([^/]+)/(register|manage)/?$', 'characters/$2/$1', true), - array('^characters/([^/]+)/?$', 'characters/index/$1', true), - array('^characters/([^/]+)/(?!(index|create|register|manage))/?', 'characters/character/$1/$2', true), - array('^charactergroups/([^/]+)/?$', 'charactergroups/index/$1', true), - array('^charactergroups/([^/]+)/([^/]+)/?$', 'charactergroups/groupsgroup/$1/$2', true), - array('^charactergroups/([^/]+)/([^/]+)/(managegroup)/?$', 'charactergroups/$3/$1/$2', true), - array('^charactergroups/([^/]+)/([^/]+)/(?!(managegroup))/?', 'charactergroups/group/$1/$2/$3', true), - array('^charactergroupsquests/([^/]+)/([^/]+)/([^/]+)/?$', 'charactergroupsquests/quest/$1/$2/$3', true), + array('^users/([^/]+)/(edit|delete)/?$', 'users/$2/$1', true), + array('^users/(?!(index|login|register|logout|create|edit|delete))/?', 'users/user/$1', true), + array('^seminaries/([^/]+)/(edit|delete)/?$', 'seminaries/$2/$1', true), + array('^seminaries/(?!(index|create|edit|delete))/?', 'seminaries/seminary/$1', true), + array('^questgroups/([^/]+)/(create)/?$', 'questgroups/$2/$1', true), + array('^questgroups/([^/]+)/([^/]+)/?$', 'questgroups/questgroup/$1/$2', true), + array('^quests/([^/]+)/(create|createmedia)/?$', 'quests/$2/$1' , true), + array('^quests/([^/]+)/([^/]+)/([^/]+)/(submissions)/?$', 'quests/$4/$1/$2/$3', true), + array('^quests/([^/]+)/([^/]+)/([^/]+)/(submission)/([^/]+)/?$', 'quests/$4/$1/$2/$3/$5', true), + array('^quests/(?!(index|create|createmedia))/?', 'quests/quest/$1', true), + array('^characters/([^/]+)/(register|manage)/?$', 'characters/$2/$1', true), + array('^characters/([^/]+)/?$', 'characters/index/$1', true), + array('^characters/([^/]+)/(?!(index|create|register|manage))/?', 'characters/character/$1/$2', true), + array('^charactergroups/([^/]+)/?$', 'charactergroups/index/$1', true), + array('^charactergroups/([^/]+)/(create)/?$', 'charactergroups/creategroupsgroup/$1/$2', true), + array('^charactergroups/([^/]+)/([^/]+)/?$', 'charactergroups/groupsgroup/$1/$2', true), + array('^charactergroups/([^/]+)/([^/]+)/(edit|delete)/?$', 'charactergroups/$3groupsgroup/$1/$2', true), + array('^charactergroups/([^/]+)/([^/]+)/(create)/?$', 'charactergroups/creategroup/$1/$2/$3', true), + array('^charactergroups/([^/]+)/([^/]+)/([^/]+)/?$', 'charactergroups/group/$1/$2/$3', true), + array('^charactergroups/([^/]+)/([^/]+)/([^/]+)/(manage|edit|delete)/?$', 'charactergroups/$4group/$1/$2/$3', true), + array('^charactergroupsquests/([^/]+)/([^/]+)/([^/]+)/?$', 'charactergroupsquests/quest/$1/$2/$3', true), array('^achievements/([^/]+)/?$', 'achievements/index/$1', true), array('^library/([^/]+)/?$', 'library/index/$1', true), array('^library/([^/]+)/([^/]+)/?$', 'library/topic/$1/$2', true), @@ -189,9 +208,13 @@ array('^quests/(submission)/([^/]+)/([^/]+)/([^/]+)/([^/]+)$', 'quests/$2/$3/$4/$1/$5', true), array('^characters/(index|character)/(.*)$', 'characters/$2', true), array('^characters/(register|manage)/(.*)$', 'characters/$2/$1', true), - array('^charactergroups/(index|group)/(.*)$', 'charactergroups/$2', true), - array('^charactergroups/groupsgroup/(.*)$', 'charactergroups/$1', true), - array('^charactergroups/(managegroup)/(.*)$', 'charactergroups/$2/$1', true), + array('^charactergroups/index/([^/]+)$', 'charactergroups/$1', true), + array('^charactergroups/creategroupsgroup/([^/]+)$', 'charactergroups/$1/create', true), + array('^charactergroups/groupsgroup/([^/]+)/([^/]+)$', 'charactergroups/$1/$2', true), + array('^charactergroups/(edit|delete)groupsgroup/([^/]+)/([^/]+)$', 'charactergroups/$2/$3/$1', true), + array('^charactergroups/creategroup/([^/]+)/([^/]+)$', 'charactergroups/$1/$2/create', true), + array('^charactergroups/group/([^/]+)/([^/]+)/([^/]+)$', 'charactergroups/$1/$2/$3', true), + array('^charactergroups/(manage|edit|delete)group/([^/]+)/([^/]+)/([^/]+)$', 'charactergroups/$2/$3/$4/$1', true), array('^charactergroupsquests/quest/(.*)$', 'charactergroupsquests/$1', true), array('^achievements/index/(.*)$', 'achievements/$1', true), array('^library/(index|topic)/(.*)$', 'library/$2', true) diff --git a/controllers/CharactergroupsController.inc b/controllers/CharactergroupsController.inc index 7a961bf5..a2eab813 100644 --- a/controllers/CharactergroupsController.inc +++ b/controllers/CharactergroupsController.inc @@ -25,14 +25,28 @@ * @var array */ public $models = array('seminaries', 'charactergroups', 'charactergroupsquests', 'characters', 'avatars', 'media'); + /** + * Required components + * + * @var array + */ + public $components = array('validation'); /** * User permissions * * @var array */ public $permissions = array( - 'quest' => array('admin', 'moderator', 'user'), - 'manage' => array('admin', 'moderator', 'user') + 'index' => array('admin', 'moderator', 'user'), + 'groupsgroup' => array('admin', 'moderator', 'user'), + 'creategroupsgroup' => array('admin', 'moderator', 'user'), + 'editgroupsgroup' => array('admin', 'moderator', 'user'), + 'deletegroupsgroup' => array('admin', 'moderator', 'user'), + 'group' => array('admin', 'moderator', 'user'), + 'managegroup' => array('admin', 'moderator', 'user'), + 'creategroup' => array('admin', 'moderator', 'user'), + 'editgroup' => array('admin', 'moderator', 'user'), + 'deletegroup' => array('admin', 'moderator', 'user') ); /** * User seminary permissions @@ -40,8 +54,16 @@ * @var array */ public $seminaryPermissions = array( - 'quest' => array('admin', 'moderator', 'user'), - 'manage' => array('admin', 'moderator') + 'index' => array('admin', 'moderator', 'user'), + 'groupsgroup' => array('admin', 'moderator', 'user'), + 'creategroupsgroup' => array('admin', 'moderator'), + 'editgroupsgroup' => array('admin', 'moderator'), + 'deletegroupsgroup' => array('admin', 'moderator'), + 'group' => array('admin', 'moderator', 'user'), + 'managegroup' => array('admin', 'moderator'), + 'creategroup' => array('admin', 'moderator'), + 'editgroup' => array('admin', 'moderator'), + 'deletegroup' => array('admin', 'moderator') ); @@ -103,6 +125,174 @@ } + /** + * Action: creategroupsgroups. + * + * Create a new Character groups-group for a Seminary. + * + * @throws IdNotFoundException + * @param string $seminaryUrl URL-Title of a Seminary + */ + public function creategroupsgroup($seminaryUrl) + { + // Get seminary + $seminary = $this->Seminaries->getSeminaryByUrl($seminaryUrl); + + // Values + $charactergroupsgroupname = ''; + $preferred = false; + $fields = array('charactergroupsgroupname'); + $validation = array(); + + // Create a new Character groups-group + if($this->request->getRequestMethod() == 'POST' && !is_null($this->request->getPostParam('create'))) + { + // Get params and validate them + $validation = $this->Validation->validateParams($this->request->getPostParams(), $fields); + $charactergroupsgroupname = $this->request->getPostParam('charactergroupsgroupname'); + if($this->Charactergroups->characterGroupsgroupNameExists($charactergroupsgroupname)) { + $validation = $this->Validation->addValidationResult($validation, 'charactergroupsgroupname', 'exist', true); + } + $preferred = !is_null($this->request->getPostParam('preferred')); + + // Create groups-group + if($validation === true) + { + $groupsgroupId = $this->Charactergroups->createGroupsgroup( + $this->Auth->getUserId(), + $seminary['id'], + $charactergroupsgroupname, + $preferred + ); + + // Redirect to groups-group page + $groupsgroup = $this->Charactergroups->getGroupsgroupById($groupsgroupId); + $this->redirect($this->linker->link(array('groupsgroup', $seminary['url'], $groupsgroup['url']), 1)); + } + } + + // Get validation settings + $validationSettings = array(); + foreach($fields as &$field) { + $validationSettings[$field] = \nre\configs\AppConfig::$validation[$field]; + } + + + // Pass data to view + $this->set('seminary', $seminary); + $this->set('charactergroupsgroupname', $charactergroupsgroupname); + $this->set('preferred', $preferred); + $this->set('validation', $validation); + $this->set('validationSettings', $validationSettings); + } + + + /** + * Action: editgroupsgroups. + * + * Edit a Character groups-group of a Seminary. + * + * @throws IdNotFoundException + * @param string $seminaryUrl URL-Title of a Seminary + * @param string $groupsgroupUrl URL-Title of a Character groups-group + */ + public function editgroupsgroup($seminaryUrl, $groupsgroupUrl) + { + // Get seminary + $seminary = $this->Seminaries->getSeminaryByUrl($seminaryUrl); + + // Get Character groups-group + $groupsgroup = $this->Charactergroups->getGroupsgroupByUrl($seminary['id'], $groupsgroupUrl); + + // Values + $charactergroupsgroupname = $groupsgroup['name']; + $preferred = $groupsgroup['preferred']; + $fields = array('charactergroupsgroupname'); + $validation = array(); + + // Edit Character groups-group + if($this->request->getRequestMethod() == 'POST' && !is_null($this->request->getPostParam('edit'))) + { + // Get params and validate them + $validation = $this->Validation->validateParams($this->request->getPostParams(), $fields); + $charactergroupsgroupname = $this->request->getPostParam('charactergroupsgroupname'); + if($this->Charactergroups->characterGroupsgroupNameExists($charactergroupsgroupname, $groupsgroup['id'])) { + $validation = $this->Validation->addValidationResult($validation, 'charactergroupsgroupname', 'exist', true); + } + $preferred = !is_null($this->request->getPostParam('preferred')); + + // Edit groups-group + if($validation === true) + { + $this->Charactergroups->editGroupsgroup( + $groupsgroup['id'], + $charactergroupsgroupname, + $preferred + ); + + // Redirect to user page + $groupsgroup = $this->Charactergroups->getGroupsgroupById($groupsgroup['id']); + $this->redirect($this->linker->link(array('groupsgroup', $seminary['url'], $groupsgroup['url']), 1)); + } + } + + // Get validation settings + $validationSettings = array(); + foreach($fields as &$field) { + $validationSettings[$field] = \nre\configs\AppConfig::$validation[$field]; + } + + + // Pass data to view + $this->set('seminary', $seminary); + $this->set('charactergroupsgroupname', $charactergroupsgroupname); + $this->set('preferred', $preferred); + $this->set('validation', $validation); + $this->set('validationSettings', $validationSettings); + } + + + /** + * Action: deletegroupsgroups. + * + * Delete a Character groups-group of a Seminary. + * + * @throws IdNotFoundException + * @param string $seminaryUrl URL-Title of a Seminary + * @param string $groupsgroupUrl URL-Title of a Character groups-group + */ + public function deletegroupsgroup($seminaryUrl, $groupsgroupUrl) + { + // Get seminary + $seminary = $this->Seminaries->getSeminaryByUrl($seminaryUrl); + + // Get Character groups-group + $groupsgroup = $this->Charactergroups->getGroupsgroupByUrl($seminary['id'], $groupsgroupUrl); + + // Check request method + if($this->request->getRequestMethod() == 'POST') + { + // Check confirmation + if(!is_null($this->request->getPostParam('delete'))) + { + // Delete seminary + $this->Charactergroups->deleteGroupsgroup($groupsgroup['id']); + + // Redirect to overview + $this->redirect($this->linker->link(array('index', $seminary['url']), 1)); + } + + // Redirect to entry + $this->redirect($this->linker->link(array('groupsgroup', $seminary['url'], $groupsgroup['url']), 1)); + } + + + // Pass data to view + $this->set('seminary', $seminary); + $this->set('groupsgroup', $groupsgroup); + } + + /** * Action: group. * @@ -231,6 +421,192 @@ $this->set('characters', $characters); } + + /** + * Action: creategroup. + * + * Create a Character group for a Character groups-group of a + * Seminary. + * + * @throws IdNotFoundException + * @param string $seminaryUrl URL-Title of a Seminary + * @param string $groupsgroupUrl URL-Title of a Character groups-group + */ + public function creategroup($seminaryUrl, $groupsgroupUrl) + { + // Get seminary + $seminary = $this->Seminaries->getSeminaryByUrl($seminaryUrl); + + // Get Character groups-group + $groupsgroup = $this->Charactergroups->getGroupsgroupByUrl($seminary['id'], $groupsgroupUrl); + + // Values + $charactergroupname = ''; + $motto = ''; + $fields = array('charactergroupname', 'motto'); + $validation = array(); + + // Create a new Character groups-group + if($this->request->getRequestMethod() == 'POST' && !is_null($this->request->getPostParam('create'))) + { + // Get params and validate them + $validation = $this->Validation->validateParams($this->request->getPostParams(), $fields); + $charactergroupname = $this->request->getPostParam('charactergroupname'); + if($this->Charactergroups->characterGroupNameExists($charactergroupname)) { + $validation = $this->Validation->addValidationResult($validation, 'charactergroupname', 'exist', true); + } + $motto = $this->request->getPostParam('motto'); + + // Create group + if($validation === true) + { + $groupId = $this->Charactergroups->createGroup( + $this->Auth->getUserId(), + $groupsgroup['id'], + $charactergroupname, + $motto + ); + + // Redirect to group page + $group = $this->Charactergroups->getGroupById($groupId); + $this->redirect($this->linker->link(array('group', $seminary['url'], $groupsgroup['url'], $group['url']), 1)); + } + } + + // Get validation settings + $validationSettings = array(); + foreach($fields as &$field) { + $validationSettings[$field] = \nre\configs\AppConfig::$validation[$field]; + } + + + // Pass data to view + $this->set('seminary', $seminary); + $this->set('groupsgroup', $groupsgroup); + $this->set('charactergroupname', $charactergroupname); + $this->set('motto', $motto); + $this->set('validation', $validation); + $this->set('validationSettings', $validationSettings); + } + + + /** + * Action: editgroup. + * + * Edit a Character group for a Character groups-group of a + * Seminary. + * + * @throws IdNotFoundException + * @param string $seminaryUrl URL-Title of a Seminary + * @param string $groupsgroupUrl URL-Title of a Character groups-group + * @param string $groupUrl URL-Title of a Character group + */ + public function editgroup($seminaryUrl, $groupsgroupUrl, $groupUrl) + { + // Get seminary + $seminary = $this->Seminaries->getSeminaryByUrl($seminaryUrl); + + // Get Character groups-group + $groupsgroup = $this->Charactergroups->getGroupsgroupByUrl($seminary['id'], $groupsgroupUrl); + + // Get Character group + $group = $this->Charactergroups->getGroupByUrl($groupsgroup['id'], $groupUrl); + + // Values + $charactergroupname = $group['name']; + $motto = $group['motto']; + $fields = array('charactergroupname', 'motto'); + $validation = array(); + + // Edit Character group + if($this->request->getRequestMethod() == 'POST' && !is_null($this->request->getPostParam('edit'))) + { + // Get params and validate them + $validation = $this->Validation->validateParams($this->request->getPostParams(), $fields); + $charactergroupname = $this->request->getPostParam('charactergroupname'); + if($this->Charactergroups->characterGroupNameExists($charactergroupname, $group['id'])) { + $validation = $this->Validation->addValidationResult($validation, 'charactergroupname', 'exist', true); + } + $motto = $this->request->getPostParam('motto'); + + // Edit group + if($validation === true) + { + $this->Charactergroups->editGroup( + $group['id'], + $charactergroupname, + $motto + ); + + // Redirect to user page + $group = $this->Charactergroups->getGroupById($group['id']); + $this->redirect($this->linker->link(array('group', $seminary['url'], $groupsgroup['url'], $group['url']), 1)); + } + } + + // Get validation settings + $validationSettings = array(); + foreach($fields as &$field) { + $validationSettings[$field] = \nre\configs\AppConfig::$validation[$field]; + } + + + // Pass data to view + $this->set('seminary', $seminary); + $this->set('groupsgroup', $groupsgroup); + $this->set('charactergroupname', $charactergroupname); + $this->set('motto', $motto); + $this->set('validation', $validation); + $this->set('validationSettings', $validationSettings); + } + + + /** + * Action: deletegroup. + * + * Delete a Character group for a Character groups-group of a + * Seminary. + * + * @throws IdNotFoundException + * @param string $seminaryUrl URL-Title of a Seminary + * @param string $groupsgroupUrl URL-Title of a Character groups-group + * @param string $groupUrl URL-Title of a Character group + */ + public function deletegroup($seminaryUrl, $groupsgroupUrl, $groupUrl) + { + // Get seminary + $seminary = $this->Seminaries->getSeminaryByUrl($seminaryUrl); + + // Get Character groups-group + $groupsgroup = $this->Charactergroups->getGroupsgroupByUrl($seminary['id'], $groupsgroupUrl); + + // Get Character group + $group = $this->Charactergroups->getGroupByUrl($groupsgroup['id'], $groupUrl); + + // Check request method + if($this->request->getRequestMethod() == 'POST') + { + // Check confirmation + if(!is_null($this->request->getPostParam('delete'))) + { + // Delete seminary + $this->Charactergroups->deleteGroup($group['id']); + + // Redirect to overview + $this->redirect($this->linker->link(array('groupsgroup', $seminary['url'], $groupsgroup['url']), 1)); + } + + // Redirect to entry + $this->redirect($this->linker->link(array('group', $seminary['url'], $groupsgroup['url'], $group['url']), 1)); + } + + + // Pass data to view + $this->set('seminary', $seminary); + $this->set('groupsgroup', $groupsgroup); + $this->set('group', $group); + } + } ?> 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 2d37c6a94a98d466bec5c202957071d62807f798..c6c2c44eb0bd02c1c3edaa9f9e69bdfbb737cee5 100644 GIT binary patch delta 4715 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 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 017809a8..3cf00e61 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-04-27 04:32+0100\n" -"PO-Revision-Date: 2014-04-28 09:31+0100\n" +"POT-Creation-Date: 2014-04-28 10:08+0100\n" +"PO-Revision-Date: 2014-04-28 10:08+0100\n" "Last-Translator: \n" "Language-Team: \n" "Language: de_DE\n" @@ -134,11 +134,15 @@ msgstr "" msgid "Seldom Achievements" msgstr "Die seltensten Achievements" -#: views/html/achievements/index.tpl:27 +#: views/html/achievements/index.tpl:26 #, php-format msgid "Achievement has been achieved only %d times" msgstr "wurde erst %d mal gefunden" +#: views/html/achievements/index.tpl:27 views/html/achievements/index.tpl:68 +msgid "Secret Achievement" +msgstr "Geheimes Achievement" + #: views/html/achievements/index.tpl:33 msgid "Most successful collectors" msgstr "Die erfolgreichsten Sammler" @@ -158,8 +162,8 @@ msgid "Own progress: %d %%" msgstr "Persönlicher Fortschritt: %d %%" #: views/html/achievements/index.tpl:52 -#: views/html/charactergroups/group.tpl:24 -#: views/html/charactergroups/managegroup.tpl:17 +#: views/html/charactergroups/group.tpl:26 +#: views/html/charactergroups/managegroup.tpl:19 #: views/html/characters/character.tpl:36 views/html/seminarybar/index.tpl:7 msgid "Rank" msgstr "Platz" @@ -174,14 +178,16 @@ msgstr "Du hast bislang %d von insgesamt %d Achievements erreicht" msgid "achieved at: %s" msgstr "erhalten am: %s" -#: views/html/achievements/index.tpl:68 -msgid "Secret Achievement" -msgstr "Geheimes Achievement" - #: views/html/achievements/index.tpl:72 msgid "Continue playing to unlock this secret Achievement" msgstr "Spiele weiter, um diesen geheimen Erfolg freizuschalten" +#: views/html/charactergroups/creategroup.tpl:8 +#: views/html/charactergroups/creategroupsgroup.tpl:8 +#: views/html/charactergroups/deletegroup.tpl:8 +#: views/html/charactergroups/deletegroupsgroup.tpl:8 +#: views/html/charactergroups/editgroup.tpl:8 +#: views/html/charactergroups/editgroupsgroup.tpl:8 #: views/html/charactergroups/group.tpl:8 #: views/html/charactergroups/groupsgroup.tpl:8 #: views/html/charactergroups/index.tpl:9 @@ -191,49 +197,192 @@ msgstr "Spiele weiter, um diesen geheimen Erfolg freizuschalten" msgid "Character Groups" msgstr "Gruppen" -#: views/html/charactergroups/group.tpl:14 views/html/characters/index.tpl:13 -#: views/html/characters/manage.tpl:10 -msgid "Manage" -msgstr "Verwalten" +#: views/html/charactergroups/creategroup.tpl:12 +msgid "New Character group" +msgstr "Neue Gruppe" -#: views/html/charactergroups/group.tpl:26 -#: views/html/charactergroups/managegroup.tpl:19 +#: views/html/charactergroups/creategroup.tpl:23 +#: views/html/charactergroups/creategroupsgroup.tpl:22 +#: views/html/charactergroups/editgroup.tpl:23 +#: views/html/charactergroups/editgroupsgroup.tpl:22 +#, php-format +msgid "Name is too short (min. %d chars)" +msgstr "Der Name ist zu kurz (min. %d Zeichen)" + +#: views/html/charactergroups/creategroup.tpl:25 +#: views/html/charactergroups/creategroupsgroup.tpl:24 +#: views/html/charactergroups/editgroup.tpl:25 +#: views/html/charactergroups/editgroupsgroup.tpl:24 +#, php-format +msgid "Name is too long (max. %d chars)" +msgstr "Der Name ist zu lang (max. %d Zeichen)" + +#: views/html/charactergroups/creategroup.tpl:27 +#: views/html/charactergroups/creategroupsgroup.tpl:26 +#: views/html/charactergroups/editgroup.tpl:27 +#: views/html/charactergroups/editgroupsgroup.tpl:26 +msgid "Name contains illegal characters" +msgstr "Der Name enthält ungültige Zeichen" + +#: views/html/charactergroups/creategroup.tpl:29 +#: views/html/charactergroups/creategroupsgroup.tpl:28 +#: views/html/charactergroups/editgroup.tpl:29 +#: views/html/charactergroups/editgroupsgroup.tpl:28 +msgid "Name already exists" +msgstr "Der Name existiert bereits" + +#: views/html/charactergroups/creategroup.tpl:31 +#: views/html/charactergroups/creategroupsgroup.tpl:30 +#: views/html/charactergroups/editgroup.tpl:31 +#: views/html/charactergroups/editgroupsgroup.tpl:30 +msgid "Name invalid" +msgstr "Der Name ist ungültig" + +#: views/html/charactergroups/creategroup.tpl:36 +#: views/html/charactergroups/editgroup.tpl:36 +#, php-format +msgid "Motto is too long (max. %d chars)" +msgstr "Das Motto ist zu lang (max. %d Zeichen)" + +#: views/html/charactergroups/creategroup.tpl:38 +#: views/html/charactergroups/editgroup.tpl:38 +msgid "Motto invalid" +msgstr "Das Motto ist ungültig" + +#: views/html/charactergroups/creategroup.tpl:54 +#: views/html/charactergroups/creategroup.tpl:55 +#: views/html/charactergroups/creategroupsgroup.tpl:46 +#: views/html/charactergroups/creategroupsgroup.tpl:47 +#: views/html/charactergroups/editgroup.tpl:54 +#: views/html/charactergroups/editgroup.tpl:55 +#: views/html/charactergroups/editgroupsgroup.tpl:46 +#: views/html/charactergroups/editgroupsgroup.tpl:47 +#: views/html/quests/create.tpl:15 views/html/quests/create.tpl:16 +#: views/html/users/user.tpl:14 +msgid "Name" +msgstr "Name" + +#: views/html/charactergroups/creategroup.tpl:56 +#: views/html/charactergroups/creategroup.tpl:57 +#: views/html/charactergroups/editgroup.tpl:56 +#: views/html/charactergroups/editgroup.tpl:57 +msgid "Motto" +msgstr "Motto" + +#: views/html/charactergroups/creategroup.tpl:59 +#: views/html/charactergroups/creategroupsgroup.tpl:50 +#: views/html/characters/register.tpl:87 views/html/seminaries/create.tpl:12 +#: views/html/users/create.tpl:20 +msgid "create" +msgstr "erstellen" + +#: views/html/charactergroups/creategroupsgroup.tpl:11 +msgid "New Character groups-group" +msgstr "Neue Gruppengruppe" + +#: views/html/charactergroups/creategroupsgroup.tpl:48 +#: views/html/charactergroups/editgroupsgroup.tpl:48 +msgid "preferred" +msgstr "bevorzugt" + +#: views/html/charactergroups/deletegroup.tpl:11 +#: views/html/charactergroups/group.tpl:15 +msgid "Delete Character group" +msgstr "Gruppe löschen" + +#: views/html/charactergroups/deletegroup.tpl:13 +#, php-format +msgid "Should the Character group “%s” really be deleted?" +msgstr "Soll die Gruppe „%s“ wirklich gelöscht werden?" + +#: views/html/charactergroups/deletegroup.tpl:15 +#: views/html/charactergroups/deletegroupsgroup.tpl:14 +#: views/html/seminaries/delete.tpl:11 views/html/users/delete.tpl:9 +msgid "delete" +msgstr "löschen" + +#: views/html/charactergroups/deletegroup.tpl:16 +#: views/html/charactergroups/deletegroupsgroup.tpl:15 +#: views/html/seminaries/delete.tpl:12 views/html/users/delete.tpl:10 +msgid "cancel" +msgstr "abbrechen" + +#: views/html/charactergroups/deletegroupsgroup.tpl:10 +#: views/html/charactergroups/groupsgroup.tpl:13 +msgid "Delete Character groups-group" +msgstr "Gruppengruppe löschen" + +#: views/html/charactergroups/deletegroupsgroup.tpl:12 +#, php-format +msgid "Should the Character groups-group “%s” really be deleted?" +msgstr "Soll die Gruppengruppe „%s“ wirklich gelöscht werden?" + +#: views/html/charactergroups/editgroup.tpl:12 +#: views/html/charactergroups/group.tpl:14 +msgid "Edit Character group" +msgstr "Gruppe bearbeiten" + +#: views/html/charactergroups/editgroup.tpl:59 +#: views/html/charactergroups/editgroupsgroup.tpl:50 +msgid "edit" +msgstr "bearbeiten" + +#: views/html/charactergroups/editgroupsgroup.tpl:11 +#: views/html/charactergroups/groupsgroup.tpl:12 +msgid "Edit Character groups-group" +msgstr "Gruppengruppe bearbeiten" + +#: views/html/charactergroups/group.tpl:16 +#: views/html/charactergroups/managegroup.tpl:12 +msgid "Manage Character group" +msgstr "Gruppe verwalten" + +#: views/html/charactergroups/group.tpl:28 +#: views/html/charactergroups/managegroup.tpl:21 msgid "Members" msgstr "Mitglieder" -#: views/html/charactergroups/group.tpl:26 -#: views/html/charactergroups/managegroup.tpl:19 +#: views/html/charactergroups/group.tpl:28 +#: views/html/charactergroups/managegroup.tpl:21 msgid "Member" msgstr "Mitglied" -#: views/html/charactergroups/group.tpl:30 -#: views/html/charactergroups/managegroup.tpl:23 +#: views/html/charactergroups/group.tpl:32 +#: views/html/charactergroups/managegroup.tpl:25 #: views/html/characters/character.tpl:11 #: views/html/characters/character.tpl:13 views/html/characters/index.tpl:9 #: views/html/characters/manage.tpl:8 views/html/seminarymenu/index.tpl:2 -#: views/html/users/user.tpl:15 +#: views/html/users/user.tpl:18 msgid "Characters" msgstr "Charaktere" -#: views/html/charactergroups/group.tpl:45 -#: views/html/charactergroups/groupsgroup.tpl:20 +#: views/html/charactergroups/group.tpl:47 +#: views/html/charactergroups/groupsgroup.tpl:27 #, php-format msgid "%s-Quests" msgstr "%squests" -#: views/html/charactergroups/managegroup.tpl:40 +#: views/html/charactergroups/groupsgroup.tpl:14 +msgid "Create new Character group" +msgstr "Neue Gruppe" + +#: views/html/charactergroups/index.tpl:13 +msgid "Create new Character groups-group" +msgstr "Neue Gruppengruppe" + +#: views/html/charactergroups/managegroup.tpl:42 msgid "Remove Characters" msgstr "Entferne Charaktere" -#: views/html/charactergroups/managegroup.tpl:43 +#: views/html/charactergroups/managegroup.tpl:45 msgid "Filter Characters" msgstr "Filtere Charaktere" -#: views/html/charactergroups/managegroup.tpl:49 +#: views/html/charactergroups/managegroup.tpl:51 msgid "Add Characters" msgstr "Füge Charaktere hinzu" -#: views/html/charactergroups/managegroup.tpl:54 +#: views/html/charactergroups/managegroup.tpl:56 #: views/html/questgroups/questgroup.tpl:57 views/html/quests/create.tpl:9 #: views/html/quests/index.tpl:9 msgid "Quests" @@ -263,7 +412,7 @@ msgstr "Fortschritt" #: views/html/characters/character.tpl:67 #: views/html/characters/character.tpl:73 #: views/html/characters/character.tpl:79 views/html/seminarybar/index.tpl:42 -#: views/html/users/user.tpl:29 +#: views/html/users/user.tpl:32 msgid "Level" msgstr "Level" @@ -292,17 +441,21 @@ msgstr "Letzter Speicherpunkt" msgid "Topic progress" msgstr "Thematischer Fortschritt" +#: views/html/characters/index.tpl:13 views/html/characters/manage.tpl:10 +msgid "Manage" +msgstr "Verwalten" + #: views/html/characters/index.tpl:19 views/html/characters/manage.tpl:14 msgid "Properties" msgstr "Eigenschaften" #: views/html/characters/index.tpl:20 views/html/characters/manage.tpl:15 #: views/html/error/index.tpl:8 views/html/error/index.tpl:9 -#: views/html/introduction/index.tpl:6 views/html/introduction/index.tpl:7 -#: views/html/users/create.tpl:6 views/html/users/create.tpl:7 -#: views/html/users/edit.tpl:6 views/html/users/edit.tpl:7 -#: views/html/users/login.tpl:9 views/html/users/login.tpl:10 -#: views/html/users/register.tpl:78 views/html/users/register.tpl:79 +#: views/html/introduction/index.tpl:9 views/html/introduction/index.tpl:10 +#: views/html/users/create.tpl:9 views/html/users/create.tpl:10 +#: views/html/users/edit.tpl:9 views/html/users/edit.tpl:10 +#: views/html/users/login.tpl:12 views/html/users/login.tpl:13 +#: views/html/users/register.tpl:81 views/html/users/register.tpl:82 msgid "Username" msgstr "Benutzername" @@ -312,7 +465,7 @@ msgid "XPs" msgstr "XP" #: views/html/characters/index.tpl:22 views/html/characters/manage.tpl:17 -#: views/html/users/user.tpl:34 +#: views/html/users/user.tpl:37 msgid "Roles" msgstr "Rollen" @@ -390,32 +543,27 @@ msgstr "Das Kursfeld „%s“ ist ungültig" msgid "Seminary fields" msgstr "Kursfelder" -#: views/html/characters/register.tpl:87 views/html/seminaries/create.tpl:14 -#: views/html/users/create.tpl:17 -msgid "create" -msgstr "erstellen" - #: views/html/error/index.tpl:5 views/html/error/index.tpl:14 -#: views/html/introduction/index.tpl:3 views/html/introduction/index.tpl:11 -#: views/html/menu/index.tpl:6 views/html/users/login.tpl:3 -#: views/html/users/login.tpl:17 +#: views/html/introduction/index.tpl:6 views/html/introduction/index.tpl:14 +#: views/html/menu/index.tpl:6 views/html/users/login.tpl:6 +#: views/html/users/login.tpl:20 msgid "Login" msgstr "Login" #: views/html/error/index.tpl:10 views/html/error/index.tpl:11 -#: views/html/introduction/index.tpl:8 views/html/introduction/index.tpl:9 -#: views/html/users/create.tpl:14 views/html/users/create.tpl:15 -#: views/html/users/edit.tpl:14 views/html/users/edit.tpl:15 -#: views/html/users/login.tpl:11 views/html/users/login.tpl:12 -#: views/html/users/register.tpl:86 views/html/users/register.tpl:87 +#: views/html/introduction/index.tpl:11 views/html/introduction/index.tpl:12 +#: views/html/users/create.tpl:17 views/html/users/create.tpl:18 +#: views/html/users/edit.tpl:16 views/html/users/edit.tpl:17 +#: views/html/users/login.tpl:14 views/html/users/login.tpl:15 +#: views/html/users/register.tpl:89 views/html/users/register.tpl:90 msgid "Password" msgstr "Passwort" -#: views/html/error/index.tpl:15 views/html/introduction/index.tpl:12 +#: views/html/error/index.tpl:15 views/html/introduction/index.tpl:15 msgid "or" msgstr "oder" -#: views/html/error/index.tpl:15 views/html/introduction/index.tpl:12 +#: views/html/error/index.tpl:15 views/html/introduction/index.tpl:15 msgid "register yourself" msgstr "registriere dich" @@ -432,7 +580,7 @@ msgstr "Levelaufstieg" msgid "You have reached level %d" msgstr "Du hast Level %d erreicht" -#: views/html/introduction/index.tpl:1 +#: views/html/introduction/index.tpl:4 msgid "Introduction" msgstr "Einführung" @@ -455,16 +603,16 @@ msgstr "" msgid "Total progress: %d %%" msgstr "Gesamtfortschritt: %d %%" -#: views/html/menu/index.tpl:2 views/html/users/create.tpl:1 -#: views/html/users/delete.tpl:1 views/html/users/edit.tpl:1 -#: views/html/users/index.tpl:1 views/html/users/login.tpl:1 -#: views/html/users/register.tpl:1 views/html/users/user.tpl:1 +#: views/html/menu/index.tpl:2 views/html/users/create.tpl:4 +#: views/html/users/delete.tpl:4 views/html/users/edit.tpl:4 +#: views/html/users/index.tpl:4 views/html/users/login.tpl:4 +#: views/html/users/register.tpl:4 views/html/users/user.tpl:4 msgid "Users" msgstr "Benutzer" -#: views/html/menu/index.tpl:3 views/html/seminaries/create.tpl:6 +#: views/html/menu/index.tpl:3 views/html/seminaries/create.tpl:4 #: views/html/seminaries/delete.tpl:6 views/html/seminaries/edit.tpl:6 -#: views/html/seminaries/index.tpl:1 +#: views/html/seminaries/index.tpl:4 msgid "Seminaries" msgstr "Kurse" @@ -481,7 +629,7 @@ msgid "Create Questgroup" msgstr "Questgruppe erstellen" #: views/html/questgroups/create.tpl:14 views/html/questgroups/create.tpl:15 -#: views/html/seminaries/create.tpl:11 views/html/seminaries/create.tpl:12 +#: views/html/seminaries/create.tpl:9 views/html/seminaries/create.tpl:10 #: views/html/seminaries/edit.tpl:11 views/html/seminaries/edit.tpl:12 msgid "Title" msgstr "Titel" @@ -498,11 +646,6 @@ msgstr "Optionale Questline gefunden" msgid "Create Quest" msgstr "Quest erstellen" -#: views/html/quests/create.tpl:15 views/html/quests/create.tpl:16 -#: views/html/users/user.tpl:11 -msgid "Name" -msgstr "Name" - #: views/html/quests/create.tpl:17 views/html/quests/index.tpl:14 msgid "Questgroup" msgstr "Questgruppe" @@ -573,7 +716,7 @@ msgstr "Lösung von %s" msgid "submitted" msgstr "eingereicht" -#: views/html/seminaries/create.tpl:7 +#: views/html/seminaries/create.tpl:5 msgid "New seminary" msgstr "Neuer Kurs" @@ -586,36 +729,28 @@ msgstr "Kurs löschen" msgid "Should the seminary “%s” really be deleted?" msgstr "Soll der Kurs „%s“ wirklich gelöscht werden?" -#: views/html/seminaries/delete.tpl:11 views/html/users/delete.tpl:6 -msgid "delete" -msgstr "löschen" - -#: views/html/seminaries/delete.tpl:12 views/html/users/delete.tpl:7 -msgid "cancel" -msgstr "abbrechen" - #: views/html/seminaries/edit.tpl:7 views/html/seminaries/seminary.tpl:9 msgid "Edit seminary" msgstr "Kurs bearbeiten" -#: views/html/seminaries/edit.tpl:14 views/html/users/edit.tpl:17 +#: views/html/seminaries/edit.tpl:14 views/html/users/edit.tpl:19 msgid "save" msgstr "speichern" -#: views/html/seminaries/index.tpl:4 +#: views/html/seminaries/index.tpl:7 msgid "Create new seminary" msgstr "Neuen Kurs erstellen" -#: views/html/seminaries/index.tpl:21 +#: views/html/seminaries/index.tpl:24 #, php-format msgid "created by %s on %s" msgstr "erstellt von %s am %s" -#: views/html/seminaries/index.tpl:24 +#: views/html/seminaries/index.tpl:27 msgid "Create a Character" msgstr "Erstelle einen Charakter" -#: views/html/seminaries/index.tpl:26 +#: views/html/seminaries/index.tpl:29 #, php-format msgid "Your Character “%s” has not been activated yet" msgstr "Dein Charakter „%s“ wurde noch nicht aktiviert" @@ -633,142 +768,142 @@ msgstr "Letztes Achievement" msgid "Show %s-Profile" msgstr "%s-Profil anzeigen" -#: views/html/users/create.tpl:2 +#: views/html/users/create.tpl:5 msgid "New user" msgstr "Neuer Benutzer" -#: views/html/users/create.tpl:8 views/html/users/create.tpl:9 -#: views/html/users/edit.tpl:8 views/html/users/edit.tpl:9 -#: views/html/users/register.tpl:80 views/html/users/register.tpl:81 +#: views/html/users/create.tpl:11 views/html/users/create.tpl:12 +#: views/html/users/edit.tpl:11 views/html/users/register.tpl:83 +#: views/html/users/register.tpl:84 msgid "Prename" msgstr "Vorname" -#: views/html/users/create.tpl:10 views/html/users/create.tpl:11 -#: views/html/users/edit.tpl:10 views/html/users/edit.tpl:11 -#: views/html/users/register.tpl:82 views/html/users/register.tpl:83 +#: views/html/users/create.tpl:13 views/html/users/create.tpl:14 +#: views/html/users/edit.tpl:12 views/html/users/edit.tpl:13 +#: views/html/users/register.tpl:85 views/html/users/register.tpl:86 msgid "Surname" msgstr "Nachname" -#: views/html/users/create.tpl:12 views/html/users/create.tpl:13 -#: views/html/users/edit.tpl:12 views/html/users/edit.tpl:13 -#: views/html/users/register.tpl:84 views/html/users/register.tpl:85 -#: views/html/users/user.tpl:12 +#: views/html/users/create.tpl:15 views/html/users/create.tpl:16 +#: views/html/users/edit.tpl:14 views/html/users/edit.tpl:15 +#: views/html/users/register.tpl:87 views/html/users/register.tpl:88 +#: views/html/users/user.tpl:15 msgid "E‑mail address" msgstr "E‑Mail-Adresse" -#: views/html/users/delete.tpl:2 views/html/users/user.tpl:5 +#: views/html/users/delete.tpl:5 views/html/users/user.tpl:8 msgid "Delete user" msgstr "Benutzer löschen" -#: views/html/users/delete.tpl:4 +#: views/html/users/delete.tpl:7 #, php-format msgid "Should the user “%s” (%s) really be deleted?" msgstr "Soll der Benutzer „%s“ (%s) wirklich gelöscht werden?" -#: views/html/users/edit.tpl:2 views/html/users/user.tpl:4 +#: views/html/users/edit.tpl:5 views/html/users/user.tpl:7 msgid "Edit user" msgstr "Benutzer bearbeiten" -#: views/html/users/index.tpl:3 +#: views/html/users/index.tpl:6 msgid "Create new user" msgstr "Neuen Benutzer erstellen" -#: views/html/users/index.tpl:7 views/html/users/user.tpl:10 +#: views/html/users/index.tpl:10 views/html/users/user.tpl:13 #, php-format msgid "registered on %s" msgstr "registriert am %s" -#: views/html/users/login.tpl:5 +#: views/html/users/login.tpl:8 msgid "Login failed" msgstr "Die Anmeldung war nicht korrekt" -#: views/html/users/register.tpl:3 +#: views/html/users/register.tpl:6 msgid "Registration" msgstr "Registrierung" -#: views/html/users/register.tpl:14 +#: views/html/users/register.tpl:17 #, php-format msgid "Username is too short (min. %d chars)" msgstr "Der Benutzername ist zu kurz (min. %d Zeichen)" -#: views/html/users/register.tpl:16 +#: views/html/users/register.tpl:19 #, php-format msgid "Username is too long (max. %d chars)" msgstr "Der Benutzername ist zu lang (max. %d Zeichen)" -#: views/html/users/register.tpl:18 +#: views/html/users/register.tpl:21 msgid "Username contains illegal characters" msgstr "Der Benutzername enthält ungültige Zeichen" -#: views/html/users/register.tpl:20 +#: views/html/users/register.tpl:23 msgid "Username already exists" msgstr "Der Benutzername existiert bereits" -#: views/html/users/register.tpl:22 +#: views/html/users/register.tpl:25 msgid "Username invalid" msgstr "Der Benutzername ist ungültig" -#: views/html/users/register.tpl:27 +#: views/html/users/register.tpl:30 #, php-format msgid "Prename is too short (min. %d chars)" msgstr "Der Vorname ist zu kurz (min. %d Zeichen)" -#: views/html/users/register.tpl:29 +#: views/html/users/register.tpl:32 #, php-format msgid "Prename is too long (max. %d chars)" msgstr "Der Vorname ist zu lang (max. %d Zeichen)" -#: views/html/users/register.tpl:31 +#: views/html/users/register.tpl:34 #, php-format msgid "Prename contains illegal characters" msgstr "Der Vorname enthält ungültige Zeichen" -#: views/html/users/register.tpl:33 +#: views/html/users/register.tpl:36 msgid "Prename invalid" msgstr "Der Vorname ist ungültig" -#: views/html/users/register.tpl:38 +#: views/html/users/register.tpl:41 #, php-format msgid "Surname is too short (min. %d chars)" msgstr "Der Nachname ist zu kurz (min. %d Zeichen)" -#: views/html/users/register.tpl:40 +#: views/html/users/register.tpl:43 #, php-format msgid "Surname is too long (max. %d chars)" msgstr "Der Nachname ist zu lang (max. %d Zeichen)" -#: views/html/users/register.tpl:42 +#: views/html/users/register.tpl:45 #, php-format msgid "Surname contains illegal characters" msgstr "Der Nachname enthält ungültige Zeichen" -#: views/html/users/register.tpl:44 +#: views/html/users/register.tpl:47 msgid "Surname invalid" msgstr "Der Nachname ist ungültig" -#: views/html/users/register.tpl:49 views/html/users/register.tpl:53 +#: views/html/users/register.tpl:52 views/html/users/register.tpl:56 msgid "E‑mail address invalid" msgstr "Die E‑Mail-Adresse ist ungültig" -#: views/html/users/register.tpl:51 +#: views/html/users/register.tpl:54 msgid "E‑mail address already exists" msgstr "E‑Mail-Adresse existiert bereits" -#: views/html/users/register.tpl:58 +#: views/html/users/register.tpl:61 #, php-format msgid "Password is too short (min. %d chars)" msgstr "Das Passwort ist zu kurz (min. %d Zeichen)" -#: views/html/users/register.tpl:60 +#: views/html/users/register.tpl:63 #, php-format msgid "Password is too long (max. %d chars)" msgstr "Das Passwort ist zu lang (max. %d Zeichen)" -#: views/html/users/register.tpl:62 +#: views/html/users/register.tpl:65 msgid "Password invalid" msgstr "Das Passwort ist ungültig" -#: views/html/users/register.tpl:89 +#: views/html/users/register.tpl:92 msgid "Register" msgstr "Registrieren" @@ -822,10 +957,6 @@ msgstr "Registrieren" #~ msgid "Go on" #~ msgstr "Hier geht es weiter" -#, fuzzy -#~ msgid "Character groups" -#~ msgstr "Charaktergruppen" - #~ msgid "locked" #~ msgstr "gesperrt" diff --git a/models/CharactergroupsModel.inc b/models/CharactergroupsModel.inc index 3f24a9dc..750aec58 100644 --- a/models/CharactergroupsModel.inc +++ b/models/CharactergroupsModel.inc @@ -104,6 +104,91 @@ } + /** + * Check if a Character groups-group name already exists. + * + * @param string $name Name to check + * @param int $groupsgroupId Do not check this ID (for editing) + * @return boolean Whether name exists or not + */ + public function characterGroupsgroupNameExists($name, $groupsgroupId=null) + { + $data = $this->db->query( + 'SELECT id '. + 'FROM charactergroupsgroups '. + 'WHERE name = ? OR url = ?', + 'ss', + $name, + \nre\core\Linker::createLinkParam($name) + ); + + + return (!empty($data) && (is_null($groupsgroupId) || $groupsgroupId != $data[0]['id'])); + } + + + /** + * Create a new Character groups-group. + * + * @param int $userId ID of user + * @param int $seminaryId ID of Seminary + * @param string $name Name of new groups-group + * @param boolean $preferred Whether groups-group is preferred or not + * @return int ID of newly created groups-group + */ + public function createGroupsgroup($userId, $seminaryId, $name, $preferred) + { + $this->db->query( + 'INSERT INTO charactergroupsgroups '. + '(created_user_id, seminary_id, name, url, preferred) '. + 'VALUES '. + '(?, ?, ?, ?, ?)', + 'iissd', + $userId, + $seminaryId, + $name, + \nre\core\Linker::createLinkParam($name), + $preferred + ); + + + return $this->db->getInsertId(); + } + + + /** + * Edit a Character groups-group. + * + * @param int $groupsgroupId ID of groups-group to edit + * @param string $name New name of groups-group + * @param boolean $preferred Whether groups-group is preferred or not + */ + public function editGroupsgroup($groupsgroupId, $name, $preferred) + { + $this->db->query( + 'UPDATE charactergroupsgroups '. + 'SET name = ?, url = ?, preferred = ? '. + 'WHERE id = ?', + 'ssdi', + $name, + \nre\core\Linker::createLinkParam($name), + $preferred, + $groupsgroupId + ); + } + + + /** + * Delete a Character groups-group. + * + * @param int $groupsgroupId ID of groups-group to delete + */ + public function deleteGroupsgroup($groupsgroupId) + { + $this->db->query('DELETE FROM charactergroupsgroups WHERE id = ?', 'i', $groupsgroupId); + } + + /** * Get Character groups for a Character groups-group. * @@ -168,6 +253,116 @@ } + /** + * Get a Character group by its ID. + * + * @throws IdNotFoundException + * @param int $groupsgroupId ID of the Character group + * @return array Character group data + */ + public function getGroupById($groupId) + { + $data = $this->db->query( + 'SELECT id, name, url, xps, motto '. + 'FROM v_charactergroups '. + 'WHERE id = ?', + 'i', + $groupId + ); + if(empty($data)) { + throw new \nre\exceptions\IdNotFoundException($groupId); + } + + + return $data[0]; + } + + + /** + * Check if a Character group name already exists. + * + * @param string $name Name to check + * @param int $groupsgroupId Do not check this ID (for editing) + * @return boolean Whether name exists or not + */ + public function characterGroupNameExists($name, $groupId=null) + { + $data = $this->db->query( + 'SELECT id '. + 'FROM charactergroups '. + 'WHERE name = ? OR url = ?', + 'ss', + $name, + \nre\core\Linker::createLinkParam($name) + ); + + + return (!empty($data) && (is_null($groupId) || $groupId != $data[0]['id'])); + } + + + /** + * Create a new Character group. + * + * @param int $userId ID of user + * @param int $groupsgroupId ID of Character groups-group + * @param string $name Name of new group + * @param string $motto Motto of new group + * @return int ID of newly created group + */ + public function createGroup($userId, $groupsgroupId, $name, $motto) + { + $this->db->query( + 'INSERT INTO charactergroups '. + '(created_user_id, charactergroupsgroup_id, name, url, motto) '. + 'VALUES '. + '(?, ?, ?, ?, ?)', + 'iisss', + $userId, + $groupsgroupId, + $name, + \nre\core\Linker::createLinkParam($name), + $motto + ); + + + return $this->db->getInsertId(); + } + + + /** + * Edit a Character group. + * + * @param int $groupId ID of Character group to edit + * @param string $name New name of group + * @param string $motto New motto of group + */ + public function editGroup($groupId, $name, $motto) + { + $this->db->query( + 'UPDATE charactergroups '. + 'SET name = ?, url = ?, motto = ? '. + 'WHERE id = ?', + 'sssi', + $name, + \nre\core\Linker::createLinkParam($name), + $motto, + $groupId + ); + } + + + /** + * Delete a Character group. + * + * @param int $groupId ID of Character group to delete + */ + public function deleteGroup($groupId) + { + $this->db->query('DELETE FROM charactergroups WHERE id = ?', 'i', $groupId); + } + + /** * Get the rank of a XP-value of a Character. * diff --git a/views/html/charactergroups/creategroup.tpl b/views/html/charactergroups/creategroup.tpl new file mode 100644 index 00000000..e2a0e306 --- /dev/null +++ b/views/html/charactergroups/creategroup.tpl @@ -0,0 +1,60 @@ + +
+ +
+ +
+ +

+ +
    + &$settings) : ?> +
  • +
      + $value) : ?> +
    • + getMessage(); + break; + } ?> +
    • + +
    +
  • + +
+ +
+
+ + />
+ + />
+
+ +
diff --git a/views/html/charactergroups/creategroupsgroup.tpl b/views/html/charactergroups/creategroupsgroup.tpl new file mode 100644 index 00000000..6ff7c821 --- /dev/null +++ b/views/html/charactergroups/creategroupsgroup.tpl @@ -0,0 +1,51 @@ + +
+ +
+ + + +

+ +
    + &$settings) : ?> +
  • +
      + $value) : ?> +
    • + getMessage(); + break; + } ?> +
    • + +
    +
  • + +
+ +
+
+ + />
+ checked="checked" /> +
+ +
diff --git a/views/html/charactergroups/deletegroup.tpl b/views/html/charactergroups/deletegroup.tpl new file mode 100644 index 00000000..85e682a4 --- /dev/null +++ b/views/html/charactergroups/deletegroup.tpl @@ -0,0 +1,17 @@ + +
+ +
+ + +

+ + +
+ + +
diff --git a/views/html/charactergroups/deletegroupsgroup.tpl b/views/html/charactergroups/deletegroupsgroup.tpl new file mode 100644 index 00000000..5f788af8 --- /dev/null +++ b/views/html/charactergroups/deletegroupsgroup.tpl @@ -0,0 +1,16 @@ + +
+ +
+ + +

+ + +
+ + +
diff --git a/views/html/charactergroups/editgroup.tpl b/views/html/charactergroups/editgroup.tpl new file mode 100644 index 00000000..8836be07 --- /dev/null +++ b/views/html/charactergroups/editgroup.tpl @@ -0,0 +1,60 @@ + +
+ +
+ + + +

+ +
    + &$settings) : ?> +
  • +
      + $value) : ?> +
    • + getMessage(); + break; + } ?> +
    • + +
    +
  • + +
+ +
+
+ + />
+ + />
+
+ +
diff --git a/views/html/charactergroups/editgroupsgroup.tpl b/views/html/charactergroups/editgroupsgroup.tpl new file mode 100644 index 00000000..949e39f8 --- /dev/null +++ b/views/html/charactergroups/editgroupsgroup.tpl @@ -0,0 +1,51 @@ + +
+ +
+ + + +

+ +
    + &$settings) : ?> +
  • +
      + $value) : ?> +
    • + getMessage(); + break; + } ?> +
    • + +
    +
  • + +
+ +
+
+ + />
+ checked="checked" /> +
+ +
diff --git a/views/html/charactergroups/group.tpl b/views/html/charactergroups/group.tpl index bef1a928..80780fc8 100644 --- a/views/html/charactergroups/group.tpl +++ b/views/html/charactergroups/group.tpl @@ -11,7 +11,9 @@ 0) : ?> diff --git a/views/html/charactergroups/groupsgroup.tpl b/views/html/charactergroups/groupsgroup.tpl index d87db53c..82f23436 100644 --- a/views/html/charactergroups/groupsgroup.tpl +++ b/views/html/charactergroups/groupsgroup.tpl @@ -7,6 +7,13 @@
  • + 0) : ?> + +

    diff --git a/views/html/charactergroups/index.tpl b/views/html/charactergroups/index.tpl index b3644e4a..9bc4b0b4 100644 --- a/views/html/charactergroups/index.tpl +++ b/views/html/charactergroups/index.tpl @@ -7,6 +7,13 @@
  • + + 0) : ?> + + +
    • diff --git a/views/html/charactergroups/managegroup.tpl b/views/html/charactergroups/managegroup.tpl index 56059d30..c2a5f0c6 100644 --- a/views/html/charactergroups/managegroup.tpl +++ b/views/html/charactergroups/managegroup.tpl @@ -8,6 +8,8 @@
    + +