unify Main- and Sidequests

This commit is contained in:
coderkun 2014-03-09 13:25:55 +01:00
commit 1cc251038a
10 changed files with 117 additions and 363 deletions

View file

@ -32,16 +32,6 @@
$this->addSubAgent('Questgroupspicture', 'index', $request->getParam(3), $request->getParam(4), true);
}
/**
* Action: quest.
*/
public function sidequest(\nre\core\Request $request, \nre\core\Response $response)
{
$this->addSubAgent('Questgroupshierarchypath', 'index', $request->getParam(3), $request->getParam(4), true);
$this->addSubAgent('Questgroupspicture', 'index', $request->getParam(3), $request->getParam(4), true);
}
}
?>

View file

@ -251,22 +251,11 @@
// Get Quest
$quest = $this->Quests->getQuestByUrl($seminary['id'], $questgroup['id'], $this->request->getParam(5));
// Sidequest
$sidequest = null;
if($this->request->getParam(2) == 'sidequest') {
$sidequest = $this->Quests->getSidequestByUrl($seminary['id'], $questgroup['id'], $quest['id'], $this->request->getParam(6));
}
// Character
$character = $this->Characters->getCharacterForUserAndSeminary($this->Auth->getUserId(), $seminary['id']);
// Set solved
if(is_null($sidequest)) {
$this->Quests->setQuestSolved($quest['id'], $character['id']);
}
else {
$this->Quests->setSidequestSolved($sidequest['id'], $character['id']);
}
// Redirect
@ -289,23 +278,11 @@
// Get Quest
$quest = $this->Quests->getQuestByUrl($seminary['id'], $questgroup['id'], $this->request->getParam(5));
// Sidequest
$sidequest = null;
if($this->request->getParam(2) == 'sidequest') {
$sidequest = $this->Quests->getSidequestByUrl($seminary['id'], $questgroup['id'], $quest['id'], $this->request->getParam(6));
}
// Character
$character = $this->Characters->getCharacterForUserAndSeminary($this->Auth->getUserId(), $seminary['id']);
// Set solved
if(is_null($sidequest)) {
$this->Quests->setQuestUnsolved($quest['id'], $character['id']);
}
else {
$this->Quests->setSidequestUnsolved($sidequest['id'], $character['id']);
}
// Redirect

View file

@ -96,7 +96,7 @@
$quests = null;
if(count($childQuestgroupshierarchy) == 0)
{
$quests = $this->Quests->getQuestsForQuestgroup($questgroup['id']);
$quests = $this->Quests->getMainquestsForQuestgroup($questgroup['id']);
for($i=0; $i<count($quests); $i++)
{
// Check permission

View file

@ -84,6 +84,8 @@
else
{
// Previous Quests
if(count($previousQuests) > 0)
{
$solved = false;
foreach($previousQuests as &$previousQuest)
{
@ -96,6 +98,17 @@
throw new \nre\exceptions\AccessDeniedException();
}
}
}
// Get (related) Questtext (for Sidequests)
$relatedQuesttext = null;
if(!$quest['is_mainquest'])
{
$relatedQuesttext = $this->Questtexts->getQuesttextForSidequest($quest['id']);
if(!empty($relatedQuesttext)) {
$relatedQuesttext['quest'] = $this->Quests->getQuestById($relatedQuesttext['quest_id']);
}
}
// Get Questtext
$questtext = null;
@ -153,6 +166,8 @@
$nextQuests = null;
$nextQuestgroup = null;
if($questtexttypeUrl == 'Epilog')
{
if($quest['is_mainquest'])
{
// Next Quest
$nextQuests = $this->Quests->getNextQuests($quest['id']);
@ -164,6 +179,13 @@
$nextQuestgroup['hierarchy'] = $this->Questgroupshierarchy->getHierarchyById($nextQuestgroup['questgroupshierarchy_id']);
}
}
else {
// Related (Main-) Quest
$nextQuest = $relatedQuesttext['quest'];
$nextQuest['questgroup_url'] = $questgroup['url'];
$nextQuests = array($nextQuest);
}
}
// Pass data to view
@ -173,6 +195,7 @@
$this->set('quest', $quest);
$this->set('queststatus', $questStatus);
$this->set('queststatustext', $questStatusText);
$this->set('relatedquesttext', $relatedQuesttext);
$this->set('nextquests', $nextQuests);
$this->set('nextquestgroup', $nextQuestgroup);
$this->set('task', $task);
@ -180,137 +203,6 @@
}
/**
* Action: sidequest.
*
* Show a sidequest and its task.
*
* @throws IdNotFoundException
* @param string $seminaryUrl URL-Title of Seminary
* @param string $questgroupUrl URL-Title of Questgroup
* @param string $questUrl URL-Title of Quest
* @param string $sidequestUrl URL-Title of Sidequest
* @param string $sidequesttexttypeUrl URL-Title of Sidequesttexttype
* @param int $sidequesttextPos Position of Sidequesttext
*/
public function sidequest($seminaryUrl, $questgroupUrl, $questUrl, $sidequestUrl, $sidequesttexttypeUrl=null, $sidequesttextPos=1)
{
// Get seminary
$seminary = $this->Seminaries->getSeminaryByUrl($seminaryUrl);
// Get Questgroup
$questgroup = $this->Questgroups->getQuestgroupByUrl($seminary['id'], $questgroupUrl);
// Get Quest
$quest = $this->Quests->getQuestByUrl($seminary['id'], $questgroup['id'], $questUrl);
// Get Sidequest
$sidequest = $this->Quests->getSidequestByUrl($seminary['id'], $questgroup['id'], $quest['id'], $sidequestUrl);
// Get Character
$character = $this->Characters->getCharacterForUserAndSeminary($this->Auth->getUserId(), $seminary['id']);
// Check permission
$previousQuests = $this->Quests->getPreviousQuests($quest['id']);
if(count($previousQuests) == 0)
{
// Previous Questgroup
$previousQuestgroup = $this->Questgroups->getPreviousQuestgroup($questgroup['id']);
if(!is_null($previousQuestgroup) && !$this->Questgroups->hasCharacterSolvedQuestgroup($previousQuestgroup['id'], $character['id'])) {
throw new \nre\exceptions\AccessDeniedException();
}
}
else
{
// Previous Quests
if(count($previousQuests) > 0)
{
$solved = false;
foreach($previousQuests as &$previousQuest)
{
if($this->Quests->hasCharacterSolvedQuest($previousQuest['id'], $character['id'])) {
$solved = true;
break;
}
}
if(!$solved) {
throw new \nre\exceptions\AccessDeniedException();
}
}
}
// Get Questtext
$questtext = $this->Questtexts->getQuesttextForSidequest($sidequest['id']);
// Get Sidequesttext
$sidequesttext = null;
if(is_null($sidequesttexttypeUrl)) {
$sidequesttexttypeUrl = 'Prolog';
}
$questtexttypes = $this->Questtexts->getQuesttexttypes();
$questtexttypes = array_map(function($t) { return $t['url']; }, $questtexttypes);
$sidequesttextCount = $this->Questtexts->getQuesttextsCountForSidequest($sidequest['id'], $sidequesttexttypeUrl);
if($sidequesttextCount > 0 && in_array($sidequesttexttypeUrl, $questtexttypes))
{
if(in_array($sidequesttexttypeUrl, $questtexttypes))
{
$sidequesttextPos = max(intval($sidequesttextPos), 1);
$sidequesttext = $this->Questtexts->getSidequesttextByUrl($sidequest['id'], $sidequesttexttypeUrl, $sidequesttextPos);
$sidequesttext['count'] = $sidequesttextCount;
}
}
// Sidequest status
$sidequestStatus = $this->request->getGetParam('status');
$sidequestStatusText = null;
if(!is_null($sidequestStatus))
{
switch($sidequestStatus)
{
case 'solved':
$sidequestStatusText = $sidequest['right_text'];
break;
case 'unsolved':
$sidequestStatusText = $sidequest['wrong_text'];
break;
}
}
// Media
$sidequestmedia = null;
if(!is_null($sidequesttext) && !empty($sidequesttext['questsmedia_id'])) {
$sidequestmedia = $this->Media->getMediaById($sidequesttext['questsmedia_id']);
}
elseif(!is_null($sidequest['questsmedia_id'])) {
$sidequestmedia = $this->Media->getMediaById($sidequest['questsmedia_id']);
}
// Task
$task = null;
if($sidequesttexttypeUrl == 'Prolog')
{
// Questtype
$questtype = $this->Questtypes->getQuesttypeById($sidequest['questtype_id']);
// Task
$task = $this->runAndRenderTask($questtype['classname']);
}
// Pass data to view
$this->set('seminary', $seminary);
$this->set('questgroup', $questgroup);
$this->set('questtext', $questtext);
$this->set('sidequesttext', $sidequesttext);
$this->set('quest', $quest);
$this->set('sidequest', $sidequest);
$this->set('sidequeststatus', $sidequestStatus);
$this->set('sidequeststatustext', $sidequestStatusText);
$this->set('task', $task);
$this->set('media', $sidequestmedia);
}
/**

View file

@ -217,7 +217,7 @@
$lastChildQuestgroupshierarchy = array_pop($childQuestgroupshierarchy);
}
$quests = $this->Quests->getQuestsForQuestgroup($currentQuestgroup['id']);
$quests = $this->Quests->getMainquestsForQuestgroup($currentQuestgroup['id']);
$lastQuest = array_pop($quests);

View file

@ -40,11 +40,12 @@
* @param int $questgroupId ID of a Questgroup
* @return array Quests of the given Questgroup
*/
public function getQuestsForQuestgroup($questgroupId)
public function getMainquestsForQuestgroup($questgroupId)
{
return $this->db->query(
'SELECT id, questtype_id, title, url, xps, task '.
'FROM quests '.
'INNER JOIN mainquests ON mainquests.quest_id = quests.id '.
'WHERE questgroup_id = ?',
'i',
$questgroupId
@ -64,7 +65,8 @@
public function getQuestByUrl($seminaryId, $questgroupId, $questUrl)
{
$data = $this->db->query(
'SELECT quests.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.questtype_id, quests.title, quests.url, quests.xps, quests.task, quests.right_text, quests.wrong_text, quests.questsmedia_id, ('.
'SELECT count(mainquests.quest_id) FROM mainquests WHERE mainquests.quest_id = quests.id) AS is_mainquest '.
'FROM quests '.
'LEFT JOIN questgroups ON questgroups.id = quests.questgroup_id '.
'LEFT JOIN questgroupshierarchy ON questgroupshierarchy.id = questgroups.questgroupshierarchy_id '.
@ -76,6 +78,38 @@
throw new \nre\exceptions\IdNotFoundException($questUrl);
}
$data[0]['is_mainquest'] = ($data[0]['is_mainquest'] == 1);
return $data[0];
}
/**
* Get a Quest and its data by its ID.
*
* @throws IdNotFoundException
* @param string $questId ID of a Quest
* @return array Quest data
*/
public function getQuestById($questId)
{
$data = $this->db->query(
'SELECT quests.id, quests.questtype_id, quests.title, quests.url, quests.xps, quests.task, quests.right_text, quests.wrong_text, quests.questsmedia_id, ('.
'SELECT count(mainquests.quest_id) FROM mainquests WHERE mainquests.quest_id = quests.id) AS is_mainquest '.
'FROM quests '.
'LEFT JOIN questgroups ON questgroups.id = quests.questgroup_id '.
'LEFT JOIN questgroupshierarchy ON questgroupshierarchy.id = questgroups.questgroupshierarchy_id '.
'WHERE quests.id = ?',
'i',
$questId
);
if(empty($data)) {
throw new \nre\exceptions\IdNotFoundException($questId);
}
$data[0]['is_mainquest'] = ($data[0]['is_mainquest'] == 1);
return $data[0];
}
@ -94,14 +128,15 @@
public function getSidequestByUrl($seminaryId, $questgroupId, $questId, $sidequestUrl)
{
$data = $this->db->query(
'SELECT sidequests.id, sidequests.questtype_id, sidequests.title, sidequests.url, sidequests.xps, sidequests.task, quests.right_text, quests.wrong_text, sidequests.questsmedia_id '.
'FROM sidequests '.
'SELECT quests.id, quests.questtype_id, quests.title, quests.url, quests.xps, quests.task, quests.right_text, quests.wrong_text, quests.questsmedia_id '.
'FROM quests '.
'INNER JOIN sidequests ON sidequests.quest_id = quests.id '.
'LEFT JOIN questtexts ON questtexts.id = sidequests.questtext_id '.
'LEFT JOIN quests ON quests.id = questtexts.quest_id '.
'LEFT JOIN mainquests ON mainquests.quest_id = questtexts.mainquest_id '.
'LEFT JOIN questgroups ON questgroups.id = quests.questgroup_id '.
'LEFT JOIN questgroupshierarchy ON questgroupshierarchy.id = questgroups.questgroupshierarchy_id '.
'LEFT JOIN seminaries ON seminaries.id = questgroupshierarchy.seminary_id '.
'WHERE sidequests.url = ? AND quests.id = ? AND questgroups.id = ? AND seminaries.id = ?',
'WHERE quests.url = ? AND mainquests.id = ? AND questgroups.id = ? AND seminaries.id = ?',
'siii',
$sidequestUrl,
$questId,
@ -126,8 +161,9 @@
public function getSidequestsForQuest($questId)
{
return $this->db->query(
'SELECT sidequests.id, sidequests.questtext_id, sidequests.title, sidequests.url, sidequests.entry_text '.
'FROM sidequests '.
'SELECT quests.id, sidequests.questtext_id, quests.title, quests.url, sidequests.entry_text '.
'FROM quests '.
'INNER JOIN sidequests ON sidequests.quest_id = quests.id '.
'LEFT JOIN questtexts ON questtexts.id = sidequests.questtext_id '.
'WHERE questtexts.quest_id = ?',
'i',
@ -146,7 +182,8 @@
{
return $this->db->query(
'SELECT id, questtext_id, title, url, entry_text '.
'FROM sidequests '.
'FROM quests '.
'INNER JOIN sidequests ON sidequests.quest_id = quests.id '.
'WHERE questtext_id = ?',
'i',
$questtextId
@ -164,11 +201,12 @@
{
return $this->db->query(
'SELECT quests.id, quests.title, quests.url, questgroups.title AS questgroup_title, questgroups.url AS questgroup_url '.
'FROM quests_previousquests '.
'LEFT JOIN quests ON quests.id = quests_previousquests.quest_id '.
'FROM mainquests_previousmainquests '.
'LEFT JOIN mainquests ON mainquests.quest_id = mainquests_previousmainquests.mainquest_id '.
'INNER JOIN quests ON quests.id = mainquests.quest_id '.
'LEFT JOIN questgroups ON questgroups.id = quests.questgroup_id '.
'LEFT JOIN questgroupshierarchy ON questgroupshierarchy.id = questgroups.questgroupshierarchy_id '.
'WHERE quests_previousquests.previous_quest_id = ?',
'WHERE mainquests_previousmainquests.previous_mainquest_id = ?',
'i',
$questId
);
@ -185,11 +223,12 @@
{
return $this->db->query(
'SELECT quests.id, quests.title, quests.url, questgroups.title AS questgroup_title, questgroups.url AS questgroup_url '.
'FROM quests_previousquests '.
'LEFT JOIN quests ON quests.id = quests_previousquests.previous_quest_id '.
'FROM mainquests_previousmainquests '.
'LEFT JOIN mainquests ON mainquests.quest_id = mainquests_previousmainquests.previous_mainquest_id '.
'INNER JOIN quests ON quests.id = mainquests.quest_id '.
'LEFT JOIN questgroups ON questgroups.id = quests.questgroup_id '.
'LEFT JOIN questgroupshierarchy ON questgroupshierarchy.id = questgroups.questgroupshierarchy_id '.
'WHERE quests_previousquests.quest_id = ?',
'WHERE mainquests_previousmainquests.mainquest_id = ?',
'i',
$questId
);
@ -217,27 +256,6 @@
}
/**
* Mark a Sidequest as solved for a Character.
*
* @param int $sidequestId ID of Sidequest to mark as solved
* @param int $characterId ID of Character that solved the Sidequest
*/
public function setSidequestSolved($sidequestId, $characterId)
{
$this->db->query(
'INSERT INTO sidequests_characters '.
'(sidequest_id, character_id, status) '.
'VALUES '.
'(?, ?, ?)',
'iii',
$sidequestId,
$characterId,
0
);
}
/**
* Mark a Quest as unsolved for a Character.
*
@ -259,27 +277,6 @@
}
/**
* Mark a Sidequest as unsolved for a Character.
*
* @param int $sidequestId ID of Sidequest to mark as unsolved
* @param int $characterId ID of Character that unsolved the Sidequest
*/
public function setSidequestUnsolved($sidequestId, $characterId)
{
$this->db->query(
'INSERT INTO sidequests_characters '.
'(sidequest_id, character_id, status) '.
'VALUES '.
'(?, ?, ?)',
'iii',
$sidequestId,
$characterId,
-1
);
}
/**
* Determine if the given Character has solved the given Quest.
*

View file

@ -46,7 +46,7 @@
public function getQuesttextByUrl($questId, $questtexttypeUrl, $pos)
{
$data = $this->db->query(
'SELECT questtexts.id, questtexts.text, questtexts.pos, questtexts.out_text, questtexts.questsmedia_id, questtexttypes.id AS type_id, questtexttypes.type, questtexttypes.url AS type_url '.
'SELECT questtexts.id, questtexts.text, questtexts.pos, questtexts.out_text, questtexts.abort_text, questtexts.questsmedia_id, questtexttypes.id AS type_id, questtexttypes.type, questtexttypes.url AS type_url '.
'FROM questtexts '.
'LEFT JOIN questtexttypes ON questtexttypes.id = questtexts.questtexttype_id '.
'WHERE questtexts.quest_id = ? AND questtexttypes.url = ? AND questtexts.pos = ?',
@ -62,34 +62,6 @@
}
/**
* Get a Questtext for a Sidequest by its URL.
*
* @throws IdNotFoundException
* @param int $sidequestId ID of the Sidequest to get text for
* @param string $questtexttypeUrl URL of the Questtexttype
* @param int $pos Position of Questtexttype
* @return array Questtexttype data
*/
public function getSidequesttextByUrl($sidequestId, $questtexttypeUrl, $pos)
{
$data = $this->db->query(
'SELECT sidequesttexts.id, sidequesttexts.text, sidequesttexts.pos, sidequesttexts.out_text, sidequesttexts.abort_text, sidequesttexts.questsmedia_id, questtexttypes.id AS type_id, questtexttypes.type, questtexttypes.url AS type_url '.
'FROM sidequesttexts '.
'LEFT JOIN questtexttypes ON questtexttypes.id = sidequesttexts.questtexttype_id '.
'WHERE sidequesttexts.sidequest_id = ? AND questtexttypes.url = ? AND sidequesttexts.pos = ?',
'isi',
$sidequestId, $questtexttypeUrl, $pos
);
if(empty($data)) {
throw new \nre\exceptions\IdNotFoundException($questtexttypeUrl);
}
return $data = $data[0];
}
/**
* Get count of Questtexts for a Quest.
*
@ -117,33 +89,6 @@
}
/**
* Get count of Questtexts for a Sidequest.
*
* @param int $sidequestId ID of the Sidequest
* @param string $questtexttypeUrl URL of the Questtexttype
* @return int Conut of Questtexts for Sideuest
*/
public function getQuesttextsCountForSidequest($questId, $questtexttypUrl)
{
$count = 0;
$data = $this->db->query(
'SELECT COUNT(sidequesttexts.id) AS c '.
'FROM sidequesttexts '.
'LEFT JOIN questtexttypes ON questtexttypes.id = sidequesttexts.questtexttype_id '.
'WHERE sidequesttexts.sidequest_id = ? AND questtexttypes.url = ?',
'is',
$questId, $questtexttypUrl
);
if(!empty($data)) {
$count = $data[0]['c'];
}
return $count;
}
/**
* Get corresponding Questtext for a Sidequest.
*
@ -154,11 +99,12 @@
public function getQuesttextForSidequest($sidequestId)
{
$data = $this->db->query(
'SELECT questtexts.id, questtexts.text, questtexts.pos, questtexttypes.id AS type_id, questtexttypes.type, questtexttypes.url AS type_url '.
'FROM sidequests '.
'SELECT questtexts.id, questtexts.text, questtexts.pos, questtexts.quest_id, questtexttypes.id AS type_id, questtexttypes.type, questtexttypes.url AS type_url '.
'FROM quests '.
'INNER JOIN sidequests ON sidequests.quest_id = quests.id '.
'LEFT JOIN questtexts ON questtexts.id = sidequests.questtext_id '.
'LEFT JOIN questtexttypes ON questtexttypes.id = questtexts.questtexttype_id '.
'WHERE sidequests.id = ?',
'WHERE quests.id = ?',
'i',
$sidequestId
);

View file

@ -34,9 +34,9 @@
<li>
<?php if(!array_key_exists('access', $quest) || $quest['access']) : ?>
<a href="<?=$linker->link(array('quests','quest',$seminary['url'],$questgroup['url'],$quest['url']))?>"><?=$quest['title']?></a>
<?php if(count($quest['sidequests']) > 0) : ?>
<br />
<?=_('containing optional Quests')?>:
<?php if(count($quest['sidequests']) > 0) : ?>
<ul>
<?php foreach($quest['sidequests'] as &$sidequest) : ?>
<li><?=$sidequest['title']?></li>

View file

@ -4,7 +4,13 @@
<?=$questgroupshierarchypath?>
<?=$questgroupspicture?>
<?php if(is_null($relatedquesttext)) : ?>
<h3><?=$quest['title']?></h3>
<?php else : ?>
<h3><a href="<?=$linker->link(array('quest',$seminary['url'],$questgroup['url'],$relatedquesttext['quest']['url'],$relatedquesttext['type_url'],$relatedquesttext['pos']),1)?>"><?=$relatedquesttext['quest']['title']?></a></h3>
<h4><?=$quest['title']?></h4>
<?php endif ?>
<?php if(!is_null($media)) : ?>
<img src="<?=$linker->link(array('media','index',$seminary['url'],$media['url']))?>" />
<?php endif ?>
@ -25,20 +31,17 @@
<h1><?=$questtext['type']?></h1>
<p><?=\hhu\z\Utils::t($questtext['text'])?></p>
<?php if(array_key_exists('sidequests', $questtext) && !empty($questtext['sidequests'])) : ?>
<ul>
<?php foreach($questtext['sidequests'] as &$sidequest) : ?>
<li><a href="<?=$linker->link(array('sidequest',$seminary['url'],$questgroup['url'],$quest['url'],$sidequest['url']),1)?>"><?=$sidequest['entry_text']?></a></li>
<li><a href="<?=$linker->link(array('quest',$seminary['url'],$questgroup['url'],$sidequest['url']),1)?>"><?=$sidequest['entry_text']?></a></li>
<?php endforeach ?>
<?php if(!empty($questtext['out_text'])) : ?>
<?php if(!empty($questtext['abort_text'])) : ?>
<li><a href="<?=$linker->link(array('quest',$seminary['url'],$questgroup['url'],$relatedquesttext['quest']['url'],$relatedquesttext['type_url'],$relatedquesttext['pos']),1)?>"><?=$questtext['abort_text']?></a></li>
<?php endif ?>
<?php if(!empty($questtext['out_text']) && $questtext['pos'] < $questtext['count']) : ?>
<li><a href="<?=$linker->link($questtext['pos']+1, 6)?>"><?=$questtext['out_text']?></a></li>
<?php endif ?>
</ul>
<?php endif ?>
<?php if(array_key_exists('out_text', $questtext) && !empty($questtext['out_text']) && array_key_exists('sidequests', $questtext) && empty($questtext['sidequests'])) : ?>
<a href="<?=$linker->link($questtext['pos']+1, 6)?>"><?=$questtext['out_text']?></a>
<?php endif ?>
<?php if(array_key_exists('pos', $questtext)) : ?>
<?php if($questtext['pos'] > 1) : ?><a href="<?=$linker->link(array($questtext['type_url'],$questtext['pos']-1),5)?>">&lt;</a><?php endif ?>
@ -54,7 +57,11 @@
<?php if(count($nextquests) > 0) : ?>
<ul>
<?php foreach($nextquests as &$nextquest) : ?>
<?php if($nextquest['id'] == $relatedquesttext['quest']['id']) : ?>
<li><?=_('Quest')?>: <a href="<?=$linker->link(array($nextquest['questgroup_url'],$nextquest['url'],$relatedquesttext['type_url'],$relatedquesttext['pos']),3)?>"><?=$nextquest['title']?></a></li>
<?php else : ?>
<li><?=_('Quest')?>: <a href="<?=$linker->link(array($nextquest['questgroup_url'],$nextquest['url']),3)?>"><?=$nextquest['title']?></a></li>
<?php endif ?>
<?php endforeach ?>
</ul>
<?php elseif(!is_null($nextquestgroup)) : ?>

View file

@ -1,55 +0,0 @@
<h1><?=_('Seminaries')?></h1>
<h2><?=$seminary['title']?></h2>
<?=$questgroupshierarchypath?>
<?=$questgroupspicture?>
<h3><a href="<?=$linker->link(array('quest',$seminary['url'],$questgroup['url'],$quest['url'],$questtext['type_url'],$questtext['pos']),1)?>"><?=$quest['title']?></a></h3>
<h4><?=$sidequest['title']?></h4>
<p><?=_('This Quest is optional')?>.</p>
<?php if(!is_null($media)) : ?>
<img src="<?=$linker->link(array('media','index',$seminary['url'],$media['url']))?>" />
<?php endif ?>
<?php if(!is_null($sidequeststatustext)) : ?>
<section>
<?php if($sidequeststatus == 'solved') : ?>
<h1><?=_('solved')?></h1>
<?php elseif($sidequeststatus == 'unsolved') : ?>
<h1><?=_('unsolved')?></h1>
<?php endif ?>
<p><?=\hhu\z\Utils::t($sidequeststatustext)?></p>
</section>
<?php endif ?>
<?php if(!is_null($sidequesttext)) : ?>
<section>
<h1><?=$sidequesttext['type']?></h1>
<p><?=\hhu\z\Utils::t($sidequesttext['text'])?></p>
<?php if(array_key_exists('out_text', $sidequesttext) && !empty($sidequesttext['out_text'])) : ?>
<?php if(array_key_exists('abort_text', $sidequesttext) && !empty($sidequesttext['abort_text'])) : ?>
<ul>
<li><a href="<?=$linker->link(array('quest',$seminary['url'],$questgroup['url'],$quest['url'],$questtext['type_url'],$questtext['pos']),1)?>"><?=$sidequesttext['abort_text']?></a></li>
<li><a href="<?=$linker->link(array($sidequesttext['type_url'],$sidequesttext['pos']+1),6)?>"><?=$sidequesttext['out_text']?></a></li>
</ul>
<?php else : ?>
<a href="<?=$linker->link($sidequesttext['pos']+1, 7)?>"><?=$sidequesttext['out_text']?></a><br />
<?php endif ?>
<?php endif ?>
<?php if(array_key_exists('pos', $sidequesttext)) : ?>
<?php if($sidequesttext['pos'] > 1) : ?><a href="<?=$linker->link(array($sidequesttext['type_url'],$sidequesttext['pos']-1),6)?>">&lt;</a><?php endif ?>
<?=$sidequesttext['pos']?>/<?=$sidequesttext['count']?>
<?php if($sidequesttext['pos'] < $sidequesttext['count'] && empty($sidequesttext['out_text'])) : ?><a href="<?=$linker->link(array($sidequesttext['type_url'],$sidequesttext['pos']+1),6)?>">&gt;</a><?php endif ?>
<?php endif ?>
</section>
<?php endif ?>
<?php if(!is_null($task)) : ?>
<section>
<h1><?=_('Task')?></h1>
<p><?=\hhu\z\Utils::t($sidequest['task'])?></p>
<p><?=$task?></p>
</section>
<?php endif ?>