add icons for Character groups

This commit is contained in:
coderkun 2014-04-29 14:18:04 +02:00
commit f2de7c3de7
7 changed files with 88 additions and 20 deletions

View file

@ -132,6 +132,9 @@
// Get Character groups
$groups = $this->Charactergroups->getGroupsForCharacter($character['id']);
foreach($groups as &$group) {
$group['groupsgroup'] = $this->Charactergroups->getGroupsgroupById($group['charactergroupsgroup_id']);
}
// Get Achievements
$achievements = $this->Achievements->getAchievedAchievementsForCharacter($character['id']);

View file

@ -24,14 +24,15 @@
*
* @var array
*/
public $models = array('uploads', 'users', 'userroles', 'characterroles', 'seminaries');
public $models = array('uploads', 'users', 'userroles', 'characterroles', 'seminaries', 'charactergroups');
/**
* User permissions
*
* @var array
*/
public $permissions = array(
'index' => array('admin', 'moderator', 'user', 'guest')
'seminary' => array('admin', 'moderator', 'user', 'guest'),
'charactergroup' => array('admin', 'moderator', 'user', 'guest')
);
/**
* User seminary permissions
@ -39,7 +40,8 @@
* @var array
*/
public $seminaryPermissions = array(
'seminary' => array('admin', 'moderator', 'user', 'guest')
'seminary' => array('admin', 'moderator', 'user', 'guest'),
'charactergroup' => array('admin', 'moderator', 'user')
);
@ -102,6 +104,67 @@
}
}
// Get file
$file = $this->getUploadFile($upload);
if(is_null($file)) {
return;
}
// Pass data to view
$this->set('upload', $upload);
$this->set('file', $file);
}
/**
* Action: charactergroup.
*
* Display the icon of a Character group.
*
* @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 charactergroup($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);
// Get Upload
$upload = $this->Uploads->getSeminaryuploadById($group['seminaryupload_id']);
// Get file
$file = $this->getUploadFile($upload);
if(is_null($file)) {
return;
}
// Pass data to view
$this->set('upload', $upload);
$this->set('file', $file);
}
/**
* Determine the file for an upload.
*
* @throws IdNotFoundException
* @param array $upload Upload to get file for
* @return object File for the upload (or null if upload is cached)
*/
private function getUploadFile($upload)
{
// Set content-type
$this->response->addHeader("Content-type: ".$upload['mimetype']."");
@ -113,23 +176,14 @@
// Cache
if($this->setCacheHeaders($upload['filename'])) {
return;
return null;
}
// Load file
$file = file_get_contents($upload['filename']);
// Pass data to view
$this->set('upload', $upload);
$this->set('file', $file);
return file_get_contents($upload['filename']);
}
/**
* Determine file information and set the HTTP-header for
* caching accordingly.

View file

@ -198,7 +198,7 @@
public function getGroupsForGroupsgroup($groupsgroupId)
{
return $this->db->query(
'SELECT id, name, url, xps, motto '.
'SELECT id, name, url, xps, motto, seminaryupload_id '.
'FROM v_charactergroups '.
'WHERE charactergroupsgroup_id = ?',
'i',
@ -216,7 +216,7 @@
public function getGroupsForCharacter($characterId)
{
return $this->db->query(
'SELECT charactergroups.id, charactergroups.charactergroupsgroup_id, charactergroups.name, charactergroups.url, charactergroups.xps, charactergroupsgroups.id AS charactergroupsgroup_id, charactergroupsgroups.name AS charactergroupsgroup_name, charactergroupsgroups.url AS charactergroupsgroup_url '.
'SELECT charactergroups.id, charactergroups.charactergroupsgroup_id, charactergroups.name, charactergroups.url, charactergroups.seminaryupload_id, charactergroups.xps, charactergroupsgroups.id AS charactergroupsgroup_id, charactergroupsgroups.name AS charactergroupsgroup_name, charactergroupsgroups.url AS charactergroupsgroup_url '.
'FROM characters_charactergroups '.
'LEFT JOIN v_charactergroups AS charactergroups ON charactergroups.id = characters_charactergroups.charactergroup_id '.
'LEFT JOIN charactergroupsgroups ON charactergroupsgroups.id = charactergroups.charactergroupsgroup_id '.
@ -238,7 +238,7 @@
public function getGroupByUrl($groupsgroupId, $groupUrl)
{
$data = $this->db->query(
'SELECT id, name, url, xps, motto '.
'SELECT id, name, url, xps, motto, seminaryupload_id '.
'FROM v_charactergroups '.
'WHERE charactergroupsgroup_id = ? AND url = ?',
'is',
@ -263,7 +263,7 @@
public function getGroupById($groupId)
{
$data = $this->db->query(
'SELECT id, name, url, xps, motto '.
'SELECT id, name, url, xps, motto, seminaryupload_id '.
'FROM v_charactergroups '.
'WHERE id = ?',
'i',

View file

@ -0,0 +1 @@
<?=$file?>

View file

@ -18,7 +18,11 @@
<?php endif ?>
<div class="gbanner cf">
<img src="http://s1.directupload.net/images/140325/3eqybn4i.png" class="gbanner">
<?php if(!is_null($group['seminaryupload_id'])) : ?>
<img src="<?=$linker->link(array('uploads','charactergroup',$seminary['url'],$groupsgroup['url'],$group['url']))?>" class="gbanner">
<?php else : ?>
<img src="<?=$linker->link(array('grafics','charactergroup.jpg'))?>" class="gbanner">
<?php endif ?>
<h1><?=$group['name']?></h1>
<p>"<?=$group['motto']?>"</p>
</div>

View file

@ -86,7 +86,13 @@
<ul class="cranks">
<?php foreach($groups as &$group) : ?>
<li>
<a href="<?=$linker->link(array('charactergroups','group',$seminary['url'],$group['charactergroupsgroup_url'],$group['url']))?>"><img src="http://s1.directupload.net/images/140325/3eqybn4i.png"></a>
<a href="<?=$linker->link(array('charactergroups','group',$seminary['url'],$group['charactergroupsgroup_url'],$group['url']))?>">
<?php if(!is_null($group['seminaryupload_id'])) : ?>
<img src="<?=$linker->link(array('uploads','charactergroup',$seminary['url'],$group['groupsgroup']['url'],$group['url']))?>" class="gbanner">
<?php else : ?>
<img src="<?=$linker->link(array('grafics','charactergroup.jpg'))?>" class="gbanner">
<?php endif ?>
</a>
<p><a href="<?=$linker->link(array('charactergroups','group',$seminary['url'],$group['charactergroupsgroup_url'],$group['url']))?>"><?=$group['name']?></a></p>
<p><small><?=sprintf(_('%dXPs'), $group['xps'])?></small></p>
</li>

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.7 KiB