xref: /plugin/bez/mdl/Task_comment.php (revision ff14b1073c2dab2f863cab3b8baf8b1a01f7993a)
1e8827d73SSzymon Olewniczak<?php
2e8827d73SSzymon Olewniczak
3e8827d73SSzymon Olewniczaknamespace dokuwiki\plugin\bez\mdl;
4e8827d73SSzymon Olewniczak
5e8827d73SSzymon Olewniczakclass Task_comment extends Entity {
6e8827d73SSzymon Olewniczak
7e8827d73SSzymon Olewniczak    //real
8e8827d73SSzymon Olewniczak    protected $id, $task_id, $author, $create_date, $last_modification_date, $content, $content_html;
9e8827d73SSzymon Olewniczak
10e8827d73SSzymon Olewniczak    /** @var Task */
11e8827d73SSzymon Olewniczak    protected  $task;
12e8827d73SSzymon Olewniczak
13e8827d73SSzymon Olewniczak    public static function get_columns() {
14e8827d73SSzymon Olewniczak        return array('id', 'task_id', 'author',
15e8827d73SSzymon Olewniczak                     'create_date', 'last_modification_date', 'content', 'content_html');
16e8827d73SSzymon Olewniczak    }
17e8827d73SSzymon Olewniczak
18e8827d73SSzymon Olewniczak    public function __get($property) {
19e8827d73SSzymon Olewniczak        if ($property == 'task') {
20*ff14b107SSzymon Olewniczak            if ($this->task_id == null) {
21*ff14b107SSzymon Olewniczak                return null;
22*ff14b107SSzymon Olewniczak            }
23*ff14b107SSzymon Olewniczak            if ($this->task == null) {
24*ff14b107SSzymon Olewniczak                $this->task = $this->model->taskFactory->get_one($this->task_id);
25*ff14b107SSzymon Olewniczak            }
26*ff14b107SSzymon Olewniczak            return $this->task;
27e8827d73SSzymon Olewniczak        }
28e8827d73SSzymon Olewniczak        return parent::__get($property);
29e8827d73SSzymon Olewniczak    }
30e8827d73SSzymon Olewniczak
31e8827d73SSzymon Olewniczak    public function __construct($model, $defaults=array()) {
32e8827d73SSzymon Olewniczak        parent::__construct($model, $defaults);
33e8827d73SSzymon Olewniczak
34e8827d73SSzymon Olewniczak        $this->validator->set_rules(array(
35e8827d73SSzymon Olewniczak                                        'content' => array(array('length', 10000), 'NOT NULL')
36e8827d73SSzymon Olewniczak                                    ));
37e8827d73SSzymon Olewniczak
38e8827d73SSzymon Olewniczak        //new object
39e8827d73SSzymon Olewniczak        if ($this->id === NULL) {
40e8827d73SSzymon Olewniczak
41e8827d73SSzymon Olewniczak            $this->author = $this->model->user_nick;
42e8827d73SSzymon Olewniczak            $this->create_date = date('c');
43e8827d73SSzymon Olewniczak            $this->last_modification_date = $this->create_date;
44e8827d73SSzymon Olewniczak
45e8827d73SSzymon Olewniczak
46e8827d73SSzymon Olewniczak            if (!isset($defaults['task'])) {
47e8827d73SSzymon Olewniczak                throw new \Exception('$defaults[task] not set');
48e8827d73SSzymon Olewniczak            }
49e8827d73SSzymon Olewniczak            $this->task = $defaults['task'];
50e8827d73SSzymon Olewniczak            $this->task_id = $this->task->id;
51e8827d73SSzymon Olewniczak        } else {
52e8827d73SSzymon Olewniczak            if (isset($defaults['task']) && $this->task_id == $defaults['task']->id) {
53e8827d73SSzymon Olewniczak                $this->task = $defaults['task'];
54e8827d73SSzymon Olewniczak            }
55e8827d73SSzymon Olewniczak        }
56e8827d73SSzymon Olewniczak
57e8827d73SSzymon Olewniczak    }
58e8827d73SSzymon Olewniczak    public function set_data($post) {
59e8827d73SSzymon Olewniczak        parent::set_data($post);
60e8827d73SSzymon Olewniczak        $this->content_html = p_render('xhtml',p_get_instructions($this->content), $ignore);
61e8827d73SSzymon Olewniczak    }
62e8827d73SSzymon Olewniczak
63e8827d73SSzymon Olewniczak    public function mail_notify_add() {
64e8827d73SSzymon Olewniczak        $rep = array(
65e8827d73SSzymon Olewniczak            'content' => $this->content,
66e8827d73SSzymon Olewniczak            'content_html' => $this->content_html,
67e8827d73SSzymon Olewniczak            'who' => $this->author,
68e8827d73SSzymon Olewniczak            'when' => $this->create_date
69e8827d73SSzymon Olewniczak        );
70e8827d73SSzymon Olewniczak
71e8827d73SSzymon Olewniczak        $rep['action'] = $this->model->action->getLang('mail_comment_added');
72e8827d73SSzymon Olewniczak        $rep['action_color'] = 'transparent';
73e8827d73SSzymon Olewniczak        $rep['action_border_color'] = '#E5E5E5';
74e8827d73SSzymon Olewniczak
75e8827d73SSzymon Olewniczak        //$this->thread->mail_notify($rep);
76e8827d73SSzymon Olewniczak    }
77e8827d73SSzymon Olewniczak}
78