vb.org Archive

vb.org Archive (https://vborg.vbsupport.ru/index.php)
-   vBulletin 2.x Beta Releases (https://vborg.vbsupport.ru/forumdisplay.php?f=5)
-   -   Find, Optionally Email and Optionally Delete Inactive Members (https://vborg.vbsupport.ru/showthread.php?t=48964)

amykhar 02-27-2003 01:33 PM

Exempt for the email or just the delete?

hypedave 02-28-2003 01:28 AM

Quote:

Originally posted by amykhar
Exempt for the email or just the delete?
Just the delete I suppose

amykhar 02-28-2003 01:19 PM

Quote:

Originally posted by hypedave


Just the delete I suppose

Here ya go:

in manageInactive.php Find:
Code:

$userArray=$DB_site->query("SELECT username,userid,email,adminemail,emailDate FROM user WHERE lastactivity<$cutoffdate and emailDate<$dateCut ORDER BY username");
Replace with:
Code:

$userArray=$DB_site->query("SELECT username,userid,email,posts,adminemail,emailDate FROM user WHERE lastactivity<$cutoffdate and emailDate<$dateCut ORDER BY username");

Find:
Code:

      // We are just going to delete the inactive users with no warning
      $DB_site->query("UPDATE post SET username='".addslashes($user[username])."',userid=0 WHERE userid='$user[userid]'");
      $DB_site->query("DELETE FROM user WHERE userid='$user[userid]'");
      $DB_site->query("DELETE FROM userfield WHERE userid='$user[userid]'");
      $DB_site->query("DELETE FROM access WHERE userid='$user[userid]'");
      $DB_site->query("DELETE FROM calendar_events WHERE userid='$user[userid]'");
      $DB_site->query("DELETE FROM customavatar WHERE userid='$user[userid]'");
      $DB_site->query("DELETE FROM moderator WHERE userid='$user[userid]'");
      $DB_site->query("DELETE FROM privatemessage WHERE userid='$user[userid]'");
      $DB_site->query("DELETE FROM subscribeforum WHERE userid='$user[userid]'");
      $DB_site->query("DELETE FROM subscribethread WHERE userid='$user[userid]'");
      $DB_site->query("DELETE FROM session WHERE userid='$user[userid]'");
        $countDelete++;
      $inactiveUsersDeleted .=$user[username]."\n";
      echo("Deleted ". $user[username]."<br>");

Replace with: (change X to be the number of posts you choose)
Code:

if($user[posts] < X) {
      // We are just going to delete the inactive users with no warning
      $DB_site->query("UPDATE post SET username='".addslashes($user[username])."',userid=0 WHERE userid='$user[userid]'");
      $DB_site->query("DELETE FROM user WHERE userid='$user[userid]'");
      $DB_site->query("DELETE FROM userfield WHERE userid='$user[userid]'");
      $DB_site->query("DELETE FROM access WHERE userid='$user[userid]'");
      $DB_site->query("DELETE FROM calendar_events WHERE userid='$user[userid]'");
      $DB_site->query("DELETE FROM customavatar WHERE userid='$user[userid]'");
      $DB_site->query("DELETE FROM moderator WHERE userid='$user[userid]'");
      $DB_site->query("DELETE FROM privatemessage WHERE userid='$user[userid]'");
      $DB_site->query("DELETE FROM subscribeforum WHERE userid='$user[userid]'");
      $DB_site->query("DELETE FROM subscribethread WHERE userid='$user[userid]'");
      $DB_site->query("DELETE FROM session WHERE userid='$user[userid]'");
        $countDelete++;
      $inactiveUsersDeleted .=$user[username]."\n";
      echo("Deleted ". $user[username]."<br>");
}


Find:
Code:

      if($user[emailDate]<$dateCut) {
      $DB_site->query("UPDATE post SET username='".addslashes($user[username])."',userid=0 WHERE userid='$user[userid]'");
      $DB_site->query("DELETE FROM user WHERE userid='$user[userid]'");
      $DB_site->query("DELETE FROM userfield WHERE userid='$user[userid]'");
      $DB_site->query("DELETE FROM access WHERE userid='$user[userid]'");
      $DB_site->query("DELETE FROM calendar_events WHERE userid='$user[userid]'");
      $DB_site->query("DELETE FROM customavatar WHERE userid='$user[userid]'");
      $DB_site->query("DELETE FROM moderator WHERE userid='$user[userid]'");
      $DB_site->query("DELETE FROM privatemessage WHERE userid='$user[userid]'");
      $DB_site->query("DELETE FROM subscribeforum WHERE userid='$user[userid]'");
      $DB_site->query("DELETE FROM subscribethread WHERE userid='$user[userid]'");
      $DB_site->query("DELETE FROM session WHERE userid='$user[userid]'");
        $countDelete++;
        $inactiveUsersDeleted .=$user[username]."\n";
      echo("Deleted ". $user[username]."<br>");

Replace With: (Change X as above)
Code:

if ($user[posts] < X) {
      if($user[emailDate]<$dateCut) {
      $DB_site->query("UPDATE post SET username='".addslashes($user[username])."',userid=0 WHERE userid='$user[userid]'");
      $DB_site->query("DELETE FROM user WHERE userid='$user[userid]'");
      $DB_site->query("DELETE FROM userfield WHERE userid='$user[userid]'");
      $DB_site->query("DELETE FROM access WHERE userid='$user[userid]'");
      $DB_site->query("DELETE FROM calendar_events WHERE userid='$user[userid]'");
      $DB_site->query("DELETE FROM customavatar WHERE userid='$user[userid]'");
      $DB_site->query("DELETE FROM moderator WHERE userid='$user[userid]'");
      $DB_site->query("DELETE FROM privatemessage WHERE userid='$user[userid]'");
      $DB_site->query("DELETE FROM subscribeforum WHERE userid='$user[userid]'");
      $DB_site->query("DELETE FROM subscribethread WHERE userid='$user[userid]'");
      $DB_site->query("DELETE FROM session WHERE userid='$user[userid]'");
        $countDelete++;
        $inactiveUsersDeleted .=$user[username]."\n";
      echo("Deleted ". $user[username]."<br>");
}


Limitter 03-01-2003 07:24 AM

Nice great hack !!

THX

afterlab 03-04-2003 11:40 AM

So far, this script is working good. I'll give you an update in 15 days. ;)

TheEDIGuy 03-05-2003 02:08 AM

Amykhar, thank you for a great hack! I'm installed.

One quick question, before I cron this. Let's say I want to e-mail users who haven't visited in 30 days. Would I cron this to run every 30 days, or is it safe to run every day? If I run it every day, would it re-email the same people again, or would it only e-mail people who've reached their 30 days since the last run?

Does that make any sense, or is it just too late at night for me to type coherently?

amykhar 03-05-2003 02:12 AM

You can run it every day. It won't email them again for another 30 days.

Amy

TheEDIGuy 03-05-2003 10:55 AM

Excellent. I was pretty sure that's how it worked, but wanted to make sure before I cron'ed it.

Thank you for an excellent hack!

Kmaster 03-05-2003 03:01 PM

possible change del user i/o move to banned group. cool hack....thx!!!

djr 03-07-2003 08:38 PM

Hi Amy,

It's me again.. in a few days (Tuesday, 11th of March) I'll be losing approx. 1750 users :( They are inactive for over a year (my setting), I know, but is it possible to adjust the hack so they will be getting one last e-mail warning a day before the actual pruning?

Thanks for considering and the great updates!

@ hypedave: nice idea, updated the hack!

- djr


All times are GMT. The time now is 07:31 AM.

Powered by vBulletin® Version 3.8.12 by vBS
Copyright ©2000 - 2025, vBulletin Solutions Inc.

X vBulletin 3.8.12 by vBS Debug Information
  • Page Generation 0.01314 seconds
  • Memory Usage 1,754KB
  • Queries Executed 10 (?)
More Information
Template Usage:
  • (1)ad_footer_end
  • (1)ad_footer_start
  • (1)ad_header_end
  • (1)ad_header_logo
  • (1)ad_navbar_below
  • (6)bbcode_code_printable
  • (2)bbcode_quote_printable
  • (1)footer
  • (1)gobutton
  • (1)header
  • (1)headinclude
  • (6)option
  • (1)pagenav
  • (1)pagenav_curpage
  • (4)pagenav_pagelink
  • (1)post_thanks_navbar_search
  • (1)printthread
  • (10)printthreadbit
  • (1)spacer_close
  • (1)spacer_open 

Phrase Groups Available:
  • global
  • postbit
  • showthread
Included Files:
  • ./printthread.php
  • ./global.php
  • ./includes/init.php
  • ./includes/class_core.php
  • ./includes/config.php
  • ./includes/functions.php
  • ./includes/class_hook.php
  • ./includes/modsystem_functions.php
  • ./includes/class_bbcode_alt.php
  • ./includes/class_bbcode.php
  • ./includes/functions_bigthree.php 

Hooks Called:
  • init_startup
  • init_startup_session_setup_start
  • init_startup_session_setup_complete
  • cache_permissions
  • fetch_threadinfo_query
  • fetch_threadinfo
  • fetch_foruminfo
  • style_fetch
  • cache_templates
  • global_start
  • parse_templates
  • global_setup_complete
  • printthread_start
  • pagenav_page
  • pagenav_complete
  • bbcode_fetch_tags
  • bbcode_create
  • bbcode_parse_start
  • bbcode_parse_complete_precache
  • bbcode_parse_complete
  • printthread_post
  • printthread_complete