xref: /plugin/combo/action/toolbar.php (revision 2128d41957a347f460d708a4ede62030dec35ebe)
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