xref: /plugin/bez/mdl/Model.php (revision e8827d732aaeeee6f7b703c5654f86ca97056383)
1de02284cSSzymon Olewniczak<?php
2de02284cSSzymon Olewniczak
3de02284cSSzymon Olewniczaknamespace dokuwiki\plugin\bez\mdl;
4de02284cSSzymon Olewniczak
5de02284cSSzymon Olewniczak
6de02284cSSzymon Olewniczakclass Model {
7de02284cSSzymon Olewniczak    /** @var \helper_plugin_sqlite */
8de02284cSSzymon Olewniczak	protected $sqlite;
9de02284cSSzymon Olewniczak
10de02284cSSzymon Olewniczak	/** @var \SQLite3 */
11de02284cSSzymon Olewniczak	protected $db;
12de02284cSSzymon Olewniczak
13de02284cSSzymon Olewniczak	/** @var Acl */
14de02284cSSzymon Olewniczak    protected $acl;
15de02284cSSzymon Olewniczak
16de02284cSSzymon Olewniczak    protected $dw_auth, $user_nick, $action, $conf;
17de02284cSSzymon Olewniczak
18de02284cSSzymon Olewniczak    /** @var ThreadFactory */
19de02284cSSzymon Olewniczak    protected $threadFactory;
20de02284cSSzymon Olewniczak
21de02284cSSzymon Olewniczak    /** @var UserFactory  */
22de02284cSSzymon Olewniczak    protected $userFactory;
23de02284cSSzymon Olewniczak
24de02284cSSzymon Olewniczak    /** @var LabelFactory */
25de02284cSSzymon Olewniczak    protected $labelFactory;
26de02284cSSzymon Olewniczak
278a638198SSzymon Olewniczak    /** @var Thread_commentFactory */
288a638198SSzymon Olewniczak    protected $thread_commentFactory;
298a638198SSzymon Olewniczak
308a638198SSzymon Olewniczak    /** @var TaskFactory */
318a638198SSzymon Olewniczak    protected $taskFactory;
328a638198SSzymon Olewniczak
33*e8827d73SSzymon Olewniczak    /** @var Task_programFactory */
34*e8827d73SSzymon Olewniczak    protected $task_programFactory;
35*e8827d73SSzymon Olewniczak
36*e8827d73SSzymon Olewniczak    /** @var Task_commentFactory */
37*e8827d73SSzymon Olewniczak    protected $task_commentFactory;
38*e8827d73SSzymon Olewniczak
39*e8827d73SSzymon Olewniczak    /** @var Authentication_tokenFactory */
40*e8827d73SSzymon Olewniczak    protected $authentication_tokenFactory;
41*e8827d73SSzymon Olewniczak
42de02284cSSzymon Olewniczak	public function __get($property) {
43*e8827d73SSzymon Olewniczak        $models = array('userFactory', 'threadFactory', 'labelFactory', 'thread_commentFactory', 'taskFactory', 'task_programFactory', 'task_commentFactory', 'authentication_tokenFactory');
44de02284cSSzymon Olewniczak		if (in_array($property, $models) ||
45de02284cSSzymon Olewniczak            in_array($property, array('sqlite', 'db', 'acl', 'dw_auth', 'user_nick', 'action', 'conf'))) {
46de02284cSSzymon Olewniczak			return $this->$property;
47de02284cSSzymon Olewniczak		}
48de02284cSSzymon Olewniczak	}
49de02284cSSzymon Olewniczak
50de02284cSSzymon Olewniczak	public function __construct($dw_auth, $user_nick, $action, $conf) {
51de02284cSSzymon Olewniczak		$this->dw_auth = $dw_auth;
52de02284cSSzymon Olewniczak		$this->user_nick = $user_nick;
53de02284cSSzymon Olewniczak		$this->action = $action;
54de02284cSSzymon Olewniczak        $this->conf = $conf;
55de02284cSSzymon Olewniczak
56*e8827d73SSzymon Olewniczak        $this->db_helper =  plugin_load('helper', 'bez_db');
57de02284cSSzymon Olewniczak
58*e8827d73SSzymon Olewniczak        $this->sqlite = $this->db_helper->getDB();
59de02284cSSzymon Olewniczak        $this->db = $this->sqlite->getAdapter()->getDb();
608a638198SSzymon Olewniczak        $this->db->setAttribute(\PDO::ATTR_ERRMODE, \PDO::ERRMODE_EXCEPTION);
618a638198SSzymon Olewniczak
62de02284cSSzymon Olewniczak        $this->acl = new Acl($this);
63de02284cSSzymon Olewniczak
64de02284cSSzymon Olewniczak        $this->userFactory = new UserFactory($this);
65fe5d6d1eSSzymon Olewniczak
66fe5d6d1eSSzymon Olewniczak        $this->threadFactory = new ThreadFactory($this);
67fe5d6d1eSSzymon Olewniczak
68de02284cSSzymon Olewniczak        $this->labelFactory = new LabelFactory($this);
69de02284cSSzymon Olewniczak
708a638198SSzymon Olewniczak        $this->thread_commentFactory = new Thread_commentFactory($this);
718a638198SSzymon Olewniczak
728a638198SSzymon Olewniczak        $this->taskFactory = new TaskFactory($this);
738a638198SSzymon Olewniczak
74*e8827d73SSzymon Olewniczak        $this->task_programFactory = new Task_programFactory($this);
75de02284cSSzymon Olewniczak
76*e8827d73SSzymon Olewniczak        $this->task_commentFactory = new Task_commentFactory($this);
77*e8827d73SSzymon Olewniczak
78*e8827d73SSzymon Olewniczak        $this->authentication_tokenFactory = new Authentication_tokenFactory($this);
79*e8827d73SSzymon Olewniczak    }
80de02284cSSzymon Olewniczak}
81