check availability of Avatar at various places

This commit is contained in:
coderkun 2014-07-10 13:19:02 +02:00
commit 13cd80f436
8 changed files with 23 additions and 4 deletions

View file

@ -31,7 +31,7 @@
* *
* @var array * @var array
*/ */
public $models = array('seminaries', 'characters', 'characterroles', 'achievements'); public $models = array('seminaries', 'characters', 'characterroles', 'xplevels', 'avatars', 'achievements');
/** /**
* Current Seminary * Current Seminary
* *
@ -84,6 +84,13 @@
{ {
self::$character = $this->Characters->getCharacterForUserAndSeminary(self::$user['id'], self::$seminary['id']); self::$character = $this->Characters->getCharacterForUserAndSeminary(self::$user['id'], self::$seminary['id']);
self::$character['characterroles'] = array_map(function($r) { return $r['name']; }, $this->Characterroles->getCharacterrolesForCharacterById(self::$character['id'])); self::$character['characterroles'] = array_map(function($r) { return $r['name']; }, $this->Characterroles->getCharacterrolesForCharacterById(self::$character['id']));
try {
self::$character['xplevel'] = $this->Xplevels->getXPLevelById(self::$character['xplevel_id']);
self::$character['avatar'] = $this->Avatars->getAvatarByTypeAndLevel(self::$seminary['id'], self::$character['charactertype_url'], self::$character['xplevel']['level']);
}
catch(\nre\exceptions\IdNotFoundException $e) {
// No Avatar available
}
} }
} }
catch(\nre\exceptions\IdNotFoundException $e) { catch(\nre\exceptions\IdNotFoundException $e) {

View file

@ -103,6 +103,12 @@
foreach($this->Seminarycharacterfields->getFieldsForCharacter($character['id']) as $value) { foreach($this->Seminarycharacterfields->getFieldsForCharacter($character['id']) as $value) {
$character['characterfields'][$value['url']] = $value; $character['characterfields'][$value['url']] = $value;
} }
try {
$character['avatar'] = $this->Avatars->getAvatarByTypeAndLevel($seminary['id'], $character['charactertype_url'], $character['xplevel']['level']);
}
catch(\nre\exceptions\IdNotFoundException $e) {
// No Avatar available
}
} }

View file

@ -24,7 +24,7 @@
* *
* @var array * @var array
*/ */
public $models = array('seminaries', 'users', 'characterroles', 'charactertypes', 'questgroupshierarchy', 'questgroups', 'questgrouptexts', 'media'); public $models = array('seminaries', 'users', 'characterroles', 'charactertypes', 'xplevels', 'questgroupshierarchy', 'questgroups', 'questgrouptexts', 'media');
/** /**
* Required components * Required components
* *
@ -76,6 +76,7 @@
$seminary['description'] = $description.(strlen($description) < strlen($seminary['description']) ? ' …' : null); $seminary['description'] = $description.(strlen($description) < strlen($seminary['description']) ? ' …' : null);
$seminary['creator'] = $this->Users->getUserById($seminary['created_user_id']); $seminary['creator'] = $this->Users->getUserById($seminary['created_user_id']);
$seminary['charactertypes'] = $this->Charactertypes->getCharacterTypesForSeminary($seminary['id']); $seminary['charactertypes'] = $this->Charactertypes->getCharacterTypesForSeminary($seminary['id']);
$seminary['xplevels'] = $this->Xplevels->getXPLevelsForSeminary($seminary['id']);
// Character of currently logged-in user // Character of currently logged-in user
try { try {

View file

@ -49,7 +49,6 @@
if(is_null($character)) { if(is_null($character)) {
return; return;
} }
$character['xplevel'] = $this->Xplevels->getXPLevelById($character['xplevel_id']);
$character['rank'] = $this->Characters->getXPRank($seminary['id'], $character['xps']); $character['rank'] = $this->Characters->getXPRank($seminary['id'], $character['xps']);
// Get “last” Quest // Get “last” Quest

View file

@ -36,7 +36,9 @@
<ul id="characterlist" class="admnql"> <ul id="characterlist" class="admnql">
<?php foreach($characters as &$character) : ?> <?php foreach($characters as &$character) : ?>
<li class="cf"> <li class="cf">
<?php if(array_key_exists('avatar', $character) && !is_null($character['avatar']['small_avatarpicture_id'])) : ?>
<img src="<?=$linker->link(array('media','avatar',$seminary['url'],$character['charactertype_url'],$character['xplevel']['level'],'portrait'))?>"> <img src="<?=$linker->link(array('media','avatar',$seminary['url'],$character['charactertype_url'],$character['xplevel']['level'],'portrait'))?>">
<?php endif ?>
<p><a href="<?=$linker->link(array('characters','character',$seminary['url'],$character['url']))?>"><?=$character['name']?></a><span><?=$character['xps']?> XP</span></p> <p><a href="<?=$linker->link(array('characters','character',$seminary['url'],$character['url']))?>"><?=$character['name']?></a><span><?=$character['xps']?> XP</span></p>
<p><small><a href="<?=$linker->link(array('users','user',$character['user']['url']))?>"><?=$character['user']['username']?></a></small> <p><small><a href="<?=$linker->link(array('users','user',$character['user']['url']))?>"><?=$character['user']['username']?></a></small>
<?php if(in_array('admin', $character['characterroles'])) : ?><small>(<?=_('Admin')?>)</small><?php endif ?> <?php if(in_array('admin', $character['characterroles'])) : ?><small>(<?=_('Admin')?>)</small><?php endif ?>

View file

@ -53,7 +53,7 @@
<li> <li>
<label for="type-<?=$type['id']?>"> <label for="type-<?=$type['id']?>">
<p><?=$type['name']?></p> <p><?=$type['name']?></p>
<?php if(array_key_exists('avatar', $type)) : ?> <?php if(array_key_exists('avatar', $type) && !is_null($type['avatar']['small_avatarpicture_id'])) : ?>
<img id="avatar" src="<?=$linker->link(array('media','avatar',$seminary['url'],$type['url'],$xplevels[0]['level'],'portrait'))?>" /> <img id="avatar" src="<?=$linker->link(array('media','avatar',$seminary['url'],$type['url'],$xplevels[0]['level'],'portrait'))?>" />
<?php endif ?> <?php endif ?>
</label> </label>

View file

@ -52,7 +52,9 @@
<div id="profile" class="cf"> <div id="profile" class="cf">
<?php if(!is_null($loggedCharacter)) : ?> <?php if(!is_null($loggedCharacter)) : ?>
<a href="<?=$linker->link(array('characters','character',$loggedSeminary['url'],$loggedCharacter['url']))?>"> <a href="<?=$linker->link(array('characters','character',$loggedSeminary['url'],$loggedCharacter['url']))?>">
<?php if(array_key_exists('avatar', $loggedCharacter) && !is_null($loggedCharacter['avatar']['small_avatarpicture_id'])) : ?>
<img src="<?=$linker->link(array('media','avatar',$loggedSeminary['url'],$loggedCharacter['charactertype_url'],$loggedCharacter['xplevel'],'portrait'))?>" /> <img src="<?=$linker->link(array('media','avatar',$loggedSeminary['url'],$loggedCharacter['charactertype_url'],$loggedCharacter['xplevel'],'portrait'))?>" />
<?php endif ?>
<span><?=$loggedCharacter['name']?></span><span class="lvlname">Level <?=$loggedCharacter['xplevel']?></span> <span><?=$loggedCharacter['name']?></span><span class="lvlname">Level <?=$loggedCharacter['xplevel']?></span>
</a> </a>
<?php else : ?> <?php else : ?>

View file

@ -1,7 +1,9 @@
<?php if($render) : ?> <?php if($render) : ?>
<section class="cf"> <section class="cf">
<h1><?=$character['name']?></h1> <h1><?=$character['name']?></h1>
<?php if(array_key_exists('avatar', $character) && !is_null($character['avatar']['avatarpicture_id'])) : ?>
<img src="<?=$linker->link(array('media','avatar',$seminary['url'],$character['charactertype_url'],$character['xplevel']['level']))?>" class="char"> <img src="<?=$linker->link(array('media','avatar',$seminary['url'],$character['charactertype_url'],$character['xplevel']['level']))?>" class="char">
<?php endif ?>
<ul class="charstats"> <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><?=('Level')?> <?=$character['xplevel']['level']?></li>
<li><i class="fa fa-caret-right fa-fw"></i><?=sprintf(_('%dXPs'), $character['xps'])?></li> <li><i class="fa fa-caret-right fa-fw"></i><?=sprintf(_('%dXPs'), $character['xps'])?></li>