From b40305631ac2d21cc7f4d4df170e6bc34eb52ba5 Mon Sep 17 00:00:00 2001 From: coderkun Date: Wed, 9 Apr 2014 00:06:02 +0200 Subject: [PATCH] set mood-pictures for Seminary-related pages and small avatar pictures --- controllers/CharactergroupsController.inc | 24 +++++-- .../CharactergroupsquestsController.inc | 3 + controllers/UsersController.inc | 8 +++ models/AvatarsModel.inc | 62 +++++++++++++++++++ views/html/charactergroups/group.tpl | 42 ++++--------- views/html/charactergroups/groupsgroup.tpl | 5 ++ views/html/charactergroups/index.tpl | 5 ++ views/html/charactergroupsquests/quest.tpl | 13 ++-- views/html/characters/character.tpl | 5 ++ views/html/characters/index.tpl | 13 +++- 10 files changed, 140 insertions(+), 40 deletions(-) create mode 100644 models/AvatarsModel.inc diff --git a/controllers/CharactergroupsController.inc b/controllers/CharactergroupsController.inc index 1028d28c..594cba12 100644 --- a/controllers/CharactergroupsController.inc +++ b/controllers/CharactergroupsController.inc @@ -24,7 +24,7 @@ * * @var array */ - public $models = array('seminaries', 'charactergroups', 'charactergroupsquests'); + public $models = array('seminaries', 'charactergroups', 'charactergroupsquests', 'avatars', 'media'); /** * User permissions * @@ -57,6 +57,9 @@ { // Get seminary $seminary = $this->Seminaries->getSeminaryByUrl($seminaryUrl); + if(!is_null($seminary['media_id'])) { + $seminary['media'] = $this->Media->getMediaById($seminary['media_id']); + } // Get Character groups-groups $groupsgroups = $this->Charactergroups->getGroupsroupsForSeminary($seminary['id']); @@ -82,6 +85,9 @@ { // Get seminary $seminary = $this->Seminaries->getSeminaryByUrl($seminaryUrl); + if(!is_null($seminary['media_id'])) { + $seminary['media'] = $this->Media->getMediaById($seminary['media_id']); + } // Get Character groups-group $groupsgroup = $this->Charactergroups->getGroupsgroupByUrl($seminary['id'], $groupsgroupUrl); @@ -116,15 +122,26 @@ { // Get seminary $seminary = $this->Seminaries->getSeminaryByUrl($seminaryUrl); + if(!is_null($seminary['media_id'])) { + $seminary['media'] = $this->Media->getMediaById($seminary['media_id']); + } // Get Character groups-group $groupsgroup = $this->Charactergroups->getGroupsgroupByUrl($seminary['id'], $groupsgroupUrl); // Get Character group $group = $this->Charactergroups->getGroupByUrl($groupsgroup['id'], $groupUrl); + $group['characters'] = $this->Characters->getCharactersForGroup($group['id']); + $group['rank'] = $this->Charactergroups->getXPRank($groupsgroup['id'], $group['xps']); - // Get Characters - $characters = $this->Characters->getCharactersForGroup($group['id']); + // Get Character avatars + foreach($group['characters'] as &$character) + { + $avatar = $this->Avatars->getAvatarById($character['avatar_id']); + if(!is_null($avatar['small_avatarpicture_id'])) { + $character['small_avatar'] = $this->Media->getSeminaryMediaById($avatar['small_avatarpicture_id']); + } + } // Get Character groups Quests $quests = $this->Charactergroupsquests->getQuestsForGroup($group['id']); @@ -134,7 +151,6 @@ $this->set('seminary', $seminary); $this->set('groupsgroup', $groupsgroup); $this->set('group', $group); - $this->set('characters', $characters); $this->set('quests', $quests); } diff --git a/controllers/CharactergroupsquestsController.inc b/controllers/CharactergroupsquestsController.inc index fb9d18c8..478d8700 100644 --- a/controllers/CharactergroupsquestsController.inc +++ b/controllers/CharactergroupsquestsController.inc @@ -61,6 +61,9 @@ { // Get seminary $seminary = $this->Seminaries->getSeminaryByUrl($seminaryUrl); + if(!is_null($seminary['media_id'])) { + $seminary['media'] = $this->Media->getMediaById($seminary['media_id']); + } // Get Character groups-group $groupsgroup = $this->Charactergroups->getGroupsgroupByUrl($seminary['id'], $groupsgroupUrl); diff --git a/controllers/UsersController.inc b/controllers/UsersController.inc index 4ba97dab..19d0e8d0 100644 --- a/controllers/UsersController.inc +++ b/controllers/UsersController.inc @@ -88,6 +88,14 @@ { // Level $character['xplevel'] = $this->Characters->getXPLevelOfCharacters($character['id']); + + // Avatar + $avatar = $this->Avatars->getAvatarById($character['avatar_id']); + if(!is_null($avatar['small_avatarpicture_id'])) + { + //$character['seminary'] = + $character['small_avatar'] = $this->Media->getSeminaryMediaById($avatar['small_avatarpicture_id']); + } } diff --git a/models/AvatarsModel.inc b/models/AvatarsModel.inc new file mode 100644 index 00000000..115d1fb2 --- /dev/null +++ b/models/AvatarsModel.inc @@ -0,0 +1,62 @@ + + * @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 Avatars-tables. + * + * @author Oliver Hanraths + */ + class AvatarsModel extends \hhu\z\Model + { + + + + + /** + * Construct a new AvatarsModel. + */ + public function __construct() + { + parent::__construct(); + } + + + + + /** + * Get an Avatar by its ID + * + * @param int $avatarId ID of Avatar + * @return array Avatar data + */ + public function getAvatarById($avatarId) + { + $data = $this->db->query( + 'SELECT id, charactertype_id, xplevel_id, avatarpicture_id, small_avatarpicture_id '. + 'FROM avatars '. + 'WHERE id = ?', + 'i', + $avatarId + ); + if(!empty($data)) { + return $data[0]; + } + + + return null; + } + + } + +?> diff --git a/views/html/charactergroups/group.tpl b/views/html/charactergroups/group.tpl index ff53d1cf..426e9a8e 100644 --- a/views/html/charactergroups/group.tpl +++ b/views/html/charactergroups/group.tpl @@ -1,8 +1,11 @@ +
- +
+

+

@@ -12,43 +15,20 @@ Schweb wie ein Schmetterling! Stich wie eine Biene!
    -
  • 7. Platz
  • -
  • XP
  • -
  • 6 Mitglieder
  • +
  • .
  • +
  •  XPs
  • +
  • 1) ? _('Members') : _('Member')?>

    - +
  • -

    -

    -

    XP

    -
  • -
  • -

    -

    -

    XP

    -
  • -
  • -

    -

    -

    XP

    -
  • -
  • -

    -

    -

    XP

    -
  • -
  • -

    -

    -

    XP

    -
  • -
  • -

    + +

    +

    XP

  • diff --git a/views/html/charactergroups/groupsgroup.tpl b/views/html/charactergroups/groupsgroup.tpl index 016742b6..c604328a 100644 --- a/views/html/charactergroups/groupsgroup.tpl +++ b/views/html/charactergroups/groupsgroup.tpl @@ -1,3 +1,8 @@ + +
    + +
    +

    diff --git a/views/html/charactergroups/index.tpl b/views/html/charactergroups/index.tpl index 0a2cd85b..483c0f2e 100644 --- a/views/html/charactergroups/index.tpl +++ b/views/html/charactergroups/index.tpl @@ -1,3 +1,8 @@ + +
    + +
    +

    diff --git a/views/html/charactergroupsquests/quest.tpl b/views/html/charactergroupsquests/quest.tpl index c02a4558..6837cfff 100644 --- a/views/html/charactergroupsquests/quest.tpl +++ b/views/html/charactergroupsquests/quest.tpl @@ -1,7 +1,12 @@ -

    -

    -

    -
    + +
    + +
    + +

    +

    +

    +

    diff --git a/views/html/characters/character.tpl b/views/html/characters/character.tpl index b621cff0..c347a9d0 100644 --- a/views/html/characters/character.tpl +++ b/views/html/characters/character.tpl @@ -1,3 +1,8 @@ + +
    + +
    +

    diff --git a/views/html/characters/index.tpl b/views/html/characters/index.tpl index 94759710..ee1c4454 100644 --- a/views/html/characters/index.tpl +++ b/views/html/characters/index.tpl @@ -1,8 +1,19 @@ + +
    + +
    +

      -
    • ( XPs, : )
    • +
    • + +

      + +

      +

      XP

      +