implement icons for Character groups Quests and improve media handilng for Character groups

This commit is contained in:
coderkun 2014-05-07 00:44:45 +02:00
commit 072333c88b
12 changed files with 334 additions and 96 deletions

View file

@ -29,7 +29,9 @@
'seminarymoodpic' => array('admin', 'moderator', 'user'),
'seminary' => array('admin', 'moderator', 'user'),
'avatar' => array('admin', 'moderator', 'user'),
'achievement' => array('admin', 'moderator', 'user')
'achievement' => array('admin', 'moderator', 'user'),
'charactergroup' => array('admin', 'moderator', 'user'),
'charactergroupsquest' => array('admin', 'moderator', 'user')
);
/**
* User seminary permissions
@ -37,15 +39,17 @@
* @var array
*/
public $seminaryPermissions = array(
'seminary' => array('admin', 'moderator', 'user', 'guest'),
'achievement' => array('admin', 'moderator', 'user', 'guest')
'seminary' => array('admin', 'moderator', 'user', 'guest'),
'achievement' => array('admin', 'moderator', 'user', 'guest'),
'charactergroup' => array('admin', 'moderator', 'user', 'guest'),
'charactergroupsquest' => array('admin', 'moderator', 'user', 'guest')
);
/**
* Required models
*
* @var array
*/
public $models = array('seminaries', 'achievements', 'media', 'avatars', 'charactergroups');
public $models = array('seminaries', 'achievements', 'media', 'avatars', 'charactergroups', 'charactergroupsquests');
@ -318,6 +322,48 @@
}
/**
* Action: charactergroupsquest
*
* Display the icon for a Character groups Quest 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 $questUrl URL-Title of a Character groups Quest
*/
public function charactergroupsquest($seminaryUrl, $groupsgroupUrl, $questUrl)
{
// Get seminary
$seminary = $this->Seminaries->getSeminaryByUrl($seminaryUrl);
// Get Character groups-group
$groupsgroup = $this->Charactergroups->getGroupsgroupByUrl($seminary['id'], $groupsgroupUrl);
// Get Character groups Quests
$quest = $this->Charactergroupsquests->getQuestByUrl($groupsgroup['id'], $questUrl);
// Check media
if(is_null($quest['questsmedia_id'])) {
$this->redirect($this->linker->link(array('grafics','charactergroup.jpg')));
}
// Get media
$media = $this->Media->getSeminaryMediaById($quest['questsmedia_id']);
// Get file
$file = $this->getMediaFile($media, 'charactergroupsquest');
if(is_null($file)) {
return;
}
// Pass data to view
$this->set('media', $media);
$this->set('file', $file);
}
/**
@ -425,6 +471,14 @@
\nre\configs\AppConfig::$media['charactergroup']['height']
);
break;
case 'charactergroupsquest':
$file = self::resizeImage(
$media['filename'],
$format,
\nre\configs\AppConfig::$media['charactergroupsquest']['width'],
\nre\configs\AppConfig::$media['charactergroupsquest']['height']
);
break;
default:
throw new ParamsNotValidException($action);
break;