From 0060dfee8a9a442caa0c689579b6db4be651b3e8 Mon Sep 17 00:00:00 2001 From: oliver Date: Wed, 8 Apr 2015 16:24:01 +0200 Subject: [PATCH] Questtype ?textinput?: show count of correctly filled fields (implements #3) --- locale/de_DE/LC_MESSAGES/The Legend of Z.mo | Bin 25317 -> 25440 bytes locale/de_DE/LC_MESSAGES/The Legend of Z.po | 11 ++++++++--- .../TextinputQuesttypeController.inc | 10 ++++++++-- questtypes/textinput/html/quest.tpl | 1 + 4 files changed, 17 insertions(+), 5 deletions(-) diff --git a/locale/de_DE/LC_MESSAGES/The Legend of Z.mo b/locale/de_DE/LC_MESSAGES/The Legend of Z.mo index 2e43403896dfbb5f1a0f23dd385172632a909cfa..b1540fbfafaac2b326d78c188667b81f997b2c64 100644 GIT binary patch delta 8299 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 delta 8174 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 diff --git a/locale/de_DE/LC_MESSAGES/The Legend of Z.po b/locale/de_DE/LC_MESSAGES/The Legend of Z.po index 06b05622..e3e14c8d 100644 --- a/locale/de_DE/LC_MESSAGES/The Legend of Z.po +++ b/locale/de_DE/LC_MESSAGES/The Legend of Z.po @@ -1,8 +1,8 @@ msgid "" msgstr "" "Project-Id-Version: The Legend of Z\n" -"POT-Creation-Date: 2015-04-08 15:55+0100\n" -"PO-Revision-Date: 2015-04-08 15:56+0100\n" +"POT-Creation-Date: 2015-04-08 16:22+0100\n" +"PO-Revision-Date: 2015-04-08 16:22+0100\n" "Last-Translator: \n" "Language-Team: \n" "Language: de_DE\n" @@ -135,7 +135,7 @@ msgstr "Wählen" #: questtypes/crossword/html/quest.tpl:30 #: questtypes/dragndrop/html/quest.tpl:16 #: questtypes/multiplechoice/html/quest.tpl:19 -#: questtypes/submit/html/quest.tpl:23 questtypes/textinput/html/quest.tpl:12 +#: questtypes/submit/html/quest.tpl:23 questtypes/textinput/html/quest.tpl:13 msgid "solve" msgstr "lösen" @@ -339,6 +339,11 @@ msgstr "Der reguläre Ausdruck ist ungültig" msgid "Fields" msgstr "Felder" +#: questtypes/textinput/html/quest.tpl:12 +#, php-format +msgid "You filled %d of %d fields correctly" +msgstr "Du hast %d von %d Feldern korrekt ausgefüllt" + #: views/ajax/quests/index.tpl:9 views/html/quests/create.tpl:79 #: views/html/quests/edit.tpl:82 views/html/quests/index.tpl:27 #: views/html/quests/index.tpl:59 diff --git a/questtypes/textinput/TextinputQuesttypeController.inc b/questtypes/textinput/TextinputQuesttypeController.inc index 205e047b..a4b62267 100644 --- a/questtypes/textinput/TextinputQuesttypeController.inc +++ b/questtypes/textinput/TextinputQuesttypeController.inc @@ -124,9 +124,14 @@ $solved = $this->Quests->hasCharacterSolvedQuest($quest['id'], $character['id']); // Get Character answers - if(!$solved || $this->request->getGetParam('show-answer') == 'true' || $this->request->getGetParam('status') == 'solved') { - foreach($fields as &$field) { + $correctAnswersCount = null; + if(!$solved || $this->request->getGetParam('show-answer') == 'true' || $this->request->getGetParam('status') == 'solved') + { + $correctAnswersCount = 0; + foreach($fields as &$field) + { $field['answer'] = $this->Textinput->getCharacterSubmission($field['id'], $character['id']); + $correctAnswersCount += $this->isMatching($field['regex'], $field['answer']); } } @@ -134,6 +139,7 @@ // Pass data to view $this->set('task', $task); $this->set('fields', $fields); + $this->set('count', $correctAnswersCount); } diff --git a/questtypes/textinput/html/quest.tpl b/questtypes/textinput/html/quest.tpl index 9aaf010b..0e786e56 100644 --- a/questtypes/textinput/html/quest.tpl +++ b/questtypes/textinput/html/quest.tpl @@ -9,5 +9,6 @@ t(mb_substr($task['text'], $posStart, mb_strlen($task['text'], 'UTF-8')-$posStart, 'UTF-8'))?>

+

.