Thread: Infraction Hook
View Single Post
  #32  
Old 12-23-2015, 04:26 PM
MarkFL's Avatar
MarkFL MarkFL is offline
 
Join Date: Feb 2014
Location: St. Augustine, FL
Posts: 3,853
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Quote:
Originally Posted by Dragonsys View Post
strange, then the code should work. it should have worked by using != 0
This is the last block of code you posted:

PHP Code:
global $vbulletin$db$userinfo;

if (
$vbulletin->GPC['points'] > 0) {
    
$points $userinfo['ipoints'];
    
$rep $userinfo['reputation'];

    if (
$points 0)
    {
        
$newrep = ($rep $points*500);
    }
    else
    {
        
$newrep = ($rep 150);
    }

    
$vbulletin->db->query_write("
        UPDATE " 
TABLE_PREFIX "user
        SET reputation = " 
$newrep "
        WHERE userid = " 
$userinfo['userid'] .""
    
);

The only issue I can see is with the quotes at the end of the query...I would write:

PHP Code:
global $vbulletin$db$userinfo;

if (
$vbulletin->GPC['points'] > 0) {
    
$points $userinfo['ipoints'];
    
$rep $userinfo['reputation'];

    if (
$points 0)
    {
        
$newrep = ($rep $points*500);
    }
    else
    {
        
$newrep = ($rep 150);
    }

    
$vbulletin->db->query_write("
        UPDATE " 
TABLE_PREFIX "user
        SET reputation = " 
$newrep "
        WHERE userid = " 
$userinfo['userid']
    );

What this should do is if a user is being issue a warning, nothing happens. If they are being issued an infraction, then if prior to the current infraction they have current active points, they will have 500 rep points deducted per current active infraction points, otherwise their rep will simply be reduced by 150.

--------------- Added [DATE]1450895509[/DATE] at [TIME]1450895509[/TIME] ---------------

Quote:
Originally Posted by Dragonsys View Post
...Ok, let's try removing some of the unneeded code and just getting the basics.

PHP Code:
global $vbulletin$db$userinfo;

    if (
$userinfo['ipoints'] > 0)
    {
        
$newrep = ($userinfo['reputation'] - $userinfo['ipoints']*500);
    }
    else
    {
        
$newrep = ($userinfo['reputation'] - 150);
    }

    
$vbulletin->db->query_write("
        UPDATE " 
TABLE_PREFIX "user
        SET reputation = " 
$newrep "
        WHERE userid = " 
$userinfo['userid']
    ); 
Does this work? It should subtract points for Warning & Infraction
That will only take into account a user's prior active infraction points, so there will be no difference in what's done between a warning and an infraction being issued.
Reply With Quote
 
X vBulletin 3.8.12 by vBS Debug Information
  • Page Generation 0.01093 seconds
  • Memory Usage 1,811KB
  • Queries Executed 11 (?)
More Information
Template Usage:
  • (1)SHOWTHREAD_SHOWPOST
  • (1)ad_footer_end
  • (1)ad_footer_start
  • (1)ad_header_end
  • (1)ad_header_logo
  • (1)ad_navbar_below
  • (3)bbcode_php
  • (2)bbcode_quote
  • (1)footer
  • (1)gobutton
  • (1)header
  • (1)headinclude
  • (6)option
  • (1)post_thanks_box
  • (1)post_thanks_button
  • (1)post_thanks_javascript
  • (1)post_thanks_navbar_search
  • (1)post_thanks_postbit_info
  • (1)postbit
  • (1)postbit_onlinestatus
  • (1)postbit_wrapper
  • (1)spacer_close
  • (1)spacer_open 

Phrase Groups Available:
  • global
  • postbit
  • reputationlevel
  • showthread
Included Files:
  • ./showpost.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
  • showpost_start
  • bbcode_fetch_tags
  • bbcode_create
  • postbit_factory
  • showpost_post
  • 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
  • showpost_complete