1007225e5Sgerardnico<?php 2007225e5Sgerardnico/** 3007225e5Sgerardnico * Action Component 4007225e5Sgerardnico * Add a button in the edit toolbar 5007225e5Sgerardnico * 6007225e5Sgerardnico * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) 7007225e5Sgerardnico * @author Nicolas GERARD 8007225e5Sgerardnico */ 9007225e5Sgerardnico 10007225e5Sgerardnicouse ComboStrap\PluginUtility; 11007225e5Sgerardnico 12007225e5Sgerardnicoif (!defined('DOKU_INC')) die(); 13007225e5Sgerardnicorequire_once(__DIR__ . '/../class/PluginUtility.php'); 14007225e5Sgerardnico 15007225e5Sgerardnico 16007225e5Sgerardnicoclass action_plugin_combo_toolbar extends DokuWiki_Action_Plugin { 17007225e5Sgerardnico 18007225e5Sgerardnico /** 19007225e5Sgerardnico * register the event handlers 20007225e5Sgerardnico * 21007225e5Sgerardnico * @author Nicolas GERARD 22007225e5Sgerardnico */ 23007225e5Sgerardnico function register(Doku_Event_Handler $controller){ 24007225e5Sgerardnico $controller->register_hook('TOOLBAR_DEFINE', 'AFTER', $this, 'handle_toolbar', array ()); 25007225e5Sgerardnico } 26007225e5Sgerardnico 27007225e5Sgerardnico function handle_toolbar(&$event, $param) { 28007225e5Sgerardnico 29*2128d419Sgerardnico 30*2128d419Sgerardnico $unit = array( 31007225e5Sgerardnico 'type' => 'format', 32*2128d419Sgerardnico 'title' => 'Insert an unit test', 33007225e5Sgerardnico 'icon' => '../../plugins/'. PluginUtility::PLUGIN_BASE_NAME .'/images/unit-doc-block.png', 34007225e5Sgerardnico 'open' => '<unit name="default">\n<file lang path>\n</file>\n\t<code lang>', 35007225e5Sgerardnico 'close' => '\n\t</code>\n\tt<console>\n\t</console></unit>\n', 36*2128d419Sgerardnico // 'key' => $unitShortcutKey 37007225e5Sgerardnico ); 38007225e5Sgerardnico 39*2128d419Sgerardnico /** 40*2128d419Sgerardnico * This is called from the js.php with a get HTTP 41*2128d419Sgerardnico * There is no knowledge of which page is modified 42*2128d419Sgerardnico */ 43*2128d419Sgerardnico 44*2128d419Sgerardnico $frontmatter = <<<EOF 45*2128d419Sgerardnico---json 46*2128d419Sgerardnico{ 47*2128d419Sgerardnico "canonical":"unique:name", 48*2128d419Sgerardnico "title":"A title for the search page result engine", 49*2128d419Sgerardnico "description":"A description for the search page result engine" 50*2128d419Sgerardnico} 51*2128d419Sgerardnico--- 52*2128d419SgerardnicoEOF; 53*2128d419Sgerardnico // https://www.dokuwiki.org/devel:event:toolbar_define 54*2128d419Sgerardnico $frontmatter = array( 55*2128d419Sgerardnico 'type' => 'insert', 56*2128d419Sgerardnico 'title' => 'Insert a frontmatter', 57*2128d419Sgerardnico 'icon' => '../../plugins/' . PluginUtility::PLUGIN_BASE_NAME . '/images/table-of-contents.svg', 58*2128d419Sgerardnico 'insert' => $frontmatter, 59*2128d419Sgerardnico 'block' => true 60*2128d419Sgerardnico ); 61*2128d419Sgerardnico 62*2128d419Sgerardnico 63*2128d419Sgerardnico $blockquote = array( 64*2128d419Sgerardnico 'type' => 'format', 65*2128d419Sgerardnico 'title' => 'blockquote', 66*2128d419Sgerardnico 'icon' => '../../plugins/' . PluginUtility::PLUGIN_BASE_NAME . '/images/blockquote-icon.png', 67*2128d419Sgerardnico 'open' => '<blockquote>', 68*2128d419Sgerardnico 'close' => '</blockquote>', 69*2128d419Sgerardnico 70*2128d419Sgerardnico ); 71*2128d419Sgerardnico 72*2128d419Sgerardnico $event->data[] = array( 73*2128d419Sgerardnico 'type' => 'picker', 74*2128d419Sgerardnico 'title' => "Choose comboStrap component", 75*2128d419Sgerardnico 'icon' => '../../plugins/' . PluginUtility::PLUGIN_BASE_NAME . '/images/logo.svg', 76*2128d419Sgerardnico 'list' => array($frontmatter,$blockquote,$unit) 77*2128d419Sgerardnico ); 78*2128d419Sgerardnico 79*2128d419Sgerardnico return true; 80*2128d419Sgerardnico 81007225e5Sgerardnico 82007225e5Sgerardnico } 83007225e5Sgerardnico 84007225e5Sgerardnico} 85007225e5Sgerardnico 86