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