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( 17*4d21e148SJames Collins 'resettable' => array('type' => 'boolean', 'default' => 'false'), 18*4d21e148SJames Collins 'reset-text' => array('type' => 'text', 'default' => 'Retry'), 19*4d21e148SJames Collins 'submit-text' => array('type' => 'text', 'default' => 'Submit'), 20*4d21e148SJames Collins 'prev-text' => array('type' => 'text', 'default' => 'Prev'), 21*4d21e148SJames Collins 'next-text' => array('type' => 'text', 'default' => 'Next'), 22*4d21e148SJames Collins 'correct-text' => array('type' => 'text', 'default' => 'Correct'), 23*4d21e148SJames Collins 'incorrect-text' => array('type' => 'text', 'default' => 'Incorrect'), 24*4d21e148SJames Collins 'status-text' => array('type' => 'text', 'default' => 'Question $1 of $2'), 25*4d21e148SJames Collins 'result-correct-text' => array('type' => 'text', 'default' => 'You got $1 out of $2 correct'), 26*4d21e148SJames Collins 'result-score-text' => array('type' => 'text', 'default' => 'Score: $1'), 27*4d21e148SJames Collins 'result-score-total-text' => array('type' => 'text', 'default' => 'Total score: $1'), 287b185056SJames Collins ); 297b185056SJames Collins 307b185056SJames Collins 317b185056SJames Collins public function render_lexer_enter(Doku_Renderer $renderer, $data) { 327b185056SJames Collins $classes = $this->buildClass($data); 33*4d21e148SJames 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'] . '">'; 347b185056SJames Collins } 357b185056SJames Collins 367b185056SJames Collins 377b185056SJames Collins public function render_lexer_exit(Doku_Renderer $renderer, $data) { 387b185056SJames Collins $renderer->doc .= '<div class="' . $this->elemClass . ' ' . $this->classPrefix . 'quiz-result"></div>'; 397b185056SJames Collins $renderer->doc .= '<div class="' . $this->elemClass . ' ' . $this->classPrefix . 'quiz-status">'; 407b185056SJames Collins $renderer->doc .= '<span class="' . $this->elemClass . ' ' . $this->classPrefix . 'quiz-status-text"></span>'; 41*4d21e148SJames Collins $renderer->doc .= '<button class="' . $this->elemClass . ' ' . $this->classPrefix . 'button ' . $this->classPrefix . 'quiz-button-prev">« ' . $data['prev-text'] . '</button>'; 42*4d21e148SJames Collins $renderer->doc .= '<button class="' . $this->elemClass . ' ' . $this->classPrefix . 'button ' . $this->classPrefix . 'quiz-button-submit">' . $data['submit-text'] . '</button>'; 43*4d21e148SJames Collins if($data['resettable'] == true) { 44*4d21e148SJames Collins $renderer->doc .= '<button class="' . $this->elemClass . ' ' . $this->classPrefix . 'button ' . $this->classPrefix . 'quiz-button-reset">' . $data['reset-text'] . '</button>'; 45*4d21e148SJames Collins } 46*4d21e148SJames Collins $renderer->doc .= '<button class="' . $this->elemClass . ' ' . $this->classPrefix . 'button ' . $this->classPrefix . 'quiz-button-next">' . $data['next-text'] . ' »</button>'; 477b185056SJames Collins $renderer->doc .= '</div>'; 487b185056SJames Collins $renderer->doc .= '</div>'; 497b185056SJames Collins } 507b185056SJames Collins} 517b185056SJames Collins?>