implement fields for Characters for Seminaries (Ticket #23)

This commit is contained in:
coderkun 2014-02-17 02:54:49 +01:00
commit 3af0e9d570
3 changed files with 66 additions and 1 deletions

View file

@ -33,7 +33,7 @@
* *
* @var array * @var array
*/ */
public $models = array('seminaries', 'characters', 'users', 'charactergroups'); public $models = array('seminaries', 'characters', 'users', 'charactergroups', 'seminarycharacterfields');
@ -78,6 +78,9 @@
// Get Character // Get Character
$character = $this->Characters->getCharacterByUrl($seminary['id'], $characterUrl); $character = $this->Characters->getCharacterByUrl($seminary['id'], $characterUrl);
// Get Seminarycharacterfields
$characterfields = $this->Seminarycharacterfields->getFieldsForCharacter($character['id']);
// Get User // Get User
$user = $this->Users->getUserById($character['user_id']); $user = $this->Users->getUserById($character['user_id']);
@ -88,6 +91,7 @@
// Pass data to view // Pass data to view
$this->set('seminary', $seminary); $this->set('seminary', $seminary);
$this->set('character', $character); $this->set('character', $character);
$this->set('characterfields', $characterfields);
$this->set('user', $user); $this->set('user', $user);
$this->set('groups', $groups); $this->set('groups', $groups);
} }

View file

@ -0,0 +1,58 @@
<?php
/**
* The Legend of Z
*
* @author Oliver Hanraths <oliver.hanraths@uni-duesseldorf.de>
* @copyright 2014 Heinrich-Heine-Universität Düsseldorf
* @license http://www.gnu.org/licenses/gpl.html
* @link https://bitbucket.org/coderkun/the-legend-of-z
*/
namespace hhu\z\models;
/**
* Model to interact with the Seminarycharacterfields-tables.
*
* @author Oliver Hanraths <oliver.hanraths@uni-duesseldorf.de>
*/
class SeminarycharacterfieldsModel extends \hhu\z\Model
{
/**
* Construct a new SeminarycharacterfieldsModel.
*/
public function __construct()
{
parent::__construct();
}
/**
* Get Seminary Character fields of a Character.
*
* @param int $characterId ID of the Character
* @return array Seminary Character fields
*/
public function getFieldsForCharacter($characterId)
{
return $this->db->query(
'SELECT seminarycharacterfields.title, characters_seminarycharacterfields.value '.
'FROM characters_seminarycharacterfields '.
'LEFT JOIN seminarycharacterfields ON seminarycharacterfields.id = characters_seminarycharacterfields.seminarycharacterfield_id '.
'LEFT JOIN seminarycharacterfieldtypes ON seminarycharacterfieldtypes.id = seminarycharacterfields.seminarycharacterfieldtype_id '.
'WHERE characters_seminarycharacterfields.character_id = ?',
'i',
$characterId
);
}
}
?>

View file

@ -6,6 +6,9 @@
<p> <p>
XPs: <?=$character['xps']?><br /> XPs: <?=$character['xps']?><br />
<?=_('User')?>: <a href="<?=$linker->link(array('users','user',$user['url']))?>"><?=$user['username']?></a><br /> <?=_('User')?>: <a href="<?=$linker->link(array('users','user',$user['url']))?>"><?=$user['username']?></a><br />
<?php foreach($characterfields as &$field) : ?>
<?=$field['title']?>: <?=$field['value']?><br />
<?php endforeach ?>
</p> </p>
</section> </section>