This commit is contained in:
coderkun 2014-05-02 01:21:03 +02:00
commit 826fed1e3a
4 changed files with 38 additions and 39 deletions

View file

@ -84,7 +84,7 @@
$character['user'] = $this->Users->getUserById($character['user_id']);
$character['characterroles'] = array_map(function($r) { return $r['name']; }, $this->Characterroles->getCharacterrolesForCharacterById($character['id']));
$character['characterfields'] = array();
foreach($this->Seminarycharacterfields->getFieldsForCharacter($character['id']) as &$value) {
foreach($this->Seminarycharacterfields->getFieldsForCharacter($character['id']) as $value) {
$character['characterfields'][$value['url']] = $value;
}
}
@ -399,7 +399,7 @@
$character['user'] = $this->Users->getUserById($character['user_id']);
$character['characterroles'] = array_map(function($r) { return $r['name']; }, $this->Characterroles->getCharacterrolesForCharacterById($character['id']));
$character['characterfields'] = array();
foreach($this->Seminarycharacterfields->getFieldsForCharacter($character['id']) as &$value) {
foreach($this->Seminarycharacterfields->getFieldsForCharacter($character['id']) as $value) {
$character['characterfields'][$value['url']] = $value;
}
}

View file

@ -334,13 +334,6 @@
// Get submitted Character submissions waiting for approval
$submittedSubmissionCharacters = $this->Characters->getCharactersSubmittedQuest($quest['id']);
foreach($submittedSubmissionCharacters as &$submissionCharacter) {
$submissionCharacter['submission'] = $this->Quests->getLastQuestStatus($quest['id'], $submissionCharacter['id']);
}
usort($submittedSubmissionCharacters, function($a, $b) {
if($a['created'] == $b['created']) { return 0; }
return ($a['created'] > $b['created']) ? -1 : 1;
});
// Get unsolved Character submissions
$unsolvedSubmissionCharacters = $this->Characters->getCharactersUnsolvedQuest($quest['id']);

View file

@ -343,15 +343,18 @@
public function getCharactersSolvedQuest($questId)
{
return $data = $this->db->query(
'SELECT characters.id, characters.created, characters.charactertype_id, characters.name, characters.url, characters.user_id, characters.xps, characters.xplevel, charactertypes.name AS charactertype_name, charactertypes.url AS charactertype_url '.
'FROM v_characters AS characters '.
'LEFT JOIN charactertypes ON charactertypes.id = characters.charactertype_id '.
'WHERE EXISTS ('.
'SELECT character_id FROM quests_characters WHERE character_id = characters.id AND quest_id = ? AND status = ?'.
')',
'SELECT characters.id, characters.created, characters.charactertype_id, characters.name, characters.url, characters.user_id, characters.xps, characters.xplevel, charactertypes.name AS charactertype_name, charactertypes.url AS charactertype_url, quests_characters.created AS submission_created '.
'FROM quests_characters '.
'INNER JOIN v_characters AS characters ON characters.id = quests_characters.character_id '.
'INNER JOIN charactertypes ON charactertypes.id = characters.charactertype_id '.
'WHERE quests_characters.quest_id = ? AND quests_characters.status = ? AND NOT EXISTS ('.
'SELECT id '.
'FROM quests_characters AS qc '.
'WHERE qc.character_id = quests_characters.character_id AND qc.created > quests_characters.created'.
') '.
'ORDER BY quests_characters.created ASC',
'ii',
$questId,
QuestsModel::QUEST_STATUS_SOLVED
$questId, QuestsModel::QUEST_STATUS_SOLVED
);
}
@ -365,17 +368,18 @@
public function getCharactersUnsolvedQuest($questId)
{
return $data = $this->db->query(
'SELECT characters.id, characters.created, characters.charactertype_id, characters.name, characters.url, characters.user_id, characters.xps, characters.xplevel, charactertypes.name AS charactertype_name, charactertypes.url AS charactertype_url '.
'FROM v_characters AS characters '.
'LEFT JOIN charactertypes ON charactertypes.id = characters.charactertype_id '.
'WHERE EXISTS ('.
'SELECT character_id FROM quests_characters WHERE character_id = characters.id AND quest_id = ? AND status = ?'.
') AND NOT EXISTS ('.
'SELECT character_id FROM quests_characters WHERE character_id = characters.id AND quest_id = ? AND status = ?'.
')',
'iiii',
$questId, QuestsModel::QUEST_STATUS_UNSOLVED,
$questId, QuestsModel::QUEST_STATUS_SOLVED
'SELECT characters.id, characters.created, characters.charactertype_id, characters.name, characters.url, characters.user_id, characters.xps, characters.xplevel, charactertypes.name AS charactertype_name, charactertypes.url AS charactertype_url, quests_characters.created AS submission_created '.
'FROM quests_characters '.
'INNER JOIN v_characters AS characters ON characters.id = quests_characters.character_id '.
'INNER JOIN charactertypes ON charactertypes.id = characters.charactertype_id '.
'WHERE quests_characters.quest_id = ? AND quests_characters.status = ? AND NOT EXISTS ('.
'SELECT id '.
'FROM quests_characters AS qc '.
'WHERE qc.character_id = quests_characters.character_id AND qc.created > quests_characters.created'.
') '.
'ORDER BY quests_characters.created ASC',
'ii',
$questId, QuestsModel::QUEST_STATUS_UNSOLVED
);
}
@ -389,16 +393,16 @@
public function getCharactersSubmittedQuest($questId)
{
return $data = $this->db->query(
'SELECT characters.id, characters.created, characters.charactertype_id, characters.name, characters.url, characters.user_id, characters.xps, characters.xplevel, charactertypes.name AS charactertype_name, charactertypes.url AS charactertype_url '.
'FROM v_characters AS characters '.
'LEFT JOIN charactertypes ON charactertypes.id = characters.charactertype_id '.
'WHERE ('.
'SELECT status '.
'FROM quests_characters '.
'WHERE quest_id = ? AND character_id = characters.id '.
'ORDER BY created DESC '.
'LIMIT 1'.
') = ?',
'SELECT characters.id, characters.created, characters.charactertype_id, characters.name, characters.url, characters.user_id, characters.xps, characters.xplevel, charactertypes.name AS charactertype_name, charactertypes.url AS charactertype_url, quests_characters.created AS submission_created '.
'FROM quests_characters '.
'INNER JOIN v_characters AS characters ON characters.id = quests_characters.character_id '.
'INNER JOIN charactertypes ON charactertypes.id = characters.charactertype_id '.
'WHERE quests_characters.quest_id = ? AND quests_characters.status = ? AND NOT EXISTS ('.
'SELECT id '.
'FROM quests_characters AS qc '.
'WHERE qc.character_id = quests_characters.character_id AND qc.created > quests_characters.created'.
') '.
'ORDER BY quests_characters.created ASC',
'ii',
$questId, QuestsModel::QUEST_STATUS_SUBMITTED
);

View file

@ -12,7 +12,7 @@
<?php foreach($submittedSubmissionCharacters as &$character) : ?>
<li>
<a href="<?=$linker->link(array('submission',$seminary['url'],$questgroup['url'],$quest['url'],$character['url']),1)?>"><?=$character['name']?></a>
<span class="xp"><small><?=sprintf(_('submitted at %s on %sh'), $dateFormatter->format(new \DateTime($character['submission']['created'])), $timeFormatter->format(new \DateTime($character['submission']['created'])))?></small></span>
<span class="xp"><small><?=sprintf(_('submitted at %s on %sh'), $dateFormatter->format(new \DateTime($character['submission_created'])), $timeFormatter->format(new \DateTime($character['submission_created'])))?></small></span>
</li>
<?php endforeach?>
</ol>
@ -22,6 +22,7 @@
<?php foreach($unsolvedSubmissionCharacters as &$character) : ?>
<li>
<a href="<?=$linker->link(array('submission',$seminary['url'],$questgroup['url'],$quest['url'],$character['url']),1)?>"><?=$character['name']?></a>
<span class="xp"><small><?=sprintf(_('submitted at %s on %sh'), $dateFormatter->format(new \DateTime($character['submission_created'])), $timeFormatter->format(new \DateTime($character['submission_created'])))?></small></span>
</li>
<?php endforeach?>
</ol>
@ -31,6 +32,7 @@
<?php foreach($solvedSubmissionCharacters as &$character) : ?>
<li>
<a href="<?=$linker->link(array('submission',$seminary['url'],$questgroup['url'],$quest['url'],$character['url']),1)?>"><?=$character['name']?></a>
<span class="xp"><small><?=sprintf(_('submitted at %s on %sh'), $dateFormatter->format(new \DateTime($character['submission_created'])), $timeFormatter->format(new \DateTime($character['submission_created'])))?></small></span>
</li>
<?php endforeach?>
</ol>