add method for Seminary header media (with lower permissions)

This commit is contained in:
coderkun 2014-04-12 13:07:55 +02:00
commit 396c61586c
18 changed files with 135 additions and 130 deletions

View file

@ -57,9 +57,6 @@
{ {
// Get seminary // Get seminary
$seminary = $this->Seminaries->getSeminaryByUrl($seminaryUrl); $seminary = $this->Seminaries->getSeminaryByUrl($seminaryUrl);
if(!is_null($seminary['media_id'])) {
$seminary['media'] = $this->Media->getMediaById($seminary['media_id']);
}
// Get Character groups-groups // Get Character groups-groups
$groupsgroups = $this->Charactergroups->getGroupsroupsForSeminary($seminary['id']); $groupsgroups = $this->Charactergroups->getGroupsroupsForSeminary($seminary['id']);
@ -85,9 +82,6 @@
{ {
// Get seminary // Get seminary
$seminary = $this->Seminaries->getSeminaryByUrl($seminaryUrl); $seminary = $this->Seminaries->getSeminaryByUrl($seminaryUrl);
if(!is_null($seminary['media_id'])) {
$seminary['media'] = $this->Media->getMediaById($seminary['media_id']);
}
// Get Character groups-group // Get Character groups-group
$groupsgroup = $this->Charactergroups->getGroupsgroupByUrl($seminary['id'], $groupsgroupUrl); $groupsgroup = $this->Charactergroups->getGroupsgroupByUrl($seminary['id'], $groupsgroupUrl);
@ -122,9 +116,6 @@
{ {
// Get seminary // Get seminary
$seminary = $this->Seminaries->getSeminaryByUrl($seminaryUrl); $seminary = $this->Seminaries->getSeminaryByUrl($seminaryUrl);
if(!is_null($seminary['media_id'])) {
$seminary['media'] = $this->Media->getMediaById($seminary['media_id']);
}
// Get Character groups-group // Get Character groups-group
$groupsgroup = $this->Charactergroups->getGroupsgroupByUrl($seminary['id'], $groupsgroupUrl); $groupsgroup = $this->Charactergroups->getGroupsgroupByUrl($seminary['id'], $groupsgroupUrl);

View file

@ -61,9 +61,6 @@
{ {
// Get seminary // Get seminary
$seminary = $this->Seminaries->getSeminaryByUrl($seminaryUrl); $seminary = $this->Seminaries->getSeminaryByUrl($seminaryUrl);
if(!is_null($seminary['media_id'])) {
$seminary['media'] = $this->Media->getMediaById($seminary['media_id']);
}
// Get Character groups-group // Get Character groups-group
$groupsgroup = $this->Charactergroups->getGroupsgroupByUrl($seminary['id'], $groupsgroupUrl); $groupsgroup = $this->Charactergroups->getGroupsgroupByUrl($seminary['id'], $groupsgroupUrl);

View file

@ -66,9 +66,6 @@
{ {
// Get Seminary // Get Seminary
$seminary = $this->Seminaries->getSeminaryByUrl($seminaryUrl); $seminary = $this->Seminaries->getSeminaryByUrl($seminaryUrl);
if(!is_null($seminary['media_id'])) {
$seminary['media'] = $this->Media->getMediaById($seminary['media_id']);
}
// Get registered Characters // Get registered Characters
$characters = $this->Characters->getCharactersForSeminary($seminary['id']); $characters = $this->Characters->getCharactersForSeminary($seminary['id']);
@ -107,9 +104,6 @@
// Get Seminary // Get Seminary
$seminary = $this->Seminaries->getSeminaryByUrl($seminaryUrl); $seminary = $this->Seminaries->getSeminaryByUrl($seminaryUrl);
$seminary['achievable_xps'] = $this->Seminaries->getTotalXPs($seminary['id']); $seminary['achievable_xps'] = $this->Seminaries->getTotalXPs($seminary['id']);
if(!is_null($seminary['media_id'])) {
$seminary['media'] = $this->Media->getMediaById($seminary['media_id']);
}
// Get Character // Get Character
$character = $this->Characters->getCharacterByUrl($seminary['id'], $characterUrl); $character = $this->Characters->getCharacterByUrl($seminary['id'], $characterUrl);
@ -216,18 +210,11 @@
} }
} }
// Medium
$media = null;
if(!is_null($seminary['media_id'])) {
$media = $this->Media->getMediaById($seminary['media_id']);
}
// Pass data to view // Pass data to view
$this->set('seminary', $seminary); $this->set('seminary', $seminary);
$this->set('types', $types); $this->set('types', $types);
$this->set('fields', $fields); $this->set('fields', $fields);
$this->set('media', $media);
$this->set('charactername', $charactername); $this->set('charactername', $charactername);
$this->set('validation', $validation); $this->set('validation', $validation);
$this->set('fieldsValidation', $fieldsValidation); $this->set('fieldsValidation', $fieldsValidation);

View file

@ -26,7 +26,9 @@
*/ */
public $permissions = array( public $permissions = array(
'index' => array('admin', 'moderator', 'user', 'guest'), 'index' => array('admin', 'moderator', 'user', 'guest'),
'seminary' => array('admin', 'moderator', 'user', 'guest') 'seminaryheader' => array('admin', 'moderator', 'user', 'guest'),
'seminary' => array('admin', 'moderator', 'user', 'guest'),
'avatar' => array('admin', 'moderator', 'user')
); );
/** /**
* User seminary permissions * User seminary permissions
@ -70,45 +72,49 @@
* Display a medium. * Display a medium.
* *
* @param string $mediaUrl URL-name of the medium * @param string $mediaUrl URL-name of the medium
* @param string $action Action for processing the media
*/ */
public function index($mediaUrl, $action=null) public function index($mediaUrl, $action=null)
{ {
// Get Media // Get Media
$media = $this->Media->getMediaByUrl($mediaUrl); $media = $this->Media->getMediaByUrl($mediaUrl);
// Get format // Get file
$format = explode('/', $media['mimetype']); $file = $this->getMediaFile($media, $action);
$format = $format[1]; if(is_null($media)) {
// Set content-type
$this->response->addHeader("Content-type: ".$media['mimetype']."");
// Set filename
$media['filename'] = ROOT.DS.\nre\configs\AppConfig::$dirs['media'].DS.$media['id'];
if(!file_exists($media['filename'])) {
throw new \nre\exceptions\IdNotFoundException($mediaUrl);
}
// Cache
if($this->setCacheHeaders($media['filename'])) {
return; return;
} }
// Load and process file
$file = null; // Pass data to view
switch($action) $this->set('media', $media);
{ $this->set('file', $file);
// No action
case null:
// Do not process the file
$file = file_get_contents($media['filename']);
break;
default:
throw new ParamsNotValidException($action);
break;
} }
/**
* Action: seminaryheader
*
* Display the header of a Seminary.
*
* @throws IdNotFoundException
* @param string $seminaryUrl URL-title of the Seminary
* @param string $action Action for processing the media
*/
public function seminaryheader($seminaryUrl, $action=null)
{
// Get Seminary
$seminary = $this->Seminaries->getSeminaryByUrl($seminaryUrl);
// Get media
$media = $this->Media->getSeminaryMediaById($seminary['seminarymedia_id']);
// Get file
$file = $this->getMediaFile($media, $action);
if(is_null($file)) {
return;
}
// Pass data to view // Pass data to view
$this->set('media', $media); $this->set('media', $media);
@ -124,6 +130,7 @@
* @throws IdNotFoundException * @throws IdNotFoundException
* @param string $seminaryUrl URL-title of the Seminary * @param string $seminaryUrl URL-title of the Seminary
* @param string $mediaUrl URL-name of the medium * @param string $mediaUrl URL-name of the medium
* @param string $action Action for processing the media
*/ */
public function seminary($seminaryUrl, $mediaUrl, $action=null) public function seminary($seminaryUrl, $mediaUrl, $action=null)
{ {
@ -133,52 +140,12 @@
// Get Media // Get Media
$media = $this->Media->getSeminaryMediaByUrl($seminary['id'], $mediaUrl); $media = $this->Media->getSeminaryMediaByUrl($seminary['id'], $mediaUrl);
// Get format // Get file
$format = explode('/', $media['mimetype']); $file = $this->getMediaFile($media, $action);
$format = $format[1]; if(is_null($media)) {
// Set content-type
$this->response->addHeader("Content-type: ".$media['mimetype']."");
// Set filename
$media['filename'] = ROOT.DS.\nre\configs\AppConfig::$dirs['seminarymedia'].DS.$media['id'];
if(!file_exists($media['filename'])) {
throw new \nre\exceptions\IdNotFoundException($mediaUrl);
}
// Cache
if($this->setCacheHeaders($media['filename'])) {
return; return;
} }
// Load and process file
$file = null;
switch($action)
{
// No action
case null:
// Do not process the file
$file = file_get_contents($media['filename']);
break;
case 'questgroup':
if(!in_array(strtoupper($format), self::getImageTypes())) {
$file = file_get_contents($media['filename']);
}
else
{
$file = self::resizeImage(
$media['filename'],
$format,
480
);
}
break;
default:
throw new ParamsNotValidException($action);
break;
}
// Pass data to view // Pass data to view
$this->set('media', $media); $this->set('media', $media);
@ -225,6 +192,66 @@
} }
/**
* Determine the file for a medium and process it if necessary.
*
* @throws IdNotFoundException
* @throws ParamsNotValidException
* @param array $media Medium to get file for
* @param string $action Action for processing the media
* @return object File for the medium (or null if medium is cached)
*/
private function getMediaFile($media, $action=null)
{
// Get format
$format = explode('/', $media['mimetype']);
$format = $format[1];
// Set content-type
$this->response->addHeader("Content-type: ".$media['mimetype']."");
// Set filename
$media['filename'] = ROOT.DS.\nre\configs\AppConfig::$dirs['seminarymedia'].DS.$media['id'];
if(!file_exists($media['filename'])) {
throw new \nre\exceptions\IdNotFoundException($mediaUrl);
}
// Cache
if($this->setCacheHeaders($media['filename'])) {
return null;
}
// Load and process file
$file = null;
switch($action)
{
// No action
case null:
// Do not process the file
$file = file_get_contents($media['filename']);
break;
case 'questgroup':
if(!in_array(strtoupper($format), self::getImageTypes())) {
$file = file_get_contents($media['filename']);
}
else
{
$file = self::resizeImage(
$media['filename'],
$format,
480
);
}
break;
default:
throw new ParamsNotValidException($action);
break;
}
// Return file
return $file;
}
/** /**

View file

@ -69,11 +69,6 @@
// Created user // Created user
$seminary['creator'] = $this->Users->getUserById($seminary['created_user_id']); $seminary['creator'] = $this->Users->getUserById($seminary['created_user_id']);
// Media
if(!is_null($seminary['media_id'])) {
$seminary['media'] = $this->Media->getMediaById($seminary['media_id']);
}
// Character of currently logged-in user // Character of currently logged-in user
try { try {
$seminary['usercharacter'] = $this->Characters->getCharacterForUserAndSeminary($this->Auth->getUserId(), $seminary['id']); $seminary['usercharacter'] = $this->Characters->getCharacterForUserAndSeminary($this->Auth->getUserId(), $seminary['id']);
@ -150,17 +145,10 @@
} }
} }
// Medium
$media = null;
if(!is_null($seminary['media_id'])) {
$media = $this->Media->getMediaById($seminary['media_id']);
}
// Pass data to view // Pass data to view
$this->set('seminary', $seminary); $this->set('seminary', $seminary);
$this->set('questgroupshierarchy', $questgroupshierarchy); $this->set('questgroupshierarchy', $questgroupshierarchy);
$this->set('media', $media);
} }

View file

@ -49,7 +49,7 @@
{ {
// Get seminaries // Get seminaries
return $this->db->query( return $this->db->query(
'SELECT id, created, created_user_id, title, url, description, media_id '. 'SELECT id, created, created_user_id, title, url, description, seminarymedia_id '.
'FROM seminaries '. 'FROM seminaries '.
'ORDER BY created DESC' 'ORDER BY created DESC'
); );
@ -66,7 +66,7 @@
public function getSeminaryById($seminaryId) public function getSeminaryById($seminaryId)
{ {
$seminary = $this->db->query( $seminary = $this->db->query(
'SELECT id, created, created_user_id, title, url, description, media_id '. 'SELECT id, created, created_user_id, title, url, description, seminarymedia_id '.
'FROM seminaries '. 'FROM seminaries '.
'WHERE id = ?', 'WHERE id = ?',
'i', 'i',
@ -91,7 +91,7 @@
public function getSeminaryByUrl($seminaryUrl) public function getSeminaryByUrl($seminaryUrl)
{ {
$seminary = $this->db->query( $seminary = $this->db->query(
'SELECT id, created, created_user_id, title, url, description, media_id '. 'SELECT id, created, created_user_id, title, url, description, seminarymedia_id '.
'FROM seminaries '. 'FROM seminaries '.
'WHERE url = ?', 'WHERE url = ?',
's', 's',

View file

@ -1,6 +1,6 @@
<?php if(array_key_exists('media', $seminary)) : ?> <?php if(!is_null($seminary['seminarymedia_id'])) : ?>
<div class="moodpic"> <div class="moodpic">
<img src="<?=$linker->link(array('media','index',$seminary['media']['url']))?>"> <img src="<?=$linker->link(array('media','seminaryheader',$seminary['url']))?>">
</div> </div>
<?php endif ?> <?php endif ?>
<h1><a href="<?=$linker->link(array('seminaries',$seminary['url']))?>"><?=$seminary['title']?></a></h1> <h1><a href="<?=$linker->link(array('seminaries',$seminary['url']))?>"><?=$seminary['title']?></a></h1>

View file

@ -1,6 +1,6 @@
<?php if(array_key_exists('media', $seminary)) : ?> <?php if(!is_null($seminary['seminarymedia_id'])) : ?>
<div class="moodpic"> <div class="moodpic">
<img src="<?=$linker->link(array('media','index',$seminary['media']['url']))?>"> <img src="<?=$linker->link(array('media','seminaryheader',$seminary['url']))?>">
</div> </div>
<?php endif ?> <?php endif ?>
<h1><a href="<?=$linker->link(array('seminaries',$seminary['url']))?>"><?=$seminary['title']?></a></h1> <h1><a href="<?=$linker->link(array('seminaries',$seminary['url']))?>"><?=$seminary['title']?></a></h1>

View file

@ -1,6 +1,6 @@
<?php if(array_key_exists('media', $seminary)) : ?> <?php if(!is_null($seminary['seminarymedia_id'])) : ?>
<div class="moodpic"> <div class="moodpic">
<img src="<?=$linker->link(array('media','index',$seminary['media']['url']))?>"> <img src="<?=$linker->link(array('media','seminaryheader',$seminary['url']))?>">
</div> </div>
<?php endif ?> <?php endif ?>
<h1><a href="<?=$linker->link(array('seminaries',$seminary['url']))?>"><?=$seminary['title']?></a></h1> <h1><a href="<?=$linker->link(array('seminaries',$seminary['url']))?>"><?=$seminary['title']?></a></h1>

View file

@ -1,6 +1,6 @@
<?php if(array_key_exists('media', $seminary)) : ?> <?php if(!is_null($seminary['seminarymedia_id'])) : ?>
<div class="moodpic"> <div class="moodpic">
<img src="<?=$linker->link(array('media','index',$seminary['media']['url']))?>"> <img src="<?=$linker->link(array('media','seminaryheader',$seminary['url']))?>">
</div> </div>
<?php endif ?> <?php endif ?>
<h1><a href="<?=$linker->link(array('seminaries',$seminary['url']))?>"><?=$seminary['title']?></a></h1> <h1><a href="<?=$linker->link(array('seminaries',$seminary['url']))?>"><?=$seminary['title']?></a></h1>

View file

@ -1,6 +1,6 @@
<?php if(array_key_exists('media', $seminary)) : ?> <?php if(!is_null($seminary['seminarymedia_id'])) : ?>
<div class="moodpic"> <div class="moodpic">
<img src="<?=$linker->link(array('media','index',$seminary['media']['url']))?>"> <img src="<?=$linker->link(array('media','seminaryheader',$seminary['url']))?>">
</div> </div>
<?php endif ?> <?php endif ?>
<h1><a href="<?=$linker->link(array('seminaries',$seminary['url']))?>"><?=$seminary['title']?></a></h1> <h1><a href="<?=$linker->link(array('seminaries',$seminary['url']))?>"><?=$seminary['title']?></a></h1>

View file

@ -1,6 +1,6 @@
<?php if(array_key_exists('media', $seminary)) : ?> <?php if(!is_null($seminary['seminarymedia_id'])) : ?>
<div class="moodpic"> <div class="moodpic">
<img src="<?=$linker->link(array('media','index',$seminary['media']['url']))?>"> <img src="<?=$linker->link(array('media','seminaryheader',$seminary['url']))?>">
</div> </div>
<?php endif ?> <?php endif ?>
<h1><a href="<?=$linker->link(array('seminaries',$seminary['url']))?>"><?=$seminary['title']?></a></h1> <h1><a href="<?=$linker->link(array('seminaries',$seminary['url']))?>"><?=$seminary['title']?></a></h1>

View file

@ -1,6 +1,6 @@
<?php if(!is_null($media)) : ?> <?php if(!is_null($seminary['seminarymedia_id'])) : ?>
<div class="moodpic"> <div class="moodpic">
<img src="<?=$linker->link(array('media','index',$media['url']))?>"> <img src="<?=$linker->link(array('media','seminaryheader',$seminary['url']))?>">
</div> </div>
<?php endif ?> <?php endif ?>
<h1><?=$seminary['title']?></h1> <h1><?=$seminary['title']?></h1>

View file

@ -1,3 +1,8 @@
<?php if(!is_null($seminary['seminarymedia_id'])) : ?>
<div class="moodpic">
<img src="<?=$linker->link(array('media','seminaryheader',$seminary['url']))?>">
</div>
<?php endif ?>
<h1><?=_('Seminaries')?></h1> <h1><?=_('Seminaries')?></h1>
<h2><?=_('New seminary')?></h2> <h2><?=_('New seminary')?></h2>

View file

@ -1,3 +1,8 @@
<?php if(!is_null($seminary['seminarymedia_id'])) : ?>
<div class="moodpic">
<img src="<?=$linker->link(array('media','seminaryheader',$seminary['url']))?>">
</div>
<?php endif ?>
<h1><?=_('Seminaries')?></h1> <h1><?=_('Seminaries')?></h1>
<h2><?=_('Delete seminary')?></h2> <h2><?=_('Delete seminary')?></h2>

View file

@ -1,3 +1,8 @@
<?php if(!is_null($seminary['seminarymedia_id'])) : ?>
<div class="moodpic">
<img src="<?=$linker->link(array('media','seminaryheader',$seminary['url']))?>">
</div>
<?php endif ?>
<h1><?=_('Seminaries')?></h1> <h1><?=_('Seminaries')?></h1>
<h2><?=_('Edit seminary')?></h2> <h2><?=_('Edit seminary')?></h2>

View file

@ -7,8 +7,8 @@
<ul> <ul>
<?php foreach($seminaries as &$seminary) : ?> <?php foreach($seminaries as &$seminary) : ?>
<li> <li>
<?php if(array_key_exists('media', $seminary)) : ?> <?php if(!is_null($seminary['seminarymedia_id'])) : ?>
<img src="<?=$linker->link(array('media','index',$seminary['media']['url']))?>" /> <img src="<?=$linker->link(array('media','seminaryheader',$seminary['url']))?>" />
<?php endif ?> <?php endif ?>
<h2> <h2>
<?php if(count($seminary['userroles']) > 0) : ?> <?php if(count($seminary['userroles']) > 0) : ?>

View file

@ -1,6 +1,6 @@
<?php if(!is_null($media)) : ?> <?php if(!is_null($seminary['seminarymedia_id'])) : ?>
<div class="moodpic"> <div class="moodpic">
<img src="<?=$linker->link(array('media','index',$media['url']))?>"> <img src="<?=$linker->link(array('media','seminaryheader',$seminary['url']))?>">
</div> </div>
<?php endif ?> <?php endif ?>