114a1f0a4SSzymon Olewniczak<?php 214a1f0a4SSzymon Olewniczak 314a1f0a4SSzymon Olewniczakuse \dokuwiki\plugin\bez; 414a1f0a4SSzymon Olewniczak 514a1f0a4SSzymon Olewniczakclass action_plugin_bez_base extends DokuWiki_Action_Plugin { 614a1f0a4SSzymon Olewniczak 714a1f0a4SSzymon Olewniczak /** @var bez\mdl\Model */ 814a1f0a4SSzymon Olewniczak protected $model; 914a1f0a4SSzymon Olewniczak 1014a1f0a4SSzymon Olewniczak /** @var bez\meta\Tpl */ 1114a1f0a4SSzymon Olewniczak protected $tpl; 1214a1f0a4SSzymon Olewniczak 13*522c019cSSzymon Olewniczak public function loadConfig() { 14*522c019cSSzymon Olewniczak global $conf; 15*522c019cSSzymon Olewniczak 16*522c019cSSzymon Olewniczak if (! isset($conf['plugin']['bez']['url'])) { 17*522c019cSSzymon Olewniczak include DOKU_PLUGIN . 'config/settings/config.class.php'; 18*522c019cSSzymon Olewniczak $datafile = DOKU_PLUGIN . 'config/settings/config.metadata.php'; 19*522c019cSSzymon Olewniczak $configuration = new configuration($datafile); 20*522c019cSSzymon Olewniczak $configuration->setting['plugin____bez____url']->update(DOKU_URL); 21*522c019cSSzymon Olewniczak $configuration->save_settings('config'); 22*522c019cSSzymon Olewniczak $conf['plugin']['bez']['url'] = DOKU_URL; 23*522c019cSSzymon Olewniczak } 24*522c019cSSzymon Olewniczak parent::loadConfig(); 25*522c019cSSzymon Olewniczak } 26*522c019cSSzymon Olewniczak 2714a1f0a4SSzymon Olewniczak 2814a1f0a4SSzymon Olewniczak public function getPluginName() { 2914a1f0a4SSzymon Olewniczak return 'bez'; 3014a1f0a4SSzymon Olewniczak } 3114a1f0a4SSzymon Olewniczak 3214a1f0a4SSzymon Olewniczak public function register(Doku_Event_Handler $controller) { 3314a1f0a4SSzymon Olewniczak } 3414a1f0a4SSzymon Olewniczak 3514a1f0a4SSzymon Olewniczak public function getGlobalConf($key='') { 3614a1f0a4SSzymon Olewniczak global $conf; 3714a1f0a4SSzymon Olewniczak if ($key == '') { 3814a1f0a4SSzymon Olewniczak return $conf; 3914a1f0a4SSzymon Olewniczak } 4014a1f0a4SSzymon Olewniczak return $conf[$key]; 4114a1f0a4SSzymon Olewniczak } 4214a1f0a4SSzymon Olewniczak 4314a1f0a4SSzymon Olewniczak public function get_model() { 4414a1f0a4SSzymon Olewniczak return $this->model; 4514a1f0a4SSzymon Olewniczak } 4614a1f0a4SSzymon Olewniczak 4714a1f0a4SSzymon Olewniczak public function get_client() { 4814a1f0a4SSzymon Olewniczak global $INFO; 4914a1f0a4SSzymon Olewniczak return $INFO['client']; 5014a1f0a4SSzymon Olewniczak } 5114a1f0a4SSzymon Olewniczak 5214a1f0a4SSzymon Olewniczak public function get_tpl() { 5314a1f0a4SSzymon Olewniczak return $this->tpl; 5414a1f0a4SSzymon Olewniczak } 5514a1f0a4SSzymon Olewniczak 5614a1f0a4SSzymon Olewniczak public function get_level() { 5714a1f0a4SSzymon Olewniczak return $this->model->get_level(); 5814a1f0a4SSzymon Olewniczak } 5914a1f0a4SSzymon Olewniczak 6014a1f0a4SSzymon Olewniczak public function bez_tpl_include($tpl_file='', $return=false) { 6114a1f0a4SSzymon Olewniczak $file = DOKU_PLUGIN . "bez/tpl/$tpl_file.php"; 6214a1f0a4SSzymon Olewniczak if (!file_exists($file)) { 6314a1f0a4SSzymon Olewniczak throw new Exception("$file doesn't exist"); 6414a1f0a4SSzymon Olewniczak } 6514a1f0a4SSzymon Olewniczak 6614a1f0a4SSzymon Olewniczak $tpl = $this->tpl; 6714a1f0a4SSzymon Olewniczak if ($return) ob_start(); 6814a1f0a4SSzymon Olewniczak include $file; 6914a1f0a4SSzymon Olewniczak if ($return) return ob_get_clean(); 7014a1f0a4SSzymon Olewniczak 7114a1f0a4SSzymon Olewniczak } 7214a1f0a4SSzymon Olewniczak 73*522c019cSSzymon Olewniczak public function createObjects($skip_acl=false) { 7414a1f0a4SSzymon Olewniczak global $auth; 7514a1f0a4SSzymon Olewniczak global $INFO; 7614a1f0a4SSzymon Olewniczak 77*522c019cSSzymon Olewniczak $this->model = new bez\mdl\Model($auth, $INFO['client'], $this, $skip_acl); 7814a1f0a4SSzymon Olewniczak $this->tpl = new bez\meta\Tpl($this); 7914a1f0a4SSzymon Olewniczak } 8014a1f0a4SSzymon Olewniczak 8114a1f0a4SSzymon Olewniczak public function id() { 8214a1f0a4SSzymon Olewniczak $args = func_get_args(); 8314a1f0a4SSzymon Olewniczak 8414a1f0a4SSzymon Olewniczak if (count($args) === 0) { 8514a1f0a4SSzymon Olewniczak return $_GET['id']; 8614a1f0a4SSzymon Olewniczak } 8714a1f0a4SSzymon Olewniczak 8814a1f0a4SSzymon Olewniczak $elms = array(); 8914a1f0a4SSzymon Olewniczak foreach ($args as $arg) { 9014a1f0a4SSzymon Olewniczak if (is_array($arg)) { 9114a1f0a4SSzymon Olewniczak foreach ($arg as $k => $v) { 9214a1f0a4SSzymon Olewniczak $elms[] = $k; 9314a1f0a4SSzymon Olewniczak $elms[] = $v; 9414a1f0a4SSzymon Olewniczak } 9514a1f0a4SSzymon Olewniczak } else { 9614a1f0a4SSzymon Olewniczak $elms[] = $arg; 9714a1f0a4SSzymon Olewniczak } 9814a1f0a4SSzymon Olewniczak } 9914a1f0a4SSzymon Olewniczak array_unshift($elms, 'bez'); 10014a1f0a4SSzymon Olewniczak 10114a1f0a4SSzymon Olewniczak 10214a1f0a4SSzymon Olewniczak if ($this->getGlobalConf('lang') != '') { 10314a1f0a4SSzymon Olewniczak array_unshift($elms, $this->getGlobalConf('lang')); 10414a1f0a4SSzymon Olewniczak } 10514a1f0a4SSzymon Olewniczak 10614a1f0a4SSzymon Olewniczak return implode(':', $elms); 10714a1f0a4SSzymon Olewniczak } 10814a1f0a4SSzymon Olewniczak 10914a1f0a4SSzymon Olewniczak public function url() { 11014a1f0a4SSzymon Olewniczak $args = func_get_args(); 11114a1f0a4SSzymon Olewniczak if (count($args) > 0) { 11214a1f0a4SSzymon Olewniczak $id = call_user_func_array(array($this, 'id'), $args); 11314a1f0a4SSzymon Olewniczak return DOKU_URL . 'doku.php?id=' . $id; 11414a1f0a4SSzymon Olewniczak } else { 11514a1f0a4SSzymon Olewniczak //https://stackoverflow.com/questions/6768793/get-the-full-url-in-php 11614a1f0a4SSzymon Olewniczak return (isset($_SERVER['HTTPS']) ? "https" : "http") . "://$_SERVER[HTTP_HOST]$_SERVER[REQUEST_URI]"; 11714a1f0a4SSzymon Olewniczak } 11814a1f0a4SSzymon Olewniczak } 11914a1f0a4SSzymon Olewniczak}