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