1fe5d6d1eSSzymon Olewniczak<?php 2*53df74e7SSzymon Olewniczak/** @var action_plugin_bez $this */ 3fe5d6d1eSSzymon Olewniczak 4fe5d6d1eSSzymon Olewniczakuse \dokuwiki\plugin\bez; 5fe5d6d1eSSzymon Olewniczak 6*53df74e7SSzymon Olewniczakif ($this->model->acl->get_level() < BEZ_AUTH_USER) { 7*53df74e7SSzymon Olewniczak throw new bez\meta\PermissionDeniedException(); 8*53df74e7SSzymon Olewniczak} 9*53df74e7SSzymon 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')); 16*53df74e7SSzymon Olewniczak 17*53df74e7SSzymon Olewniczakif ($thread->acl_of('id') < BEZ_PERMISSION_VIEW) { 18*53df74e7SSzymon Olewniczak throw new bez\meta\PermissionDeniedException(); 19*53df74e7SSzymon Olewniczak} 20*53df74e7SSzymon 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 268a638198SSzymon Olewniczak 278a638198SSzymon Olewniczakif ($this->get_param('action') == 'commcause_add') { 288a638198SSzymon Olewniczak 298a638198SSzymon Olewniczak /** @var bez\mdl\Thread_comment $thread_comment */ 308a638198SSzymon Olewniczak $thread_comment = $this->model->thread_commentFactory->create_object(array('thread' => $thread)); 318a638198SSzymon Olewniczak $this->model->thread_commentFactory->initial_save($thread_comment, $_POST); 328a638198SSzymon Olewniczak 338a638198SSzymon Olewniczak $anchor = 'k'.$thread_comment->id; 348a638198SSzymon Olewniczak $redirect = true; 358a638198SSzymon Olewniczak 368a638198SSzymon Olewniczak} elseif ($this->get_param('action') == 'subscribe') { 378a638198SSzymon Olewniczak 388a638198SSzymon Olewniczak $thread->set_participant_flags($this->model->user_nick, array('subscribent')); 398a638198SSzymon Olewniczak $redirect = true; 408a638198SSzymon Olewniczak 418a638198SSzymon Olewniczak} elseif ($this->get_param('action') == 'unsubscribe') { 428a638198SSzymon Olewniczak 438a638198SSzymon Olewniczak $thread->remove_participant_flags($this->model->user_nick, array('subscribent')); 448a638198SSzymon Olewniczak $this->add_notification($this->getLang('unsubscribed_com')); 458a638198SSzymon Olewniczak $redirect = true; 468a638198SSzymon Olewniczak 478a638198SSzymon Olewniczak} elseif ($this->get_param('action') == 'invite') { 488a638198SSzymon Olewniczak $client = $_POST['client']; 498a638198SSzymon Olewniczak 50e8827d73SSzymon Olewniczak $thread->invite($client); 51e8827d73SSzymon Olewniczak 528a638198SSzymon Olewniczak $this->add_notification($this->model->userFactory->get_user_email($client), $this->getLang('invitation_has_been_send')); 538a638198SSzymon Olewniczak 548a638198SSzymon Olewniczak $redirect = true; 558a638198SSzymon Olewniczak} elseif ($this->get_param('action') == 'commcause_delete') { 568a638198SSzymon Olewniczak /** @var bez\mdl\Thread_comment $thread_comment */ 578a638198SSzymon Olewniczak $thread_comment = $this->model->thread_commentFactory->get_one($this->get_param('kid'), array('thread' => $thread)); 588a638198SSzymon Olewniczak $this->model->thread_commentFactory->delete($thread_comment); 598a638198SSzymon Olewniczak 608a638198SSzymon Olewniczak $redirect = true; 618a638198SSzymon Olewniczak} elseif ($this->get_param('action') == 'commcause_edit') { 628a638198SSzymon Olewniczak /** @var bez\mdl\Thread_comment $thread_comment */ 638a638198SSzymon Olewniczak $thread_comment = $this->model->thread_commentFactory->get_one($this->get_param('kid'), array('thread' => $thread)); 648a638198SSzymon Olewniczak 658a638198SSzymon Olewniczak if(count($_POST) === 0) { 668a638198SSzymon Olewniczak $this->tpl->set_values($thread_comment->get_assoc()); 678a638198SSzymon Olewniczak } else { 688a638198SSzymon Olewniczak $this->model->thread_commentFactory->update_save($thread_comment, $_POST); 698a638198SSzymon Olewniczak 708a638198SSzymon Olewniczak $anchor = 'k' . $thread_comment->id; 718a638198SSzymon Olewniczak $redirect = true; 728a638198SSzymon Olewniczak } 73e8827d73SSzymon Olewniczak} elseif ($this->get_param('action') == 'task_add') { 74e8827d73SSzymon Olewniczak 75e8827d73SSzymon Olewniczak $defaults = array('thread' => $thread); 76e8827d73SSzymon Olewniczak 77e8827d73SSzymon Olewniczak if ($this->get_param('kid') != '') { 78e8827d73SSzymon Olewniczak $thread_comment = $this->model->thread_commentFactory->get_one($this->get_param('kid'), array('thread' => $thread)); 79e8827d73SSzymon Olewniczak $defaults['thread_comment'] = $thread_comment; 80e8827d73SSzymon Olewniczak } 818a638198SSzymon Olewniczak /** @var bez\mdl\Task $task */ 82e8827d73SSzymon Olewniczak $task = $this->model->taskFactory->create_object($defaults); 838a638198SSzymon Olewniczak $this->tpl->set('task', $task); 848a638198SSzymon Olewniczak 858a638198SSzymon Olewniczak //save 868a638198SSzymon Olewniczak if (count($_POST) > 0) { 878a638198SSzymon Olewniczak $this->model->taskFactory->initial_save($task, $_POST); 888a638198SSzymon Olewniczak 898a638198SSzymon Olewniczak $anchor = 'z' . $task->id; 908a638198SSzymon Olewniczak $redirect = true; 918a638198SSzymon Olewniczak } 928a638198SSzymon Olewniczak} elseif ($this->get_param('action') == 'task_edit') { 938a638198SSzymon Olewniczak /** @var bez\mdl\Task $task */ 948a638198SSzymon Olewniczak $task = $this->model->taskFactory->get_one($this->get_param('tid'), array('thread' => $thread)); 958a638198SSzymon Olewniczak $this->tpl->set('task', $task); 968a638198SSzymon Olewniczak 978a638198SSzymon Olewniczak //save 988a638198SSzymon Olewniczak if (count($_POST) === 0) { 998a638198SSzymon Olewniczak $this->tpl->set_values($task->get_assoc()); 1008a638198SSzymon Olewniczak } else { 1018a638198SSzymon Olewniczak $this->model->taskFactory->update_save($task, $_POST); 1028a638198SSzymon Olewniczak 1038a638198SSzymon Olewniczak $anchor = 'z' . $task->id; 1048a638198SSzymon Olewniczak $redirect = true; 1058a638198SSzymon Olewniczak } 1068a638198SSzymon Olewniczak} 1078a638198SSzymon Olewniczak 1088a638198SSzymon Olewniczakif (isset($redirect) && $redirect == true) { 1098a638198SSzymon Olewniczak if (isset($anchor)) { 1108a638198SSzymon Olewniczak $anchor = '#'.$anchor; 1118a638198SSzymon Olewniczak } else { 1128a638198SSzymon Olewniczak $anchor = ''; 1138a638198SSzymon Olewniczak } 1148a638198SSzymon Olewniczak header('Location: ' . $this->url('thread', 'id', $thread->id) . $anchor); 1158a638198SSzymon Olewniczak} 116