xref: /plugin/mikioplugin/syntax/quiz.php (revision e230d7cf2be6c3bfe6edd69c4aecd6373cd3c159)
17b185056SJames Collins<?php
27b185056SJames Collins/**
37b185056SJames Collins * Mikio Syntax Plugin: Quiz
47b185056SJames Collins  *
57b185056SJames Collins * @link        http://github.com/nomadjimbob/mikioplugin
67b185056SJames Collins * @license     GPL 2 (http://www.gnu.org/licenses/gpl.html)
77b185056SJames Collins * @author      James Collins <james.collins@outlook.com.au>
87b185056SJames Collins */
97b185056SJames Collinsif (!defined('DOKU_INC')) die();
107b185056SJames Collinsif (!defined('DOKU_PLUGIN')) define('DOKU_PLUGIN',DOKU_INC.'lib/plugins/');
117b185056SJames Collinsrequire_once(dirname(__FILE__).'/core.php');
127b185056SJames Collins
137b185056SJames Collinsclass syntax_plugin_mikioplugin_quiz extends syntax_plugin_mikioplugin_core {
147b185056SJames Collins    public $tag                 = 'quiz';
157b185056SJames Collins    public $hasEndTag           = true;
167b185056SJames Collins    public $options             = array(
174d21e148SJames Collins        'resettable'   => array('type'     => 'boolean',          'default'   => 'false'),
18*e230d7cfSJames Collins        'full'   => array('type'     => 'boolean',          'default'   => 'false'),
194d21e148SJames Collins        'reset-text'   => array('type'     => 'text',          'default'   => 'Retry'),
204d21e148SJames Collins        'submit-text'   => array('type'     => 'text',          'default'   => 'Submit'),
214d21e148SJames Collins        'prev-text'   => array('type'     => 'text',          'default'   => 'Prev'),
224d21e148SJames Collins        'next-text'   => array('type'     => 'text',          'default'   => 'Next'),
234d21e148SJames Collins        'correct-text'   => array('type'     => 'text',          'default'   => 'Correct'),
244d21e148SJames Collins        'incorrect-text'   => array('type'     => 'text',          'default'   => 'Incorrect'),
254d21e148SJames Collins        'status-text'   => array('type'     => 'text',          'default'   => 'Question $1 of $2'),
264d21e148SJames Collins        'result-correct-text'   => array('type'     => 'text',          'default'   => 'You got $1 out of $2 correct'),
274d21e148SJames Collins        'result-score-text'   => array('type'     => 'text',          'default'   => 'Score: $1'),
284d21e148SJames Collins        'result-score-total-text'   => array('type'     => 'text',          'default'   => 'Total score: $1'),
297b185056SJames Collins    );
307b185056SJames Collins
317b185056SJames Collins
327b185056SJames Collins    public function render_lexer_enter(Doku_Renderer $renderer, $data) {
337b185056SJames Collins        $classes = $this->buildClass($data);
34*e230d7cfSJames Collins        $renderer->doc .= '<div class="' . $this->elemClass . ' ' . $this->classPrefix . 'quiz ' . $classes . '" data-status="' . $data['status-text'] . '" data-result-correct="' . $data['result-correct-text'] . '" data-result-score="' . $data['result-score-text'] . '" data-result-score-total="' . $data['result-score-total-text'] . '" data-correct="' . $data['correct-text'] . '" data-incorrect="' . $data['incorrect-text'] . '"' . ($data['full'] == true ? ' data-full="true"' : '') . '>';
357b185056SJames Collins    }
367b185056SJames Collins
377b185056SJames Collins
387b185056SJames Collins    public function render_lexer_exit(Doku_Renderer $renderer, $data) {
397b185056SJames Collins        $renderer->doc .= '<div class="' . $this->elemClass . ' ' . $this->classPrefix . 'quiz-result"></div>';
407b185056SJames Collins        $renderer->doc .= '<div class="' . $this->elemClass . ' ' . $this->classPrefix . 'quiz-status">';
41*e230d7cfSJames Collins        if($data['full'] == false) {
427b185056SJames Collins            $renderer->doc .= '<span class="' . $this->elemClass . ' ' . $this->classPrefix . 'quiz-status-text"></span>';
434d21e148SJames Collins            $renderer->doc .= '<button class="' . $this->elemClass . ' ' . $this->classPrefix . 'button ' . $this->classPrefix . 'quiz-button-prev">&laquo; ' . $data['prev-text'] . '</button>';
44*e230d7cfSJames Collins        }
454d21e148SJames Collins        $renderer->doc .= '<button class="' . $this->elemClass . ' ' . $this->classPrefix . 'button ' . $this->classPrefix . 'quiz-button-submit">' . $data['submit-text'] . '</button>';
464d21e148SJames Collins        if($data['resettable'] == true) {
474d21e148SJames Collins            $renderer->doc .= '<button class="' . $this->elemClass . ' ' . $this->classPrefix . 'button ' . $this->classPrefix . 'quiz-button-reset">' . $data['reset-text'] . '</button>';
484d21e148SJames Collins        }
49*e230d7cfSJames Collins        if($data['full'] == false) {
504d21e148SJames Collins            $renderer->doc .= '<button class="' . $this->elemClass . ' ' . $this->classPrefix . 'button ' . $this->classPrefix . 'quiz-button-next">' . $data['next-text'] . ' &raquo;</button>';
51*e230d7cfSJames Collins        }
527b185056SJames Collins        $renderer->doc .= '</div>';
537b185056SJames Collins        $renderer->doc .= '</div>';
547b185056SJames Collins    }
557b185056SJames Collins}
567b185056SJames Collins?>