determine seldom Achievements (Issue #57)
This commit is contained in:
parent
4d831ced8f
commit
c47eb1e314
6 changed files with 58 additions and 17 deletions
|
|
@ -94,7 +94,8 @@
|
|||
* @var array
|
||||
*/
|
||||
public static $misc = array(
|
||||
'ranking_range' => 2
|
||||
'ranking_range' => 2,
|
||||
'seldom_achievements_range' => 3
|
||||
);
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -61,6 +61,12 @@
|
|||
// Get Character
|
||||
$character = SeminaryRoleController::$character;
|
||||
|
||||
// Get seldom Achievements
|
||||
$seldomAchievements = $this->Achievements->getSeldomAchievements($seminary['id'], \nre\configs\AppConfig::$misc['seldom_achievements_range']);
|
||||
foreach($seldomAchievements as &$achievement) {
|
||||
$achievement['achieved'] = $this->Achievements->hasCharacterAchievedAchievement($achievement['id'], $character['id']);
|
||||
}
|
||||
|
||||
// Get achieved Achievements
|
||||
$achievedAchievements = $this->Achievements->getAchievedAchievementsForCharacter($character['id']);
|
||||
|
||||
|
|
@ -152,6 +158,7 @@
|
|||
// Pass data to view
|
||||
$this->set('seminary', $seminary);
|
||||
$this->set('character', $character);
|
||||
$this->set('seldomAchievements', $seldomAchievements);
|
||||
$this->set('achievedAchievements', $achievedAchievements);
|
||||
$this->set('unachievedAchievements', $unachievedAchievements);
|
||||
}
|
||||
|
|
|
|||
Binary file not shown.
|
|
@ -1,8 +1,8 @@
|
|||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: The Legend of Z\n"
|
||||
"POT-Creation-Date: 2014-04-17 01:08+0100\n"
|
||||
"PO-Revision-Date: 2014-04-17 01:08+0100\n"
|
||||
"POT-Creation-Date: 2014-04-17 01:27+0100\n"
|
||||
"PO-Revision-Date: 2014-04-17 01:27+0100\n"
|
||||
"Last-Translator: \n"
|
||||
"Language-Team: \n"
|
||||
"Language: de_DE\n"
|
||||
|
|
@ -102,6 +102,15 @@ msgstr "Fehler"
|
|||
msgid "Achievements"
|
||||
msgstr "Errungenschaften"
|
||||
|
||||
#: views/html/achievements/index.tpl:11
|
||||
msgid "Seldom Achievements"
|
||||
msgstr "Die seltensten Errungenschaften"
|
||||
|
||||
#: views/html/achievements/index.tpl:25
|
||||
#, php-format
|
||||
msgid "Achievement has been achieved only %d times"
|
||||
msgstr "wurde erst %d mal gefunden"
|
||||
|
||||
#: views/html/achievements/index.tpl:53
|
||||
#, php-format
|
||||
msgid "Own progress: %d %%"
|
||||
|
|
|
|||
|
|
@ -84,6 +84,30 @@
|
|||
}
|
||||
|
||||
|
||||
/**
|
||||
* Get seldom Achievements.
|
||||
*
|
||||
* @param int $seminaryId ID of Seminary
|
||||
* @param int $count Number of Achievements to retrieve
|
||||
* @return array List of seldom Achievements
|
||||
*/
|
||||
public function getSeldomAchievements($seminaryId, $count)
|
||||
{
|
||||
return $this->db->query(
|
||||
'SELECT id, title, url, description, progress, hidden, unachieved_achievementsmedia_id, achieved_achievementsmedia_id, count(DISTINCT character_id) AS c '.
|
||||
'FROM achievements_characters '.
|
||||
'LEFT JOIN achievements ON achievements.id = achievements_characters.achievement_id '.
|
||||
'WHERE achievements.seminary_id = ? AND only_once = 0 '.
|
||||
'GROUP BY achievement_id '.
|
||||
'ORDER BY count(DISTINCT character_id) ASC '.
|
||||
'LIMIT ?',
|
||||
'ii',
|
||||
$seminaryId,
|
||||
$count
|
||||
);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Get all achieved Achievements for a Character.
|
||||
*
|
||||
|
|
|
|||
|
|
@ -8,23 +8,23 @@
|
|||
|
||||
<div class="cf">
|
||||
<section class="rare">
|
||||
<h3>Die seltensten Errungenschaften</h3>
|
||||
<h3><?=_('Seldom Achievements')?></h3>
|
||||
<ol>
|
||||
<?php foreach($seldomAchievements as &$achievement) : ?>
|
||||
<li class="cf">
|
||||
<img src="http://legende-von-zyren.de/img/achieve/36b.jpg" />
|
||||
<p class="fwb">Des Königs neue Kleider</p>
|
||||
<p><small>wurde erst 5 mal gefunden</small></p>
|
||||
</li>
|
||||
<li class="cf">
|
||||
<img src="http://legende-von-zyren.de/img/achieve/1b.jpg" />
|
||||
<p class="fwb">Sein oder Sterben</p>
|
||||
<p><small>wurde erst 7 mal gefunden</small></p>
|
||||
</li>
|
||||
<li class="cf">
|
||||
<img src="http://legende-von-zyren.de/img/achieve/35b.jpg" />
|
||||
<p class="fwb">Hungersnot? Ohne mich.</p>
|
||||
<p><small>wurde erst 9 mal gefunden</small></p>
|
||||
<?php if($achievement['achieved'] !== false) : ?>
|
||||
<?php if(!is_null($achievement['achieved_achievementsmedia_id'])) : ?>
|
||||
<img src="<?=$linker->link(array('media','achievement',$seminary['url'],$achievement['url']))?>" />
|
||||
<?php endif ?>
|
||||
<?php else : ?>
|
||||
<?php if(!is_null($achievement['unachieved_achievementsmedia_id'])) : ?>
|
||||
<img src="<?=$linker->link(array('media','achievement',$seminary['url'],$achievement['url']))?>" />
|
||||
<?php endif ?>
|
||||
<?php endif ?>
|
||||
<p class="fwb"><?=$achievement['title']?></p>
|
||||
<p><small><?=sprintf(_('Achievement has been achieved only %d times'), $achievement['c'])?></small></p>
|
||||
</li>
|
||||
<?php endforeach ?>
|
||||
</ol>
|
||||
</section>
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue