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