diff --git a/controllers/QuestsController.inc b/controllers/QuestsController.inc index d35e4fd2..9ba3bf62 100644 --- a/controllers/QuestsController.inc +++ b/controllers/QuestsController.inc @@ -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']); diff --git a/models/QuestsModel.inc b/models/QuestsModel.inc index 13d113bc..d38dba68 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.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 '. diff --git a/models/QuesttextsModel.inc b/models/QuesttextsModel.inc index 1fd82319..53430ec9 100644 --- a/models/QuesttextsModel.inc +++ b/models/QuesttextsModel.inc @@ -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. * diff --git a/views/html/quests/quest.tpl b/views/html/quests/quest.tpl index cbb21d25..f914471b 100644 --- a/views/html/quests/quest.tpl +++ b/views/html/quests/quest.tpl @@ -63,8 +63,12 @@
=_('Task already successfully solved')?>: