17b185056SJames Collins<?php 27b185056SJames Collins/** 37b185056SJames Collins * Mikio Syntax Plugin: Quiz Item 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 Collins 107b185056SJames Collinsif (!defined('DOKU_INC')) die(); 117b185056SJames Collinsif (!defined('DOKU_PLUGIN')) define('DOKU_PLUGIN',DOKU_INC.'lib/plugins/'); 127b185056SJames Collinsrequire_once(dirname(__FILE__).'/core.php'); 137b185056SJames Collins 147b185056SJames Collinsclass syntax_plugin_mikioplugin_quizitem extends syntax_plugin_mikioplugin_core { 157b185056SJames Collins public $tag = 'quiz-item'; 16*43f781e0SJames Collins public $requires_tag = 'quiz'; 177b185056SJames Collins public $hasEndTag = false; 187b185056SJames Collins public $options = array( 197b185056SJames Collins 'type' => array('type' => 'choice', 207b185056SJames Collins 'data' => array('choice'), 217b185056SJames Collins 'default' => ''), 227b185056SJames Collins 'question' => array('type' => 'text', 'default' => ''), 237b185056SJames Collins 'options' => array('type' => 'text', 'default' => ''), 247b185056SJames Collins 'submit-text' => array('type' => 'text', 'default' => 'Submit'), 257b185056SJames Collins 'answer' => array('type' => 'text', 'default' => ''), 267b185056SJames Collins 'text' => array('type' => 'text', 'default' => ''), 277b185056SJames Collins ); 287b185056SJames Collins 297b185056SJames Collins // public function getAllowedTypes() { return array(); } 307b185056SJames Collins 317b185056SJames Collins public function render_lexer_special(Doku_Renderer $renderer, $data) { 327b185056SJames Collins $classes = $this->buildClass($data); 337b185056SJames Collins 347b185056SJames Collins $renderer->doc .= '<div class="' . $this->elemClass . ' ' . $this->classPrefix . 'quiz-item' . $classes . '" data-question="' . $data['question'] . '" data-answer="' . $data['answer'] . '">'; 357b185056SJames Collins $renderer->doc .= '<div class="' . $this->elemClass . ' ' . $this->classPrefix . 'quiz-question">' . $data['question'] . '</div>'; 367b185056SJames Collins if($data['text'] != '') $renderer->doc .= '<p>' . $data['text'] . '</p>'; 377b185056SJames Collins $renderer->doc .= '<div class="' . $this->elemClass . ' ' . $this->classPrefix . 'quiz-options">'; 387b185056SJames Collins 397b185056SJames Collins switch(strtolower($data['type'])) { 407b185056SJames Collins case 'choice': 417b185056SJames Collins $name = rand(10000, 99999); 427b185056SJames Collins 437b185056SJames Collins $options = explode('|', $data['options']); 447b185056SJames Collins foreach($options as $option) { 457b185056SJames Collins $renderer->doc .= '<div class="' . $this->elemClass . ' ' . $this->classPrefix . 'quiz-option"><label><input type="radio" name="' . $name . '" value="' . $option . '" />' . $option . '</label></div>'; 467b185056SJames Collins } 477b185056SJames Collins break; 487b185056SJames Collins } 497b185056SJames Collins 507b185056SJames Collins $renderer->doc .= '</div>'; 517b185056SJames Collins $renderer->doc .= '</div>'; 527b185056SJames Collins } 537b185056SJames Collins} 547b185056SJames Collins?> 55