1fe5d6d1eSSzymon Olewniczak<?php 2fe5d6d1eSSzymon Olewniczak 3fe5d6d1eSSzymon Olewniczakuse \dokuwiki\plugin\bez; 4fe5d6d1eSSzymon Olewniczak 5fe5d6d1eSSzymon Olewniczakif(!defined('DOKU_INC')) die(); 6fe5d6d1eSSzymon Olewniczak 7fe5d6d1eSSzymon Olewniczak//require_once DOKU_PLUGIN.'bez/mdl/model.php'; 8fe5d6d1eSSzymon Olewniczak// 9fe5d6d1eSSzymon Olewniczak//require_once DOKU_PLUGIN.'bez/interfaces.php'; 10fe5d6d1eSSzymon Olewniczak//require_once DOKU_PLUGIN.'bez/exceptions.php'; 11fe5d6d1eSSzymon Olewniczak// 12fe5d6d1eSSzymon Olewniczak//spl_autoload_register( 13fe5d6d1eSSzymon Olewniczak// function ($class) { 14fe5d6d1eSSzymon Olewniczak// $file = DOKU_PLUGIN.'bez/inc/'.$class.'.class.php'; 15fe5d6d1eSSzymon Olewniczak// if (file_exists($file)) { 16fe5d6d1eSSzymon Olewniczak// require_once $file; 17fe5d6d1eSSzymon Olewniczak// } 18fe5d6d1eSSzymon Olewniczak// } 19fe5d6d1eSSzymon Olewniczak//); 20fe5d6d1eSSzymon Olewniczak 21fe5d6d1eSSzymon Olewniczakfunction bez_tpl_include(bez\meta\Tpl $tpl) { 22fe5d6d1eSSzymon Olewniczak $file = DOKU_PLUGIN."bez/tpl/".str_replace('/', '', $tpl->action()).".php"; 23fe5d6d1eSSzymon Olewniczak if (file_exists($file)) { 24fe5d6d1eSSzymon Olewniczak include $file; 25fe5d6d1eSSzymon Olewniczak } 26fe5d6d1eSSzymon Olewniczak} 27fe5d6d1eSSzymon Olewniczak 28fe5d6d1eSSzymon Olewniczakdefine('BEZ_NOTIFICATIONS_COOKIE_NAME', 'bez_notifications'); 29fe5d6d1eSSzymon Olewniczak 30fe5d6d1eSSzymon Olewniczakclass action_plugin_bez_default extends DokuWiki_Action_Plugin { 31fe5d6d1eSSzymon Olewniczak 32*8a638198SSzymon Olewniczak protected $action = ''; 33*8a638198SSzymon Olewniczak protected $params = array(); 34*8a638198SSzymon Olewniczak protected $lang_code = ''; 35fe5d6d1eSSzymon Olewniczak 36fe5d6d1eSSzymon Olewniczak /** @var bez\mdl\Model */ 37*8a638198SSzymon Olewniczak protected $model; 38fe5d6d1eSSzymon Olewniczak 39fe5d6d1eSSzymon Olewniczak /** @var bez\meta\Tpl */ 40*8a638198SSzymon Olewniczak protected $tpl; 41fe5d6d1eSSzymon Olewniczak 42*8a638198SSzymon Olewniczak protected $notifications = array(); 43fe5d6d1eSSzymon Olewniczak 44*8a638198SSzymon Olewniczak protected $errors = array(); 45fe5d6d1eSSzymon Olewniczak 46fe5d6d1eSSzymon Olewniczak public function get_action() { 47fe5d6d1eSSzymon Olewniczak return $this->action; 48fe5d6d1eSSzymon Olewniczak } 49fe5d6d1eSSzymon Olewniczak 50fe5d6d1eSSzymon Olewniczak public function get_param($id) { 51fe5d6d1eSSzymon Olewniczak return (isset($this->params[$id]) ? $this->params[$id] : ''); 52fe5d6d1eSSzymon Olewniczak } 53fe5d6d1eSSzymon Olewniczak 54fe5d6d1eSSzymon Olewniczak public function id() { 55fe5d6d1eSSzymon Olewniczak $args = func_get_args(); 56fe5d6d1eSSzymon Olewniczak $elms = array(); 57fe5d6d1eSSzymon Olewniczak foreach ($args as $arg) { 58fe5d6d1eSSzymon Olewniczak if (is_array($arg)) { 59fe5d6d1eSSzymon Olewniczak foreach ($arg as $k => $v) { 60fe5d6d1eSSzymon Olewniczak $elms[] = $k; 61fe5d6d1eSSzymon Olewniczak $elms[] = $v; 62fe5d6d1eSSzymon Olewniczak } 63fe5d6d1eSSzymon Olewniczak } else { 64fe5d6d1eSSzymon Olewniczak $elms[] = $arg; 65fe5d6d1eSSzymon Olewniczak } 66fe5d6d1eSSzymon Olewniczak } 67fe5d6d1eSSzymon Olewniczak array_unshift($elms, 'bez'); 68fe5d6d1eSSzymon Olewniczak 69fe5d6d1eSSzymon Olewniczak 70fe5d6d1eSSzymon Olewniczak if ($this->lang_code !== '') { 71fe5d6d1eSSzymon Olewniczak array_unshift($elms, $this->lang_code); 72fe5d6d1eSSzymon Olewniczak } 73fe5d6d1eSSzymon Olewniczak 74fe5d6d1eSSzymon Olewniczak return implode(':', $elms); 75fe5d6d1eSSzymon Olewniczak } 76fe5d6d1eSSzymon Olewniczak 77fe5d6d1eSSzymon Olewniczak public function url() { 78fe5d6d1eSSzymon Olewniczak $args = func_get_args(); 79fe5d6d1eSSzymon Olewniczak if (count($args) > 0) { 80fe5d6d1eSSzymon Olewniczak $id = call_user_func_array(array($this, 'id'), $args); 81fe5d6d1eSSzymon Olewniczak } else { 82fe5d6d1eSSzymon Olewniczak $id = $_GET['id']; 83fe5d6d1eSSzymon Olewniczak } 84fe5d6d1eSSzymon Olewniczak 85fe5d6d1eSSzymon Olewniczak return DOKU_URL . 'doku.php?id=' . $id; 86fe5d6d1eSSzymon Olewniczak } 87fe5d6d1eSSzymon Olewniczak 88fe5d6d1eSSzymon Olewniczak// public function model_factory($name) { 89fe5d6d1eSSzymon Olewniczak// $factory = $name . 'Factory'; 90fe5d6d1eSSzymon Olewniczak// if (!property_exists($this->model, $factory)) { 91fe5d6d1eSSzymon Olewniczak// throw new \Exception('unknown table: '.$name); 92fe5d6d1eSSzymon Olewniczak// } 93fe5d6d1eSSzymon Olewniczak// return $this->model->$factory; 94fe5d6d1eSSzymon Olewniczak// } 95fe5d6d1eSSzymon Olewniczak 96fe5d6d1eSSzymon Olewniczak /** 97fe5d6d1eSSzymon Olewniczak * @return mixed 98fe5d6d1eSSzymon Olewniczak */ 99fe5d6d1eSSzymon Olewniczak public function get_model() { 100fe5d6d1eSSzymon Olewniczak return $this->model; 101fe5d6d1eSSzymon Olewniczak } 102fe5d6d1eSSzymon Olewniczak 103fe5d6d1eSSzymon Olewniczak private function add_notification($value, $header=NULL) { 104fe5d6d1eSSzymon Olewniczak if (isset($_COOKIE[BEZ_NOTIFICATIONS_COOKIE_NAME])) { 105fe5d6d1eSSzymon Olewniczak $notifs = unserialize($_COOKIE[BEZ_NOTIFICATIONS_COOKIE_NAME]); 106fe5d6d1eSSzymon Olewniczak } else { 107fe5d6d1eSSzymon Olewniczak $notifs = array(); 108fe5d6d1eSSzymon Olewniczak } 109fe5d6d1eSSzymon Olewniczak $notifs[] = array('value' => $value, 'header' => $header); 110fe5d6d1eSSzymon Olewniczak setcookie(BEZ_NOTIFICATIONS_COOKIE_NAME, serialize($notifs)); 111fe5d6d1eSSzymon Olewniczak } 112fe5d6d1eSSzymon Olewniczak 113fe5d6d1eSSzymon Olewniczak private function flush_notifications() { 114fe5d6d1eSSzymon Olewniczak if (!isset($_COOKIE[BEZ_NOTIFICATIONS_COOKIE_NAME])) { 115fe5d6d1eSSzymon Olewniczak return array(); 116fe5d6d1eSSzymon Olewniczak } 117fe5d6d1eSSzymon Olewniczak $this->notifications = unserialize($_COOKIE[BEZ_NOTIFICATIONS_COOKIE_NAME]); 118fe5d6d1eSSzymon Olewniczak 119fe5d6d1eSSzymon Olewniczak //remove cookie 120fe5d6d1eSSzymon Olewniczak setcookie(BEZ_NOTIFICATIONS_COOKIE_NAME, serialize(array())); 121fe5d6d1eSSzymon Olewniczak } 122fe5d6d1eSSzymon Olewniczak 123fe5d6d1eSSzymon Olewniczak private function add_error($value, $header=NULL) { 124fe5d6d1eSSzymon Olewniczak $this->errors[] = array('value' => $value, 'header' => $header); 125fe5d6d1eSSzymon Olewniczak } 126fe5d6d1eSSzymon Olewniczak 127fe5d6d1eSSzymon Olewniczak// private function param($id) { 128fe5d6d1eSSzymon Olewniczak// return (isset($this->params[$id]) ? $this->params[$id] : ''); 129fe5d6d1eSSzymon Olewniczak// } 130fe5d6d1eSSzymon Olewniczak 131fe5d6d1eSSzymon Olewniczak /** 132fe5d6d1eSSzymon Olewniczak * Register its handlers with the DokuWiki's event controller 133fe5d6d1eSSzymon Olewniczak */ 134fe5d6d1eSSzymon Olewniczak public function register(Doku_Event_Handler $controller) 135fe5d6d1eSSzymon Olewniczak { 136fe5d6d1eSSzymon Olewniczak $controller->register_hook('DOKUWIKI_STARTED', 'BEFORE', $this, 'setup_enviroment'); 137fe5d6d1eSSzymon Olewniczak $controller->register_hook('ACTION_ACT_PREPROCESS', 'BEFORE', $this, 'action_act_preprocess'); 138fe5d6d1eSSzymon Olewniczak $controller->register_hook('TPL_ACT_RENDER', 'BEFORE', $this, 'tpl_act_render'); 139fe5d6d1eSSzymon Olewniczak $controller->register_hook('TEMPLATE_PAGETOOLS_DISPLAY', 'BEFORE', $this, 'tpl_pagetools_display'); 140fe5d6d1eSSzymon Olewniczak $controller->register_hook('TPL_METAHEADER_OUTPUT', 'BEFORE', $this, 'include_dependencies', array()); 141fe5d6d1eSSzymon Olewniczak $controller->register_hook('AJAX_CALL_UNKNOWN', 'BEFORE', $this,'_ajax_call'); 142fe5d6d1eSSzymon Olewniczak } 143fe5d6d1eSSzymon Olewniczak 144fe5d6d1eSSzymon Olewniczak public function include_dependencies(Doku_Event $event) { 145fe5d6d1eSSzymon Olewniczak // Adding a stylesheet 146fe5d6d1eSSzymon Olewniczak $event->data["link"][] = array ( 147fe5d6d1eSSzymon Olewniczak "type" => "text/css", 148fe5d6d1eSSzymon Olewniczak "rel" => "stylesheet", 149fe5d6d1eSSzymon Olewniczak "href" => DOKU_BASE. 150fe5d6d1eSSzymon Olewniczak "lib/plugins/bez/lib/jquery.timepicker-1.11.9-0/jquery.timepicker.css", 151fe5d6d1eSSzymon Olewniczak ); 152fe5d6d1eSSzymon Olewniczak 153fe5d6d1eSSzymon Olewniczak // Adding a JavaScript File 154fe5d6d1eSSzymon Olewniczak $event->data["script"][] = array ( 155fe5d6d1eSSzymon Olewniczak "type" => "text/javascript", 156fe5d6d1eSSzymon Olewniczak "src" => DOKU_BASE. 157fe5d6d1eSSzymon Olewniczak "lib/plugins/bez/lib/jquery.timepicker-1.11.9-0/jquery.timepicker.min.js", 158fe5d6d1eSSzymon Olewniczak "_data" => "", 159fe5d6d1eSSzymon Olewniczak ); 160fe5d6d1eSSzymon Olewniczak 161fe5d6d1eSSzymon Olewniczak // Adding a JavaScript File 162fe5d6d1eSSzymon Olewniczak $event->data["script"][] = array ( 163fe5d6d1eSSzymon Olewniczak "type" => "text/javascript", 164fe5d6d1eSSzymon Olewniczak "src" => DOKU_BASE. 165fe5d6d1eSSzymon Olewniczak "lib/plugins/bez/lib/jquery.datepair/datepair.js", 166fe5d6d1eSSzymon Olewniczak "_data" => "", 167fe5d6d1eSSzymon Olewniczak ); 168fe5d6d1eSSzymon Olewniczak 169fe5d6d1eSSzymon Olewniczak // Adding a JavaScript File 170fe5d6d1eSSzymon Olewniczak $event->data["script"][] = array ( 171fe5d6d1eSSzymon Olewniczak "type" => "text/javascript", 172fe5d6d1eSSzymon Olewniczak "src" => DOKU_BASE. 173fe5d6d1eSSzymon Olewniczak "lib/plugins/bez/lib/jquery.datepair/jquery.datepair.js", 174fe5d6d1eSSzymon Olewniczak "_data" => "", 175fe5d6d1eSSzymon Olewniczak ); 176fe5d6d1eSSzymon Olewniczak 177fe5d6d1eSSzymon Olewniczak $event->data["link"][] = array ( 178fe5d6d1eSSzymon Olewniczak "type" => "text/css", 179fe5d6d1eSSzymon Olewniczak "rel" => "stylesheet", 180fe5d6d1eSSzymon Olewniczak "href" => DOKU_BASE. 181fe5d6d1eSSzymon Olewniczak "lib/plugins/bez/lib/jquery.form-validator/theme-default.min.css", 182fe5d6d1eSSzymon Olewniczak ); 183fe5d6d1eSSzymon Olewniczak 184fe5d6d1eSSzymon Olewniczak 185fe5d6d1eSSzymon Olewniczak $event->data["script"][] = array ( 186fe5d6d1eSSzymon Olewniczak "type" => "text/javascript", 187fe5d6d1eSSzymon Olewniczak "src" => DOKU_BASE. 188fe5d6d1eSSzymon Olewniczak "lib/plugins/bez/lib/jquery.form-validator/jquery.form-validator.min.js", 189fe5d6d1eSSzymon Olewniczak "_data" => "", 190fe5d6d1eSSzymon Olewniczak ); 191fe5d6d1eSSzymon Olewniczak } 192fe5d6d1eSSzymon Olewniczak 193fe5d6d1eSSzymon Olewniczak public function setup_enviroment(Doku_Event $event, $param) { 194fe5d6d1eSSzymon Olewniczak global $ACT, $auth, $conf, $INFO; 195fe5d6d1eSSzymon Olewniczak 196fe5d6d1eSSzymon Olewniczak if ($ACT !== 'show') { 197fe5d6d1eSSzymon Olewniczak return; 198fe5d6d1eSSzymon Olewniczak } 199fe5d6d1eSSzymon Olewniczak 200fe5d6d1eSSzymon Olewniczak $id = $_GET['id']; 201fe5d6d1eSSzymon Olewniczak $ex = explode(':', $id); 202fe5d6d1eSSzymon Olewniczak 203fe5d6d1eSSzymon Olewniczak //check if we process BEZ 204fe5d6d1eSSzymon Olewniczak if ($ex[0] !== 'bez' && $ex[1] !== 'bez') { 205fe5d6d1eSSzymon Olewniczak return; 206fe5d6d1eSSzymon Olewniczak } 207fe5d6d1eSSzymon Olewniczak 208fe5d6d1eSSzymon Olewniczak 209fe5d6d1eSSzymon Olewniczak $lang_code = ''; 210fe5d6d1eSSzymon Olewniczak if ($ex[1] === 'bez') { 211fe5d6d1eSSzymon Olewniczak $conf['lang'] = array_shift($ex); 212fe5d6d1eSSzymon Olewniczak $this->lang_code = $conf['lang']; 213fe5d6d1eSSzymon Olewniczak $this->localised = false; 214fe5d6d1eSSzymon Olewniczak } 215fe5d6d1eSSzymon Olewniczak //throw out "bez" 216fe5d6d1eSSzymon Olewniczak array_shift($ex); 217fe5d6d1eSSzymon Olewniczak 218fe5d6d1eSSzymon Olewniczak $this->action = array_shift($ex); 219fe5d6d1eSSzymon Olewniczak 220fe5d6d1eSSzymon Olewniczak if (count($ex) % 2 !== 0) { 221fe5d6d1eSSzymon Olewniczak throw new Exception('invalid params'); 222fe5d6d1eSSzymon Olewniczak } 223fe5d6d1eSSzymon Olewniczak 224fe5d6d1eSSzymon Olewniczak for ($i = 0; $i < count($ex); $i += 2) { 225fe5d6d1eSSzymon Olewniczak $this->params[$ex[$i]] = $ex[$i+1]; 226fe5d6d1eSSzymon Olewniczak } 227fe5d6d1eSSzymon Olewniczak 228fe5d6d1eSSzymon Olewniczak $this->setupLocale(); 229fe5d6d1eSSzymon Olewniczak 230fe5d6d1eSSzymon Olewniczak $this->model = new bez\mdl\Model($auth, $INFO['client'], $this, $conf); 231fe5d6d1eSSzymon Olewniczak $this->tpl = new bez\meta\Tpl($this, $conf); 232fe5d6d1eSSzymon Olewniczak 233fe5d6d1eSSzymon Olewniczak } 234fe5d6d1eSSzymon Olewniczak 235fe5d6d1eSSzymon Olewniczak /** 236fe5d6d1eSSzymon Olewniczak * handle ajax requests 237fe5d6d1eSSzymon Olewniczak */ 238fe5d6d1eSSzymon Olewniczak public function _ajax_call(Doku_Event $event, $param) { 239fe5d6d1eSSzymon Olewniczak global $auth; 240fe5d6d1eSSzymon Olewniczak if ($event->data !== 'plugin_bez') { 241fe5d6d1eSSzymon Olewniczak return; 242fe5d6d1eSSzymon Olewniczak } 243fe5d6d1eSSzymon Olewniczak //no other ajax call handlers needed 244fe5d6d1eSSzymon Olewniczak $event->stopPropagation(); 245fe5d6d1eSSzymon Olewniczak $event->preventDefault(); 246fe5d6d1eSSzymon Olewniczak 247fe5d6d1eSSzymon Olewniczak } 248fe5d6d1eSSzymon Olewniczak 249fe5d6d1eSSzymon Olewniczak 250fe5d6d1eSSzymon Olewniczak 251fe5d6d1eSSzymon Olewniczak public function tpl_pagetools_display(Doku_Event $event, $param) { 252fe5d6d1eSSzymon Olewniczak if ($this->action !== '') { 253fe5d6d1eSSzymon Olewniczak $event->preventDefault(); 254fe5d6d1eSSzymon Olewniczak } 255fe5d6d1eSSzymon Olewniczak } 256fe5d6d1eSSzymon Olewniczak 257fe5d6d1eSSzymon Olewniczak public function action_act_preprocess(Doku_Event $event, $param) 258fe5d6d1eSSzymon Olewniczak { 259fe5d6d1eSSzymon Olewniczak global $conf; 260fe5d6d1eSSzymon Olewniczak 261fe5d6d1eSSzymon Olewniczak if ($this->action === '') { 262fe5d6d1eSSzymon Olewniczak return; 263fe5d6d1eSSzymon Olewniczak } 264fe5d6d1eSSzymon Olewniczak 265fe5d6d1eSSzymon Olewniczak $event->preventDefault(); 266fe5d6d1eSSzymon Olewniczak try { 267fe5d6d1eSSzymon Olewniczak $this->flush_notifications(); 268fe5d6d1eSSzymon Olewniczak 269fe5d6d1eSSzymon Olewniczak $ctl = DOKU_PLUGIN."bez/ctl/".str_replace('/', '', $this->action).".php"; 270fe5d6d1eSSzymon Olewniczak 271fe5d6d1eSSzymon Olewniczak if (file_exists($ctl)) { 272fe5d6d1eSSzymon Olewniczak include $ctl; 273fe5d6d1eSSzymon Olewniczak } 274fe5d6d1eSSzymon Olewniczak } catch(bez\meta\ValidationException $e) { 275fe5d6d1eSSzymon Olewniczak foreach ($e->get_errors() as $field => $error_code) { 276fe5d6d1eSSzymon Olewniczak $lang = $this->getLang($field); 277fe5d6d1eSSzymon Olewniczak if ($lang != '') { 278fe5d6d1eSSzymon Olewniczak $field = $lang; 279fe5d6d1eSSzymon Olewniczak } 280fe5d6d1eSSzymon Olewniczak $this->add_error( 281fe5d6d1eSSzymon Olewniczak $this->getLang('validate_' . $error_code), 282fe5d6d1eSSzymon Olewniczak $field); 283fe5d6d1eSSzymon Olewniczak } 284fe5d6d1eSSzymon Olewniczak 285fe5d6d1eSSzymon Olewniczak $this->tpl->set_values($_POST); 286fe5d6d1eSSzymon Olewniczak 287fe5d6d1eSSzymon Olewniczak } catch(bez\meta\PermissionDeniedException $e) { 288fe5d6d1eSSzymon Olewniczak dbglog('plugin_bez', $e); 289fe5d6d1eSSzymon Olewniczak header('Location: ' . DOKU_URL . 'doku.php?id=' . $_GET['id'] . '&do=login'); 290fe5d6d1eSSzymon Olewniczak 291fe5d6d1eSSzymon Olewniczak } catch(Exception $e) { 292fe5d6d1eSSzymon Olewniczak dbglog('plugin_bez', $e); 293fe5d6d1eSSzymon Olewniczak if ($conf['allowdebug']) { 294fe5d6d1eSSzymon Olewniczak dbg($e); 295fe5d6d1eSSzymon Olewniczak } 296fe5d6d1eSSzymon Olewniczak $this->tpl->prevent_rendering(); 297fe5d6d1eSSzymon Olewniczak } 298fe5d6d1eSSzymon Olewniczak } 299fe5d6d1eSSzymon Olewniczak 300fe5d6d1eSSzymon Olewniczak public function tpl_act_render($event, $param) 301fe5d6d1eSSzymon Olewniczak { 302fe5d6d1eSSzymon Olewniczak global $conf; 303fe5d6d1eSSzymon Olewniczak 304fe5d6d1eSSzymon Olewniczak if ($this->action === '') { 305fe5d6d1eSSzymon Olewniczak return false; 306fe5d6d1eSSzymon Olewniczak } 307fe5d6d1eSSzymon Olewniczak $event->preventDefault(); 308fe5d6d1eSSzymon Olewniczak 309fe5d6d1eSSzymon Olewniczak try { 310fe5d6d1eSSzymon Olewniczak 311fe5d6d1eSSzymon Olewniczak foreach ($this->errors as $error) { 312fe5d6d1eSSzymon Olewniczak echo '<div class="error">'; 313fe5d6d1eSSzymon Olewniczak if ($error['header'] === NULL) { 314fe5d6d1eSSzymon Olewniczak echo $error['value']; 315fe5d6d1eSSzymon Olewniczak } else { 316fe5d6d1eSSzymon Olewniczak echo '<strong>'.$error['header'].'</strong>: '.$error['value']; 317fe5d6d1eSSzymon Olewniczak } 318fe5d6d1eSSzymon Olewniczak echo '</div>'; 319fe5d6d1eSSzymon Olewniczak } 320fe5d6d1eSSzymon Olewniczak 321fe5d6d1eSSzymon Olewniczak foreach ($this->notifications as $note) { 322fe5d6d1eSSzymon Olewniczak echo '<div class="info">'; 323fe5d6d1eSSzymon Olewniczak if ($note['header'] === NULL) { 324fe5d6d1eSSzymon Olewniczak echo $note['value']; 325fe5d6d1eSSzymon Olewniczak } else { 326fe5d6d1eSSzymon Olewniczak echo $note['header'].': <strong>'.$note['value'].'</strong>'; 327fe5d6d1eSSzymon Olewniczak } 328fe5d6d1eSSzymon Olewniczak echo '</div>'; 329fe5d6d1eSSzymon Olewniczak } 330fe5d6d1eSSzymon Olewniczak 331fe5d6d1eSSzymon Olewniczak bez_tpl_include($this->tpl); 332fe5d6d1eSSzymon Olewniczak 333fe5d6d1eSSzymon Olewniczak } catch(bez\meta\PermissionDeniedException $e) { 334fe5d6d1eSSzymon Olewniczak dbglog('plugin_bez', $e); 335fe5d6d1eSSzymon Olewniczak header('Location: ' . DOKU_URL . 'doku.php?id=' . $_GET['id'] . '&do=login'); 336fe5d6d1eSSzymon Olewniczak } catch(Exception $e) { 337fe5d6d1eSSzymon Olewniczak /*exception*/ 338fe5d6d1eSSzymon Olewniczak dbglog('plugin_bez', $e); 339fe5d6d1eSSzymon Olewniczak if ($conf['allowdebug']) { 340fe5d6d1eSSzymon Olewniczak dbg($e); 341fe5d6d1eSSzymon Olewniczak } 342fe5d6d1eSSzymon Olewniczak } 343fe5d6d1eSSzymon Olewniczak } 344fe5d6d1eSSzymon Olewniczak} 345