Go Back   vb.org Archive > Community Discussions > Modification Requests/Questions (Unpaid)
  #1  
Old 10-02-2006, 07:34 PM
G_Man G_Man is offline
 
Join Date: Feb 2006
Location: Washington State
Posts: 264
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default Help writing a query

I want to set up a cron job for this, but not sure how to do the query.

I want to reduce every users Rep by a certain amount, say 10, who has not logged in for over 24 hours.

Guessing it involves updating the User Rep table using a conditional of useractivity, but...

I'd appreciate anyone who KNOWS how to write this query so I can insert into a daily cron.

Cheers,

G_Man.
Reply With Quote
  #2  
Old 10-05-2006, 11:15 PM
G_Man G_Man is offline
 
Join Date: Feb 2006
Location: Washington State
Posts: 264
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

<font size="2">umm... help?</font>
Reply With Quote
  #3  
Old 10-06-2006, 12:22 AM
Adrian Schneider's Avatar
Adrian Schneider Adrian Schneider is offline
 
Join Date: Jul 2004
Posts: 2,528
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Not tested...
PHP Code:
<?php

if (!is_object($vbulletin->db))
{
    exit;
}

$removePoints 10;
$daysInactive 1;

$cutOff TIMENOW - (86400 $daysInactive);

$result $vbulletin->db->query_read("
    SELECT userid
    FROM " 
TABLE_PREFIX "user
    WHERE lastactivity < 
$cutOff
"
);

while (
$user $vbulletin->db->fetch_array($result))
{
    
$vbulletin->db->query_write("
        UPDATE " 
TABLE_PREFIX "user
        SET reputation = reputation - 
$removePoints
        WHERE userid = 
$user[userid]
    "
);
}

?>
You'll have to update their reputationlevelid as well... don't have time to look into that though.
Reply With Quote
  #4  
Old 10-06-2006, 02:09 AM
G_Man G_Man is offline
 
Join Date: Feb 2006
Location: Washington State
Posts: 264
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Quote:
Originally Posted by SirAdrian
Not tested...
PHP Code:
<?php

if (!is_object($vbulletin->db))
{
    exit;
}

$removePoints 10;
$daysInactive 1;

$cutOff TIMENOW - (86400 $daysInactive);

$result $vbulletin->db->query_read("
    SELECT userid
    FROM " 
TABLE_PREFIX "user
    WHERE lastactivity < 
$cutOff
"
);

while (
$user $vbulletin->db->fetch_array($result))
{
    
$vbulletin->db->query_write("
        UPDATE " 
TABLE_PREFIX "user
        SET reputation = reputation - 
$removePoints
        WHERE userid = 
$user[userid]
    "
);
}

?>
You'll have to update their reputationlevelid as well... don't have time to look into that though.

CHEERS!!

Works a treat.
Reply With Quote
  #5  
Old 10-06-2006, 03:09 AM
Paul M's Avatar
Paul M Paul M is offline
 
Join Date: Sep 2004
Location: Nottingham, UK
Posts: 23,748
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

I'm pretty sure you could reduce the active part to just one query ;

PHP Code:
$days 1;
$points 10;

$cutoff TIMENOW - (86400 $days);

$vbulletin->db->query_write("
    UPDATE "
.TABLE_PREFIX."user
    SET reputation = reputation - 
$points 
    WHERE lastactivity < 
$cutoff 
"
); 
You do realise that if someone doesn't ever login again - then their reputation is just going to get more and more negative each day.
Reply With Quote
  #6  
Old 10-06-2006, 03:42 AM
G_Man G_Man is offline
 
Join Date: Feb 2006
Location: Washington State
Posts: 264
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Quote:
Originally Posted by Paul M
I'm pretty sure you could reduce the active part to just one query ;

PHP Code:
$days 1;
$points 10;

$cutoff TIMENOW - (86400 $days);

$vbulletin->db->query_write("
    UPDATE "
.TABLE_PREFIX."user
    SET reputation = reputation - 
$points 
    WHERE lastactivity < 
$cutoff 
"
); 
You do realise that if someone doesn't ever login again - then their reputation is just going to get more and more negative each day.

Yep... I'll prune them at some point anyway.

Thanks for the alternative code, too, Paul.
Reply With Quote
  #7  
Old 10-23-2006, 07:52 AM
Chicago_VLNU_4s Chicago_VLNU_4s is offline
 
Join Date: Mar 2006
Location: Chicago
Posts: 453
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

interesting.. so where does this go?
Reply With Quote
  #8  
Old 10-23-2006, 07:58 AM
Adrian Schneider's Avatar
Adrian Schneider Adrian Schneider is offline
 
Join Date: Jul 2004
Posts: 2,528
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

As a new cron job probably (new file).
Reply With Quote
Reply

Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump


All times are GMT. The time now is 12:10 PM.


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.04256 seconds
  • Memory Usage 2,249KB
  • Queries Executed 13 (?)
More Information
Template Usage:
  • (1)SHOWTHREAD
  • (1)ad_footer_end
  • (1)ad_footer_start
  • (1)ad_header_end
  • (1)ad_header_logo
  • (1)ad_navbar_below
  • (1)ad_showthread_beforeqr
  • (1)ad_showthread_firstpost
  • (1)ad_showthread_firstpost_sig
  • (1)ad_showthread_firstpost_start
  • (4)bbcode_php
  • (2)bbcode_quote
  • (1)footer
  • (1)forumjump
  • (1)forumrules
  • (1)gobutton
  • (1)header
  • (1)headinclude
  • (1)navbar
  • (3)navbar_link
  • (120)option
  • (8)post_thanks_box
  • (8)post_thanks_button
  • (1)post_thanks_javascript
  • (1)post_thanks_navbar_search
  • (8)post_thanks_postbit_info
  • (8)postbit
  • (8)postbit_onlinestatus
  • (8)postbit_wrapper
  • (1)spacer_close
  • (1)spacer_open
  • (1)tagbit_wrapper 

Phrase Groups Available:
  • global
  • inlinemod
  • postbit
  • posting
  • reputationlevel
  • showthread
Included Files:
  • ./showthread.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/functions_bigthree.php
  • ./includes/class_postbit.php
  • ./includes/class_bbcode.php
  • ./includes/functions_reputation.php
  • ./includes/functions_post_thanks.php 

Hooks Called:
  • init_startup
  • init_startup_session_setup_start
  • init_startup_session_setup_complete
  • cache_permissions
  • fetch_postinfo_query
  • fetch_postinfo
  • fetch_threadinfo_query
  • fetch_threadinfo
  • fetch_foruminfo
  • style_fetch
  • cache_templates
  • global_start
  • parse_templates
  • global_setup_complete
  • showthread_start
  • showthread_getinfo
  • forumjump
  • showthread_post_start
  • showthread_query_postids
  • showthread_query
  • bbcode_fetch_tags
  • bbcode_create
  • showthread_postbit_create
  • postbit_factory
  • postbit_display_start
  • post_thanks_function_post_thanks_off_start
  • post_thanks_function_post_thanks_off_end
  • post_thanks_function_fetch_thanks_start
  • post_thanks_function_fetch_thanks_end
  • post_thanks_function_thanked_already_start
  • post_thanks_function_thanked_already_end
  • fetch_musername
  • postbit_imicons
  • bbcode_parse_start
  • bbcode_parse_complete_precache
  • bbcode_parse_complete
  • postbit_display_complete
  • post_thanks_function_can_thank_this_post_start
  • tag_fetchbit_complete
  • forumrules
  • navbits
  • navbits_complete
  • showthread_complete