1*14a1f0a4SSzymon Olewniczak<?php 2*14a1f0a4SSzymon Olewniczak 3*14a1f0a4SSzymon Olewniczakuse \dokuwiki\plugin\bez; 4*14a1f0a4SSzymon Olewniczak 5*14a1f0a4SSzymon Olewniczakclass action_plugin_bez_base extends DokuWiki_Action_Plugin { 6*14a1f0a4SSzymon Olewniczak 7*14a1f0a4SSzymon Olewniczak /** @var bez\mdl\Model */ 8*14a1f0a4SSzymon Olewniczak protected $model; 9*14a1f0a4SSzymon Olewniczak 10*14a1f0a4SSzymon Olewniczak /** @var bez\meta\Tpl */ 11*14a1f0a4SSzymon Olewniczak protected $tpl; 12*14a1f0a4SSzymon Olewniczak 13*14a1f0a4SSzymon Olewniczak 14*14a1f0a4SSzymon Olewniczak public function getPluginName() { 15*14a1f0a4SSzymon Olewniczak return 'bez'; 16*14a1f0a4SSzymon Olewniczak } 17*14a1f0a4SSzymon Olewniczak 18*14a1f0a4SSzymon Olewniczak public function register(Doku_Event_Handler $controller) { 19*14a1f0a4SSzymon Olewniczak } 20*14a1f0a4SSzymon Olewniczak 21*14a1f0a4SSzymon Olewniczak public function getGlobalConf($key='') { 22*14a1f0a4SSzymon Olewniczak global $conf; 23*14a1f0a4SSzymon Olewniczak if ($key == '') { 24*14a1f0a4SSzymon Olewniczak return $conf; 25*14a1f0a4SSzymon Olewniczak } 26*14a1f0a4SSzymon Olewniczak return $conf[$key]; 27*14a1f0a4SSzymon Olewniczak } 28*14a1f0a4SSzymon Olewniczak 29*14a1f0a4SSzymon Olewniczak public function get_model() { 30*14a1f0a4SSzymon Olewniczak return $this->model; 31*14a1f0a4SSzymon Olewniczak } 32*14a1f0a4SSzymon Olewniczak 33*14a1f0a4SSzymon Olewniczak public function get_client() { 34*14a1f0a4SSzymon Olewniczak global $INFO; 35*14a1f0a4SSzymon Olewniczak return $INFO['client']; 36*14a1f0a4SSzymon Olewniczak } 37*14a1f0a4SSzymon Olewniczak 38*14a1f0a4SSzymon Olewniczak public function get_tpl() { 39*14a1f0a4SSzymon Olewniczak return $this->tpl; 40*14a1f0a4SSzymon Olewniczak } 41*14a1f0a4SSzymon Olewniczak 42*14a1f0a4SSzymon Olewniczak public function get_level() { 43*14a1f0a4SSzymon Olewniczak return $this->model->get_level(); 44*14a1f0a4SSzymon Olewniczak } 45*14a1f0a4SSzymon Olewniczak 46*14a1f0a4SSzymon Olewniczak public function bez_tpl_include($tpl_file='', $return=false) { 47*14a1f0a4SSzymon Olewniczak $file = DOKU_PLUGIN . "bez/tpl/$tpl_file.php"; 48*14a1f0a4SSzymon Olewniczak if (!file_exists($file)) { 49*14a1f0a4SSzymon Olewniczak throw new Exception("$file doesn't exist"); 50*14a1f0a4SSzymon Olewniczak } 51*14a1f0a4SSzymon Olewniczak 52*14a1f0a4SSzymon Olewniczak $tpl = $this->tpl; 53*14a1f0a4SSzymon Olewniczak if ($return) ob_start(); 54*14a1f0a4SSzymon Olewniczak include $file; 55*14a1f0a4SSzymon Olewniczak if ($return) return ob_get_clean(); 56*14a1f0a4SSzymon Olewniczak 57*14a1f0a4SSzymon Olewniczak } 58*14a1f0a4SSzymon Olewniczak 59*14a1f0a4SSzymon Olewniczak public function createObjects() { 60*14a1f0a4SSzymon Olewniczak global $auth; 61*14a1f0a4SSzymon Olewniczak global $INFO; 62*14a1f0a4SSzymon Olewniczak 63*14a1f0a4SSzymon Olewniczak $this->model = new bez\mdl\Model($auth, $INFO['client'], $this); 64*14a1f0a4SSzymon Olewniczak $this->tpl = new bez\meta\Tpl($this); 65*14a1f0a4SSzymon Olewniczak } 66*14a1f0a4SSzymon Olewniczak 67*14a1f0a4SSzymon Olewniczak public function id() { 68*14a1f0a4SSzymon Olewniczak $args = func_get_args(); 69*14a1f0a4SSzymon Olewniczak 70*14a1f0a4SSzymon Olewniczak if (count($args) === 0) { 71*14a1f0a4SSzymon Olewniczak return $_GET['id']; 72*14a1f0a4SSzymon Olewniczak } 73*14a1f0a4SSzymon Olewniczak 74*14a1f0a4SSzymon Olewniczak $elms = array(); 75*14a1f0a4SSzymon Olewniczak foreach ($args as $arg) { 76*14a1f0a4SSzymon Olewniczak if (is_array($arg)) { 77*14a1f0a4SSzymon Olewniczak foreach ($arg as $k => $v) { 78*14a1f0a4SSzymon Olewniczak $elms[] = $k; 79*14a1f0a4SSzymon Olewniczak $elms[] = $v; 80*14a1f0a4SSzymon Olewniczak } 81*14a1f0a4SSzymon Olewniczak } else { 82*14a1f0a4SSzymon Olewniczak $elms[] = $arg; 83*14a1f0a4SSzymon Olewniczak } 84*14a1f0a4SSzymon Olewniczak } 85*14a1f0a4SSzymon Olewniczak array_unshift($elms, 'bez'); 86*14a1f0a4SSzymon Olewniczak 87*14a1f0a4SSzymon Olewniczak 88*14a1f0a4SSzymon Olewniczak if ($this->getGlobalConf('lang') != '') { 89*14a1f0a4SSzymon Olewniczak array_unshift($elms, $this->getGlobalConf('lang')); 90*14a1f0a4SSzymon Olewniczak } 91*14a1f0a4SSzymon Olewniczak 92*14a1f0a4SSzymon Olewniczak return implode(':', $elms); 93*14a1f0a4SSzymon Olewniczak } 94*14a1f0a4SSzymon Olewniczak 95*14a1f0a4SSzymon Olewniczak public function url() { 96*14a1f0a4SSzymon Olewniczak $args = func_get_args(); 97*14a1f0a4SSzymon Olewniczak if (count($args) > 0) { 98*14a1f0a4SSzymon Olewniczak $id = call_user_func_array(array($this, 'id'), $args); 99*14a1f0a4SSzymon Olewniczak return DOKU_URL . 'doku.php?id=' . $id; 100*14a1f0a4SSzymon Olewniczak } else { 101*14a1f0a4SSzymon Olewniczak //https://stackoverflow.com/questions/6768793/get-the-full-url-in-php 102*14a1f0a4SSzymon Olewniczak return (isset($_SERVER['HTTPS']) ? "https" : "http") . "://$_SERVER[HTTP_HOST]$_SERVER[REQUEST_URI]"; 103*14a1f0a4SSzymon Olewniczak } 104*14a1f0a4SSzymon Olewniczak } 105*14a1f0a4SSzymon Olewniczak}