diff --git a/controllers/QuestsController.inc b/controllers/QuestsController.inc
index adcb2903..6da2906d 100644
--- a/controllers/QuestsController.inc
+++ b/controllers/QuestsController.inc
@@ -139,7 +139,6 @@
$questgroup['picture'] = $this->Media->getSeminaryMediaById($questgroup['questgroupspicture_id']);
}
-
// Get Quest
$quest = $this->Quests->getQuestByUrl($seminary['id'], $questgroup['id'], $questUrl);
@@ -210,7 +209,6 @@
$questtexttypeUrl = 'Prolog';
}
$questtexttypes = $this->Questtexts->getQuesttexttypes();
- //$questtexttypesUrls = array_map(function($t) { return $t['url']; }, $questtexttypes);
if(($questtexttypeIndex = array_search($questtexttypeUrl, array_map(function($t) { return $t['url']; }, $questtexttypes))) === false) {
throw new ParamsNotValidException($questtexttypeUrl);
}
@@ -227,21 +225,11 @@
$questtext['relatedQuestsgroups'] = $this->Questgroups->getRelatedQuestsgroupsOfQuesttext($questtext['id']);
}
+ // Has Epilog?
+ $hasEpilog = ($this->Questtexts->getQuesttextCountOfQuest($quest['id'], 'Epilog') > 0);
+
// Quest status
$questStatus = $this->request->getGetParam('status');
- $questStatusText = null;
- if(!is_null($questStatus))
- {
- switch($questStatus)
- {
- case 'solved':
- $questStatusText = $quest['right_text'];
- break;
- case 'unsolved':
- $questStatusText = $quest['wrong_text'];
- break;
- }
- }
// Quest media
$questmedia = null;
@@ -273,7 +261,7 @@
$nextQuests = null;
$charactedHasChoosenNextQuest = false;
$nextQuestgroup = null;
- if($questtexttypeUrl == 'Epilog' || ($solved && $this->Questtexts->getQuesttextCountOfQuest($quest['id'], 'Epilog') == 0) || count(array_intersect(array('admin','moderator'), IntermediateController::$user['seminaryroles'])) > 0)
+ if($questtexttypeUrl == 'Epilog' || (is_null($questtype['classname']) && !$hasEpilog))
{
// Next Quest
$nextQuests = $this->Quests->getNextQuests($quest['id']);
@@ -310,9 +298,9 @@
$this->set('questgroup', $questgroup);
$this->set('questtexttype', $questtexttype);
$this->set('questtexts', $questtexts);
+ $this->set('hasEpilog', $hasEpilog);
$this->set('quest', $quest);
$this->set('queststatus', $questStatus);
- $this->set('queststatustext', $questStatusText);
$this->set('relatedquesttext', $relatedQuesttext);
$this->set('nextquests', $nextQuests);
$this->set('charactedHasChoosenNextQuest', $charactedHasChoosenNextQuest);
diff --git a/models/QuestsModel.inc b/models/QuestsModel.inc
index d840a39a..ffffb536 100644
--- a/models/QuestsModel.inc
+++ b/models/QuestsModel.inc
@@ -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.entry_text, 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.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.entry_text, 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.wrong_text, quests.questsmedia_id '.
'FROM quests '.
'LEFT JOIN questgroups ON questgroups.id = quests.questgroup_id '.
'WHERE quests.id = ?',
@@ -306,7 +306,7 @@
public function getLastQuestForCharacter($characterId)
{
$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.task, quests.wrong_text, quests.questsmedia_id '.
'FROM quests_characters '.
'LEFT JOIN quests ON quests.id = quests_characters.quest_id '.
'WHERE quests_characters.character_id = ? AND quests_characters.status IN (?, ?, ?) '.
@@ -334,7 +334,7 @@
public function getQuestsForSeminary($seminaryId)
{
return $this->db->query(
- 'SELECT DISTINCT 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 DISTINCT quests.id, quests.questgroup_id, quests.questtype_id, quests.title, quests.url, quests.xps, quests.task, quests.wrong_text, quests.questsmedia_id '.
'FROM questgroups '.
'INNER JOIN quests ON quests.questgroup_id = questgroups.id '.
'WHERE questgroups.seminary_id = ?',
@@ -353,7 +353,7 @@
public function getQuestsForQuesttopic($questtopicId)
{
return $this->db->query(
- 'SELECT DISTINCT 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 DISTINCT quests.id, quests.questgroup_id, quests.questtype_id, quests.title, quests.url, quests.xps, quests.task, quests.wrong_text, quests.questsmedia_id '.
'FROM quests_questsubtopics '.
'INNER JOIN quests ON quests.id = quests_questsubtopics.quest_id '.
'WHERE quests_questsubtopics.questsubtopic_id = ?',
diff --git a/views/html/quests/quest.tpl b/views/html/quests/quest.tpl
index 3bad451e..f851166a 100644
--- a/views/html/quests/quest.tpl
+++ b/views/html/quests/quest.tpl
@@ -40,14 +40,10 @@
-
+
=\hhu\z\Utils::t($queststatustext)?> =\hhu\z\Utils::t($quest['wrong_text'])?>=_('solved')?>
-
=_('unsolved')?>
-
-
=_('Task already successfully solved')?>:
- - + - @@ -109,8 +105,6 @@ =$nextquestgroup['hierarchy']['title_singular']?> =$nextquestgroup['hierarchy']['questgroup_pos']?>: =$nextquestgroup['title']?> - - Spiel vorbei