* @license GPL 2 (http://www.gnu.org/licenses/gpl.html) * @link http://github.com/nomadjimbob/mikioplugin */ if (!defined('DOKU_INC')) { die(); } if (!defined('DOKU_PLUGIN')) { define('DOKU_PLUGIN', DOKU_INC.'lib/plugins/'); } require_once dirname(__FILE__).'/core.php'; class syntax_plugin_mikioplugin_quizitem extends syntax_plugin_mikioplugin_core { public $tag = 'quiz-item'; public $requires_tag = 'quiz'; public $hasEndTag = false; public $options = array( 'type' => array('type' => 'choice', 'data' => array('choice', 'multiple'), 'default' => 'choice'), 'question' => array('type' => 'text', 'default' => ''), 'options' => array('type' => 'text', 'default' => ''), 'answer' => array('type' => 'text', 'default' => ''), 'scores' => array('type' => 'text', 'default' => ''), 'text' => array('type' => 'text', 'default' => ''), ); public function render_lexer_special(Doku_Renderer $renderer, $data) { $classes = $this->buildClass($data); $data['question'] = $this->applyMarkdownEffects($data['question']); $data['text'] = $this->applyMarkdownEffects($data['text']); $renderer->doc .= '
'; $renderer->doc .= '
' . $data['question'] . '
'; if($data['text'] != '') { $renderer->doc .= '

' . $data['text'] . '

'; } $renderer->doc .= '
'; switch(strtolower($data['type'])) { case 'choice': $name = rand(10000, 99999); $options = explode('|', $data['options']); $scores = explode('|', $data['scores']); foreach($options as $key => $option) { $renderer->doc .= '
'; } break; case 'multiple': $name = rand(10000, 99999); $options = explode('|', $data['options']); $scores = explode('|', $data['scores']); $inGroup = false; $groupKey = 0; foreach($options as $key => $option) { $endGroup = false; if($inGroup === false && substr($option, 0, 1) === '[') { $inGroup = true; $option = substr($option, 1); } else if($inGroup === true && substr($option, -1) === ']') { $endGroup = true; $option = substr($option, 0, -1); } if($inGroup === true) { $renderer->doc .= '
'; } else { $renderer->doc .= '
'; } if($endGroup === true) { $inGroup = false; $groupKey++; } } break; } $renderer->doc .= '
'; $renderer->doc .= '
'; } } ?>