1*8a638198SSzymon Olewniczak<?php 2*8a638198SSzymon Olewniczak 3*8a638198SSzymon Olewniczaknamespace dokuwiki\plugin\bez\mdl; 4*8a638198SSzymon Olewniczak 5*8a638198SSzymon Olewniczakclass Thread_commentFactory extends Factory { 6*8a638198SSzymon Olewniczak 7*8a638198SSzymon Olewniczak protected function select_query() { 8*8a638198SSzymon Olewniczak return "SELECT thread_comment.*, thread.coordinator 9*8a638198SSzymon Olewniczak FROM thread_comment JOIN thread ON thread_comment.thread_id=thread.id"; 10*8a638198SSzymon Olewniczak } 11*8a638198SSzymon Olewniczak 12*8a638198SSzymon Olewniczak public function get_from_thread(Thread $thread) { 13*8a638198SSzymon Olewniczak return $this->get_all(array('thread_id' => $thread->id), $orderby='', $desc=true, array('thread' => $thread)); 14*8a638198SSzymon Olewniczak } 15*8a638198SSzymon Olewniczak 16*8a638198SSzymon Olewniczak /** 17*8a638198SSzymon Olewniczak * @param Thread_comment $thread_comment 18*8a638198SSzymon Olewniczak * @param $data 19*8a638198SSzymon Olewniczak * @throws \Exception 20*8a638198SSzymon Olewniczak */ 21*8a638198SSzymon Olewniczak public function initial_save(Entity $thread_comment, $data) { 22*8a638198SSzymon Olewniczak parent::initial_save($thread_comment, $data); 23*8a638198SSzymon Olewniczak 24*8a638198SSzymon Olewniczak $thread_comment->set_data($data); 25*8a638198SSzymon Olewniczak try { 26*8a638198SSzymon Olewniczak $this->beginTransaction(); 27*8a638198SSzymon Olewniczak $this->save($thread_comment); 28*8a638198SSzymon Olewniczak 29*8a638198SSzymon Olewniczak $thread_comment->thread->set_participant_flags($thread_comment->author, array('subscribent', 'commentator')); 30*8a638198SSzymon Olewniczak $thread_comment->thread->update_last_activity(); 31*8a638198SSzymon Olewniczak 32*8a638198SSzymon Olewniczak $this->commitTransaction(); 33*8a638198SSzymon Olewniczak } catch(Exception $exception) { 34*8a638198SSzymon Olewniczak $this->rollbackTransaction(); 35*8a638198SSzymon Olewniczak } 36*8a638198SSzymon Olewniczak 37*8a638198SSzymon Olewniczak $thread_comment->mail_notify_add(); 38*8a638198SSzymon Olewniczak } 39*8a638198SSzymon Olewniczak 40*8a638198SSzymon Olewniczak public function update_save(Entity $thread_comment, $data) { 41*8a638198SSzymon Olewniczak parent::update_save($thread_comment, $data); 42*8a638198SSzymon Olewniczak 43*8a638198SSzymon Olewniczak $thread_comment->set_data($data); 44*8a638198SSzymon Olewniczak try { 45*8a638198SSzymon Olewniczak $this->beginTransaction(); 46*8a638198SSzymon Olewniczak $this->save($thread_comment); 47*8a638198SSzymon Olewniczak 48*8a638198SSzymon Olewniczak $thread_comment->thread->update_last_activity(); 49*8a638198SSzymon Olewniczak 50*8a638198SSzymon Olewniczak $this->commitTransaction(); 51*8a638198SSzymon Olewniczak } catch(Exception $exception) { 52*8a638198SSzymon Olewniczak $this->rollbackTransaction(); 53*8a638198SSzymon Olewniczak } 54*8a638198SSzymon Olewniczak } 55*8a638198SSzymon Olewniczak 56*8a638198SSzymon Olewniczak public function delete(Entity $obj) { 57*8a638198SSzymon Olewniczak try { 58*8a638198SSzymon Olewniczak $this->beginTransaction(); 59*8a638198SSzymon Olewniczak 60*8a638198SSzymon Olewniczak parent::delete($obj); 61*8a638198SSzymon Olewniczak $obj->thread->update_last_activity(); 62*8a638198SSzymon Olewniczak 63*8a638198SSzymon Olewniczak $this->commitTransaction(); 64*8a638198SSzymon Olewniczak } catch(Exception $exception) { 65*8a638198SSzymon Olewniczak $this->rollbackTransaction(); 66*8a638198SSzymon Olewniczak } 67*8a638198SSzymon Olewniczak } 68*8a638198SSzymon Olewniczak}