xref: /plugin/bez/syntax/nav.php (revision 14a1f0a435358d79e2e5814db93baefc0cfe6877)
165cfcae3Sghi<?php
2de02284cSSzymon Olewniczak
3de02284cSSzymon Olewniczakuse \dokuwiki\plugin\bez;
465cfcae3Sghi
565cfcae3Sghi// must be run within DokuWiki
665cfcae3Sghiif(!defined('DOKU_INC')) die();
765cfcae3Sghi
865cfcae3Sghiclass syntax_plugin_bez_nav extends DokuWiki_Syntax_Plugin {
965cfcae3Sghi
10e8827d73SSzymon Olewniczak    public function getPType() { return 'block'; }
11e8827d73SSzymon Olewniczak    public function getType() { return 'substition'; }
12e8827d73SSzymon Olewniczak    public function getSort() { return 99; }
1365cfcae3Sghi
1465cfcae3Sghi
15e8827d73SSzymon Olewniczak    public function connectTo($mode) {
1665cfcae3Sghi		$this->Lexer->addSpecialPattern('~~BEZNAV~~',$mode,'plugin_bez_nav');
1765cfcae3Sghi    }
1865cfcae3Sghi
19e8827d73SSzymon Olewniczak    public function handle($match, $state, $pos, Doku_Handler $handler) {
2065cfcae3Sghi		return true;
2165cfcae3Sghi    }
2265cfcae3Sghi
23e8827d73SSzymon Olewniczak    public function render($mode, Doku_Renderer $r, $data) {
24e8827d73SSzymon Olewniczak        if ($mode != 'xhtml') return;
2517f97301SSzymon Olewniczak
26e8827d73SSzymon Olewniczak        $r->info['cache'] = false;
2765cfcae3Sghi
28e8827d73SSzymon Olewniczak        $r->doc .= '<nav id="plugin__bez">';
29e8827d73SSzymon Olewniczak        $r->doc .= '<div style="background-color: #eee; color: #333; padding: 0 .3em;">' .
30e8827d73SSzymon Olewniczak            inlineSVG(DOKU_PLUGIN . 'bez/images/logo.svg') .
31e8827d73SSzymon Olewniczak            $this->getLang('bez') .
32e8827d73SSzymon Olewniczak            '</div>';
33e8827d73SSzymon Olewniczak        $r->doc .= '<ul>';
34e8827d73SSzymon Olewniczak        $actions = array(
35ff14b107SSzymon Olewniczak            //'start' => $this->getLang('nav my_activities'),
36e8827d73SSzymon Olewniczak            'threads' => $this->getLang('issues'),
3753df74e7SSzymon Olewniczak            'projects' => $this->getLang('nav projects'),
38e8827d73SSzymon Olewniczak            'tasks' => $this->getLang('tasks'),
39ff14b107SSzymon Olewniczak            'activity_report' => $this->getLang('activity_report')
4008e8ea12Sghi        );
41*14a1f0a4SSzymon Olewniczak        /** @var bez\meta\BEZ_DokuWiki_Action_Plugin $action */
42*14a1f0a4SSzymon Olewniczak        $bez_action = new action_plugin_bez_base();
43*14a1f0a4SSzymon Olewniczak        $bez_action->createObjects();
44*14a1f0a4SSzymon Olewniczak
45*14a1f0a4SSzymon Olewniczak        if ($bez_action->get_level() >= BEZ_AUTH_ADMIN) {
46e8827d73SSzymon Olewniczak            $actions['types'] = $this->getLang('types_manage');
47e8827d73SSzymon Olewniczak            $actions['task_programs'] = $this->getLang('task_types');
486c94eb49Sghi        }
4960c2063dSSzymon Olewniczak
50e8827d73SSzymon Olewniczak        foreach ($actions as $action => $label) {
51*14a1f0a4SSzymon Olewniczak            $r->doc .= $this->_list($bez_action, $action, $label);
526c94eb49Sghi        }
53e8827d73SSzymon Olewniczak        $r->doc .= '</ul>';
54e8827d73SSzymon Olewniczak        $r->doc .= '</nav>';
5527712358Sghi    }
56919e4830Sghi
57*14a1f0a4SSzymon Olewniczak    protected function _list(action_plugin_bez_base $bez_action, $action, $label) {
58e8827d73SSzymon Olewniczak        global $INFO;
59919e4830Sghi
60e8827d73SSzymon Olewniczak        $matches = array();
61e8827d73SSzymon Olewniczak        preg_match('/bez:([a-z_]*)/i', $INFO['id'], $matches);
62e8827d73SSzymon Olewniczak        $cur_action = '';
63e8827d73SSzymon Olewniczak        if (isset($matches[1])) {
64e8827d73SSzymon Olewniczak            $cur_action = $matches[1];
65168ecf58Sghi        }
66168ecf58Sghi
67e8827d73SSzymon Olewniczak        $ret = '<li>';
68e8827d73SSzymon Olewniczak        if ($cur_action == $action) $ret .= '<strong>';
69*14a1f0a4SSzymon Olewniczak        $ret .= '<a href="' . $bez_action->url($action) . '">' . $label . '</a>';
70e8827d73SSzymon Olewniczak        if ($cur_action == $action) $ret .= '</strong>';
71e8827d73SSzymon Olewniczak        $ret .= '</li>';
72168ecf58Sghi
73e8827d73SSzymon Olewniczak        return $ret;
7465cfcae3Sghi    }
7565cfcae3Sghi}
76