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