示例#1
0
         $messagearray["{$message['gmid']}"] = $message;
         $discussionlist["{$discussion['discussionid']}"] = true;
         $grouplist["{$group['groupid']}"] = true;
     }
 }
 if (empty($messagearray)) {
     standard_error(fetch_error('you_did_not_select_any_valid_messages'));
 }
 require_once DIR . '/vb/search/indexcontroller/queue.php';
 $db->query_write("\n\t\tDELETE FROM " . TABLE_PREFIX . "deletionlog\n\t\tWHERE type = 'groupmessage' AND\n\t\t\tprimaryid IN(" . implode(',', array_keys($messagearray)) . ")\n\t");
 $db->query_write("\n\t\tUPDATE " . TABLE_PREFIX . "groupmessage\n\t\tSET state = 'visible'\n\t\tWHERE gmid IN(" . implode(',', array_keys($messagearray)) . ")\n\t");
 foreach (array_keys($messagearray) as $gmid) {
     vB_Search_Indexcontroller_Queue::indexQueue('vBForum', 'SocialGroupMessage', 'index', $gmid, null, null);
 }
 foreach (array_keys($discussionlist) as $discussionid) {
     build_discussion_counters($discussionid);
 }
 foreach (array_keys($grouplist) as $groupid) {
     build_group_counters($groupid);
 }
 foreach ($messagearray as $message) {
     if (!$message['is_group_owner']) {
         if ($message['firstpost']) {
             log_moderator_action($message, 'discussion_by_x_for_y_undeleted', array($message['postusername'], $message['group_name']));
         } else {
             log_moderator_action($message, 'gm_by_x_in_y_for_z_undeleted', array($message['postusername'], $message['discussion_name'], $message['group_name']));
         }
     }
 }
 // empty cookie
 setcookie($inline_cookie, '', TIMENOW - 3600, '/');
示例#2
0
 /**
  * Deleted a SG Message
  * 
  * @param 	bool, added for PHP 5.4 Strict Standards compliance
  * @return	boolean	Was this message deleted successfully?
  */
 function delete($doquery = true)
 {
     if ($gmid = $this->existing['gmid']) {
         $db =& $this->registry->db;
         // Search index maintenance - Remove for a hard delete.
         require_once DIR . '/vb/search/core.php';
         if ($this->info['hard_delete']) {
             $db->query_write("DELETE FROM " . TABLE_PREFIX . "deletionlog WHERE primaryid = {$gmid} AND type = 'groupmessage'");
             $db->query_write("DELETE FROM " . TABLE_PREFIX . "groupmessage WHERE gmid = {$gmid}");
             $db->query_write("DELETE FROM " . TABLE_PREFIX . "moderation WHERE primaryid = {$gmid} AND type = 'groupmessage'");
             vb_Search_Indexcontroller_Queue::indexQueue('vBForum', 'SocialGroupMessage', 'delete', $gmid);
             $activity = new vB_ActivityStream_Manage('socialgroup', 'groupmessage');
             $activity->set('contentid', $gmid);
             $activity->delete();
             // Logging?
         } else {
             $this->set('state', 'deleted');
             $this->save();
             vb_Search_Indexcontroller_Queue::indexQueue('vBForum', 'SocialGroupMessage', 'index', $gmid);
             $deletionman =& datamanager_init('Deletionlog_GroupMessage', $this->registry, ERRTYPE_SILENT, 'deletionlog');
             $deletionman->set('primaryid', $gmid);
             $deletionman->set('type', 'groupmessage');
             $deletionman->set('userid', $this->registry->userinfo['userid']);
             $deletionman->set('username', $this->registry->userinfo['username']);
             $deletionman->set('reason', $this->info['reason']);
             $deletionman->save();
             unset($deletionman);
         }
         $db->query_write("\n\t\t\t\tDELETE FROM " . TABLE_PREFIX . "moderation WHERE primaryid = {$gmid} AND type = 'groupmessage'\n\t\t\t");
         if (!$this->info['skip_build_counters']) {
             require_once DIR . '/includes/functions_socialgroup.php';
             build_discussion_counters($this->existing['discussionid']);
             build_group_counters($this->info['group']['groupid']);
         }
         $this->post_delete();
         return true;
     }
     return false;
 }
示例#3
0
文件: group.php 项目: Kheros/MMOver
     if ($hard_delete and !fetch_socialgroup_modperm('canremovegroupmessages', $group)) {
         standard_error(fetch_error('you_do_not_have_permission_to_hard_delete_messages'));
     } else {
         if (!$hard_delete and !fetch_socialgroup_modperm('candeletegroupmessages', $group) and ($messageinfo['postuserid'] != $vbulletin->userinfo['userid'] or !fetch_socialgroup_perm('canmanagemessages'))) {
             standard_error(fetch_error('you_do_not_have_permission_to_soft_delete_messages'));
         }
     }
 }
 // Only specifically delete discussion on hard delete
 $delete_discussion = ($is_discussion and $hard_delete and !$undelete);
 if ($undelete) {
     require_once DIR . '/vb/search/indexcontroller/queue.php';
     $db->query_write("\r\n\t\t\tDELETE FROM " . TABLE_PREFIX . "deletionlog\r\n\t\t\tWHERE type = 'groupmessage' AND\r\n\t\t\t\tprimaryid = " . intval($messageinfo['gmid']) . "\r\n\t\t");
     $db->query_write("\r\n\t\t\tUPDATE " . TABLE_PREFIX . "groupmessage\r\n\t\t\tSET state = 'visible'\r\n\t\t\tWHERE gmid = " . intval($messageinfo['gmid']) . "\r\n\t\t");
     vB_Search_Indexcontroller_Queue::indexQueue('vBForum', 'SocialGroupMessage', 'index', $gmid, null, null);
     build_discussion_counters($messageinfo['discussionid']);
     build_group_counters($messageinfo['groupid']);
     if (!$messageinfo['is_group_owner']) {
         require_once DIR . '/includes/functions_log_error.php';
         if ($messageinfo['firstpost']) {
             log_moderator_action($messageinfo, 'discussion_by_x_for_y_undeleted', array($messageinfo['postusername'], $messageinfo['group_name']));
         } else {
             log_moderator_action($messageinfo, 'gm_by_x_in_y_for_z_undeleted', array($messageinfo['postusername'], $messageinfo['discussion_name'], $messageinfo['group_name']));
         }
         $vbulletin->url = 'group.php?' . $vbulletin->session->vars['sessionurl'] . "do=discuss&discussionid={$discussion['discussionid']}";
         if (!$is_discussion) {
             $vbulletin->url .= "&gmid={$messageinfo['gmid']}";
         }
     }
     if ($is_discussion) {
         eval(print_standard_redirect('redirect_groupdiscussionrestored'));
 /**
  * Deleted a SG Message
  *
  * @return	boolean	Was this message deleted successfully?
  */
 function delete()
 {
     if ($gmid = $this->existing['gmid']) {
         $db =& $this->registry->db;
         if ($this->info['hard_delete']) {
             $db->query_write("\n\t\t\t\t\tDELETE FROM " . TABLE_PREFIX . "deletionlog WHERE primaryid = {$gmid} AND type = 'groupmessage'\n\t\t\t\t");
             $db->query_write("\n\t\t\t\t\tDELETE FROM " . TABLE_PREFIX . "groupmessage WHERE gmid = {$gmid}\n\t\t\t\t");
             $db->query_write("\n\t\t\t\t\tDELETE FROM " . TABLE_PREFIX . "moderation WHERE primaryid = {$gmid} AND type = 'groupmessage'\n\t\t\t\t");
             // Logging?
         } else {
             $this->set('state', 'deleted');
             $this->save();
             $deletionman =& datamanager_init('Deletionlog_GroupMessage', $this->registry, ERRTYPE_SILENT, 'deletionlog');
             $deletionman->set('primaryid', $gmid);
             $deletionman->set('type', 'groupmessage');
             $deletionman->set('userid', $this->registry->userinfo['userid']);
             $deletionman->set('username', $this->registry->userinfo['username']);
             $deletionman->set('reason', $this->info['reason']);
             $deletionman->save();
             unset($deletionman);
         }
         $db->query_write("\n\t\t\t\tDELETE FROM " . TABLE_PREFIX . "moderation WHERE primaryid = {$gmid} AND type = 'groupmessage'\n\t\t\t");
         if (!$this->info['skip_build_counters']) {
             require_once DIR . '/includes/functions_socialgroup.php';
             build_discussion_counters($this->existing['discussionid']);
             build_group_counters($this->info['group']['groupid']);
         }
         $this->post_delete();
         return true;
     }
     return false;
 }