xref: /plugin/bpmnio/action/toolbar.php (revision 9ff8d41c7727ff9fa896ee8f49e170f6b8272716)
1c4f02a6eSJaap de Haan<?php
2962d7b81SJaap de Haan
3a494ddccSgithub-actions[bot]use dokuwiki\Extension\ActionPlugin;
4a494ddccSgithub-actions[bot]use dokuwiki\Extension\EventHandler;
5a494ddccSgithub-actions[bot]use dokuwiki\Extension\Event;
6a494ddccSgithub-actions[bot]
7c4f02a6eSJaap de Haan/**
8c4f02a6eSJaap de Haan * @license    See LICENSE file
9c4f02a6eSJaap de Haan */
10c4f02a6eSJaap de Haan// See help: https://www.dokuwiki.org/devel:toolbar
11a494ddccSgithub-actions[bot]class action_plugin_bpmnio_toolbar extends ActionPlugin
12c4f02a6eSJaap de Haan{
13*9ff8d41cSJaap de Haan    public function register(EventHandler $controller): void
14c4f02a6eSJaap de Haan    {
15962d7b81SJaap de Haan        $controller->register_hook('TOOLBAR_DEFINE', 'AFTER', $this, 'handleToolbar');
16c4f02a6eSJaap de Haan    }
17c4f02a6eSJaap de Haan
18a494ddccSgithub-actions[bot]    public function handleToolbar(Event $event)
19c4f02a6eSJaap de Haan    {
20c4f02a6eSJaap de Haan        $basedir = DOKU_BASE . 'lib/plugins/bpmnio/images/toolbar/';
21a494ddccSgithub-actions[bot]        $event->data[] = [
22c4f02a6eSJaap de Haan            'type' => 'picker',
23c4f02a6eSJaap de Haan            'title' => $this->getLang('picker'),
24c4f02a6eSJaap de Haan            'icon' => $basedir . 'picker.png',
25a494ddccSgithub-actions[bot]            'list' => [
26a494ddccSgithub-actions[bot]                [
27c4f02a6eSJaap de Haan                    'type' => 'format',
28c4f02a6eSJaap de Haan                    'class' => 'plugin-bpmnio icon-large',
29c4f02a6eSJaap de Haan                    'title' => $this->getLang('bpmn_add'),
30c4f02a6eSJaap de Haan                    'icon' => $basedir . 'bpmn_add.png',
31962d7b81SJaap de Haan                    'open' => $this->getFileContent('bpmn_open'),
32962d7b81SJaap de Haan                    'close' => $this->getFileContent('bpmn_close')
33a494ddccSgithub-actions[bot]                ],
34a494ddccSgithub-actions[bot]                [
35c4f02a6eSJaap de Haan                    'type' => 'format',
36c4f02a6eSJaap de Haan                    'class' => 'plugin-bpmnio icon-large',
37c4f02a6eSJaap de Haan                    'title' => $this->getLang('dmn_add'),
38c4f02a6eSJaap de Haan                    'icon' => $basedir . 'dmn_add.png',
39962d7b81SJaap de Haan                    'open' => $this->getFileContent('dmn_open'),
40962d7b81SJaap de Haan                    'close' => $this->getFileContent('dmn_close')
41a494ddccSgithub-actions[bot]                ]
42a494ddccSgithub-actions[bot]            ]
43a494ddccSgithub-actions[bot]        ];
44c4f02a6eSJaap de Haan    }
45c4f02a6eSJaap de Haan
46962d7b81SJaap de Haan    private function getFileContent($file)
47c4f02a6eSJaap de Haan    {
48*9ff8d41cSJaap de Haan        $path = __DIR__ . '/../data/' . $file . '.text';
49*9ff8d41cSJaap de Haan        if (!file_exists($path) || !is_readable($path)) {
50*9ff8d41cSJaap de Haan            return '';
51*9ff8d41cSJaap de Haan        }
52*9ff8d41cSJaap de Haan        return trim(file_get_contents($path));
53c4f02a6eSJaap de Haan    }
54c4f02a6eSJaap de Haan}
55