public function display($discussion)
 {
     $button = false;
     $script = 'feature/flagdiscussion/flag.php';
     if ($discussion->is_flagged()) {
         $flag = 0;
         $name = get_string('removeflag', 'forumngfeature_flagdiscussion');
         $button = true;
     } else {
         if (!$discussion->is_deleted()) {
             $flag = 1;
             $name = get_string('flagdiscussion', 'forumngfeature_flagdiscussion');
             $button = true;
         }
     }
     if ($button) {
         $html = parent::get_button($discussion, $name, $script, false, array('d' => $discussion->get_id(), 'flag' => $flag));
         return html_writer::div($html, "forumng_flagdis fngflg{$flag}");
     }
 }
 public function display($discussion)
 {
     if (!$discussion->is_locked()) {
         return parent::get_button($discussion, get_string('lock', 'forumngfeature_lock'), 'editpost.php', false, array('lock' => 1));
     } else {
         return parent::get_button($discussion, get_string('unlock', 'forumngfeature_lock'), 'feature/lock/unlock.php');
     }
 }
 public function display($discussion)
 {
     if (is_a($discussion, 'mod_forumng_discussion')) {
         return parent::get_button($discussion, get_string('export', 'forumngfeature_export'), 'feature/export/export.php', false, array(), '', false, true);
     } else {
         return forumngfeature_discussion_list::get_button($discussion, get_string('export', 'forumngfeature_export'), 'feature/export/exportall.php', false, $_GET, '', 'forumng-dselectorbutton', '', '');
     }
 }
 public function should_display($discussion)
 {
     if (is_a($discussion, 'mod_forumng_discussion')) {
         return parent::should_display($discussion);
     }
     if (is_a($discussion, 'mod_forumng')) {
         return $discussion->can_manage_discussions(0);
     }
     return true;
 }
 public function display($discussion)
 {
     global $USER;
     $childposts = $discussion->get_root_post()->has_children();
     $creator = $discussion->get_poster();
     $deleted = $discussion->is_deleted();
     $extrahtml = '';
     if (!$deleted && ($childposts || $creator->id != $USER->id)) {
         $extrahtml = '<div class="forumng_deldiscussion"></div>';
     }
     return parent::get_button($discussion, $discussion->is_deleted() ? get_string('undelete', 'forumng') : get_string('delete'), 'feature/delete/delete.php', false, array('delete' => $discussion->is_deleted() ? 0 : 1), $extrahtml);
 }
 public function display($discussion)
 {
     global $SESSION;
     if (isset($SESSION->forumng_mergefrom)) {
         if ($SESSION->forumng_mergefrom->discussionid == $discussion->get_id() || $SESSION->forumng_mergefrom->forumid != $discussion->get_forum()->get_id()) {
             return parent::get_button($discussion, get_string('cancelmerge', 'forumngfeature_merge'), 'feature/merge/merge.php', true, array('stage' => 2, 'cancel' => 1), ' ' . get_string('cannotmergehere', 'forumngfeature_merge'), true);
         } else {
             return parent::get_button($discussion, get_string('mergehere', 'forumngfeature_merge'), 'feature/merge/merge.php', true, array('stage' => 2), '<input type="submit" name="cancel" value="' . get_string('cancel') . '" />', true);
         }
     } else {
         return parent::get_button($discussion, get_string('merge', 'forumngfeature_merge'), 'feature/merge/merge.php');
     }
 }
 /**
  * Displays row of buttons that go along the bottom of a discussion.
  * @return string HTML code for all feature buttons in this discussion
  */
 public function display_forumngfeature_discussions()
 {
     // Get forum type
     $type = $this->get_forum()->get_type();
     // Print discussion features
     $features = '';
     foreach (forumngfeature_discussion::get_all() as $feature) {
         if ($feature->should_display($this) && $type->allow_forumngfeature_discussion($this, $feature)) {
             $features .= $feature->display($this);
         }
     }
     if ($features) {
         print '<div id="forumng-features">' . $features . '</div>';
     }
 }
 public function display($discussion)
 {
     return parent::get_button($discussion, get_string('discussionoptions', 'forumng'), 'editpost.php');
 }
 public function display($discussion)
 {
     return parent::get_button($discussion, get_string('print', 'forumngfeature_print'), 'feature/print/print.php', false, array(), '', false, true);
 }
 public function display($discussion)
 {
     return parent::get_button($discussion, $discussion->is_deleted() ? get_string('undelete', 'forumng') : get_string('delete'), 'feature/delete/delete.php', false, array('delete' => $discussion->is_deleted() ? 0 : 1));
 }
 public function display($discussion)
 {
     return parent::get_button($discussion, get_string('forward', 'forumngfeature_forward'), 'feature/forward/forward.php', false, array(), '', false, true);
 }
 public function display($discussion)
 {
     $params = $discussion->get_link_params_array();
     return parent::get_button($discussion, get_string('markdiscussionread', 'forumngfeature_markdiscussionread'), 'markread.php', true, $params);
 }
 /**
  * Checks to see whether user can tag discussions
  * @param object $discussion
  * @return boolean
  */
 public function can_edit_tags($discussion)
 {
     global $USER;
     // Discussion, get forum details.
     $cm = $discussion->get_course_module();
     $forum = $discussion->get_forum();
     if (!$forum->can_tag_discussion()) {
         return false;
     }
     // Check to see whether user created the discussion.
     $user = $discussion->get_poster();
     if ($USER->id == $user->id) {
         return true;
     } else {
         return parent::should_display($discussion);
     }
 }