Beispiel #1
0
if ($_POST['do'] == 'killsubs') {
    $db->query_write("DELETE FROM " . TABLE_PREFIX . "subscribethread WHERE userid = " . $vbulletin->GPC['userid']);
    $db->query_write("DELETE FROM " . TABLE_PREFIX . "subscribeforum WHERE userid = " . $vbulletin->GPC['userid']);
    $db->query_write("DELETE FROM " . TABLE_PREFIX . "subscribeevent WHERE userid = " . $vbulletin->GPC['userid']);
    $db->query_write("DELETE FROM " . TABLE_PREFIX . "subscribegroup WHERE userid = " . $vbulletin->GPC['userid']);
    $db->query_write("DELETE FROM " . TABLE_PREFIX . "subscribediscussion WHERE userid = " . $vbulletin->GPC['userid']);
    define('CP_REDIRECT', "user.php?do=edit&u=" . $vbulletin->GPC['userid']);
    print_stop_message('deleted_subscriptions_successfully');
}
// ###################### Start Remove User's PMs #######################
if ($_REQUEST['do'] == 'removepms') {
    print_delete_confirmation('user', $vbulletin->GPC['userid'], 'usertools', 'killpms', 'private_messages_belonging_to_the_user');
}
// ###################### Start Remove User's PMs #######################
if ($_POST['do'] == 'killpms') {
    $result = delete_user_pms($vbulletin->GPC['userid']);
    define('CP_REDIRECT', "user.php?do=edit&u=" . $vbulletin->GPC['userid']);
    print_stop_message('deleted_x_pms_y_pmtexts_and_z_receipts', $result['pms'], $result['pmtexts'], $result['receipts']);
}
// ###################### Start Remove PMs Sent by User #######################
if ($_REQUEST['do'] == 'removesentpms') {
    print_delete_confirmation('user', $vbulletin->GPC['userid'], 'usertools', 'killsentpms', 'private_messages_sent_by_the_user');
}
// ###################### Start Remove User's PMs #######################
if ($_POST['do'] == 'killsentpms') {
    $user = $db->query_first("SELECT userid, username FROM " . TABLE_PREFIX . "user WHERE userid = " . $vbulletin->GPC['userid']);
    if (!$user['userid']) {
        print_stop_message('invalid_user_specified');
    }
    $pmtextids = '0';
    $pmtexts = $db->query_read("SELECT pmtextid FROM " . TABLE_PREFIX . "pmtext WHERE fromuserid = " . $vbulletin->GPC['userid']);
Beispiel #2
0
 /**
  * Any code to run after deleting
  *
  * @param	Boolean Do the query?
  */
 function post_delete($doquery = true)
 {
     $this->dbobject->query_write("\n\t\t\tUPDATE " . TABLE_PREFIX . "post SET\n\t\t\t\tusername = '******'username']) . "',\n\t\t\t\tuserid = 0\n\t\t\tWHERE userid = " . $this->existing['userid'] . "\n\t\t");
     $this->dbobject->query_write("\n\t\t\tUPDATE " . TABLE_PREFIX . "groupmessage SET\n\t\t\t\tpostusername = '******'username']) . "',\n\t\t\t\tpostuserid = 0\n\t\t\tWHERE postuserid = " . $this->existing['userid'] . "\n\t\t");
     $this->dbobject->query_write("\n\t\t\tUPDATE " . TABLE_PREFIX . "visitormessage SET\n\t\t\t\tpostusername = '******'username']) . "',\n\t\t\t\tpostuserid = 0\n\t\t\tWHERE postuserid = " . $this->existing['userid'] . "\n\t\t");
     $this->dbobject->query_write("\n\t\t\tDELETE FROM " . TABLE_PREFIX . "visitormessage\n\t\t\tWHERE userid = " . $this->existing['userid'] . "\n\t\t");
     $this->dbobject->query_write("\n\t\t\tUPDATE " . TABLE_PREFIX . "usernote SET\n\t\t\t\tusername = '******'username']) . "',\n\t\t\t\tposterid = 0\n\t\t\tWHERE posterid = " . $this->existing['userid'] . "\n\t\t");
     $this->dbobject->query_write("\n\t\t\tDELETE FROM " . TABLE_PREFIX . "usernote\n\t\t\tWHERE userid = " . $this->existing['userid'] . "\n\t\t");
     $this->dbobject->query_write("\n\t\t\tDELETE FROM " . TABLE_PREFIX . "access\n\t\t\tWHERE userid = " . $this->existing['userid'] . "\n\t\t");
     $this->dbobject->query_write("\n\t\t\tDELETE FROM " . TABLE_PREFIX . "event\n\t\t\tWHERE userid = " . $this->existing['userid'] . "\n\t\t");
     $this->dbobject->query_write("\n\t\t\tDELETE FROM " . TABLE_PREFIX . "customavatar\n\t\t\tWHERE userid = " . $this->existing['userid'] . "\n\t\t");
     @unlink($this->registry->options['avatarpath'] . '/avatar' . $this->existing['userid'] . '_' . $this->existing['avatarrevision'] . '.gif');
     $this->dbobject->query_write("\n\t\t\tDELETE FROM " . TABLE_PREFIX . "customprofilepic\n\t\t\tWHERE userid = " . $this->existing['userid'] . "\n\t\t");
     @unlink($this->registry->options['profilepicpath'] . '/profilepic' . $this->existing['userid'] . '_' . $this->existing['profilepicrevision'] . '.gif');
     $this->dbobject->query_write("\n\t\t\tDELETE FROM " . TABLE_PREFIX . "sigpic\n\t\t\tWHERE userid = " . $this->existing['userid'] . "\n\t\t");
     @unlink($this->registry->options['sigpicpath'] . '/sigpic' . $this->existing['userid'] . '_' . $this->existing['sigpicrevision'] . '.gif');
     $this->dbobject->query_write("\n\t\t\tDELETE FROM " . TABLE_PREFIX . "moderator\n\t\t\tWHERE userid = " . $this->existing['userid'] . "\n\t\t");
     $this->dbobject->query_write("\n\t\t\tDELETE FROM " . TABLE_PREFIX . "reputation\n\t\t\tWHERE userid = " . $this->existing['userid'] . "\n\t\t");
     $this->dbobject->query_write("\n\t\t\tDELETE FROM " . TABLE_PREFIX . "subscribeforum\n\t\t\tWHERE userid = " . $this->existing['userid'] . "\n\t\t");
     $this->dbobject->query_write("\n\t\t\tDELETE FROM " . TABLE_PREFIX . "subscribethread\n\t\t\tWHERE userid = " . $this->existing['userid'] . "\n\t\t");
     $this->dbobject->query_write("\n\t\t\tDELETE FROM " . TABLE_PREFIX . "subscribeevent\n\t\t\tWHERE userid = " . $this->existing['userid'] . "\n\t\t");
     $this->dbobject->query_write("\n\t\t\tDELETE FROM " . TABLE_PREFIX . "subscriptionlog\n\t\t\tWHERE userid = " . $this->existing['userid'] . "\n\t\t");
     $this->dbobject->query_write("\n\t\t\tDELETE FROM " . TABLE_PREFIX . "session\n\t\t\tWHERE userid = " . $this->existing['userid'] . "\n\t\t");
     $this->dbobject->query_write("\n\t\t\tDELETE FROM " . TABLE_PREFIX . "userban\n\t\t\tWHERE userid = " . $this->existing['userid'] . "\n\t\t");
     $this->dbobject->query_write("\n\t\t\tDELETE FROM " . TABLE_PREFIX . "usergrouprequest\n\t\t\tWHERE userid = " . $this->existing['userid'] . "\n\t\t");
     $this->dbobject->query_write("\n\t\t\tDELETE FROM " . TABLE_PREFIX . "announcementread\n\t\t\tWHERE userid = " . $this->existing['userid'] . "\n\t\t");
     $this->dbobject->query_write("\n\t\t\tDELETE FROM " . TABLE_PREFIX . "infraction\n\t\t\tWHERE userid = " . $this->existing['userid'] . "\n\t\t");
     $pendingfriends = array();
     $currentfriends = array();
     $friendlist = $this->dbobject->query_read("\n\t\t\tSELECT relationid, friend\n\t\t\tFROM " . TABLE_PREFIX . "userlist\n\t\t\tWHERE userid = " . $this->existing['userid'] . "\n\t\t\t\tAND type = 'buddy'\n\t\t\t\tAND friend IN('pending','yes')\n\t\t");
     while ($friend = $this->dbobject->fetch_array($friendlist)) {
         if ($friend['friend'] == 'yes') {
             $currentfriends[] = $friend['relationid'];
         } else {
             $pendingfriends[] = $friend['relationid'];
         }
     }
     if (!empty($pendingfriends)) {
         $this->dbobject->query_write("\n\t\t\t\tUPDATE " . TABLE_PREFIX . "user\n\t\t\t\tSET friendreqcount = IF(friendreqcount > 0, friendreqcount - 1, 0)\n\t\t\t\tWHERE userid IN (" . implode(", ", $pendingfriends) . ")\n\t\t\t");
     }
     if (!empty($currentfriends)) {
         $this->dbobject->query_write("\n\t\t\t\tUPDATE " . TABLE_PREFIX . "user\n\t\t\t\tSET friendcount = IF(friendcount > 0, friendcount - 1, 0)\n\t\t\t\tWHERE userid IN (" . implode(", ", $currentfriends) . ")\n\t\t\t");
     }
     $this->dbobject->query_write("\n\t\t\tDELETE FROM " . TABLE_PREFIX . "userlist\n\t\t\tWHERE userid = " . $this->existing['userid'] . " OR relationid = " . $this->existing['userid']);
     $admindm =& datamanager_init('Admin', $this->registry, ERRTYPE_SILENT);
     $admindm->set_existing($this->existing);
     $admindm->delete();
     unset($admindm);
     $groups = $this->registry->db->query_read("\n\t\t\tSELECT *\n\t\t\tFROM " . TABLE_PREFIX . "socialgroup\n\t\t\tWHERE creatoruserid = " . $this->existing['userid']);
     $groupsowned = array();
     while ($group = $this->registry->db->fetch_array($groups)) {
         $groupsowned[] = $group['groupid'];
     }
     $this->registry->db->free_result($groups);
     if (!empty($groupsowned)) {
         require_once DIR . '/includes/functions_socialgroup.php';
         foreach ($groupsowned as $groupowned) {
             $group = fetch_socialgroupinfo($groupowned);
             if (!empty($group)) {
                 // dm will have problem if the group is invalid, and in all honesty, at this situation,
                 // if the group is no longer present, then we don't need to worry about it anymore.
                 $socialgroupdm = datamanager_init('SocialGroup', $this->registry, ERRTYPE_SILENT);
                 $socialgroupdm->set_existing($group);
                 $socialgroupdm->delete();
             }
         }
     }
     $groupmemberships = $this->registry->db->query_read("\n\t\t\tSELECT socialgroup.*\n\t\t\tFROM " . TABLE_PREFIX . "socialgroupmember AS socialgroupmember\n\t\t\tINNER JOIN " . TABLE_PREFIX . "socialgroup AS socialgroup ON\n\t\t\t\t(socialgroup.groupid = socialgroupmember.groupid)\n\t\t\tWHERE socialgroupmember.userid = " . $this->existing['userid']);
     $socialgroups = array();
     while ($groupmembership = $this->registry->db->fetch_array($groupmemberships)) {
         $socialgroups["{$groupmembership['groupid']}"] = $groupmembership;
     }
     $grouppicture_sql = $this->registry->db->query_read("\n\t\t\tSELECT socialgrouppicture.groupid, socialgrouppicture.pictureid\n\t\t\tFROM " . TABLE_PREFIX . "picture AS picture\n\t\t\tINNER JOIN " . TABLE_PREFIX . "socialgrouppicture AS socialgrouppicture ON\n\t\t\t\t(socialgrouppicture.pictureid = picture.pictureid)\n\t\t\tWHERE picture.userid = " . $this->existing['userid'] . "\n\t\t");
     $grouppictures = array();
     while ($grouppicture = $this->registry->db->fetch_array($grouppicture_sql)) {
         $grouppictures[] = $grouppicture['pictureid'];
     }
     if (!empty($grouppictures)) {
         $this->registry->db->query_write("\n\t\t\t\tDELETE FROM " . TABLE_PREFIX . "socialgrouppicture\n\t\t\t\tWHERE pictureid IN (" . implode(',', $grouppictures) . ")\n\t\t\t");
     }
     if (!empty($socialgroups)) {
         $this->registry->db->query_write("DELETE FROM " . TABLE_PREFIX . "socialgroupmember WHERE userid = " . $this->existing['userid']);
         foreach ($socialgroups as $group) {
             $groupdm =& datamanager_init('SocialGroup', $this->registry, ERRTYPE_STANDARD);
             $groupdm->set_existing($group);
             $groupdm->rebuild_membercounts();
             $groupdm->rebuild_picturecount();
             $groupdm->save();
             list($pendingcountforowner) = $this->registry->db->query_first("\n\t\t\t\t\tSELECT SUM(moderatedmembers) FROM " . TABLE_PREFIX . "socialgroup\n\t\t\t\t\tWHERE creatoruserid = " . $group['creatoruserid'], DBARRAY_NUM);
             $this->registry->db->query_write("\n\t\t\t\t\tUPDATE " . TABLE_PREFIX . "user\n\t\t\t\t\tSET socgroupreqcount = " . intval($pendingcountforowner) . "\n\t\t\t\t\tWHERE userid = " . $group['creatoruserid']);
         }
         unset($groupdm);
     }
     $pictures = array();
     $picture_sql = $this->registry->db->query_read("\n\t\t\tSELECT album.albumid, albumpicture.pictureid\n\t\t\tFROM " . TABLE_PREFIX . "album AS album\n\t\t\tINNER JOIN " . TABLE_PREFIX . "albumpicture AS albumpicture ON (albumpicture.albumid = album.albumid)\n\t\t\tWHERE album.userid = " . $this->existing['userid']);
     while ($picture = $this->registry->db->fetch_array($picture_sql)) {
         $pictures[] = $picture['pictureid'];
     }
     if ($pictures) {
         $this->registry->db->query_write("\n\t\t\t\tDELETE FROM " . TABLE_PREFIX . "albumpicture\n\t\t\t\tWHERE pictureid IN (" . implode(',', $pictures) . ")\n\t\t\t");
         $this->registry->db->query_write("\n\t\t\t\tDELETE FROM " . TABLE_PREFIX . "picturecomment\n\t\t\t\tWHERE pictureid IN (" . implode(',', $pictures) . ")\n\t\t\t");
     }
     $this->registry->db->query_write("DELETE FROM " . TABLE_PREFIX . "album WHERE userid = " . $this->existing['userid']);
     $this->registry->db->query_write("DELETE FROM " . TABLE_PREFIX . "picture WHERE userid = " . $this->existing['userid']);
     $this->registry->db->query_write("\n\t\t\tUPDATE " . TABLE_PREFIX . "picturecomment SET\n\t\t\t\tpostusername = '******'username']) . "',\n\t\t\t\tpostuserid = 0\n\t\t\tWHERE postuserid = " . $this->existing['userid'] . "\n\t\t");
     require_once DIR . '/includes/adminfunctions.php';
     delete_user_pms($this->existing['userid'], false);
     require_once DIR . '/includes/functions_databuild.php';
     ($hook = vBulletinHook::fetch_hook('userdata_delete')) ? eval($hook) : false;
     build_user_statistics();
     build_birthdays();
 }
Beispiel #3
0
	/**
	* Any code to run after deleting
	*
	* @param	Boolean Do the query?
	*/
	function post_delete($doquery = true)
	{
		$this->dbobject->query_write("
			UPDATE " . TABLE_PREFIX . "post SET
				username = '******'username']) . "',
				userid = 0
			WHERE userid = " . $this->existing['userid'] . "
		");
		$this->dbobject->query_write("
			UPDATE " . TABLE_PREFIX . "groupmessage SET
				postusername = '******'username']) . "',
				postuserid = 0
			WHERE postuserid = " . $this->existing['userid'] . "
		");
		$this->dbobject->query_write("
			UPDATE " . TABLE_PREFIX . "discussion SET
				lastposter = '" . $this->dbobject->escape_string($this->existing['username']) . "',
				lastposterid = 0
			WHERE lastposterid = " . $this->existing['userid'] . "
		");
		$this->dbobject->query_write("
			UPDATE " . TABLE_PREFIX . "visitormessage SET
				postusername = '******'username']) . "',
				postuserid = 0
			WHERE postuserid = " . $this->existing['userid'] . "
		");
		$this->dbobject->query_write("
			DELETE FROM " . TABLE_PREFIX . "visitormessage
			WHERE userid = " . $this->existing['userid'] . "
		");
		$this->dbobject->query_write("
			UPDATE " . TABLE_PREFIX . "usernote SET
				username = '******'username']) . "',
				posterid = 0
			WHERE posterid = " . $this->existing['userid'] . "
		");
		$this->dbobject->query_write("
			DELETE FROM " . TABLE_PREFIX . "usernote
			WHERE userid = " . $this->existing['userid'] . "
		");
		$this->dbobject->query_write("
			DELETE FROM " . TABLE_PREFIX . "access
			WHERE userid = " . $this->existing['userid'] . "
		");
		$this->dbobject->query_write("
			DELETE FROM " . TABLE_PREFIX . "event
			WHERE userid = " . $this->existing['userid'] . "
		");
		$this->dbobject->query_write("
			DELETE FROM " . TABLE_PREFIX . "customavatar
			WHERE userid = " . $this->existing['userid'] . "
		");
		@unlink($this->registry->options['avatarpath'] . '/avatar' . $this->existing['userid'] . '_' . $this->existing['avatarrevision'] . '.gif');

		$this->dbobject->query_write("
			DELETE FROM " . TABLE_PREFIX . "customprofilepic
			WHERE userid = " . $this->existing['userid'] . "
		");
		@unlink($this->registry->options['profilepicpath'] . '/profilepic' . $this->existing['userid'] . '_' . $this->existing['profilepicrevision'] . '.gif');

		$this->dbobject->query_write("
			DELETE FROM " . TABLE_PREFIX . "sigpic
			WHERE userid = " . $this->existing['userid'] . "
		");
		@unlink($this->registry->options['sigpicpath'] . '/sigpic' . $this->existing['userid'] . '_' . $this->existing['sigpicrevision'] . '.gif');

		$this->dbobject->query_write("
			DELETE FROM " . TABLE_PREFIX . "moderator
			WHERE userid = " . $this->existing['userid'] . "
		");
		$this->dbobject->query_write("
			DELETE FROM " . TABLE_PREFIX . "reputation
			WHERE userid = " . $this->existing['userid'] . "
		");
		$this->dbobject->query_write("
			DELETE FROM " . TABLE_PREFIX . "subscribeforum
			WHERE userid = " . $this->existing['userid'] . "
		");
		$this->dbobject->query_write("
			DELETE FROM " . TABLE_PREFIX . "subscribethread
			WHERE userid = " . $this->existing['userid'] . "
		");
		$this->dbobject->query_write("
			DELETE FROM " . TABLE_PREFIX . "subscribeevent
			WHERE userid = " . $this->existing['userid'] . "
		");
		$this->dbobject->query_write("
			DELETE FROM " . TABLE_PREFIX . "subscriptionlog
			WHERE userid = " . $this->existing['userid'] . "
		");
		$this->dbobject->query_write("
			DELETE FROM " . TABLE_PREFIX . "session
			WHERE userid = " . $this->existing['userid'] . "
		");
		$this->dbobject->query_write("
			DELETE FROM " . TABLE_PREFIX . "userban
			WHERE userid = " . $this->existing['userid'] . "
		");

		$this->dbobject->query_write("
			DELETE FROM " . TABLE_PREFIX . "usergrouprequest
			WHERE userid = " . $this->existing['userid'] . "
		");

		$this->dbobject->query_write("
			DELETE FROM " . TABLE_PREFIX . "announcementread
			WHERE userid = " . $this->existing['userid'] . "
		");

		$this->dbobject->query_write("
			DELETE FROM " . TABLE_PREFIX . "infraction
			WHERE userid = " . $this->existing['userid'] . "
		");

		$this->dbobject->query_write("
			DELETE FROM " . TABLE_PREFIX . "groupread
			WHERE userid = " . $this->existing['userid'] . "
		");

		$this->dbobject->query_write("
			DELETE FROM " . TABLE_PREFIX . "discussionread
			WHERE userid = " . $this->existing['userid'] . "
		");

		$this->dbobject->query_write("
			DELETE FROM " . TABLE_PREFIX . "subscribediscussion
			WHERE userid = " . $this->existing['userid'] . "
		");

		$this->dbobject->query_write("
			DELETE FROM " . TABLE_PREFIX . "subscribegroup
			WHERE userid = " . $this->existing['userid'] . "
		");

		$this->dbobject->query_write("
			DELETE FROM " . TABLE_PREFIX . "profileblockprivacy
			WHERE userid = " . $this->existing['userid'] . "
		");

		$pendingfriends = array();
		$currentfriends = array();

		$friendlist = $this->dbobject->query_read("
			SELECT relationid, friend
			FROM " . TABLE_PREFIX . "userlist
			WHERE userid = " . $this->existing['userid'] . "
				AND type = 'buddy'
				AND friend IN('pending','yes')
		");

		while ($friend = $this->dbobject->fetch_array($friendlist))
		{
			if ($friend['friend'] == 'yes')
			{
				$currentfriends[] = $friend['relationid'];
			}
			else
			{
				$pendingfriends[] = $friend['relationid'];
			}
		}

		if (!empty($pendingfriends))
		{
			$this->dbobject->query_write("
				UPDATE " . TABLE_PREFIX . "user
				SET friendreqcount = IF(friendreqcount > 0, friendreqcount - 1, 0)
				WHERE userid IN (" . implode(", ", $pendingfriends) . ")
			");
		}

		if (!empty($currentfriends))
		{
			$this->dbobject->query_write("
				UPDATE " . TABLE_PREFIX . "user
				SET friendcount = IF(friendcount > 0, friendcount - 1, 0)
				WHERE userid IN (" . implode(", ", $currentfriends) . ")
			");
		}

		$this->dbobject->query_write("
			DELETE FROM " . TABLE_PREFIX . "userlist
			WHERE userid = " . $this->existing['userid'] . " OR relationid = " . $this->existing['userid']
		);

		$admindm =& datamanager_init('Admin', $this->registry, ERRTYPE_SILENT);
		$admindm->set_existing($this->existing);
		$admindm->delete();
		unset($admindm);

		$groups = $this->registry->db->query_read("
			SELECT *
			FROM " . TABLE_PREFIX . "socialgroup
			WHERE creatoruserid = " . $this->existing['userid']
		);

		$groupsowned = array();

		while ($group = $this->registry->db->fetch_array($groups))
		{
			$groupsowned[] = $group['groupid'];
		}
		$this->registry->db->free_result($groups);

		if (!empty($groupsowned))
		{
			require_once(DIR . '/includes/functions_socialgroup.php');
			foreach($groupsowned AS $groupowned)
			{
				$group = fetch_socialgroupinfo($groupowned);
				if (!empty($group))
				{
					// dm will have problem if the group is invalid, and in all honesty, at this situation,
					// if the group is no longer present, then we don't need to worry about it anymore.
					$socialgroupdm = datamanager_init('SocialGroup', $this->registry, ERRTYPE_SILENT);
					$socialgroupdm->set_existing($group);
					$socialgroupdm->delete();
				}
			}
		}

		$groupmemberships = $this->registry->db->query_read("
			SELECT socialgroup.*
			FROM " . TABLE_PREFIX . "socialgroupmember AS socialgroupmember
			INNER JOIN " . TABLE_PREFIX . "socialgroup AS socialgroup ON
				(socialgroup.groupid = socialgroupmember.groupid)
			WHERE socialgroupmember.userid = " . $this->existing['userid']
		);

		$socialgroups = array();
		while ($groupmembership = $this->registry->db->fetch_array($groupmemberships))
		{
			$socialgroups["$groupmembership[groupid]"] = $groupmembership;
		}

		require_once(DIR . '/includes/class_bootstrap_framework.php');
		require_once(DIR . '/vb/types.php');
		vB_Bootstrap_Framework::init();
		$types = vB_Types::instance();

		$picture_sql = $this->registry->db->query_read("
			SELECT a.attachmentid, a.filedataid, a.userid
			FROM " . TABLE_PREFIX . "attachment AS a
			WHERE
				a.userid = " . $this->existing['userid'] . "
					AND
				a.contenttypeid IN (" . intval($types->getContentTypeID('vBForum_SocialGroup')) . "," . intval($types->getContentTypeID('vBForum_Album')) . ")
		");
		$pictures = array();

		$attachdm =& datamanager_init('Attachment', $this->registry, ERRTYPE_SILENT, 'attachment');
		while ($picture = $this->registry->db->fetch_array($picture_sql))
		{
			$attachdm->set_existing($picture);
			$attachdm->delete();
		}

		if (!empty($socialgroups))
		{
			$this->registry->db->query_write("DELETE FROM " . TABLE_PREFIX . "socialgroupmember WHERE userid = "  . $this->existing['userid']);

			foreach ($socialgroups AS $group)
			{
				$groupdm =& datamanager_init('SocialGroup', $this->registry, ERRTYPE_STANDARD);
				$groupdm->set_existing($group);
				$groupdm->rebuild_membercounts();
				$groupdm->rebuild_picturecount();
				$groupdm->save();

				list($pendingcountforowner) = $this->registry->db->query_first("
					SELECT SUM(moderatedmembers) FROM " . TABLE_PREFIX . "socialgroup
					WHERE creatoruserid = " . $group['creatoruserid']
				, DBARRAY_NUM);

				$this->registry->db->query_write("
					UPDATE " . TABLE_PREFIX . "user
					SET socgroupreqcount = " . intval($pendingcountforowner) . "
					WHERE userid = " . $group['creatoruserid']
				);
			}

			unset($groupdm);
		}

		$this->registry->db->query_write("
			UPDATE " . TABLE_PREFIX . "socialgroup
			SET transferowner = 0
			WHERE transferowner = " . $this->existing['userid']
		);

		$this->registry->db->query_write("DELETE FROM " . TABLE_PREFIX . "album WHERE userid = " . $this->existing['userid']);


		$this->registry->db->query_write("
			UPDATE " . TABLE_PREFIX . "picturecomment SET
				postusername = '******'username']) . "',
				postuserid = 0
			WHERE postuserid = " . $this->existing['userid'] . "
		");

		require_once(DIR . '/includes/adminfunctions.php');
		delete_user_pms($this->existing['userid'], false);

		require_once(DIR . '/includes/functions_databuild.php');

		($hook = vBulletinHook::fetch_hook('userdata_delete')) ? eval($hook) : false;

		build_user_statistics();
		build_birthdays();
	}