17935713eSJames Collins<?php 27935713eSJames Collins/** 37935713eSJames Collins * Mikio Syntax Plugin: Steps 47935713eSJames Collins * 57935713eSJames Collins * @link http://github.com/nomadjimbob/mikioplugin 67935713eSJames Collins * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) 77935713eSJames Collins * @author James Collins <james.collins@outlook.com.au> 87935713eSJames Collins */ 97935713eSJames Collinsif (!defined('DOKU_INC')) die(); 107935713eSJames Collinsif (!defined('DOKU_PLUGIN')) define('DOKU_PLUGIN',DOKU_INC.'lib/plugins/'); 117935713eSJames Collinsrequire_once(dirname(__FILE__).'/core.php'); 127935713eSJames Collins 137935713eSJames Collinsclass syntax_plugin_mikioplugin_steps extends syntax_plugin_mikioplugin_core { 147935713eSJames Collins public $tag = 'steps'; 15*43f781e0SJames Collins public $requires_tag = 'step'; 167935713eSJames Collins public $hasEndTag = true; 177935713eSJames Collins 187935713eSJames Collins public function __construct() { 197935713eSJames Collins $this->addCommonOptions('shadow'); 207935713eSJames Collins } 217935713eSJames Collins 227935713eSJames Collins // public function getAllowedTypes() { return array(); } 237935713eSJames Collins 247935713eSJames Collins public function render_lexer_enter(Doku_Renderer $renderer, $data) { 257935713eSJames Collins $classes = $this->buildClass($data); 267935713eSJames Collins 277935713eSJames Collins $renderer->doc .= '<ul class="' . $this->elemClass . ' ' . $this->classPrefix . 'steps'. $classes . '">'; 287935713eSJames Collins } 297935713eSJames Collins 307935713eSJames Collins 317935713eSJames Collins public function render_lexer_exit(Doku_Renderer $renderer, $data) { 327935713eSJames Collins $renderer->doc .= '</ul>'; 337935713eSJames Collins } 347935713eSJames Collins 357935713eSJames Collins 367935713eSJames Collins // public function render_lexer_unmatched(Doku_Renderer $renderer, $data) { 377935713eSJames Collins // $items = []; 387935713eSJames Collins // $bar = ''; 397935713eSJames Collins 407935713eSJames Collins // if(preg_match_all('/<(?i:' . $this->tagPrefix . 'step)(.*?)>/s', $data, $match)) { 417935713eSJames Collins // if(count($match) >= 1) { 427935713eSJames Collins // for($i = 0; $i < count($match[1]); $i++) { 437935713eSJames Collins // $title = ''; 447935713eSJames Collins // $text = ''; 457935713eSJames Collins // $complete = false; 467935713eSJames Collins 477935713eSJames Collins // if(preg_match('/title=("\w[\w\s]*(?=")|\w+|"[\w\s]*")/is', $match[1][$i], $titleMatch)) { 487935713eSJames Collins // if(count($titleMatch) >= 1) { 497935713eSJames Collins // $title = str_replace("\"", "", $titleMatch[1]); 507935713eSJames Collins // } 517935713eSJames Collins // } 527935713eSJames Collins 537935713eSJames Collins // if(preg_match('/text=("\w[\w\s]*(?=")|\w+|"[\w\s]*")/is', $match[1][$i], $titleMatch)) { 547935713eSJames Collins // if(count($titleMatch) >= 1) { 557935713eSJames Collins // $text = str_replace("\"", "", $titleMatch[1]); 567935713eSJames Collins // } 577935713eSJames Collins // } 587935713eSJames Collins 597935713eSJames Collins // if(preg_match('/ complete /is', $match[1][$i], $titleMatch)) { 607935713eSJames Collins // if(count($titleMatch) >= 1) { 617935713eSJames Collins // $complete = true; 627935713eSJames Collins // } 637935713eSJames Collins // } 647935713eSJames Collins 657935713eSJames Collins // $items[] = array('title' => $title, 'text' => $text, 'complete' => $complete); 667935713eSJames Collins // } 677935713eSJames Collins // } 687935713eSJames Collins // } 697935713eSJames Collins 707935713eSJames Collins // foreach($items as $item) { 717935713eSJames Collins // $bar .= '<li class="' . $this->elemClass . ' ' . $this->classPrefix . 'step' . ($item['complete'] ? ' ' . $this->classPrefix . 'complete' : '' ) . '"><b>' . $item['title'] .'</b>' . $item['text'] . '</li>'; 727935713eSJames Collins // } 737935713eSJames Collins 747935713eSJames Collins // $renderer->doc .= $bar . '</ul>'; 757935713eSJames Collins // } 767935713eSJames Collins} 777935713eSJames Collins?> 78