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( 35eb2e6be9SSzymon 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'), 39*bc2653b0SSzymon Olewniczak 'report' => $this->getLang('report'), 40ff14b107SSzymon Olewniczak 'activity_report' => $this->getLang('activity_report') 4108e8ea12Sghi ); 4214a1f0a4SSzymon Olewniczak /** @var bez\meta\BEZ_DokuWiki_Action_Plugin $action */ 4314a1f0a4SSzymon Olewniczak $bez_action = new action_plugin_bez_base(); 4414a1f0a4SSzymon Olewniczak $bez_action->createObjects(); 4514a1f0a4SSzymon Olewniczak 4614a1f0a4SSzymon Olewniczak if ($bez_action->get_level() >= BEZ_AUTH_ADMIN) { 47e8827d73SSzymon Olewniczak $actions['types'] = $this->getLang('types_manage'); 48e8827d73SSzymon Olewniczak $actions['task_programs'] = $this->getLang('task_types'); 496c94eb49Sghi } 5060c2063dSSzymon Olewniczak 51e8827d73SSzymon Olewniczak foreach ($actions as $action => $label) { 5214a1f0a4SSzymon Olewniczak $r->doc .= $this->_list($bez_action, $action, $label); 536c94eb49Sghi } 54e8827d73SSzymon Olewniczak $r->doc .= '</ul>'; 55e8827d73SSzymon Olewniczak $r->doc .= '</nav>'; 5627712358Sghi } 57919e4830Sghi 5814a1f0a4SSzymon Olewniczak protected function _list(action_plugin_bez_base $bez_action, $action, $label) { 59e8827d73SSzymon Olewniczak global $INFO; 60919e4830Sghi 61e8827d73SSzymon Olewniczak $matches = array(); 62e8827d73SSzymon Olewniczak preg_match('/bez:([a-z_]*)/i', $INFO['id'], $matches); 63e8827d73SSzymon Olewniczak $cur_action = ''; 64e8827d73SSzymon Olewniczak if (isset($matches[1])) { 65e8827d73SSzymon Olewniczak $cur_action = $matches[1]; 66168ecf58Sghi } 67168ecf58Sghi 68e8827d73SSzymon Olewniczak $ret = '<li>'; 69e8827d73SSzymon Olewniczak if ($cur_action == $action) $ret .= '<strong>'; 7014a1f0a4SSzymon Olewniczak $ret .= '<a href="' . $bez_action->url($action) . '">' . $label . '</a>'; 71e8827d73SSzymon Olewniczak if ($cur_action == $action) $ret .= '</strong>'; 72e8827d73SSzymon Olewniczak $ret .= '</li>'; 73168ecf58Sghi 74e8827d73SSzymon Olewniczak return $ret; 7565cfcae3Sghi } 7665cfcae3Sghi} 77