1fe5d6d1eSSzymon Olewniczak<?php 253df74e7SSzymon Olewniczak/** @var action_plugin_bez $this */ 3fe5d6d1eSSzymon Olewniczak 4fe5d6d1eSSzymon Olewniczakuse \dokuwiki\plugin\bez; 5fe5d6d1eSSzymon Olewniczak 6*a0cd8c78SSzymon Olewniczakif ($this->model->get_level() < BEZ_AUTH_USER) { 753df74e7SSzymon Olewniczak throw new bez\meta\PermissionDeniedException(); 853df74e7SSzymon Olewniczak} 953df74e7SSzymon Olewniczak 10fe5d6d1eSSzymon Olewniczakif ($this->get_param('id') == '') { 118a638198SSzymon Olewniczak header('Location: ' . $this->url('threads')); 12fe5d6d1eSSzymon Olewniczak} 13fe5d6d1eSSzymon Olewniczak 148a638198SSzymon Olewniczak/** @var bez\mdl\Thread $thread */ 15fe5d6d1eSSzymon Olewniczak$thread = $this->model->threadFactory->get_one($this->get_param('id')); 1653df74e7SSzymon Olewniczak 1753df74e7SSzymon Olewniczakif ($thread->acl_of('id') < BEZ_PERMISSION_VIEW) { 1853df74e7SSzymon Olewniczak throw new bez\meta\PermissionDeniedException(); 1953df74e7SSzymon Olewniczak} 2053df74e7SSzymon Olewniczak 217fbf4c39SSzymon Olewniczak$this->tpl->set('thread', $thread); 228a638198SSzymon Olewniczak$this->tpl->set('thread_comments', $this->model->thread_commentFactory->get_from_thread($thread)); 23e8827d73SSzymon Olewniczak$this->tpl->set('tasks', $this->model->taskFactory->get_from_thread($thread)); 24e8827d73SSzymon Olewniczak$this->tpl->set('task_programs', $this->model->task_programFactory->get_all()); 258a638198SSzymon Olewniczak 26*a0cd8c78SSzymon Olewniczak/** @var bez\mdl\Thread_comment $thread_comment */ 27*a0cd8c78SSzymon Olewniczak$thread_comment = $this->model->thread_commentFactory->create_object(array('thread' => $thread)); 28*a0cd8c78SSzymon Olewniczak$this->tpl->set('thread_comment', $thread_comment); 298a638198SSzymon Olewniczak 308a638198SSzymon Olewniczakif ($this->get_param('action') == 'commcause_add') { 318a638198SSzymon Olewniczak 328a638198SSzymon Olewniczak $this->model->thread_commentFactory->initial_save($thread_comment, $_POST); 338a638198SSzymon Olewniczak 348a638198SSzymon Olewniczak $anchor = 'k'.$thread_comment->id; 358a638198SSzymon Olewniczak $redirect = true; 368a638198SSzymon Olewniczak 378a638198SSzymon Olewniczak} elseif ($this->get_param('action') == 'subscribe') { 388a638198SSzymon Olewniczak 398a638198SSzymon Olewniczak $thread->set_participant_flags($this->model->user_nick, array('subscribent')); 408a638198SSzymon Olewniczak $redirect = true; 418a638198SSzymon Olewniczak 428a638198SSzymon Olewniczak} elseif ($this->get_param('action') == 'unsubscribe') { 438a638198SSzymon Olewniczak 448a638198SSzymon Olewniczak $thread->remove_participant_flags($this->model->user_nick, array('subscribent')); 458a638198SSzymon Olewniczak $this->add_notification($this->getLang('unsubscribed_com')); 468a638198SSzymon Olewniczak $redirect = true; 478a638198SSzymon Olewniczak 488a638198SSzymon Olewniczak} elseif ($this->get_param('action') == 'invite') { 498a638198SSzymon Olewniczak $client = $_POST['client']; 508a638198SSzymon Olewniczak 51e8827d73SSzymon Olewniczak $thread->invite($client); 52e8827d73SSzymon Olewniczak 538a638198SSzymon Olewniczak $this->add_notification($this->model->userFactory->get_user_email($client), $this->getLang('invitation_has_been_send')); 548a638198SSzymon Olewniczak 558a638198SSzymon Olewniczak $redirect = true; 568a638198SSzymon Olewniczak} elseif ($this->get_param('action') == 'commcause_delete') { 578a638198SSzymon Olewniczak /** @var bez\mdl\Thread_comment $thread_comment */ 588a638198SSzymon Olewniczak $thread_comment = $this->model->thread_commentFactory->get_one($this->get_param('kid'), array('thread' => $thread)); 598a638198SSzymon Olewniczak $this->model->thread_commentFactory->delete($thread_comment); 608a638198SSzymon Olewniczak 618a638198SSzymon Olewniczak $redirect = true; 628a638198SSzymon Olewniczak} elseif ($this->get_param('action') == 'commcause_edit') { 638a638198SSzymon Olewniczak /** @var bez\mdl\Thread_comment $thread_comment */ 648a638198SSzymon Olewniczak $thread_comment = $this->model->thread_commentFactory->get_one($this->get_param('kid'), array('thread' => $thread)); 658a638198SSzymon Olewniczak 668a638198SSzymon Olewniczak if(count($_POST) === 0) { 678a638198SSzymon Olewniczak $this->tpl->set_values($thread_comment->get_assoc()); 688a638198SSzymon Olewniczak } else { 698a638198SSzymon Olewniczak $this->model->thread_commentFactory->update_save($thread_comment, $_POST); 708a638198SSzymon Olewniczak 718a638198SSzymon Olewniczak $anchor = 'k' . $thread_comment->id; 728a638198SSzymon Olewniczak $redirect = true; 738a638198SSzymon Olewniczak } 74e8827d73SSzymon Olewniczak} elseif ($this->get_param('action') == 'task_add') { 75e8827d73SSzymon Olewniczak 76e8827d73SSzymon Olewniczak $defaults = array('thread' => $thread); 77e8827d73SSzymon Olewniczak 78e8827d73SSzymon Olewniczak if ($this->get_param('kid') != '') { 79e8827d73SSzymon Olewniczak $thread_comment = $this->model->thread_commentFactory->get_one($this->get_param('kid'), array('thread' => $thread)); 80e8827d73SSzymon Olewniczak $defaults['thread_comment'] = $thread_comment; 81e8827d73SSzymon Olewniczak } 828a638198SSzymon Olewniczak /** @var bez\mdl\Task $task */ 83e8827d73SSzymon Olewniczak $task = $this->model->taskFactory->create_object($defaults); 848a638198SSzymon Olewniczak $this->tpl->set('task', $task); 858a638198SSzymon Olewniczak 868a638198SSzymon Olewniczak //save 878a638198SSzymon Olewniczak if (count($_POST) > 0) { 888a638198SSzymon Olewniczak $this->model->taskFactory->initial_save($task, $_POST); 898a638198SSzymon Olewniczak 908a638198SSzymon Olewniczak $anchor = 'z' . $task->id; 918a638198SSzymon Olewniczak $redirect = true; 928a638198SSzymon Olewniczak } 938a638198SSzymon Olewniczak} elseif ($this->get_param('action') == 'task_edit') { 948a638198SSzymon Olewniczak /** @var bez\mdl\Task $task */ 958a638198SSzymon Olewniczak $task = $this->model->taskFactory->get_one($this->get_param('tid'), array('thread' => $thread)); 968a638198SSzymon Olewniczak $this->tpl->set('task', $task); 978a638198SSzymon Olewniczak 988a638198SSzymon Olewniczak //save 998a638198SSzymon Olewniczak if (count($_POST) === 0) { 1008a638198SSzymon Olewniczak $this->tpl->set_values($task->get_assoc()); 1018a638198SSzymon Olewniczak } else { 1028a638198SSzymon Olewniczak $this->model->taskFactory->update_save($task, $_POST); 1038a638198SSzymon Olewniczak 1048a638198SSzymon Olewniczak $anchor = 'z' . $task->id; 1058a638198SSzymon Olewniczak $redirect = true; 1068a638198SSzymon Olewniczak } 1078a638198SSzymon Olewniczak} 1088a638198SSzymon Olewniczak 1098a638198SSzymon Olewniczakif (isset($redirect) && $redirect == true) { 1108a638198SSzymon Olewniczak if (isset($anchor)) { 1118a638198SSzymon Olewniczak $anchor = '#'.$anchor; 1128a638198SSzymon Olewniczak } else { 1138a638198SSzymon Olewniczak $anchor = ''; 1148a638198SSzymon Olewniczak } 1158a638198SSzymon Olewniczak header('Location: ' . $this->url('thread', 'id', $thread->id) . $anchor); 1168a638198SSzymon Olewniczak} 117