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( 35*eb2e6be9SSzymon 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 ); 4114a1f0a4SSzymon Olewniczak /** @var bez\meta\BEZ_DokuWiki_Action_Plugin $action */ 4214a1f0a4SSzymon Olewniczak $bez_action = new action_plugin_bez_base(); 4314a1f0a4SSzymon Olewniczak $bez_action->createObjects(); 4414a1f0a4SSzymon Olewniczak 4514a1f0a4SSzymon 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) { 5114a1f0a4SSzymon Olewniczak $r->doc .= $this->_list($bez_action, $action, $label); 526c94eb49Sghi } 53e8827d73SSzymon Olewniczak $r->doc .= '</ul>'; 54e8827d73SSzymon Olewniczak $r->doc .= '</nav>'; 5527712358Sghi } 56919e4830Sghi 5714a1f0a4SSzymon 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>'; 6914a1f0a4SSzymon 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