1*7b185056SJames Collins<?php 2*7b185056SJames Collins/** 3*7b185056SJames Collins * Mikio Syntax Plugin: Quiz Item 4*7b185056SJames Collins * 5*7b185056SJames Collins * @link http://github.com/nomadjimbob/mikioplugin 6*7b185056SJames Collins * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) 7*7b185056SJames Collins * @author James Collins <james.collins@outlook.com.au> 8*7b185056SJames Collins */ 9*7b185056SJames Collins 10*7b185056SJames Collinsif (!defined('DOKU_INC')) die(); 11*7b185056SJames Collinsif (!defined('DOKU_PLUGIN')) define('DOKU_PLUGIN',DOKU_INC.'lib/plugins/'); 12*7b185056SJames Collinsrequire_once(dirname(__FILE__).'/core.php'); 13*7b185056SJames Collins 14*7b185056SJames Collinsclass syntax_plugin_mikioplugin_quizitem extends syntax_plugin_mikioplugin_core { 15*7b185056SJames Collins public $tag = 'quiz-item'; 16*7b185056SJames Collins public $hasEndTag = false; 17*7b185056SJames Collins public $options = array( 18*7b185056SJames Collins 'type' => array('type' => 'choice', 19*7b185056SJames Collins 'data' => array('choice'), 20*7b185056SJames Collins 'default' => ''), 21*7b185056SJames Collins 'question' => array('type' => 'text', 'default' => ''), 22*7b185056SJames Collins 'options' => array('type' => 'text', 'default' => ''), 23*7b185056SJames Collins 'submit-text' => array('type' => 'text', 'default' => 'Submit'), 24*7b185056SJames Collins 'answer' => array('type' => 'text', 'default' => ''), 25*7b185056SJames Collins 'text' => array('type' => 'text', 'default' => ''), 26*7b185056SJames Collins ); 27*7b185056SJames Collins 28*7b185056SJames Collins // public function getAllowedTypes() { return array(); } 29*7b185056SJames Collins 30*7b185056SJames Collins public function render_lexer_special(Doku_Renderer $renderer, $data) { 31*7b185056SJames Collins $classes = $this->buildClass($data); 32*7b185056SJames Collins 33*7b185056SJames Collins $renderer->doc .= '<div class="' . $this->elemClass . ' ' . $this->classPrefix . 'quiz-item' . $classes . '" data-question="' . $data['question'] . '" data-answer="' . $data['answer'] . '">'; 34*7b185056SJames Collins $renderer->doc .= '<div class="' . $this->elemClass . ' ' . $this->classPrefix . 'quiz-question">' . $data['question'] . '</div>'; 35*7b185056SJames Collins if($data['text'] != '') $renderer->doc .= '<p>' . $data['text'] . '</p>'; 36*7b185056SJames Collins $renderer->doc .= '<div class="' . $this->elemClass . ' ' . $this->classPrefix . 'quiz-options">'; 37*7b185056SJames Collins 38*7b185056SJames Collins switch(strtolower($data['type'])) { 39*7b185056SJames Collins case 'choice': 40*7b185056SJames Collins $name = rand(10000, 99999); 41*7b185056SJames Collins 42*7b185056SJames Collins $options = explode('|', $data['options']); 43*7b185056SJames Collins foreach($options as $option) { 44*7b185056SJames Collins $renderer->doc .= '<div class="' . $this->elemClass . ' ' . $this->classPrefix . 'quiz-option"><label><input type="radio" name="' . $name . '" value="' . $option . '" />' . $option . '</label></div>'; 45*7b185056SJames Collins } 46*7b185056SJames Collins break; 47*7b185056SJames Collins } 48*7b185056SJames Collins 49*7b185056SJames Collins $renderer->doc .= '</div>'; 50*7b185056SJames Collins $renderer->doc .= '</div>'; 51*7b185056SJames Collins } 52*7b185056SJames Collins} 53*7b185056SJames Collins?> 54