xref: /plugin/mikioplugin/syntax/quizitem.php (revision 7b1850563f70583c4e771cd8cc21aa2e8047556d) !
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