Index: branches/5.2.x/units/topics/topics_event_handler.php =================================================================== diff -u -N -r15148 -r15286 --- branches/5.2.x/units/topics/topics_event_handler.php (.../topics_event_handler.php) (revision 15148) +++ branches/5.2.x/units/topics/topics_event_handler.php (.../topics_event_handler.php) (revision 15286) @@ -1,6 +1,6 @@ Name == 'OnToogleCategoryTopicsSubscribe' || $event->Name == 'OnToogleTopicPostsSubscribe' ) { + return $this->Application->LoggedIn(); + } + return parent::CheckPermission($event); } @@ -249,4 +253,51 @@ $this->Application->setUnitOption($event->MasterEvent->Prefix, 'Clones', $clones); } } + + /** + * Subscribes/unsubscribes to new topics in given current category + * + * @param kEvent $event + * @return void + * @access protected + */ + protected function OnToogleCategoryTopicsSubscribe(kEvent $event) + { + $post_helper = $this->Application->recallObject('PostHelper'); + /* @var $post_helper PostHelper */ + + $manager = $post_helper->getSubscriptionManager('CategoryTopics'); + + if ( $manager->subscribed() ) { + $manager->unsubscribe(); + } + else { + $manager->subscribe(); + } + } + + /** + * Subscribes/unsubscribes to new posts in current topic + * + * @param kEvent $event + * @return void + * @access protected + */ + protected function OnToogleTopicPostsSubscribe(kEvent $event) + { + $object = $event->getObject(); + /* @var $object kDBItem */ + + $post_helper = $this->Application->recallObject('PostHelper'); + /* @var $post_helper PostHelper */ + + $manager = $post_helper->getSubscriptionManager('TopicPosts', Array ($object->GetID())); + + if ( $manager->subscribed() ) { + $manager->unsubscribe(); + } + else { + $manager->subscribe(); + } + } } \ No newline at end of file