add ?entry text? to Quests and show them instead of the name

This commit is contained in:
coderkun 2014-04-17 13:53:21 +02:00
commit 78b494500f
4 changed files with 61 additions and 8 deletions

View file

@ -270,7 +270,7 @@
$nextQuests = null;
$charactedHasChoosenNextQuest = false;
$nextQuestgroup = null;
if($questtexttypeUrl == 'Epilog')
if($questtexttypeUrl == 'Epilog' || $this->Questtexts->getQuesttextCountOfQuest($quest['id'], 'Epilog') == 0)
{
// Next Quest
$nextQuests = $this->Quests->getNextQuests($quest['id']);

View file

@ -70,7 +70,7 @@
public function getQuestByUrl($seminaryId, $questgroupId, $questUrl)
{
$data = $this->db->query(
'SELECT quests.id, quests.questgroup_id, quests.questtype_id, quests.title, quests.url, quests.xps, quests.task, quests.right_text, quests.wrong_text, quests.questsmedia_id '.
'SELECT quests.id, quests.questgroup_id, quests.questtype_id, quests.title, quests.url, quests.xps, quests.entry_text, quests.task, quests.right_text, quests.wrong_text, quests.questsmedia_id '.
'FROM quests '.
'LEFT JOIN questgroups ON questgroups.id = quests.questgroup_id '.
'WHERE questgroups.seminary_id = ? AND questgroups.id = ? AND quests.url = ?',
@ -96,7 +96,7 @@
public function getQuestById($questId)
{
$data = $this->db->query(
'SELECT quests.id, quests.questgroup_id, quests.questtype_id, quests.title, quests.url, quests.xps, quests.task, quests.right_text, quests.wrong_text, quests.questsmedia_id '.
'SELECT quests.id, quests.questgroup_id, quests.questtype_id, quests.title, quests.url, quests.xps, quests.entry_text, quests.task, quests.right_text, quests.wrong_text, quests.questsmedia_id '.
'FROM quests '.
'LEFT JOIN questgroups ON questgroups.id = quests.questgroup_id '.
'WHERE quests.id = ?',
@ -146,7 +146,7 @@
public function getNextQuests($questId)
{
return $this->db->query(
'SELECT quests.id, quests.questtype_id, quests.title, quests.url, quests.xps, quests.task, questgroups.title AS questgroup_title, questgroups.url AS questgroup_url '.
'SELECT quests.id, quests.questtype_id, quests.title, quests.url, quests.xps, quests.entry_text, quests.task, questgroups.title AS questgroup_title, questgroups.url AS questgroup_url '.
'FROM quests_previousquests '.
'INNER JOIN quests ON quests.id = quests_previousquests.quest_id '.
'INNER JOIN questgroups ON questgroups.id = quests.questgroup_id '.
@ -166,7 +166,7 @@
public function getPreviousQuests($questId)
{
return $this->db->query(
'SELECT quests.id, quests.title, quests.url, questgroups.title AS questgroup_title, questgroups.url AS questgroup_url '.
'SELECT quests.id, quests.title, quests.url, quests.entry_text, questgroups.title AS questgroup_title, questgroups.url AS questgroup_url '.
'FROM quests_previousquests '.
'INNER JOIN quests ON quests.id = quests_previousquests.previous_quest_id '.
'INNER JOIN questgroups ON questgroups.id = quests.questgroup_id '.

View file

@ -69,6 +69,47 @@
}
/**
* Get count of Questtexts for a Quest.
*
* @param int $questId ID of the Quest
* @param string $questtexttypeUrl URL of the Questtexttype
* @return int Amount of Questtexts for a Quest
*/
public function getQuesttextCountOfQuest($questId, $questtexttypeUrl=null)
{
if(is_null($questtexttypeUrl))
{
$data = $this->db->query(
'SELECT count(questtexts.id) AS c '.
'FROM questtexts '.
'LEFT JOIN questtexttypes ON questtexttypes.id = questtexts.questtexttype_id '.
'WHERE questtexts.quest_id = ?',
'i',
$questId
);
}
else
{
$data = $this->db->query(
'SELECT count(questtexts.id) AS c '.
'FROM questtexts '.
'LEFT JOIN questtexttypes ON questtexttypes.id = questtexts.questtexttype_id '.
'WHERE questtexts.quest_id = ? and questtexttypes.url = ?',
'is',
$questId,
$questtexttypeUrl
);
}
if(!empty($data)) {
return $data[0]['c'];
}
return 0;
}
/**
* Get corresponding Questtext for a Sidequest.
*

View file

@ -63,8 +63,12 @@
<p><?=_('Task already successfully solved')?>:</p>
<?php endif ?>
<ul>
<?php if(!is_null($task)) : ?><li><a href="<?=$linker->link(null,0,false,array('show-answer'=>'true'),true,'task')?>"><?=_('Show answer')?></a></li><?php endif ?>
<li><a href="<?=$linker->link('Epilog',5)?>">Aufgabe Überspringen</a></l>
<?php if(!is_null($task)) : ?>
<li><a href="<?=$linker->link(null,0,false,array('show-answer'=>'true'),true,'task')?>"><?=_('Show answer')?></a></li>
<li><a href="<?=$linker->link('Epilog',5)?>"><?=_('Skip Quest')?></a></l>
<?php elseif(count($nextquests) == 0) : ?>
<li><a href="<?=$linker->link('Epilog',5)?>"><?=_('continue')?></a></l>
<?php endif ?>
</ul>
</section>
<?php endif ?>
@ -85,12 +89,20 @@
</li>
<?php else : ?>
<li>
<?=_('Quest')?>:
<?php if($nextquest['entered'] || !$charactedHasChoosenNextQuest) : ?>
<?php if(!empty($nextquest['entry_text'])) : ?>
<a href="<?=$linker->link(array($nextquest['questgroup_url'],$nextquest['url']),3)?>"><?=$nextquest['entry_text']?></a>
<?php else : ?>
<?=_('Quest')?>:
<a href="<?=$linker->link(array($nextquest['questgroup_url'],$nextquest['url']),3)?>"><?=$nextquest['title']?></a>
<?php endif ?>
<?php else : ?>
<?php if(!empty($nextquest['entry_text'])) : ?>
<?=$nextquest['entry_text']?>
<?php else : ?>
<?=$nextquest['title']?>
<?php endif ?>
<?php endif ?>
</li>
<?php endif ?>
<?php endforeach ?>