xref: /plugin/bez/action/base.php (revision 522c019c0bd8bcd6e522fddaa2cf94cce8e0780d)
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}