ipmlement CRUD for Character (groups-) groups

This commit is contained in:
coderkun 2014-04-28 10:09:17 +02:00
commit f74d18c668
15 changed files with 1140 additions and 142 deletions

View file

@ -134,6 +134,22 @@
'minlength' => 5, 'minlength' => 5,
'maxlength' => 12, 'maxlength' => 12,
'regex' => '/^\w*$/' '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 * @var array
*/ */
public static $routes = array( public static $routes = array(
array('^users/([^/]+)/(edit|delete)/?$', 'users/$2/$1', true), array('^users/([^/]+)/(edit|delete)/?$', 'users/$2/$1', true),
array('^users/(?!(index|login|register|logout|create|edit|delete))/?', 'users/user/$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/([^/]+)/(edit|delete)/?$', 'seminaries/$2/$1', true),
array('^seminaries/(?!(index|create|edit|delete))/?', 'seminaries/seminary/$1', true), array('^seminaries/(?!(index|create|edit|delete))/?', 'seminaries/seminary/$1', true),
array('^questgroups/([^/]+)/(create)/?$', 'questgroups/$2/$1', true), array('^questgroups/([^/]+)/(create)/?$', 'questgroups/$2/$1', true),
array('^questgroups/([^/]+)/([^/]+)/?$', 'questgroups/questgroup/$1/$2', true), array('^questgroups/([^/]+)/([^/]+)/?$', 'questgroups/questgroup/$1/$2', true),
array('^quests/([^/]+)/(create|createmedia)/?$', 'quests/$2/$1' , true), array('^quests/([^/]+)/(create|createmedia)/?$', 'quests/$2/$1' , true),
array('^quests/([^/]+)/([^/]+)/([^/]+)/(submissions)/?$', 'quests/$4/$1/$2/$3', true), array('^quests/([^/]+)/([^/]+)/([^/]+)/(submissions)/?$', 'quests/$4/$1/$2/$3', true),
array('^quests/([^/]+)/([^/]+)/([^/]+)/(submission)/([^/]+)/?$', 'quests/$4/$1/$2/$3/$5', true), array('^quests/([^/]+)/([^/]+)/([^/]+)/(submission)/([^/]+)/?$', 'quests/$4/$1/$2/$3/$5', true),
array('^quests/(?!(index|create|createmedia))/?', 'quests/quest/$1', true), array('^quests/(?!(index|create|createmedia))/?', 'quests/quest/$1', true),
array('^characters/([^/]+)/(register|manage)/?$', 'characters/$2/$1', true), array('^characters/([^/]+)/(register|manage)/?$', 'characters/$2/$1', true),
array('^characters/([^/]+)/?$', 'characters/index/$1', true), array('^characters/([^/]+)/?$', 'characters/index/$1', true),
array('^characters/([^/]+)/(?!(index|create|register|manage))/?', 'characters/character/$1/$2', true), array('^characters/([^/]+)/(?!(index|create|register|manage))/?', 'characters/character/$1/$2', true),
array('^charactergroups/([^/]+)/?$', 'charactergroups/index/$1', true), array('^charactergroups/([^/]+)/?$', 'charactergroups/index/$1', true),
array('^charactergroups/([^/]+)/([^/]+)/?$', 'charactergroups/groupsgroup/$1/$2', true), array('^charactergroups/([^/]+)/(create)/?$', 'charactergroups/creategroupsgroup/$1/$2', true),
array('^charactergroups/([^/]+)/([^/]+)/(managegroup)/?$', 'charactergroups/$3/$1/$2', true), array('^charactergroups/([^/]+)/([^/]+)/?$', 'charactergroups/groupsgroup/$1/$2', true),
array('^charactergroups/([^/]+)/([^/]+)/(?!(managegroup))/?', 'charactergroups/group/$1/$2/$3', true), array('^charactergroups/([^/]+)/([^/]+)/(edit|delete)/?$', 'charactergroups/$3groupsgroup/$1/$2', true),
array('^charactergroupsquests/([^/]+)/([^/]+)/([^/]+)/?$', 'charactergroupsquests/quest/$1/$2/$3', 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('^achievements/([^/]+)/?$', 'achievements/index/$1', true),
array('^library/([^/]+)/?$', 'library/index/$1', true), array('^library/([^/]+)/?$', 'library/index/$1', true),
array('^library/([^/]+)/([^/]+)/?$', 'library/topic/$1/$2', true), array('^library/([^/]+)/([^/]+)/?$', 'library/topic/$1/$2', true),
@ -189,9 +208,13 @@
array('^quests/(submission)/([^/]+)/([^/]+)/([^/]+)/([^/]+)$', 'quests/$2/$3/$4/$1/$5', true), array('^quests/(submission)/([^/]+)/([^/]+)/([^/]+)/([^/]+)$', 'quests/$2/$3/$4/$1/$5', true),
array('^characters/(index|character)/(.*)$', 'characters/$2', true), array('^characters/(index|character)/(.*)$', 'characters/$2', true),
array('^characters/(register|manage)/(.*)$', 'characters/$2/$1', true), array('^characters/(register|manage)/(.*)$', 'characters/$2/$1', true),
array('^charactergroups/(index|group)/(.*)$', 'charactergroups/$2', true), array('^charactergroups/index/([^/]+)$', 'charactergroups/$1', true),
array('^charactergroups/groupsgroup/(.*)$', 'charactergroups/$1', true), array('^charactergroups/creategroupsgroup/([^/]+)$', 'charactergroups/$1/create', true),
array('^charactergroups/(managegroup)/(.*)$', 'charactergroups/$2/$1', 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('^charactergroupsquests/quest/(.*)$', 'charactergroupsquests/$1', true),
array('^achievements/index/(.*)$', 'achievements/$1', true), array('^achievements/index/(.*)$', 'achievements/$1', true),
array('^library/(index|topic)/(.*)$', 'library/$2', true) array('^library/(index|topic)/(.*)$', 'library/$2', true)

View file

@ -25,14 +25,28 @@
* @var array * @var array
*/ */
public $models = array('seminaries', 'charactergroups', 'charactergroupsquests', 'characters', 'avatars', 'media'); public $models = array('seminaries', 'charactergroups', 'charactergroupsquests', 'characters', 'avatars', 'media');
/**
* Required components
*
* @var array
*/
public $components = array('validation');
/** /**
* User permissions * User permissions
* *
* @var array * @var array
*/ */
public $permissions = array( public $permissions = array(
'quest' => array('admin', 'moderator', 'user'), 'index' => array('admin', 'moderator', 'user'),
'manage' => 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 * User seminary permissions
@ -40,8 +54,16 @@
* @var array * @var array
*/ */
public $seminaryPermissions = array( public $seminaryPermissions = array(
'quest' => array('admin', 'moderator', 'user'), 'index' => array('admin', 'moderator', 'user'),
'manage' => array('admin', 'moderator') '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. * Action: group.
* *
@ -231,6 +421,192 @@
$this->set('characters', $characters); $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);
}
} }
?> ?>

View file

@ -1,8 +1,8 @@
msgid "" msgid ""
msgstr "" msgstr ""
"Project-Id-Version: The Legend of Z\n" "Project-Id-Version: The Legend of Z\n"
"POT-Creation-Date: 2014-04-27 04:32+0100\n" "POT-Creation-Date: 2014-04-28 10:08+0100\n"
"PO-Revision-Date: 2014-04-28 09:31+0100\n" "PO-Revision-Date: 2014-04-28 10:08+0100\n"
"Last-Translator: \n" "Last-Translator: \n"
"Language-Team: \n" "Language-Team: \n"
"Language: de_DE\n" "Language: de_DE\n"
@ -134,11 +134,15 @@ msgstr ""
msgid "Seldom Achievements" msgid "Seldom Achievements"
msgstr "Die seltensten Achievements" msgstr "Die seltensten Achievements"
#: views/html/achievements/index.tpl:27 #: views/html/achievements/index.tpl:26
#, php-format #, php-format
msgid "Achievement has been achieved only %d times" msgid "Achievement has been achieved only %d times"
msgstr "wurde erst %d mal gefunden" 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 #: views/html/achievements/index.tpl:33
msgid "Most successful collectors" msgid "Most successful collectors"
msgstr "Die erfolgreichsten Sammler" msgstr "Die erfolgreichsten Sammler"
@ -158,8 +162,8 @@ msgid "Own progress: %d%%"
msgstr "Persönlicher Fortschritt: %d%%" msgstr "Persönlicher Fortschritt: %d%%"
#: views/html/achievements/index.tpl:52 #: views/html/achievements/index.tpl:52
#: views/html/charactergroups/group.tpl:24 #: views/html/charactergroups/group.tpl:26
#: views/html/charactergroups/managegroup.tpl:17 #: views/html/charactergroups/managegroup.tpl:19
#: views/html/characters/character.tpl:36 views/html/seminarybar/index.tpl:7 #: views/html/characters/character.tpl:36 views/html/seminarybar/index.tpl:7
msgid "Rank" msgid "Rank"
msgstr "Platz" msgstr "Platz"
@ -174,14 +178,16 @@ msgstr "Du hast bislang %d von insgesamt %d Achievements erreicht"
msgid "achieved at: %s" msgid "achieved at: %s"
msgstr "erhalten am: %s" msgstr "erhalten am: %s"
#: views/html/achievements/index.tpl:68
msgid "Secret Achievement"
msgstr "Geheimes Achievement"
#: views/html/achievements/index.tpl:72 #: views/html/achievements/index.tpl:72
msgid "Continue playing to unlock this secret Achievement" msgid "Continue playing to unlock this secret Achievement"
msgstr "Spiele weiter, um diesen geheimen Erfolg freizuschalten" 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/group.tpl:8
#: views/html/charactergroups/groupsgroup.tpl:8 #: views/html/charactergroups/groupsgroup.tpl:8
#: views/html/charactergroups/index.tpl:9 #: views/html/charactergroups/index.tpl:9
@ -191,49 +197,192 @@ msgstr "Spiele weiter, um diesen geheimen Erfolg freizuschalten"
msgid "Character Groups" msgid "Character Groups"
msgstr "Gruppen" msgstr "Gruppen"
#: views/html/charactergroups/group.tpl:14 views/html/characters/index.tpl:13 #: views/html/charactergroups/creategroup.tpl:12
#: views/html/characters/manage.tpl:10 msgid "New Character group"
msgid "Manage" msgstr "Neue Gruppe"
msgstr "Verwalten"
#: views/html/charactergroups/group.tpl:26 #: views/html/charactergroups/creategroup.tpl:23
#: views/html/charactergroups/managegroup.tpl:19 #: 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" msgid "Members"
msgstr "Mitglieder" msgstr "Mitglieder"
#: views/html/charactergroups/group.tpl:26 #: views/html/charactergroups/group.tpl:28
#: views/html/charactergroups/managegroup.tpl:19 #: views/html/charactergroups/managegroup.tpl:21
msgid "Member" msgid "Member"
msgstr "Mitglied" msgstr "Mitglied"
#: views/html/charactergroups/group.tpl:30 #: views/html/charactergroups/group.tpl:32
#: views/html/charactergroups/managegroup.tpl:23 #: views/html/charactergroups/managegroup.tpl:25
#: views/html/characters/character.tpl:11 #: views/html/characters/character.tpl:11
#: views/html/characters/character.tpl:13 views/html/characters/index.tpl:9 #: 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/characters/manage.tpl:8 views/html/seminarymenu/index.tpl:2
#: views/html/users/user.tpl:15 #: views/html/users/user.tpl:18
msgid "Characters" msgid "Characters"
msgstr "Charaktere" msgstr "Charaktere"
#: views/html/charactergroups/group.tpl:45 #: views/html/charactergroups/group.tpl:47
#: views/html/charactergroups/groupsgroup.tpl:20 #: views/html/charactergroups/groupsgroup.tpl:27
#, php-format #, php-format
msgid "%s-Quests" msgid "%s-Quests"
msgstr "%squests" 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" msgid "Remove Characters"
msgstr "Entferne Charaktere" msgstr "Entferne Charaktere"
#: views/html/charactergroups/managegroup.tpl:43 #: views/html/charactergroups/managegroup.tpl:45
msgid "Filter Characters" msgid "Filter Characters"
msgstr "Filtere Charaktere" msgstr "Filtere Charaktere"
#: views/html/charactergroups/managegroup.tpl:49 #: views/html/charactergroups/managegroup.tpl:51
msgid "Add Characters" msgid "Add Characters"
msgstr "Füge Charaktere hinzu" 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/questgroups/questgroup.tpl:57 views/html/quests/create.tpl:9
#: views/html/quests/index.tpl:9 #: views/html/quests/index.tpl:9
msgid "Quests" msgid "Quests"
@ -263,7 +412,7 @@ msgstr "Fortschritt"
#: views/html/characters/character.tpl:67 #: views/html/characters/character.tpl:67
#: views/html/characters/character.tpl:73 #: views/html/characters/character.tpl:73
#: views/html/characters/character.tpl:79 views/html/seminarybar/index.tpl:42 #: 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" msgid "Level"
msgstr "Level" msgstr "Level"
@ -292,17 +441,21 @@ msgstr "Letzter Speicherpunkt"
msgid "Topic progress" msgid "Topic progress"
msgstr "Thematischer Fortschritt" 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 #: views/html/characters/index.tpl:19 views/html/characters/manage.tpl:14
msgid "Properties" msgid "Properties"
msgstr "Eigenschaften" msgstr "Eigenschaften"
#: views/html/characters/index.tpl:20 views/html/characters/manage.tpl:15 #: 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/error/index.tpl:8 views/html/error/index.tpl:9
#: views/html/introduction/index.tpl:6 views/html/introduction/index.tpl:7 #: views/html/introduction/index.tpl:9 views/html/introduction/index.tpl:10
#: views/html/users/create.tpl:6 views/html/users/create.tpl:7 #: views/html/users/create.tpl:9 views/html/users/create.tpl:10
#: views/html/users/edit.tpl:6 views/html/users/edit.tpl:7 #: views/html/users/edit.tpl:9 views/html/users/edit.tpl:10
#: views/html/users/login.tpl:9 views/html/users/login.tpl:10 #: views/html/users/login.tpl:12 views/html/users/login.tpl:13
#: views/html/users/register.tpl:78 views/html/users/register.tpl:79 #: views/html/users/register.tpl:81 views/html/users/register.tpl:82
msgid "Username" msgid "Username"
msgstr "Benutzername" msgstr "Benutzername"
@ -312,7 +465,7 @@ msgid "XPs"
msgstr "XP" msgstr "XP"
#: views/html/characters/index.tpl:22 views/html/characters/manage.tpl:17 #: 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" msgid "Roles"
msgstr "Rollen" msgstr "Rollen"
@ -390,32 +543,27 @@ msgstr "Das Kursfeld „%s“ ist ungültig"
msgid "Seminary fields" msgid "Seminary fields"
msgstr "Kursfelder" 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/error/index.tpl:5 views/html/error/index.tpl:14
#: views/html/introduction/index.tpl:3 views/html/introduction/index.tpl:11 #: views/html/introduction/index.tpl:6 views/html/introduction/index.tpl:14
#: views/html/menu/index.tpl:6 views/html/users/login.tpl:3 #: views/html/menu/index.tpl:6 views/html/users/login.tpl:6
#: views/html/users/login.tpl:17 #: views/html/users/login.tpl:20
msgid "Login" msgid "Login"
msgstr "Login" msgstr "Login"
#: views/html/error/index.tpl:10 views/html/error/index.tpl:11 #: 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/introduction/index.tpl:11 views/html/introduction/index.tpl:12
#: views/html/users/create.tpl:14 views/html/users/create.tpl:15 #: views/html/users/create.tpl:17 views/html/users/create.tpl:18
#: views/html/users/edit.tpl:14 views/html/users/edit.tpl:15 #: views/html/users/edit.tpl:16 views/html/users/edit.tpl:17
#: views/html/users/login.tpl:11 views/html/users/login.tpl:12 #: views/html/users/login.tpl:14 views/html/users/login.tpl:15
#: views/html/users/register.tpl:86 views/html/users/register.tpl:87 #: views/html/users/register.tpl:89 views/html/users/register.tpl:90
msgid "Password" msgid "Password"
msgstr "Passwort" 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" msgid "or"
msgstr "oder" 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" msgid "register yourself"
msgstr "registriere dich" msgstr "registriere dich"
@ -432,7 +580,7 @@ msgstr "Levelaufstieg"
msgid "You have reached level %d" msgid "You have reached level %d"
msgstr "Du hast Level %d erreicht" msgstr "Du hast Level %d erreicht"
#: views/html/introduction/index.tpl:1 #: views/html/introduction/index.tpl:4
msgid "Introduction" msgid "Introduction"
msgstr "Einführung" msgstr "Einführung"
@ -455,16 +603,16 @@ msgstr ""
msgid "Total progress: %d%%" msgid "Total progress: %d%%"
msgstr "Gesamtfortschritt: %d%%" msgstr "Gesamtfortschritt: %d%%"
#: views/html/menu/index.tpl:2 views/html/users/create.tpl:1 #: views/html/menu/index.tpl:2 views/html/users/create.tpl:4
#: views/html/users/delete.tpl:1 views/html/users/edit.tpl:1 #: views/html/users/delete.tpl:4 views/html/users/edit.tpl:4
#: views/html/users/index.tpl:1 views/html/users/login.tpl:1 #: views/html/users/index.tpl:4 views/html/users/login.tpl:4
#: views/html/users/register.tpl:1 views/html/users/user.tpl:1 #: views/html/users/register.tpl:4 views/html/users/user.tpl:4
msgid "Users" msgid "Users"
msgstr "Benutzer" 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/delete.tpl:6 views/html/seminaries/edit.tpl:6
#: views/html/seminaries/index.tpl:1 #: views/html/seminaries/index.tpl:4
msgid "Seminaries" msgid "Seminaries"
msgstr "Kurse" msgstr "Kurse"
@ -481,7 +629,7 @@ msgid "Create Questgroup"
msgstr "Questgruppe erstellen" msgstr "Questgruppe erstellen"
#: views/html/questgroups/create.tpl:14 views/html/questgroups/create.tpl:15 #: 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 #: views/html/seminaries/edit.tpl:11 views/html/seminaries/edit.tpl:12
msgid "Title" msgid "Title"
msgstr "Titel" msgstr "Titel"
@ -498,11 +646,6 @@ msgstr "Optionale Questline gefunden"
msgid "Create Quest" msgid "Create Quest"
msgstr "Quest erstellen" 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 #: views/html/quests/create.tpl:17 views/html/quests/index.tpl:14
msgid "Questgroup" msgid "Questgroup"
msgstr "Questgruppe" msgstr "Questgruppe"
@ -573,7 +716,7 @@ msgstr "Lösung von %s"
msgid "submitted" msgid "submitted"
msgstr "eingereicht" msgstr "eingereicht"
#: views/html/seminaries/create.tpl:7 #: views/html/seminaries/create.tpl:5
msgid "New seminary" msgid "New seminary"
msgstr "Neuer Kurs" msgstr "Neuer Kurs"
@ -586,36 +729,28 @@ msgstr "Kurs löschen"
msgid "Should the seminary “%s” really be deleted?" msgid "Should the seminary “%s” really be deleted?"
msgstr "Soll der Kurs „%s“ wirklich gelöscht werden?" 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 #: views/html/seminaries/edit.tpl:7 views/html/seminaries/seminary.tpl:9
msgid "Edit seminary" msgid "Edit seminary"
msgstr "Kurs bearbeiten" 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" msgid "save"
msgstr "speichern" msgstr "speichern"
#: views/html/seminaries/index.tpl:4 #: views/html/seminaries/index.tpl:7
msgid "Create new seminary" msgid "Create new seminary"
msgstr "Neuen Kurs erstellen" msgstr "Neuen Kurs erstellen"
#: views/html/seminaries/index.tpl:21 #: views/html/seminaries/index.tpl:24
#, php-format #, php-format
msgid "created by %s on %s" msgid "created by %s on %s"
msgstr "erstellt von %s am %s" msgstr "erstellt von %s am %s"
#: views/html/seminaries/index.tpl:24 #: views/html/seminaries/index.tpl:27
msgid "Create a Character" msgid "Create a Character"
msgstr "Erstelle einen Charakter" msgstr "Erstelle einen Charakter"
#: views/html/seminaries/index.tpl:26 #: views/html/seminaries/index.tpl:29
#, php-format #, php-format
msgid "Your Character “%s” has not been activated yet" msgid "Your Character “%s” has not been activated yet"
msgstr "Dein Charakter „%s“ wurde noch nicht aktiviert" msgstr "Dein Charakter „%s“ wurde noch nicht aktiviert"
@ -633,142 +768,142 @@ msgstr "Letztes Achievement"
msgid "Show %s-Profile" msgid "Show %s-Profile"
msgstr "%s-Profil anzeigen" msgstr "%s-Profil anzeigen"
#: views/html/users/create.tpl:2 #: views/html/users/create.tpl:5
msgid "New user" msgid "New user"
msgstr "Neuer Benutzer" msgstr "Neuer Benutzer"
#: views/html/users/create.tpl:8 views/html/users/create.tpl:9 #: views/html/users/create.tpl:11 views/html/users/create.tpl:12
#: views/html/users/edit.tpl:8 views/html/users/edit.tpl:9 #: views/html/users/edit.tpl:11 views/html/users/register.tpl:83
#: views/html/users/register.tpl:80 views/html/users/register.tpl:81 #: views/html/users/register.tpl:84
msgid "Prename" msgid "Prename"
msgstr "Vorname" msgstr "Vorname"
#: views/html/users/create.tpl:10 views/html/users/create.tpl:11 #: views/html/users/create.tpl:13 views/html/users/create.tpl:14
#: views/html/users/edit.tpl:10 views/html/users/edit.tpl:11 #: views/html/users/edit.tpl:12 views/html/users/edit.tpl:13
#: views/html/users/register.tpl:82 views/html/users/register.tpl:83 #: views/html/users/register.tpl:85 views/html/users/register.tpl:86
msgid "Surname" msgid "Surname"
msgstr "Nachname" msgstr "Nachname"
#: views/html/users/create.tpl:12 views/html/users/create.tpl:13 #: views/html/users/create.tpl:15 views/html/users/create.tpl:16
#: views/html/users/edit.tpl:12 views/html/users/edit.tpl:13 #: views/html/users/edit.tpl:14 views/html/users/edit.tpl:15
#: views/html/users/register.tpl:84 views/html/users/register.tpl:85 #: views/html/users/register.tpl:87 views/html/users/register.tpl:88
#: views/html/users/user.tpl:12 #: views/html/users/user.tpl:15
msgid "Email address" msgid "Email address"
msgstr "EMail-Adresse" msgstr "EMail-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" msgid "Delete user"
msgstr "Benutzer löschen" msgstr "Benutzer löschen"
#: views/html/users/delete.tpl:4 #: views/html/users/delete.tpl:7
#, php-format #, php-format
msgid "Should the user “%s” (%s) really be deleted?" msgid "Should the user “%s” (%s) really be deleted?"
msgstr "Soll der Benutzer „%s“ (%s) wirklich gelöscht werden?" 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" msgid "Edit user"
msgstr "Benutzer bearbeiten" msgstr "Benutzer bearbeiten"
#: views/html/users/index.tpl:3 #: views/html/users/index.tpl:6
msgid "Create new user" msgid "Create new user"
msgstr "Neuen Benutzer erstellen" 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 #, php-format
msgid "registered on %s" msgid "registered on %s"
msgstr "registriert am %s" msgstr "registriert am %s"
#: views/html/users/login.tpl:5 #: views/html/users/login.tpl:8
msgid "Login failed" msgid "Login failed"
msgstr "Die Anmeldung war nicht korrekt" msgstr "Die Anmeldung war nicht korrekt"
#: views/html/users/register.tpl:3 #: views/html/users/register.tpl:6
msgid "Registration" msgid "Registration"
msgstr "Registrierung" msgstr "Registrierung"
#: views/html/users/register.tpl:14 #: views/html/users/register.tpl:17
#, php-format #, php-format
msgid "Username is too short (min. %d chars)" msgid "Username is too short (min. %d chars)"
msgstr "Der Benutzername ist zu kurz (min. %d Zeichen)" msgstr "Der Benutzername ist zu kurz (min. %d Zeichen)"
#: views/html/users/register.tpl:16 #: views/html/users/register.tpl:19
#, php-format #, php-format
msgid "Username is too long (max. %d chars)" msgid "Username is too long (max. %d chars)"
msgstr "Der Benutzername ist zu lang (max. %d Zeichen)" 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" msgid "Username contains illegal characters"
msgstr "Der Benutzername enthält ungültige Zeichen" msgstr "Der Benutzername enthält ungültige Zeichen"
#: views/html/users/register.tpl:20 #: views/html/users/register.tpl:23
msgid "Username already exists" msgid "Username already exists"
msgstr "Der Benutzername existiert bereits" msgstr "Der Benutzername existiert bereits"
#: views/html/users/register.tpl:22 #: views/html/users/register.tpl:25
msgid "Username invalid" msgid "Username invalid"
msgstr "Der Benutzername ist ungültig" msgstr "Der Benutzername ist ungültig"
#: views/html/users/register.tpl:27 #: views/html/users/register.tpl:30
#, php-format #, php-format
msgid "Prename is too short (min. %d chars)" msgid "Prename is too short (min. %d chars)"
msgstr "Der Vorname ist zu kurz (min. %d Zeichen)" msgstr "Der Vorname ist zu kurz (min. %d Zeichen)"
#: views/html/users/register.tpl:29 #: views/html/users/register.tpl:32
#, php-format #, php-format
msgid "Prename is too long (max. %d chars)" msgid "Prename is too long (max. %d chars)"
msgstr "Der Vorname ist zu lang (max. %d Zeichen)" msgstr "Der Vorname ist zu lang (max. %d Zeichen)"
#: views/html/users/register.tpl:31 #: views/html/users/register.tpl:34
#, php-format #, php-format
msgid "Prename contains illegal characters" msgid "Prename contains illegal characters"
msgstr "Der Vorname enthält ungültige Zeichen" msgstr "Der Vorname enthält ungültige Zeichen"
#: views/html/users/register.tpl:33 #: views/html/users/register.tpl:36
msgid "Prename invalid" msgid "Prename invalid"
msgstr "Der Vorname ist ungültig" msgstr "Der Vorname ist ungültig"
#: views/html/users/register.tpl:38 #: views/html/users/register.tpl:41
#, php-format #, php-format
msgid "Surname is too short (min. %d chars)" msgid "Surname is too short (min. %d chars)"
msgstr "Der Nachname ist zu kurz (min. %d Zeichen)" msgstr "Der Nachname ist zu kurz (min. %d Zeichen)"
#: views/html/users/register.tpl:40 #: views/html/users/register.tpl:43
#, php-format #, php-format
msgid "Surname is too long (max. %d chars)" msgid "Surname is too long (max. %d chars)"
msgstr "Der Nachname ist zu lang (max. %d Zeichen)" msgstr "Der Nachname ist zu lang (max. %d Zeichen)"
#: views/html/users/register.tpl:42 #: views/html/users/register.tpl:45
#, php-format #, php-format
msgid "Surname contains illegal characters" msgid "Surname contains illegal characters"
msgstr "Der Nachname enthält ungültige Zeichen" msgstr "Der Nachname enthält ungültige Zeichen"
#: views/html/users/register.tpl:44 #: views/html/users/register.tpl:47
msgid "Surname invalid" msgid "Surname invalid"
msgstr "Der Nachname ist ungültig" 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 "Email address invalid" msgid "Email address invalid"
msgstr "Die EMail-Adresse ist ungültig" msgstr "Die EMail-Adresse ist ungültig"
#: views/html/users/register.tpl:51 #: views/html/users/register.tpl:54
msgid "Email address already exists" msgid "Email address already exists"
msgstr "EMail-Adresse existiert bereits" msgstr "EMail-Adresse existiert bereits"
#: views/html/users/register.tpl:58 #: views/html/users/register.tpl:61
#, php-format #, php-format
msgid "Password is too short (min. %d chars)" msgid "Password is too short (min. %d chars)"
msgstr "Das Passwort ist zu kurz (min. %d Zeichen)" msgstr "Das Passwort ist zu kurz (min. %d Zeichen)"
#: views/html/users/register.tpl:60 #: views/html/users/register.tpl:63
#, php-format #, php-format
msgid "Password is too long (max. %d chars)" msgid "Password is too long (max. %d chars)"
msgstr "Das Passwort ist zu lang (max. %d Zeichen)" msgstr "Das Passwort ist zu lang (max. %d Zeichen)"
#: views/html/users/register.tpl:62 #: views/html/users/register.tpl:65
msgid "Password invalid" msgid "Password invalid"
msgstr "Das Passwort ist ungültig" msgstr "Das Passwort ist ungültig"
#: views/html/users/register.tpl:89 #: views/html/users/register.tpl:92
msgid "Register" msgid "Register"
msgstr "Registrieren" msgstr "Registrieren"
@ -822,10 +957,6 @@ msgstr "Registrieren"
#~ msgid "Go on" #~ msgid "Go on"
#~ msgstr "Hier geht es weiter" #~ msgstr "Hier geht es weiter"
#, fuzzy
#~ msgid "Character groups"
#~ msgstr "Charaktergruppen"
#~ msgid "locked" #~ msgid "locked"
#~ msgstr "gesperrt" #~ msgstr "gesperrt"

View file

@ -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. * 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. * Get the rank of a XP-value of a Character.
* *

View file

@ -0,0 +1,60 @@
<?php if(!is_null($seminary['charactergroups_seminarymedia_id'])) : ?>
<div class="moodpic">
<img src="<?=$linker->link(array('media','seminarymoodpic',$seminary['url'], 'charactergroups'))?>">
</div>
<?php endif ?>
<ul class="breadcrumbs">
<li><a href="<?=$linker->link(array('seminaries',$seminary['url']))?>"><?=$seminary['title']?></a></li>
<li><i class="fa fa-chevron-right fa-fw"></i><a href="<?=$linker->link(array('index',$seminary['url']),1)?>"><?=_('Character Groups')?></a></li>
<li><i class="fa fa-chevron-right fa-fw"></i><a href="<?=$linker->link(array('groupsgroup',$seminary['url'],$groupsgroup['url']),1)?>"><?=$groupsgroup['name']?></a></li>
</ul>
<h1><?=_('New Character group')?></h1>
<?php if($validation !== true) : ?>
<ul>
<?php foreach($validation as $field => &$settings) : ?>
<li>
<ul>
<?php foreach($settings as $setting => $value) : ?>
<li>
<?php switch($field) {
case 'charactergroupname':
switch($setting) {
case 'minlength': printf(_('Name is too short (min. %d chars)'), $value);
break;
case 'maxlength': printf(_('Name is too long (max. %d chars)'), $value);
break;
case 'regex': echo _('Name contains illegal characters');
break;
case 'exist': echo _('Name already exists');
break;
default: echo _('Name invalid');
}
break;
case 'motto':
switch($setting) {
case 'maxlength': printf(_('Motto is too long (max. %d chars)'), $value);
break;
default: echo _('Motto invalid');
}
break;
default:
echo $exception->getMessage();
break;
} ?>
</li>
<?php endforeach ?>
</ul>
</li>
<?php endforeach ?>
</ul>
<?php endif ?>
<form method="post" action="" class="logreg">
<fieldset>
<label for="charactergroupname"><?=_('Name')?>:</label>
<input type="text" id="charactergroupname" name="charactergroupname" placeholder="<?=_('Name')?>" title="<?=_('Name')?>" required="required" maxlength="<?=$validationSettings['charactergroupname']['maxlength']?>" value="<?=$charactergroupname?>" <?=(array_key_exists('charactergroupname', $validation)) ? 'class="invalid"' : null?> /><br />
<label for="motto"><?=_('Motto')?>:</label>
<input type="text" id="motto" name="motto" placeholder="<?=_('Motto')?>" title="<?=_('Motto')?>" maxlength="<?=$validationSettings['motto']['maxlength']?>" value="<?=$motto?>" <?=(array_key_exists('motto', $validation)) ? 'class="invalid"' : null?> /><br />
</fieldset>
<input type="submit" name="create" value="<?=_('create')?>" />
</form>

View file

@ -0,0 +1,51 @@
<?php if(!is_null($seminary['charactergroups_seminarymedia_id'])) : ?>
<div class="moodpic">
<img src="<?=$linker->link(array('media','seminarymoodpic',$seminary['url'], 'charactergroups'))?>">
</div>
<?php endif ?>
<ul class="breadcrumbs">
<li><a href="<?=$linker->link(array('seminaries',$seminary['url']))?>"><?=$seminary['title']?></a></li>
<li><i class="fa fa-chevron-right fa-fw"></i><a href="<?=$linker->link(array('charactergroups','index',$seminary['url']))?>"><?=_('Character Groups')?></a></li>
</ul>
<h1><?=_('New Character groups-group')?></h1>
<?php if($validation !== true) : ?>
<ul>
<?php foreach($validation as $field => &$settings) : ?>
<li>
<ul>
<?php foreach($settings as $setting => $value) : ?>
<li>
<?php switch($field) {
case 'charactergroupsgroupname':
switch($setting) {
case 'minlength': printf(_('Name is too short (min. %d chars)'), $value);
break;
case 'maxlength': printf(_('Name is too long (max. %d chars)'), $value);
break;
case 'regex': echo _('Name contains illegal characters');
break;
case 'exist': echo _('Name already exists');
break;
default: echo _('Name invalid');
}
break;
default:
echo $exception->getMessage();
break;
} ?>
</li>
<?php endforeach ?>
</ul>
</li>
<?php endforeach ?>
</ul>
<?php endif ?>
<form method="post" action="" class="logreg">
<fieldset>
<label for="charactergroupsgroupname"><?=_('Name')?>:</label>
<input type="text" name="charactergroupsgroupname" placeholder="<?=_('Name')?>" title="<?=_('Name')?>" required="required" maxlength="<?=$validationSettings['charactergroupsgroupname']['maxlength']?>" value="<?=$charactergroupsgroupname?>" <?=(array_key_exists('charactergroupsgroupname', $validation)) ? 'class="invalid"' : null?> /><br />
<input type="checkbox" id="preferred" name="preferred" <?php if($preferred) : ?>checked="checked"<?php endif ?> /><label for="preferred"><?=_('preferred')?></label>
</fieldset>
<input type="submit" name="create" value="<?=_('create')?>" />
</form>

View file

@ -0,0 +1,17 @@
<?php if(!is_null($seminary['charactergroups_seminarymedia_id'])) : ?>
<div class="moodpic">
<img src="<?=$linker->link(array('media','seminarymoodpic',$seminary['url'], 'charactergroups'))?>">
</div>
<?php endif ?>
<ul class="breadcrumbs">
<li><a href="<?=$linker->link(array('seminaries',$seminary['url']))?>"><?=$seminary['title']?></a></li>
<li><i class="fa fa-chevron-right fa-fw"></i><a href="<?=$linker->link(array('index',$seminary['url']),1)?>"><?=_('Character Groups')?></a></li>
<li><i class="fa fa-chevron-right fa-fw"></i><a href="<?=$linker->link(array('groupsgroup',$seminary['url'],$groupsgroup['url']),1)?>"><?=$groupsgroup['name']?></a></li>
</ul>
<h1><?=_('Delete Character group')?></h1>
<?=sprintf(_('Should the Character group “%s” really be deleted?'), $group['name'])?>
<form method="post">
<input type="submit" name="delete" value="<?=_('delete')?>" />
<input type="submit" name="not-delete" value="<?=_('cancel')?>" />
</form>

View file

@ -0,0 +1,16 @@
<?php if(!is_null($seminary['charactergroups_seminarymedia_id'])) : ?>
<div class="moodpic">
<img src="<?=$linker->link(array('media','seminarymoodpic',$seminary['url'], 'charactergroups'))?>">
</div>
<?php endif ?>
<ul class="breadcrumbs">
<li><a href="<?=$linker->link(array('seminaries',$seminary['url']))?>"><?=$seminary['title']?></a></li>
<li><i class="fa fa-chevron-right fa-fw"></i><a href="<?=$linker->link(array('index',$seminary['url']),1)?>"><?=_('Character Groups')?></a></li>
</ul>
<h1><?=_('Delete Character groups-group')?></h1>
<?=sprintf(_('Should the Character groups-group “%s” really be deleted?'), $groupsgroup['name'])?>
<form method="post">
<input type="submit" name="delete" value="<?=_('delete')?>" />
<input type="submit" name="not-delete" value="<?=_('cancel')?>" />
</form>

View file

@ -0,0 +1,60 @@
<?php if(!is_null($seminary['charactergroups_seminarymedia_id'])) : ?>
<div class="moodpic">
<img src="<?=$linker->link(array('media','seminarymoodpic',$seminary['url'], 'charactergroups'))?>">
</div>
<?php endif ?>
<ul class="breadcrumbs">
<li><a href="<?=$linker->link(array('seminaries',$seminary['url']))?>"><?=$seminary['title']?></a></li>
<li><i class="fa fa-chevron-right fa-fw"></i><a href="<?=$linker->link(array('index',$seminary['url']),1)?>"><?=_('Character Groups')?></a></li>
<li><i class="fa fa-chevron-right fa-fw"></i><a href="<?=$linker->link(array('groupsgroup',$seminary['url'],$groupsgroup['url']),1)?>"><?=$groupsgroup['name']?></a></li>
</ul>
<h1><?=_('Edit Character group')?></h1>
<?php if($validation !== true) : ?>
<ul>
<?php foreach($validation as $field => &$settings) : ?>
<li>
<ul>
<?php foreach($settings as $setting => $value) : ?>
<li>
<?php switch($field) {
case 'charactergroupname':
switch($setting) {
case 'minlength': printf(_('Name is too short (min. %d chars)'), $value);
break;
case 'maxlength': printf(_('Name is too long (max. %d chars)'), $value);
break;
case 'regex': echo _('Name contains illegal characters');
break;
case 'exist': echo _('Name already exists');
break;
default: echo _('Name invalid');
}
break;
case 'motto':
switch($setting) {
case 'maxlength': printf(_('Motto is too long (max. %d chars)'), $value);
break;
default: echo _('Motto invalid');
}
break;
default:
echo $exception->getMessage();
break;
} ?>
</li>
<?php endforeach ?>
</ul>
</li>
<?php endforeach ?>
</ul>
<?php endif ?>
<form method="post" action="" class="logreg">
<fieldset>
<label for="charactergroupname"><?=_('Name')?>:</label>
<input type="text" id="charactergroupname" name="charactergroupname" placeholder="<?=_('Name')?>" title="<?=_('Name')?>" required="required" maxlength="<?=$validationSettings['charactergroupname']['maxlength']?>" value="<?=$charactergroupname?>" <?=(array_key_exists('charactergroupname', $validation)) ? 'class="invalid"' : null?> /><br />
<label for="motto"><?=_('Motto')?>:</label>
<input type="text" id="motto" name="motto" placeholder="<?=_('Motto')?>" title="<?=_('Motto')?>" maxlength="<?=$validationSettings['motto']['maxlength']?>" value="<?=$motto?>" <?=(array_key_exists('motto', $validation)) ? 'class="invalid"' : null?> /><br />
</fieldset>
<input type="submit" name="edit" value="<?=_('edit')?>" />
</form>

View file

@ -0,0 +1,51 @@
<?php if(!is_null($seminary['charactergroups_seminarymedia_id'])) : ?>
<div class="moodpic">
<img src="<?=$linker->link(array('media','seminarymoodpic',$seminary['url'], 'charactergroups'))?>">
</div>
<?php endif ?>
<ul class="breadcrumbs">
<li><a href="<?=$linker->link(array('seminaries',$seminary['url']))?>"><?=$seminary['title']?></a></li>
<li><i class="fa fa-chevron-right fa-fw"></i><a href="<?=$linker->link(array('charactergroups','index',$seminary['url']))?>"><?=_('Character Groups')?></a></li>
</ul>
<h1><?=_('Edit Character groups-group')?></h1>
<?php if($validation !== true) : ?>
<ul>
<?php foreach($validation as $field => &$settings) : ?>
<li>
<ul>
<?php foreach($settings as $setting => $value) : ?>
<li>
<?php switch($field) {
case 'charactergroupsgroupname':
switch($setting) {
case 'minlength': printf(_('Name is too short (min. %d chars)'), $value);
break;
case 'maxlength': printf(_('Name is too long (max. %d chars)'), $value);
break;
case 'regex': echo _('Name contains illegal characters');
break;
case 'exist': echo _('Name already exists');
break;
default: echo _('Name invalid');
}
break;
default:
echo $exception->getMessage();
break;
} ?>
</li>
<?php endforeach ?>
</ul>
</li>
<?php endforeach ?>
</ul>
<?php endif ?>
<form method="post" action="" class="logreg">
<fieldset>
<label for="charactergroupsgroupname"><?=_('Name')?>:</label>
<input type="text" name="charactergroupsgroupname" placeholder="<?=_('Name')?>" title="<?=_('Name')?>" required="required" maxlength="<?=$validationSettings['charactergroupsgroupname']['maxlength']?>" value="<?=$charactergroupsgroupname?>" <?=(array_key_exists('charactergroupsgroupname', $validation)) ? 'class="invalid"' : null?> /><br />
<input type="checkbox" id="preferred" name="preferred" <?php if($preferred) : ?>checked="checked"<?php endif ?> /><label for="preferred"><?=_('preferred')?></label>
</fieldset>
<input type="submit" name="edit" value="<?=_('edit')?>" />
</form>

View file

@ -11,7 +11,9 @@
<?php if(count(array_intersect(array('admin', 'moderator'), \hhu\z\controllers\SeminaryController::$character['characterroles'])) > 0) : ?> <?php if(count(array_intersect(array('admin', 'moderator'), \hhu\z\controllers\SeminaryController::$character['characterroles'])) > 0) : ?>
<nav class="admin"> <nav class="admin">
<li><a href="<?=$linker->link(array('managegroup',$seminary['url'],$groupsgroup['url'],$group['url']),1)?>"><?=_('Manage')?></a></li> <li><a href="<?=$linker->link(array('editgroup',$seminary['url'],$groupsgroup['url'],$group['url']),1)?>"><?=_('Edit Character group')?></a></li>
<li><a href="<?=$linker->link(array('deletegroup',$seminary['url'],$groupsgroup['url'],$group['url']),1)?>"><?=_('Delete Character group')?></a></li>
<li><a href="<?=$linker->link(array('managegroup',$seminary['url'],$groupsgroup['url'],$group['url']),1)?>"><?=_('Manage Character group')?></a></li>
</nav> </nav>
<?php endif ?> <?php endif ?>

View file

@ -7,6 +7,13 @@
<li><a href="<?=$linker->link(array('seminaries',$seminary['url']))?>"><?=$seminary['title']?></a></li> <li><a href="<?=$linker->link(array('seminaries',$seminary['url']))?>"><?=$seminary['title']?></a></li>
<li><i class="fa fa-chevron-right fa-fw"></i><a href="<?=$linker->link(array('index',$seminary['url']),1)?>"><?=_('Character Groups')?></a></li> <li><i class="fa fa-chevron-right fa-fw"></i><a href="<?=$linker->link(array('index',$seminary['url']),1)?>"><?=_('Character Groups')?></a></li>
</ul> </ul>
<?php if(count(array_intersect(array('admin', 'moderator'), \hhu\z\controllers\SeminaryController::$character['characterroles'])) > 0) : ?>
<nav class="admin">
<li><a href="<?=$linker->link(array('editgroupsgroup',$seminary['url'],$groupsgroup['url']), 1)?>"><?=_('Edit Character groups-group')?></a></li>
<li><a href="<?=$linker->link(array('deletegroupsgroup',$seminary['url'],$groupsgroup['url']), 1)?>"><?=_('Delete Character groups-group')?></a></li>
<li><a href="<?=$linker->link(array('creategroup',$seminary['url'],$groupsgroup['url']), 1)?>"><?=_('Create new Character group')?></a></li>
</nav>
<?php endif ?>
<h1><?=$groupsgroup['name']?></h1> <h1><?=$groupsgroup['name']?></h1>

View file

@ -7,6 +7,13 @@
<li><a href="<?=$linker->link(array('seminaries',$seminary['url']))?>"><?=$seminary['title']?></a></li> <li><a href="<?=$linker->link(array('seminaries',$seminary['url']))?>"><?=$seminary['title']?></a></li>
</ul> </ul>
<h1><?=_('Character Groups')?></h1> <h1><?=_('Character Groups')?></h1>
<?php if(count(array_intersect(array('admin', 'moderator'), \hhu\z\controllers\SeminaryController::$character['characterroles'])) > 0) : ?>
<nav class="admin">
<li><a href="<?=$linker->link(array('creategroupsgroup',$seminary['url']),1)?>"><?=_('Create new Character groups-group')?></a></li>
</nav>
<?php endif ?>
<ul class="cgqlist"> <ul class="cgqlist">
<?php foreach($groupsgroups as &$group) : ?> <?php foreach($groupsgroups as &$group) : ?>
<li><a href="<?=$linker->link(array('groupsgroup',$seminary['url'],$group['url']),1)?>"><?=$group['name']?></a></li> <li><a href="<?=$linker->link(array('groupsgroup',$seminary['url'],$group['url']),1)?>"><?=$group['name']?></a></li>

View file

@ -8,6 +8,8 @@
<li><i class="fa fa-chevron-right fa-fw"></i><a href="<?=$linker->link(array('index',$seminary['url']),1)?>"><?=_('Character Groups')?></a></li> <li><i class="fa fa-chevron-right fa-fw"></i><a href="<?=$linker->link(array('index',$seminary['url']),1)?>"><?=_('Character Groups')?></a></li>
<li><i class="fa fa-chevron-right fa-fw"></i><a href="<?=$linker->link(array('groupsgroup',$seminary['url'],$groupsgroup['url']),1)?>"><?=$groupsgroup['name']?></a></li> <li><i class="fa fa-chevron-right fa-fw"></i><a href="<?=$linker->link(array('groupsgroup',$seminary['url'],$groupsgroup['url']),1)?>"><?=$groupsgroup['name']?></a></li>
</ul> </ul>
<h1><?=_('Manage Character group')?></h1>
<div class="gbanner cf"> <div class="gbanner cf">
<img src="http://s1.directupload.net/images/140325/3eqybn4i.png" class="gbanner"> <img src="http://s1.directupload.net/images/140325/3eqybn4i.png" class="gbanner">
<h1><?=$group['name']?></h1> <h1><?=$group['name']?></h1>