From 6599e06bab682343b4aa19c057452a88888a8834 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 zcmeAQycJV_Pl#nI0|NuYRt5$J83qQ1BdiPz9~l@Ja=1aF3=9VR3=A9$3=D?+3=EtM z3=CFKz6(DC14xN4KLdj}0|P@OKLdj{0|P@LKLY~~0|Ucceg+0U1_p*zQ1v_c85md@ z7#I%mGcX7-Ffg3pXJFuEV5n!f&CkFfz`(%plAnP=je&vT7gVF700V<80|SGB00V;- z0|SGf00V;<0|P@Pls`cLV&QH91_luZ28QPX3=CWh3=Dq+7#P?X7#P?E85r0Z7#R2j z85pD)7#PF^Ar3PVWMD92U|_Hp1gWcMU?>uVIG_@$pi7W}L6CugVY(p1r7Hy)7^D~& z81@Jz`)PIz`!d6ahR+S#K9&)5b+=(NC+iC={zBbL#u=! z4(bZbh{J?MAO=W5`Klt25YU10okbw#ctO<#i9kFUD*_40bPr6A%`QVZ1u=KC6eOf~ zN>AIApst1A`za{~wfwxco9y;S*_yi(g7ZLgGEt zf`3qrtTGS>^2 zP!B5EKFUE78IL?9A4|$Z5}ScMB#}AELvlrcJR~I2PfsTrh5;0s6qOU*^k{fCiAw_RLRDKCm-(JOfh)d2YLVWr} z5#sYtijWXtQG)OVl^_NyD?u!@QGz(YM+u@YK?#yJ@}P975+r15lps+%Ly3VwiGhJ( zC6qp+1hMyhy%Hq#vnfMds;3Mo!yT0&K8RC>Sd^s<@nM}ZByCJlhFCmH84|ZElo=Q} z7#SEgL*@6VK!W~|3dCWLR3Hw2sR9Y%pDGZC)ibL?5{ZZ^#2{H!h|e`tAqq`ZAwIEJ zg;*S|3dwefst|`)szOrzLRCl+yi6669S^EPeE3WioX;8lLTME>h{wFuz#gt=2v>tx zoTUay?WJmvplVTrIBdBZ#NZ8TkaoanDE&Ffh1iL4r6}3lhW~P;^Li9!HLK1NnlrGVQ<|18)`BQZ3AwfG= z7ecRqN^I7Jr0P9T`XJPRW4e%_yr2sy7al^zKkGu$#$R2CPg(RJ76|G=LPSar618f2 zkSK71$_Li#F)%PfTG|YY85kH+85kH$7#J8p(E@6rfQn~O$=A;Sv9KAcb`t{wLmdMH z!v+Qhh8UjNfW$edH8q6+lIQ&x7#QrJYEl>&7?PoEkp19p(`=|fIs+sjd4gI*(D+#Z%Ii@1 zSqzZo8i)((#dt74N;^9~E7gQiw zL&aBun%q!!IRgVjE0hh&vhzS)F9rsNcu=1a6#t-3B}l#xM1XoTpq>l^14A&BAH@JE z&6Yv=ouE!7lhJ{c85aj?O7#J94Kxq)w1R|iAnSp_!jDdlnmH|?}gE}lAsoc#|d1o;hI%gyn zB_@}o7Ad3`<(C#PI2WZRmZU1=rIst8NfqmYRZLbE(9uPcVsJ^#Ni9jmrNdo7Pa9o_ zYf5Gb4)vS!1)3Q}6Y~<&F-)BNLC`_cH@~DLp8-rNWagD6=47Toc#{o;Wu^QQb5j{W zghFCYQEFmJr9x^&W^qX|gWu$Xde zqSUn1qN3E4NfNu+Effq5tPCtBACgdJ1+zB4k~qa8rQlvvT2PS6;FnsO3T5Y|gM}uq zm(^E+$SUL<-d3EPk($Q<;X_qGg(u&ZHPC`cC?usO7A2)-mS8AFNNnbkJHf;ORbMvw zq(Xo?IP@7@5{nhUEQQSC5{1&d^uv2{N;1qB m8U&N?D(h{&sm#g30rTMG`|66ENvUP|MOCHgC6oWFcLMGH delta 3616 zcmcZ=(-l~MPl#nI0|NuY0tN;K84zY=V7L#Wxj>=}3^RBc7&sUh7-sS^FmN(3Ff4-d z*YGkha5FG4Y~^KO5NBXuILOPupv}O*aFdsTfro*Cft8PefscWKL5L5cUy+Z2ft7)Q zL5q)pL5P8Y!GMo}ftP`yp23-qfkA+QfgzBOfkBOdfguU1v6GL1L6(7mVFn)qgBAk= z!!|w!1~CQ(hKEr84?c*6%KQurA`A=+{`?FKAUCJ*Gcd3*FfiovGcd3-Fff$yGcZUq zFfi2dLmW1XpMk-Mfq`K;SY15>!!3S@10F&ZeBx(d5M*Fr_|FeP`c;0IJ56mg(5z%9hU zAjQDIAS%SbzygX(A&7%ag&-C?2{AB;GB7ZBL-~n95Qk<7F)*kwFfddLF)*lt(wq=O zJvi=0g}MtdiL*n)Tls+yF3DR>= z{v)WtFU27a{Q{+biZd`UF)%Rv6Nkh#qXfjE!V(a5DiRO}YDz$St}g+yr=EeqP6Fa$ zR|&9-82lw5KF@^GMG_1Q2N)R`swE&%U?T;Qcaehl&{ql)Wf4*g3}+Y^7*eDlxx-Kz zl7@VwAq7{YG{j*A(vURNB+bAe3d;Wzq#-_ECJnJ*n=~Z9?t?14B@K!57t#z2x(o~q zJTj2-!b%2`h@zl$mkh+BT`~}dU6g^CcSi=|!6!11H1SRb;$VJR28Mcb1_lOcS%`vQ zSx8XF%0e7eC=1EQjk1t}XSyt;sNDeNAC-mpP5{AUG7RQ*+eBr-`wh&nk%NFvizgm}n85n@iXA|!33C_*Z=`g$m1 zl_JCkR}~>Xe5nYDyFZE$pR*`I5~q$5BpbOw=>jE)!)GZ$e7aBx;`8-Nkf_?K1PP&2 zN)U%%Q-XN#F;rjuXC;WsenB-dD?=>iREB5}RE8KVrwnnRjxxk&4$2S<{FNaNNP*JX zQ1K#VNXWE9&0DMtaoB2QNC<6&m{-rRN11`akb!~Wf-(bx6$1kUlL{mRY*ipG4N!rk zjRX~l#f2&m2REoNFlaC^Fm$Rwf^?G#BuLLf=^rW(k0`4`a*4JoBo{@iLUKX9D#$_g z3=9iYA*p+rDkP}(t3nJstqQT|nJOeC-m605@{cM5gAM}&gS;98gB$|`gO3^mgB}9| zLpGG2r3TS=QVrsPOKOm)d!z;_p#G>aFj#`x7itU)5}^EVsSZ&Pqz)+wbJQUk=c_{! z;d&^&Qyr4J5355gxTy{a%12QCTXjex{060et3yH#6ilE7ji3g^JY@|?l<8_PFw}$E zY9<;G106LWA>gF}iMucjNRSsn<(Et@@sDLsmp)`yNV}QgXsO9X+z`)=Ll>oJHLZA##4gh5X!*7 z;K#tg5DZo9#lXN2#{kLa9t;c&$xv}nLm~jm22r5Y52B|tFfiCNK*|eHi`f|@2*vY2 zeE}#NlxsjtCs6#)2eB9!7$TuGh?)!{K%EE%1_m1j28KjXKY)RO0n}5;U|?XF4V6z} zU|_I?vO#4*Ka?HMz`)SUz`&5e0LfV(VNf5V6U1O(U~mETGr;V6NTJZoz`$U_0Lea} zHa0bb&eU!GNUQ+;WH zn#>}kFga34ZSw}9TE@vPB6ci(iMgqp3q+HcHoHp%Gf$o`Eiw6^^e%RD1p^Z+W24DU zGRmw5mR81wn^(!4VwpTyQET!OMcvIdO2?Tdi>SIY`z7XX&QROMw0WW?56k2gx^j~* H=ym}BKqW${ 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 @@
    + +