コード例 #1
0
 /**
  * Any code to run after deleting
  *
  * @access protected
  * 
  * @param boolean $doquery					Do the query?
  */
 function post_delete($doquery = true)
 {
     if (empty($this->info['group'])) {
         $this->info['group'] = fetch_socialgroupinfo($this->fetch_field('groupid'));
     }
     if ($this->info['hard_delete']) {
         // prepare table names for MySQL 4.0.x
         $discussionid = intval($this->existing['discussionid']);
         $groupmessage_table = TABLE_PREFIX . 'groupmessage';
         $deletionlog_table = TABLE_PREFIX . 'deletionlog';
         $moderation_table = TABLE_PREFIX . 'moderation';
         // delete all messages and their deletion logs and moderation
         $this->registry->db->query_write("DELETE {$groupmessage_table}, {$deletionlog_table}, {$moderation_table} \n\t\t\t\t FROM {$groupmessage_table}   \n\t\t\t\t LEFT JOIN {$deletionlog_table}  \n\t\t\t\t  ON {$deletionlog_table}.primaryid = {$groupmessage_table}.gmid \n\t\t\t\t  AND {$deletionlog_table}.type = 'groupmessage' \n\t\t\t\t LEFT JOIN {$moderation_table} \n\t\t\t\t  ON {$moderation_table}.primaryid = {$groupmessage_table}.gmid \n\t\t\t\t  AND {$moderation_table}.type = 'groupmessage' \n\t\t\t\t WHERE {$groupmessage_table}.discussionid = {$discussionid}");
         if (!$this->info['skip_build_counters']) {
             require_once DIR . '/includes/functions_socialgroup.php';
             build_group_counters($this->existing['groupid']);
         }
         // delete read marking
         $this->registry->db->query_write("\n\t\t\t\tDELETE FROM " . TABLE_PREFIX . "discussionread \n\t\t\t\tWHERE " . TABLE_PREFIX . "discussionread.discussionid = {$discussionid}\n\t\t\t");
         // delete subscriptions
         $this->registry->db->query_write("\n\t\t\t\tDELETE FROM " . TABLE_PREFIX . "subscribediscussion \n\t\t\t\tWHERE " . TABLE_PREFIX . "subscribediscussion.discussionid = {$discussionid}\n\t\t\t");
         // update moderation count for owner
         update_owner_pending_gm_count($this->info['group']['creatoruserid']);
         ($hook = vBulletinHook::fetch_hook('discussiondata_delete')) ? eval($hook) : false;
     }
 }
コード例 #2
0
ファイル: group_inlinemod.php プロジェクト: holandacz/nb4
        standard_error(fetch_error('you_do_not_have_permission_to_manage_deleted_messages'));
    }
    // Validate Messages
    $messages = $db->query_read_slave("\n\t\tSELECT gm.gmid, gm.state, gm.groupid, gm.dateline, gm.postuserid, gm.postusername,\n\t\t\tsocialgroup.name AS group_name, socialgroup.creatoruserid\n\t\tFROM " . TABLE_PREFIX . "groupmessage AS gm\n\t\tLEFT JOIN " . TABLE_PREFIX . "socialgroup AS socialgroup ON (socialgroup.groupid = gm.groupid)\n\t\tWHERE gmid IN ({$messageids})\n\t\t\tAND state = 'deleted'\n\t");
    while ($message = $db->fetch_array($messages)) {
        $message['is_group_owner'] = $message['creatoruserid'] == $vbulletin->userinfo['userid'];
        $messagearray["{$message['gmid']}"] = $message;
        $grouplist["{$message['groupid']}"] = true;
    }
    if (empty($messagearray)) {
        standard_error(fetch_error('you_did_not_select_any_valid_messages'));
    }
    $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 ($grouplist as $groupid => $foo) {
        build_group_counters($groupid);
    }
    foreach ($messagearray as $message) {
        if (!$message['is_group_owner']) {
            log_moderator_action($message, 'gm_by_x_for_y_undeleted', array($message['postusername'], $message['group_name']));
        }
    }
    // empty cookie
    setcookie('vbulletin_inlinegmessage', '', TIMENOW - 3600, '/');
    ($hook = vBulletinHook::fetch_hook('group_inlinemod_undelete')) ? eval($hook) : false;
    eval(print_standard_redirect('redirect_inline_undeletedmessages', true, $forceredirect));
}
/*======================================================================*\
|| ####################################################################
|| # Downloaded: 09:39, Wed Nov 5th 2008
|| # SVN: $Revision: 27889 $
コード例 #3
0
ファイル: group.php プロジェクト: Kheros/MMOver
         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'));
     } else {
コード例 #4
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;
 }
コード例 #5
0
ファイル: class_dm_discussion.php プロジェクト: 0hyeah/yurivn
 /**
  * Any code to run after deleting
  *
  * @access protected
  * 
  * @param boolean $doquery					Do the query?
  */
 function post_delete($doquery = true)
 {
     if (empty($this->info['group'])) {
         $this->info['group'] = fetch_socialgroupinfo($this->fetch_field('groupid'));
     }
     if ($this->info['hard_delete']) {
         // prepare table names for MySQL 4.0.x
         $discussionid = intval($this->existing['discussionid']);
         $groupmessage_table = TABLE_PREFIX . 'groupmessage';
         $deletionlog_table = TABLE_PREFIX . 'deletionlog';
         $moderation_table = TABLE_PREFIX . 'moderation';
         $activity = new vB_ActivityStream_Manage('socialgroup', 'discussion');
         $activity->set('contentid', $this->existing['discussionid']);
         $activity->delete();
         $idlist = array();
         $ids = $this->registry->db->query_read("\n\t\t\t\tSELECT gmid\n\t\t\t\tFROM " . TABLE_PREFIX . "groupmessage\n\t\t\t\tWHERE discussionid = {$this->existing['discussionid']}\n\t\t\t");
         while ($id = $this->registry->db->fetch_array($ids)) {
             $idlist[] = $id['gmid'];
         }
         if ($idlist) {
             $activity = new vB_ActivityStream_Manage('socialgroup', 'groupmessage');
             $activity->set('contentid', $idlist);
             $activity->delete();
         }
         /*
          
         KEVIN :  Need to add SocialGroup ? So this can all be done in one ?
          
         // Search index maintenance - Remove for a hard delete.
         require_once(DIR . '/vb/search/core.php');
         $indexer = vB_Search_Core::get_instance()->get_index_controller('vBForum', 'SocialGroup');			
         $indexer->delete($discussionid);		
         */
         require_once DIR . '/vb/search/core.php';
         $indexer = vB_Search_Core::get_instance()->get_index_controller('vBForum', 'SocialGroupMessage');
         $result = $this->registry->db->query("SELECT gmid FROM " . TABLE_PREFIX . "groupmessage WHERE discussionid={$discussionid}");
         while ($row = $this->registry->db->fetch_row($result)) {
             $indexer->delete($row[0]);
         }
         // delete all messages and their deletion logs and moderation
         $this->registry->db->query_write("DELETE {$groupmessage_table}, {$deletionlog_table}, {$moderation_table} \n\t\t\t\t FROM {$groupmessage_table}   \n\t\t\t\t LEFT JOIN {$deletionlog_table}  \n\t\t\t\t  ON {$deletionlog_table}.primaryid = {$groupmessage_table}.gmid \n\t\t\t\t  AND {$deletionlog_table}.type = 'groupmessage' \n\t\t\t\t LEFT JOIN {$moderation_table} \n\t\t\t\t  ON {$moderation_table}.primaryid = {$groupmessage_table}.gmid \n\t\t\t\t  AND {$moderation_table}.type = 'groupmessage' \n\t\t\t\t WHERE {$groupmessage_table}.discussionid = {$discussionid}");
         if (!$this->info['skip_build_counters']) {
             require_once DIR . '/includes/functions_socialgroup.php';
             build_group_counters($this->existing['groupid']);
         }
         // delete read marking
         $this->registry->db->query_write("\n\t\t\t\tDELETE FROM " . TABLE_PREFIX . "discussionread \n\t\t\t\tWHERE " . TABLE_PREFIX . "discussionread.discussionid = {$discussionid}\n\t\t\t");
         // delete subscriptions
         $this->registry->db->query_write("\n\t\t\t\tDELETE FROM " . TABLE_PREFIX . "subscribediscussion \n\t\t\t\tWHERE " . TABLE_PREFIX . "subscribediscussion.discussionid = {$discussionid}\n\t\t\t");
         // update moderation count for owner
         update_owner_pending_gm_count($this->info['group']['creatoruserid']);
         ($hook = vBulletinHook::fetch_hook('discussiondata_delete')) ? eval($hook) : false;
     }
 }
コード例 #6
0
 /**
  * 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;
 }
コード例 #7
0
	/**
	* Any code to run after deleting
	*
	* @access protected
	* 
	* @param boolean $doquery					Do the query?
	*/
	function post_delete($doquery = true)
	{
		if (empty($this->info['group']))
		{
			$this->info['group'] = fetch_socialgroupinfo($this->fetch_field('groupid'));
		}
		
		if ($this->info['hard_delete'])
		{
			// prepare table names for MySQL 4.0.x
			$discussionid = intval($this->existing['discussionid']);
			$groupmessage_table = TABLE_PREFIX . 'groupmessage';
			$deletionlog_table = TABLE_PREFIX . 'deletionlog';
			$moderation_table = TABLE_PREFIX . 'moderation';

			/*
			 
			KEVIN :  Need to add SocialGroup ? So this can all be done in one ?
			 
			// Search index maintenance - Remove for a hard delete.
			require_once(DIR . '/vb/search/core.php');
			$indexer = vB_Search_Core::get_instance()->get_index_controller('vBForum', 'SocialGroup');			
			$indexer->delete($discussionid);		
			*/
			
			require_once(DIR . '/vb/search/core.php');
			$indexer = vB_Search_Core::get_instance()->get_index_controller('vBForum', 'SocialGroupMessage');
			
			$result = $this->registry->db->query("SELECT gmid FROM " . TABLE_PREFIX . "groupmessage WHERE discussionid={$discussionid}");
			 
			while ($row = $this->registry->db->fetch_row($result))
			{
				$indexer->delete($row[0]);
			}
			
			// delete all messages and their deletion logs and moderation
			$this->registry->db->query_write(
				"DELETE $groupmessage_table, $deletionlog_table, $moderation_table 
				 FROM $groupmessage_table   
				 LEFT JOIN $deletionlog_table  
				  ON $deletionlog_table.primaryid = $groupmessage_table.gmid 
				  AND $deletionlog_table.type = 'groupmessage' 
				 LEFT JOIN $moderation_table 
				  ON $moderation_table.primaryid = $groupmessage_table.gmid 
				  AND $moderation_table.type = 'groupmessage' 
				 WHERE $groupmessage_table.discussionid = $discussionid"
			);
			
			if (!$this->info['skip_build_counters'])
			{
				require_once(DIR . '/includes/functions_socialgroup.php');
				build_group_counters($this->existing['groupid']);
			}

			// delete read marking
			$this->registry->db->query_write("
				DELETE FROM " . TABLE_PREFIX . "discussionread 
				WHERE " . TABLE_PREFIX . "discussionread.discussionid = $discussionid
			");
			
			// delete subscriptions
			$this->registry->db->query_write("
				DELETE FROM " . TABLE_PREFIX . "subscribediscussion 
				WHERE " . TABLE_PREFIX . "subscribediscussion.discussionid = $discussionid
			");
			
			// update moderation count for owner
			update_owner_pending_gm_count($this->info['group']['creatoruserid']);
		
 			($hook = vBulletinHook::fetch_hook('discussiondata_delete')) ? eval($hook) : false;
		}
	}