1*0d61803aSedwardlab<?php 2*0d61803aSedwardlabif (!defined('DOKU_INC')) die(); 3*0d61803aSedwardlabclass syntax_plugin_bureaucracytoolbar extends DokuWiki_Syntax_Plugin { 4*0d61803aSedwardlab public function getType() { 5*0d61803aSedwardlab return 'substition'; 6*0d61803aSedwardlab } 7*0d61803aSedwardlab public function getPType() { 8*0d61803aSedwardlab return 'block'; 9*0d61803aSedwardlab } 10*0d61803aSedwardlab public function getSort() { 11*0d61803aSedwardlab return 155; 12*0d61803aSedwardlab } 13*0d61803aSedwardlab public function connectTo($mode) { 14*0d61803aSedwardlab $this->Lexer->addSpecialPattern('<bureaucracytoolbar>', $mode, 'plugin_bureaucracytoolbar'); 15*0d61803aSedwardlab } 16*0d61803aSedwardlab public function handle($match, $state, $pos, Doku_Handler $handler) { 17*0d61803aSedwardlab return array(); 18*0d61803aSedwardlab } 19*0d61803aSedwardlab public function render($mode, Doku_Renderer $renderer, $data) { 20*0d61803aSedwardlab if ($mode !== 'xhtml') return false; 21*0d61803aSedwardlab $renderer->doc .= $this->getToolbarHtml(); 22*0d61803aSedwardlab $this->addJavaScript(); 23*0d61803aSedwardlab return true; 24*0d61803aSedwardlab } 25*0d61803aSedwardlab private function getToolbarHtml() { 26*0d61803aSedwardlab $html = '<div class="bureaucracytoolbar">'; 27*0d61803aSedwardlab $html .= '<button type="button" onclick="bureaucracyToolbar.addSyntax(\'bold\')">Bold</button>'; 28*0d61803aSedwardlab $html .= '<button type="button" onclick="bureaucracyToolbar.addSyntax(\'italic\')">Italic</button>'; 29*0d61803aSedwardlab $html .= '<button type="button" onclick="bureaucracyToolbar.addSyntax(\'underscore\')">Underscore</button>'; 30*0d61803aSedwardlab $html .= '<button type="button" onclick="bureaucracyToolbar.addSyntax(\'code\')">Code</button>'; 31*0d61803aSedwardlab $html .= '<button type="button" onclick="bureaucracyToolbar.addSyntax(\'list\')">List Item</button>'; 32*0d61803aSedwardlab $html .= '<button type="button" onclick="bureaucracyToolbar.addSyntax(\'link\')">Link</button>';// New button 33*0d61803aSedwardlab $html .= '</div>'; 34*0d61803aSedwardlab $html .= '<style> 35*0d61803aSedwardlab .bureaucracytoolbar { margin-bottom: 10px; background-color: #f0f0f0; padding: 5px; border-radius: 4px; } 36*0d61803aSedwardlab .bureaucracytoolbar button { margin-right: 5px; padding: 5px 10px; cursor: pointer; } 37*0d61803aSedwardlab </style>'; 38*0d61803aSedwardlab return $html; 39*0d61803aSedwardlab } 40*0d61803aSedwardlab private function addJavaScript() { 41*0d61803aSedwardlab $script = DOKU_BASE . 'lib/plugins/bureaucracytoolbar/script.js'; 42*0d61803aSedwardlab global $INFO; 43*0d61803aSedwardlab if (!isset($INFO['bureaucracytoolbar_js_added'])) { 44*0d61803aSedwardlab $INFO['bureaucracytoolbar_js_added'] = true; 45*0d61803aSedwardlab echo '<script type="text/javascript" src="' . $script . '"></script>'; 46*0d61803aSedwardlab } 47*0d61803aSedwardlab } 48*0d61803aSedwardlab} 49