handle Avatar pictures by MediaAgent

This commit is contained in:
coderkun 2014-04-17 00:13:25 +02:00
commit 9a906e2fd6
12 changed files with 145 additions and 102 deletions

View file

@ -69,6 +69,24 @@
);
/**
* Media sizes
*
* @static
* @var array
*/
public static $media = array(
'questgroup' => array(
'width' => 480,
'height' => 5000
),
'avatar' => array(
'width' => 500,
'height' => 500
)
);
/**
* Miscellaneous settings
*

View file

@ -75,12 +75,6 @@
{
// Level
$character['xplevel'] = $this->Characters->getXPLevelOfCharacters($character['id']);
// Avatar
$avatar = $this->Avatars->getAvatarById($character['avatar_id']);
if(!is_null($avatar['small_avatarpicture_id'])) {
$character['small_avatar'] = $this->Media->getSeminaryMediaById($avatar['small_avatarpicture_id']);
}
}
@ -128,26 +122,6 @@
'superior' => $this->Characters->getSuperiorCharacters($seminary['id'], $character['xps'], \nre\configs\AppConfig::$misc['ranking_range']),
'inferior' => $this->Characters->getInferiorCharacters($seminary['id'], $character['xps'], \nre\configs\AppConfig::$misc['ranking_range'])
);
foreach($ranking['superior'] as &$rankCharacter)
{
if(!is_null($rankCharacter['avatar_id']))
{
$avatar = $this->Avatars->getAvatarById($rankCharacter['avatar_id']);
if(!is_null($avatar['small_avatarpicture_id'])) {
$rankCharacter['small_avatar'] = $this->Media->getSeminaryMediaById($avatar['small_avatarpicture_id']);
}
}
}
foreach($ranking['inferior'] as &$rankCharacter)
{
if(!is_null($rankCharacter['avatar_id']))
{
$avatar = $this->Avatars->getAvatarById($rankCharacter['avatar_id']);
if(!is_null($avatar['small_avatarpicture_id'])) {
$rankCharacter['small_avatar'] = $this->Media->getSeminaryMediaById($avatar['small_avatarpicture_id']);
}
}
}
// Get Quest topics
$questtopics = $this->Questtopics->getQuesttopicsForSeminary($seminary['id']);

View file

@ -26,9 +26,10 @@
*/
public $permissions = array(
'index' => array('admin', 'moderator', 'user', 'guest'),
'seminaryheader' => array('admin', 'moderator', 'user', 'guest'),
'seminary' => array('admin', 'moderator', 'user', 'guest'),
'achievement' => array('admin', 'moderator', 'user', 'guest')
'seminaryheader' => array('admin', 'moderator', 'user'),
'seminary' => array('admin', 'moderator', 'user'),
'avatar' => array('admin', 'moderator', 'user'),
'achievement' => array('admin', 'moderator', 'user')
);
/**
* User seminary permissions
@ -44,7 +45,7 @@
*
* @var array
*/
public $models = array('seminaries', 'achievements', 'media');
public $models = array('seminaries', 'achievements', 'media', 'avatars');
@ -143,7 +144,56 @@
// Get file
$file = $this->getMediaFile($media, $action);
if(is_null($media)) {
if(is_null($file)) {
return;
}
// Pass data to view
$this->set('media', $media);
$this->set('file', $file);
}
/**
* Action: avatar.
*
* Display an Avatar as full size or portrait.
*
* @throws ParamsNotValidException
* @throws IdNotFoundException
* @param string $seminaryUrl URL-title of the Seminary
* @param string $charactertypeUrl URL-title of Character type
* @param int $xplevel XP-level
* @param string $action Size to show (avatar or portrait)
*/
public function avatar($seminaryUrl, $charactertypeUrl, $xplevel, $action='avatar')
{
// Get Seminary
$seminary = $this->Seminaries->getSeminaryByUrl($seminaryUrl);
// Get Avatar
$avatar = $this->Avatars->getAvatarByTypeAndLevel($seminary['id'], $charactertypeUrl, $xplevel);
// Get media
switch($action)
{
case null:
case 'avatar':
$media = $this->Media->getSeminaryMediaById($avatar['avatarpicture_id']);
$file = $this->getMediaFile($media, 'avatar');
break;
case 'portrait':
$media = $this->Media->getSeminaryMediaById($avatar['small_avatarpicture_id']);
$file = $this->getMediaFile($media);
break;
default:
throw new \nre\exceptions\ParamsNotValidException($action);
break;
}
// Get file
if(is_null($file)) {
return;
}
@ -287,10 +337,19 @@
$file = self::resizeImage(
$media['filename'],
$format,
480
\nre\configs\AppConfig::$media['questgroup']['width'],
\nre\configs\AppConfig::$media['questgroup']['height']
);
}
break;
case 'avatar':
$file = self::resizeImage(
$media['filename'],
$format,
\nre\configs\AppConfig::$media['avatar']['width'],
\nre\configs\AppConfig::$media['avatar']['height']
);
break;
default:
throw new ParamsNotValidException($action);
break;
@ -321,12 +380,14 @@
*
* @param string $fileName Absolute pathname of image to resize
* @param string $mimeType Mimetype of target image
* @param int $size New size to resize to
* @param int $width Max. width to resize to
* @param int $height Max. height to resize to
* @return mixed Resized image
*/
private static function resizeImage($fileName, $mimeType, $size)
private static function resizeImage($fileName, $mimeType, $width, $height)
{
// Read image from cache
$tempFileName = ROOT.DS.\nre\configs\AppConfig::$dirs['temporary'].DS.'media-'.basename($fileName).'-'.$size;
$tempFileName = ROOT.DS.\nre\configs\AppConfig::$dirs['temporary'].DS.'media-'.basename($fileName).'-'.$width.'x'.$height;
if(file_exists($tempFileName))
{
// Check age of file
@ -346,12 +407,15 @@
// Calculate new size
$geometry = $im->getImageGeometry();
if($geometry['width'] < $size) {
$size = $geometry['width'];
if($geometry['width'] < $width) {
$width = $geometry['width'];
}
if($geometry['height'] < $height) {
$height = $geometry['width'];
}
// Process
$im->thumbnailImage($size, 5000, true);
$im->thumbnailImage($width, $height, true);
$im->contrastImage(1);
$im->setImageFormat($mimeType);

View file

@ -68,16 +68,6 @@
if($groupsgroup['preferred'])
{
$group['members'] = $this->Characters->getCharactersForGroup($group['id']);
foreach($group['members'] as &$member)
{
if(!is_null($member['avatar_id']))
{
$avatar = $this->Avatars->getAvatarById($member['avatar_id']);
if(!is_null($avatar['small_avatarpicture_id'])) {
$member['small_avatar'] = $this->Media->getSeminaryMediaById($avatar['small_avatarpicture_id']);
}
}
}
$characterGroups[] = $group;
}
}

View file

@ -57,6 +57,36 @@
return null;
}
/**
* Get an Avatar by its Character type and XP-level.
*
* @param int $seminaryId ID of Seminary
* @param string $charactertypeUrl URL-title of Character type
* @param int $xplevel XP-level
* @return array Avatar data
*/
public function getAvatarByTypeAndLevel($seminaryId, $charactertypeUrl, $xplevel)
{
$data = $this->db->query(
'SELECT avatars.id, charactertype_id, xplevel_id, avatarpicture_id, small_avatarpicture_id '.
'FROM avatars '.
'INNER JOIN charactertypes ON charactertypes.id = avatars.charactertype_id '.
'INNER JOIN xplevels ON xplevels.id = avatars.xplevel_id AND xplevels.seminary_id = charactertypes.seminary_id '.
'WHERE charactertypes.seminary_id = ? AND charactertypes.url = ? AND xplevels.level = ?',
'isi',
$seminaryId,
$charactertypeUrl,
$xplevel
);
if(empty($data)) {
throw new \nre\exceptions\IdNotFoundException($charactertypeUrl);
}
return $data[0];
}
}
?>

View file

@ -43,7 +43,7 @@
public function getCharactersForUser($userId)
{
return $this->db->query(
'SELECT characters.id, characters.created, characters.charactertype_id, characters.name, characters.url, characters.xps, characters.xplevel, characters.avatar_id, charactertypes.name AS charactertype_name, charactertypes.url AS charactertypes_url, seminaries.id AS seminary_id, seminaries.url AS seminary_url, seminaries.title AS seminary_title, seminaries.url AS seminary_url '.
'SELECT characters.id, characters.created, characters.charactertype_id, characters.name, characters.url, characters.xps, characters.xplevel, characters.avatar_id, charactertypes.name AS charactertype_name, charactertypes.url AS charactertype_url, seminaries.id AS seminary_id, seminaries.url AS seminary_url, seminaries.title AS seminary_title, seminaries.url AS seminary_url '.
'FROM v_characters AS characters '.
'LEFT JOIN charactertypes ON charactertypes.id = characters.charactertype_id '.
'LEFT JOIN seminaries ON seminaries.id = charactertypes.seminary_id '.
@ -63,7 +63,7 @@
public function getCharactersForSeminary($seminaryId)
{
return $this->db->query(
'SELECT characters.id, characters.created, characters.charactertype_id, characters.name, characters.url, characters.user_id, characters.xps, characters.xplevel, characters.avatar_id, charactertypes.name AS charactertype_name, charactertypes.url AS charactertypes_url, seminaries.id AS seminary_url, seminaries.title AS seminary_title, seminaries.url AS seminary_url '.
'SELECT characters.id, characters.created, characters.charactertype_id, characters.name, characters.url, characters.user_id, characters.xps, characters.xplevel, characters.avatar_id, charactertypes.name AS charactertype_name, charactertypes.url AS charactertype_url, seminaries.id AS seminary_url, seminaries.title AS seminary_title, seminaries.url AS seminary_url '.
'FROM v_characters AS characters '.
'LEFT JOIN charactertypes ON charactertypes.id = characters.charactertype_id '.
'LEFT JOIN seminaries ON seminaries.id = charactertypes.seminary_id '.
@ -83,7 +83,7 @@
public function getCharactersForGroup($groupId)
{
return $this->db->query(
'SELECT characters.id, characters.created, characters.charactertype_id, characters.name, characters.url, characters.user_id, characters.xps, characters.xplevel, characters.avatar_id, charactertypes.name AS charactertype_name, charactertypes.url AS charactertypes_url '.
'SELECT characters.id, characters.created, characters.charactertype_id, characters.name, characters.url, characters.user_id, characters.xps, characters.xplevel, characters.avatar_id, charactertypes.name AS charactertype_name, charactertypes.url AS charactertype_url '.
'FROM v_characters AS characters '.
'LEFT JOIN characters_charactergroups ON characters_charactergroups.character_id = characters.id '.
'LEFT JOIN charactertypes ON charactertypes.id = characters.charactertype_id '.
@ -105,12 +105,9 @@
public function getCharacterForUserAndSeminary($userId, $seminaryId)
{
$data = $this->db->query(
'SELECT characters.id, characters.created, characters.charactertype_id, characters.name, characters.url, characters.user_id, characters.xps, characters.xplevel, characters.avatar_id, charactertypes.name AS charactertype_name, charactertypes.url AS charactertypes_url, seminarymedia.url AS avatar_url, seminarymedia.description AS avatar_description '.
'SELECT characters.id, characters.created, characters.charactertype_id, characters.name, characters.url, characters.user_id, characters.xps, characters.xplevel, characters.avatar_id, charactertypes.name AS charactertype_name, charactertypes.url AS charactertype_url '.
'FROM v_characters AS characters '.
'LEFT JOIN charactertypes ON charactertypes.id = characters.charactertype_id '.
'LEFT JOIN avatars ON avatars.id = characters.avatar_id '.
'LEFT JOIN avatarpictures ON avatarpictures.seminarymedia_id = avatars.avatarpicture_id '.
'LEFT JOIN seminarymedia ON seminarymedia.id = avatarpictures.seminarymedia_id '.
'WHERE characters.user_id = ? AND charactertypes.seminary_id = ?',
'ii',
$userId, $seminaryId
@ -135,14 +132,9 @@
public function getCharacterByUrl($seminaryId, $characterUrl)
{
$data = $this->db->query(
'SELECT characters.id, characters.created, characters.charactertype_id, characters.name, characters.url, characters.user_id, characters.xps, characters.xplevel, characters.avatar_id, charactertypes.name AS charactertype_name, charactertypes.url AS charactertypes_url, seminarymedia.url AS avatar_url, seminarymedia.description AS avatar_description, small_seminarymedia.url AS small_avatar_url, small_seminarymedia.description AS small_avatar_description '.
'SELECT characters.id, characters.created, characters.charactertype_id, characters.name, characters.url, characters.user_id, characters.xps, characters.xplevel, characters.avatar_id, charactertypes.name AS charactertype_name, charactertypes.url AS charactertype_url '.
'FROM v_characters AS characters '.
'LEFT JOIN charactertypes ON charactertypes.id = characters.charactertype_id '.
'LEFT JOIN avatars ON avatars.id = characters.avatar_id '.
'LEFT JOIN avatarpictures ON avatarpictures.seminarymedia_id = avatars.avatarpicture_id '.
'LEFT JOIN seminarymedia ON seminarymedia.id = avatarpictures.seminarymedia_id '.
'LEFT JOIN avatarpictures AS small_avatarpictures ON small_avatarpictures.seminarymedia_id = avatars.small_avatarpicture_id '.
'LEFT JOIN seminarymedia AS small_seminarymedia ON small_seminarymedia.id = small_avatarpictures.seminarymedia_id '.
'WHERE charactertypes.seminary_id = ? AND characters.url = ?',
'is',
$seminaryId, $characterUrl
@ -166,14 +158,9 @@
public function getCharacterById($characterId)
{
$data = $this->db->query(
'SELECT characters.id, characters.created, characters.charactertype_id, characters.name, characters.url, characters.user_id, characters.xps, characters.xplevel, characters.avatar_id, charactertypes.name AS charactertype_name, charactertypes.url AS charactertypes_url, seminarymedia.url AS avatar_url, seminarymedia.description AS avatar_description, small_seminarymedia.url AS small_avatar_url, small_seminarymedia.description AS small_avatar_description '.
'SELECT characters.id, characters.created, characters.charactertype_id, characters.name, characters.url, characters.user_id, characters.xps, characters.xplevel, characters.avatar_id, charactertypes.name AS charactertype_name, charactertypes.url AS charactertype_url '.
'FROM v_characters AS characters '.
'LEFT JOIN charactertypes ON charactertypes.id = characters.charactertype_id '.
'LEFT JOIN avatars ON avatars.id = characters.avatar_id '.
'LEFT JOIN avatarpictures ON avatarpictures.seminarymedia_id = avatars.avatarpicture_id '.
'LEFT JOIN seminarymedia ON seminarymedia.id = avatarpictures.seminarymedia_id '.
'LEFT JOIN avatarpictures AS small_avatarpictures ON small_avatarpictures.seminarymedia_id = avatars.small_avatarpicture_id '.
'LEFT JOIN seminarymedia AS small_seminarymedia ON small_seminarymedia.id = small_avatarpictures.seminarymedia_id '.
'WHERE characters.id = ?',
'i',
$characterId
@ -273,7 +260,7 @@
public function getSuperiorCharacters($seminaryId, $xps, $count)
{
return $this->db->query(
'SELECT characters.id, characters.created, characters.charactertype_id, characters.name, characters.url, characters.user_id, characters.xps, characters.xplevel, characters.avatar_id, charactertypes.name AS charactertype_name, charactertypes.url AS charactertypes_url '.
'SELECT characters.id, characters.created, characters.charactertype_id, characters.name, characters.url, characters.xps, characters.xplevel, characters.avatar_id, charactertypes.name AS charactertype_name, charactertypes.url AS charactertype_url '.
'FROM v_characters AS characters '.
'INNER JOIN charactertypes ON charactertypes.id = characters.charactertype_id '.
'WHERE charactertypes.seminary_id = ? AND characters.xps > ? '.
@ -296,7 +283,7 @@
public function getInferiorCharacters($seminaryId, $xps, $count)
{
return $this->db->query(
'SELECT characters.id, characters.created, characters.charactertype_id, characters.name, characters.url, characters.user_id, characters.xps, characters.xplevel, characters.avatar_id, charactertypes.name AS charactertype_name, charactertypes.url AS charactertypes_url '.
'SELECT characters.id, characters.created, characters.charactertype_id, characters.name, characters.url, characters.xps, characters.xplevel, characters.avatar_id, charactertypes.name AS charactertype_name, charactertypes.url AS charactertype_url '.
'FROM v_characters AS characters '.
'INNER JOIN charactertypes ON charactertypes.id = characters.charactertype_id '.
'WHERE charactertypes.seminary_id = ? AND characters.xps < ? '.
@ -317,12 +304,9 @@
public function getCharactersSolvedQuest($questId)
{
return $data = $this->db->query(
'SELECT characters.id, characters.created, characters.charactertype_id, characters.name, characters.url, characters.user_id, characters.xps, characters.xplevel, charactertypes.name AS charactertype_name, charactertypes.url AS charactertypes_url, seminarymedia.url AS avatar_url, seminarymedia.description AS avatar_description '.
'SELECT characters.id, characters.created, characters.charactertype_id, characters.name, characters.url, characters.user_id, characters.xps, characters.xplevel, charactertypes.name AS charactertype_name, charactertypes.url AS charactertype_url '.
'FROM v_characters AS characters '.
'LEFT JOIN charactertypes ON charactertypes.id = characters.charactertype_id '.
'LEFT JOIN avatars ON avatars.id = characters.avatar_id '.
'LEFT JOIN avatarpictures ON avatarpictures.seminarymedia_id = avatars.avatarpicture_id '.
'LEFT JOIN seminarymedia ON seminarymedia.id = avatarpictures.seminarymedia_id '.
'WHERE EXISTS ('.
'SELECT character_id FROM quests_characters WHERE character_id = characters.id AND quest_id = ? AND status = ?'.
')',
@ -342,12 +326,9 @@
public function getCharactersUnsolvedQuest($questId)
{
return $data = $this->db->query(
'SELECT characters.id, characters.created, characters.charactertype_id, characters.name, characters.url, characters.user_id, characters.xps, characters.xplevel, charactertypes.name AS charactertype_name, charactertypes.url AS charactertypes_url, seminarymedia.url AS avatar_url, seminarymedia.description AS avatar_description '.
'SELECT characters.id, characters.created, characters.charactertype_id, characters.name, characters.url, characters.user_id, characters.xps, characters.xplevel, charactertypes.name AS charactertype_name, charactertypes.url AS charactertype_url '.
'FROM v_characters AS characters '.
'LEFT JOIN charactertypes ON charactertypes.id = characters.charactertype_id '.
'LEFT JOIN avatars ON avatars.id = characters.avatar_id '.
'LEFT JOIN avatarpictures ON avatarpictures.seminarymedia_id = avatars.avatarpicture_id '.
'LEFT JOIN seminarymedia ON seminarymedia.id = avatarpictures.seminarymedia_id '.
'WHERE EXISTS ('.
'SELECT character_id FROM quests_characters WHERE character_id = characters.id AND quest_id = ? AND status = ?'.
') AND NOT EXISTS ('.
@ -369,12 +350,9 @@
public function getCharactersSubmittedQuest($questId)
{
return $data = $this->db->query(
'SELECT characters.id, characters.created, characters.charactertype_id, characters.name, characters.url, characters.user_id, characters.xps, characters.xplevel, charactertypes.name AS charactertype_name, charactertypes.url AS charactertypes_url, seminarymedia.url AS avatar_url, seminarymedia.description AS avatar_description '.
'SELECT characters.id, characters.created, characters.charactertype_id, characters.name, characters.url, characters.user_id, characters.xps, characters.xplevel, charactertypes.name AS charactertype_name, charactertypes.url AS charactertype_url '.
'FROM v_characters AS characters '.
'LEFT JOIN charactertypes ON charactertypes.id = characters.charactertype_id '.
'LEFT JOIN avatars ON avatars.id = characters.avatar_id '.
'LEFT JOIN avatarpictures ON avatarpictures.seminarymedia_id = avatars.avatarpicture_id '.
'LEFT JOIN seminarymedia ON seminarymedia.id = avatarpictures.seminarymedia_id '.
'WHERE EXISTS ('.
'SELECT character_id FROM quests_characters WHERE character_id = characters.id AND quest_id = ? AND status = ?'.
') AND NOT EXISTS ('.

View file

@ -1,7 +1,7 @@
<div class="cf">
<section class="opponent">
<p class="fwb"><?=$character['name']?></p>
<p class="portrait"><img src="<?=$linker->link(array('media','seminary',$seminary['url'],$character['avatar_url']))?>" class="hero" /></p>
<p class="portrait"><img src="<?=$linker->link(array('media','avatar',$seminary['url'],$character['charactertype_url'],$character['xplevel']))?>" class="hero" /></p>
<p>
<?php if($lives['character'] > 0) : ?>
<?php foreach(range(1,$lives['character']) as $i) : ?>

View file

@ -1,6 +1,6 @@
<div class="cf">
<section class="opponent">
<p class="portrait"><img src="<?=$linker->link(array('media','seminary',$seminary['url'],$character['avatar_url']))?>" class="hero" /></p>
<p class="portrait"><img src="<?=$linker->link(array('media','avatar',$seminary['url'],$character['charactertype_url'],$character['xplevel']))?>" class="hero" /></p>
</section>
<section class="opponent">
<p class="portrait"><img src="<?=$linker->link(array('media','seminary',$seminary['url'],$fight['bossmedia']['url']))?>" class="boss" /></p>

View file

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

View file

@ -42,9 +42,7 @@
</ul>
</div>
<div class="cportrait">
<?php if(!is_null($character['avatar_url'])) : ?>
<img src="<?=$linker->link(array('media','seminary',$seminary['url'],$character['avatar_url']))?>" alt="<?=$character['avatar_description']?>" />
<?php endif ?>
<img src="<?=$linker->link(array('media','avatar',$seminary['url'],$character['charactertype_url'],$character['xplevel']['level']))?>" />
</div>
</section>
@ -66,25 +64,19 @@
<ul class="cranks">
<?php foreach($ranking['superior'] as $index => &$rankCharacter) : ?>
<li>
<?php if(array_key_exists('small_avatar', $rankCharacter)) : ?>
<a href="#" title="Achievement-Titel"><img src="<?=$linker->link(array('media','seminary',$seminary['url'],$rankCharacter['small_avatar']['url']))?>"></a>
<?php endif ?>
<a href="#" title="Achievement-Titel"><img src="<?=$linker->link(array('media','avatar',$seminary['url'],$rankCharacter['charactertype_url'],$rankCharacter['xplevel'],'portrait'))?>"></a>
<p><?=$character['rank']-count($ranking['superior'])+$index?>. <a href="#"><?=$rankCharacter['name']?></a></p>
<p><small><?=_('Level')?> <?=$rankCharacter['xplevel']?> (<?=$rankCharacter['xps']?>XPs)</small></p>
</li>
<?php endforeach ?>
<li>
<?php if(array_key_exists('small_avatar_url', $character)) : ?>
<a href="#" title="Achievement-Titel"><img src="<?=$linker->link(array('media','seminary',$seminary['url'],$character['small_avatar_url']))?>"></a>
<?php endif ?>
<a href="#" title="Achievement-Titel"><img src="<?=$linker->link(array('media','avatar',$seminary['url'],$character['charactertype_url'],$character['xplevel']['level'],'portrait'))?>"></a>
<p class="fwb"><?=$character['rank']?>. <a href="#"><?=$character['name']?></a></p>
<p><small><?=_('Level')?> <?=$character['xplevel']['level']?> (<?=$character['xps']?>XPs)</small></p>
</li>
<?php foreach($ranking['inferior'] as $index => &$rankCharacter) : ?>
<li>
<?php if(array_key_exists('small_avatar', $rankCharacter)) : ?>
<a href="#" title="Achievement-Titel"><img src="<?=$linker->link(array('media','seminary',$seminary['url'],$rankCharacter['small_avatar']['url']))?>"></a>
<?php endif ?>
<a href="#" title="Achievement-Titel"><img src="<?=$linker->link(array('media','avatar',$seminary['url'],$rankCharacter['charactertype_url'],$rankCharacter['xplevel'],'portrait'))?>"></a>
<p><?=$character['rank']+$index+1?>. <a href="#"><?=$rankCharacter['name']?></a></p>
<p><small><?=_('Level')?> <?=$rankCharacter['xplevel']?> (<?=$rankCharacter['xps']?>XPs)</small></p>
</li>

View file

@ -9,9 +9,7 @@
<ul class="gchars cf">
<?php foreach($characters as &$character) : ?>
<li>
<?php if(array_key_exists('small_avatar', $character)) : ?>
<p><img src="<?=$linker->link(array('media','seminary',$seminary['url'],$character['small_avatar']['url']))?>"></p>
<?php endif ?>
<p><img src="<?=$linker->link(array('media','avatar',$seminary['url'],$character['charactertype_url'],$character['xplevel']['level'],'portrait'))?>"></p>
<p><a href="<?=$linker->link(array('characters','character',$seminary['url'],$character['url']))?>"><?=$character['name']?></a></p>
<p><small><?=$character['xps']?> XP</small></p>
</li>

View file

@ -1,6 +1,6 @@
<section class="cf">
<h1><?=$character['name']?></h1>
<img src="<?=$linker->link(array('media','seminary',$seminary['url'],$character['avatar_url']))?>" class="char">
<img src="<?=$linker->link(array('media','avatar',$seminary['url'],$character['charactertype_url'],$character['xplevel']['level']))?>" class="char">
<ul class="charstats">
<li><i class="fa fa-caret-right fa-fw"></i><?=('Level')?> <?=$character['xplevel']['level']?></li>
<li><i class="fa fa-caret-right fa-fw"></i><?=$character['xps']?>XPs</li>
@ -37,9 +37,7 @@
<ul class="cranks">
<?php foreach($group['members'] as &$member) : ?>
<li>
<?php if(array_key_exists('small_avatar', $member)) : ?>
<a href="#" title="Achievement-Titel"><img src="<?=$linker->link(array('media','seminary',$seminary['url'],$member['small_avatar']['url']))?>"></a>
<?php endif ?>
<a href="#" title="Achievement-Titel"><img src="<?=$linker->link(array('media','avatar',$seminary['url'],$member['charactertype_url'],$member['xplevel'],'portrait'))?>"></a>
<p><a href="<?=$linker->link(array('characters','character',$seminary['url'],$member['url']))?>"><?=$member['name']?></a></p>
<p><small><?=_('Level')?> <?=$member['xplevel']?> (<?=$member['xps']?>XPs)</small></p>
</li>