This commit is contained in:
coderkun 2014-04-17 00:29:17 +02:00
commit 6608967c2d
18 changed files with 162 additions and 111 deletions

View file

@ -137,7 +137,7 @@
// Check permissions // Check permissions
if(count(array_intersect(self::$user['seminaryroles'], $permissions)) == 0) { if(!array_key_exists('seminaryroles', self::$user) || count(array_intersect(self::$user['seminaryroles'], $permissions)) == 0) {
throw new \nre\exceptions\AccessDeniedException(); throw new \nre\exceptions\AccessDeniedException();
} }
} }

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 * Miscellaneous settings
* *

View file

@ -75,12 +75,6 @@
{ {
// Level // Level
$character['xplevel'] = $this->Characters->getXPLevelOfCharacters($character['id']); $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']), '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']) '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 // Get Quest topics
$questtopics = $this->Questtopics->getQuesttopicsForSeminary($seminary['id']); $questtopics = $this->Questtopics->getQuesttopicsForSeminary($seminary['id']);
@ -184,6 +158,16 @@
// Get seminary // Get seminary
$seminary = $this->Seminaries->getSeminaryByUrl($seminaryUrl); $seminary = $this->Seminaries->getSeminaryByUrl($seminaryUrl);
// Check for already existing Character
try {
$this->Characters->getCharacterForUserAndSeminary($this->Auth->getUserId(), $seminary['id']);
throw new \nre\exceptions\AccessDeniedException();
}
catch(\nre\exceptions\IdNotFoundException $e) {
// The should be the case
}
// Character types // Character types
$types = $this->Charactertypes->getCharacterTypesForSeminary($seminary['id']); $types = $this->Charactertypes->getCharacterTypesForSeminary($seminary['id']);

View file

@ -26,9 +26,10 @@
*/ */
public $permissions = array( public $permissions = array(
'index' => array('admin', 'moderator', 'user', 'guest'), 'index' => array('admin', 'moderator', 'user', 'guest'),
'seminaryheader' => array('admin', 'moderator', 'user', 'guest'), 'seminaryheader' => array('admin', 'moderator', 'user'),
'seminary' => array('admin', 'moderator', 'user', 'guest'), 'seminary' => array('admin', 'moderator', 'user'),
'achievement' => array('admin', 'moderator', 'user', 'guest') 'avatar' => array('admin', 'moderator', 'user'),
'achievement' => array('admin', 'moderator', 'user')
); );
/** /**
* User seminary permissions * User seminary permissions
@ -44,7 +45,7 @@
* *
* @var array * @var array
*/ */
public $models = array('seminaries', 'achievements', 'media'); public $models = array('seminaries', 'achievements', 'media', 'avatars');
@ -143,7 +144,56 @@
// Get file // Get file
$file = $this->getMediaFile($media, $action); $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; return;
} }
@ -287,10 +337,19 @@
$file = self::resizeImage( $file = self::resizeImage(
$media['filename'], $media['filename'],
$format, $format,
480 \nre\configs\AppConfig::$media['questgroup']['width'],
\nre\configs\AppConfig::$media['questgroup']['height']
); );
} }
break; break;
case 'avatar':
$file = self::resizeImage(
$media['filename'],
$format,
\nre\configs\AppConfig::$media['avatar']['width'],
\nre\configs\AppConfig::$media['avatar']['height']
);
break;
default: default:
throw new ParamsNotValidException($action); throw new ParamsNotValidException($action);
break; break;
@ -321,12 +380,14 @@
* *
* @param string $fileName Absolute pathname of image to resize * @param string $fileName Absolute pathname of image to resize
* @param string $mimeType Mimetype of target image * @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 // 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)) if(file_exists($tempFileName))
{ {
// Check age of file // Check age of file
@ -346,12 +407,15 @@
// Calculate new size // Calculate new size
$geometry = $im->getImageGeometry(); $geometry = $im->getImageGeometry();
if($geometry['width'] < $size) { if($geometry['width'] < $width) {
$size = $geometry['width']; $width = $geometry['width'];
}
if($geometry['height'] < $height) {
$height = $geometry['width'];
} }
// Process // Process
$im->thumbnailImage($size, 5000, true); $im->thumbnailImage($width, $height, true);
$im->contrastImage(1); $im->contrastImage(1);
$im->setImageFormat($mimeType); $im->setImageFormat($mimeType);

View file

@ -35,6 +35,7 @@
// Set userdata // Set userdata
$this->set('loggedUser', IntermediateController::$user); $this->set('loggedUser', IntermediateController::$user);
$this->set('loggedCharacter', SeminaryRoleController::$character);
$this->set('loggedSeminary', SeminaryRoleController::$seminary); $this->set('loggedSeminary', SeminaryRoleController::$seminary);
} }

View file

@ -68,16 +68,6 @@
if($groupsgroup['preferred']) if($groupsgroup['preferred'])
{ {
$group['members'] = $this->Characters->getCharactersForGroup($group['id']); $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; $characterGroups[] = $group;
} }
} }

View file

@ -18,7 +18,7 @@
* *
* @author Oliver Hanraths <oliver.hanraths@uni-duesseldorf.de> * @author Oliver Hanraths <oliver.hanraths@uni-duesseldorf.de>
*/ */
class SeminarymenuController extends \hhu\z\Controller class SeminarymenuController extends \hhu\z\controllers\SeminaryRoleController
{ {
@ -35,8 +35,8 @@
parent::preFilter($request, $response); parent::preFilter($request, $response);
// Set userdata // Set userdata
$this->set('loggedUser', IntermediateController::$user); $this->set('loggedUser', self::$user);
$this->set('loggedSeminary', SeminaryRoleController::$seminary); $this->set('loggedSeminary', self::$seminary);
} }

View file

@ -57,6 +57,36 @@
return null; 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) public function getCharactersForUser($userId)
{ {
return $this->db->query( 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 '. 'FROM v_characters AS characters '.
'LEFT JOIN charactertypes ON charactertypes.id = characters.charactertype_id '. 'LEFT JOIN charactertypes ON charactertypes.id = characters.charactertype_id '.
'LEFT JOIN seminaries ON seminaries.id = charactertypes.seminary_id '. 'LEFT JOIN seminaries ON seminaries.id = charactertypes.seminary_id '.
@ -63,7 +63,7 @@
public function getCharactersForSeminary($seminaryId) public function getCharactersForSeminary($seminaryId)
{ {
return $this->db->query( 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 '. 'FROM v_characters AS characters '.
'LEFT JOIN charactertypes ON charactertypes.id = characters.charactertype_id '. 'LEFT JOIN charactertypes ON charactertypes.id = characters.charactertype_id '.
'LEFT JOIN seminaries ON seminaries.id = charactertypes.seminary_id '. 'LEFT JOIN seminaries ON seminaries.id = charactertypes.seminary_id '.
@ -83,7 +83,7 @@
public function getCharactersForGroup($groupId) public function getCharactersForGroup($groupId)
{ {
return $this->db->query( 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 '. 'FROM v_characters AS characters '.
'LEFT JOIN characters_charactergroups ON characters_charactergroups.character_id = characters.id '. 'LEFT JOIN characters_charactergroups ON characters_charactergroups.character_id = characters.id '.
'LEFT JOIN charactertypes ON charactertypes.id = characters.charactertype_id '. 'LEFT JOIN charactertypes ON charactertypes.id = characters.charactertype_id '.
@ -105,12 +105,9 @@
public function getCharacterForUserAndSeminary($userId, $seminaryId) public function getCharacterForUserAndSeminary($userId, $seminaryId)
{ {
$data = $this->db->query( $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 '. 'FROM v_characters AS characters '.
'LEFT JOIN charactertypes ON charactertypes.id = characters.charactertype_id '. '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 = ?', 'WHERE characters.user_id = ? AND charactertypes.seminary_id = ?',
'ii', 'ii',
$userId, $seminaryId $userId, $seminaryId
@ -135,14 +132,9 @@
public function getCharacterByUrl($seminaryId, $characterUrl) public function getCharacterByUrl($seminaryId, $characterUrl)
{ {
$data = $this->db->query( $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 '. 'FROM v_characters AS characters '.
'LEFT JOIN charactertypes ON charactertypes.id = characters.charactertype_id '. '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 = ?', 'WHERE charactertypes.seminary_id = ? AND characters.url = ?',
'is', 'is',
$seminaryId, $characterUrl $seminaryId, $characterUrl
@ -166,14 +158,9 @@
public function getCharacterById($characterId) public function getCharacterById($characterId)
{ {
$data = $this->db->query( $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 '. 'FROM v_characters AS characters '.
'LEFT JOIN charactertypes ON charactertypes.id = characters.charactertype_id '. '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 = ?', 'WHERE characters.id = ?',
'i', 'i',
$characterId $characterId
@ -273,7 +260,7 @@
public function getSuperiorCharacters($seminaryId, $xps, $count) public function getSuperiorCharacters($seminaryId, $xps, $count)
{ {
return $this->db->query( 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 '. 'FROM v_characters AS characters '.
'INNER JOIN charactertypes ON charactertypes.id = characters.charactertype_id '. 'INNER JOIN charactertypes ON charactertypes.id = characters.charactertype_id '.
'WHERE charactertypes.seminary_id = ? AND characters.xps > ? '. 'WHERE charactertypes.seminary_id = ? AND characters.xps > ? '.
@ -296,7 +283,7 @@
public function getInferiorCharacters($seminaryId, $xps, $count) public function getInferiorCharacters($seminaryId, $xps, $count)
{ {
return $this->db->query( 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 '. 'FROM v_characters AS characters '.
'INNER JOIN charactertypes ON charactertypes.id = characters.charactertype_id '. 'INNER JOIN charactertypes ON charactertypes.id = characters.charactertype_id '.
'WHERE charactertypes.seminary_id = ? AND characters.xps < ? '. 'WHERE charactertypes.seminary_id = ? AND characters.xps < ? '.
@ -317,12 +304,9 @@
public function getCharactersSolvedQuest($questId) public function getCharactersSolvedQuest($questId)
{ {
return $data = $this->db->query( 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 '. 'FROM v_characters AS characters '.
'LEFT JOIN charactertypes ON charactertypes.id = characters.charactertype_id '. '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 ('. 'WHERE EXISTS ('.
'SELECT character_id FROM quests_characters WHERE character_id = characters.id AND quest_id = ? AND status = ?'. 'SELECT character_id FROM quests_characters WHERE character_id = characters.id AND quest_id = ? AND status = ?'.
')', ')',
@ -342,12 +326,9 @@
public function getCharactersUnsolvedQuest($questId) public function getCharactersUnsolvedQuest($questId)
{ {
return $data = $this->db->query( 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 '. 'FROM v_characters AS characters '.
'LEFT JOIN charactertypes ON charactertypes.id = characters.charactertype_id '. '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 ('. 'WHERE EXISTS ('.
'SELECT character_id FROM quests_characters WHERE character_id = characters.id AND quest_id = ? AND status = ?'. 'SELECT character_id FROM quests_characters WHERE character_id = characters.id AND quest_id = ? AND status = ?'.
') AND NOT EXISTS ('. ') AND NOT EXISTS ('.
@ -369,12 +350,9 @@
public function getCharactersSubmittedQuest($questId) public function getCharactersSubmittedQuest($questId)
{ {
return $data = $this->db->query( 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 '. 'FROM v_characters AS characters '.
'LEFT JOIN charactertypes ON charactertypes.id = characters.charactertype_id '. '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 ('. 'WHERE EXISTS ('.
'SELECT character_id FROM quests_characters WHERE character_id = characters.id AND quest_id = ? AND status = ?'. 'SELECT character_id FROM quests_characters WHERE character_id = characters.id AND quest_id = ? AND status = ?'.
') AND NOT EXISTS ('. ') AND NOT EXISTS ('.

View file

@ -1,7 +1,7 @@
<div class="cf"> <div class="cf">
<section class="opponent"> <section class="opponent">
<p class="fwb"><?=$character['name']?></p> <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> <p>
<?php if($lives['character'] > 0) : ?> <?php if($lives['character'] > 0) : ?>
<?php foreach(range(1,$lives['character']) as $i) : ?> <?php foreach(range(1,$lives['character']) as $i) : ?>

View file

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

View file

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

View file

@ -47,11 +47,9 @@
<?=$intermediate?> <?=$intermediate?>
</article> </article>
<aside> <aside>
<?php if(!is_null($loggedUser)) : ?> <?php if(!is_null($loggedCharacter) && count($loggedUser['seminaryroles']) > 0) : ?>
<?php if(!is_null($loggedCharacter)) : ?>
<?=$seminarybar?> <?=$seminarybar?>
<?php endif ?> <?php endif ?>
<?php endif ?>
</aside> </aside>
</body> </body>

View file

@ -1,7 +1,7 @@
<li><a href="<?=$linker->link(array(), 0, true, array(), true)?>"><i class="fa fa-home fa-fw"></i>The Legend of Z</a></li> <li><a href="<?=$linker->link(array(), 0, true, array(), true)?>"><i class="fa fa-home fa-fw"></i>The Legend of Z</a></li>
<?php if(!is_null($loggedUser) && count(array_intersect(array('admin','moderator'),$loggedUser['roles'])) > 0) : ?><li><a href="<?=$linker->link('users')?>"><i class="fa fa-users fa-fw"></i><?=_('Users')?></a></li><?php endif ?> <?php if(!is_null($loggedUser) && count(array_intersect(array('admin','moderator'),$loggedUser['roles'])) > 0) : ?><li><a href="<?=$linker->link('users')?>"><i class="fa fa-users fa-fw"></i><?=_('Users')?></a></li><?php endif ?>
<?php if(!is_null($loggedUser)) : ?><li><a href="<?=$linker->link('seminaries')?>"><i class="fa fa-pencil-square-o fa-fw"></i><?=_('Seminaries')?></a></li><?php endif ?> <?php if(!is_null($loggedUser)) : ?><li><a href="<?=$linker->link('seminaries')?>"><i class="fa fa-pencil-square-o fa-fw"></i><?=_('Seminaries')?></a></li><?php endif ?>
<?php if(!is_null($loggedSeminary)) : ?><?=$seminarymenu?><?php endif ?> <?php if(!is_null($loggedCharacter) && count($loggedUser['seminaryroles']) > 0) : ?><?=$seminarymenu?><?php endif ?>
<?php if(is_null($loggedUser)) : ?> <?php if(is_null($loggedUser)) : ?>
<li><a href="<?=$linker->link(array('users','login'))?>"><i class="fa fa-sign-in fa-fw"></i><?=_('Login')?></a></li> <li><a href="<?=$linker->link(array('users','login'))?>"><i class="fa fa-sign-in fa-fw"></i><?=_('Login')?></a></li>
<?php else : ?> <?php else : ?>

View file

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

View file

@ -3,4 +3,3 @@
<li><a href="<?=$linker->link(array('charactergroups','index',$loggedSeminary['url']))?>" class="smnry"><i class="fa fa-users fa-fw"></i><?=_('Character Groups')?></a></li> <li><a href="<?=$linker->link(array('charactergroups','index',$loggedSeminary['url']))?>" class="smnry"><i class="fa fa-users fa-fw"></i><?=_('Character Groups')?></a></li>
<li><a href="<?=$linker->link(array('achievements','index',$loggedSeminary['url']))?>" class="smnry"><i class="fa fa-trophy fa-fw"></i><?=_('Achievements')?></a></li> <li><a href="<?=$linker->link(array('achievements','index',$loggedSeminary['url']))?>" class="smnry"><i class="fa fa-trophy fa-fw"></i><?=_('Achievements')?></a></li>
<li><a href="<?=$linker->link(array('library','index',$loggedSeminary['url']))?>" class="smnry"><i class="fa fa-book fa-fw"></i><?=_('Library')?></a></li> <li><a href="<?=$linker->link(array('library','index',$loggedSeminary['url']))?>" class="smnry"><i class="fa fa-book fa-fw"></i><?=_('Library')?></a></li>