Go Back   vb.org Archive > vBulletin 4 Discussion > vB4 Programming Discussions
FAQ Community Calendar Today's Posts Search

Reply
 
Thread Tools Display Modes
  #31  
Old 12-23-2015, 03:59 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
I will have to do some checking on my test site and see how GPC['points'] is returned.
I think the hook is right, just need to figure out what is being returned, so we can use it properly
On my local dev site, it returns the number of points for the infraction being issued.
Reply With Quote
  #32  
Old 12-23-2015, 04:09 PM
Dragonsys's Avatar
Dragonsys Dragonsys is offline
 
Join Date: Jan 2008
Location: DFW, Texas
Posts: 743
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Quote:
Originally Posted by MarkFL View Post
On my local dev site, it returns the number of points for the infraction being issued.
ok, so for a Warning it should return 0 and an Infraction it should be >0 or is it <0?

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

Chris, what version of vBulletin are you running?
Reply With Quote
  #33  
Old 12-23-2015, 04:10 PM
MarkFL's Avatar
MarkFL MarkFL is offline
 
Join Date: Feb 2014
Location: St. Augustine, FL
Posts: 3,853
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Yes for a warning it returns 0 and, for example if I issue a custom infraction for 1 point, it returns 1.
Reply With Quote
  #34  
Old 12-23-2015, 04:14 PM
Dragonsys's Avatar
Dragonsys Dragonsys is offline
 
Join Date: Jan 2008
Location: DFW, Texas
Posts: 743
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Quote:
Originally Posted by MarkFL View Post
Yes for a warning it returns 0 and, for example if I issue a custom infraction for 1 point, it returns 1.
strange, then the code should work. it should have worked by using != 0

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

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
Reply With Quote
  #35  
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
  #36  
Old 12-23-2015, 04:36 PM
Dragonsys's Avatar
Dragonsys Dragonsys is offline
 
Join Date: Jan 2008
Location: DFW, Texas
Posts: 743
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Quote:
Originally Posted by MarkFL View Post
The only issue I can see is with the quotes at the end of the query
Right, that was just checking to see if he was getting a SQL error

Quote:
Originally Posted by MarkFL View Post
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.
I had that and he said ti didn't subtract any points


Quote:
Originally Posted by MarkFL View Post
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.
Correct, I'm trying to see if the basics work, and then figure out why he is having problems with the if statement.
Reply With Quote
  #37  
Old 12-23-2015, 04:46 PM
MarkFL's Avatar
MarkFL MarkFL is offline
 
Join Date: Feb 2014
Location: St. Augustine, FL
Posts: 3,853
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Using the last block of code you posted (with the query edited to remove your test quotes), I tested it on a user on my local dev site who initially had 13 ipoints and 10 rep points. After I issued a 3 point infraction, his ipoints became 16 and his rep became -6490 (which is what we should expect).

This means that at the hook we are using, the ipoints value was still at 13 and $vbulletin->GPC['points'] > 0.

Then I issued that same user a warning, and his rep was unaffected.

The bottom line is the code you posted works flawlessly for me.
Reply With Quote
  #38  
Old 12-23-2015, 05:12 PM
Dragonsys's Avatar
Dragonsys Dragonsys is offline
 
Join Date: Jan 2008
Location: DFW, Texas
Posts: 743
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Quote:
Originally Posted by MarkFL View Post
Using the last block of code you posted (with the query edited to remove your test quotes), I tested it on a user on my local dev site who initially had 13 ipoints and 10 rep points. After I issued a 3 point infraction, his ipoints became 16 and his rep became -6490 (which is what we should expect).

This means that at the hook we are using, the ipoints value was still at 13 and $vbulletin->GPC['points'] > 0.

Then I issued that same user a warning, and his rep was unaffected.

The bottom line is the code you posted works flawlessly for me.
Ok, i wonder why it is not working for Chris then.
Reply With Quote
  #39  
Old 12-23-2015, 05:23 PM
MarkFL's Avatar
MarkFL MarkFL is offline
 
Join Date: Feb 2014
Location: St. Augustine, FL
Posts: 3,853
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Oh, if I had a dollar for every time I have wondered, "Why does it work for me, but not the other user?"
Reply With Quote
  #40  
Old 12-23-2015, 05:28 PM
Dragonsys's Avatar
Dragonsys Dragonsys is offline
 
Join Date: Jan 2008
Location: DFW, Texas
Posts: 743
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Quote:
Originally Posted by MarkFL View Post
Oh, if I had a dollar for every time I have wondered, "Why does it work for me, but not the other user?"
I know
Reply With Quote
Благодарность от:
MarkFL
Reply


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 11:39 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.04438 seconds
  • Memory Usage 2,304KB
  • Queries Executed 11 (?)
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
  • (10)bbcode_quote
  • (1)footer
  • (1)forumjump
  • (1)forumrules
  • (1)gobutton
  • (1)header
  • (1)headinclude
  • (1)navbar
  • (3)navbar_link
  • (120)option
  • (1)pagenav
  • (1)pagenav_curpage
  • (3)pagenav_pagelink
  • (10)post_thanks_box
  • (1)post_thanks_box_bit
  • (10)post_thanks_button
  • (1)post_thanks_javascript
  • (1)post_thanks_navbar_search
  • (1)post_thanks_postbit
  • (10)post_thanks_postbit_info
  • (10)postbit
  • (10)postbit_onlinestatus
  • (10)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_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
  • fetch_musername
  • post_thanks_function_fetch_thanks_end
  • post_thanks_function_thanked_already_start
  • post_thanks_function_thanked_already_end
  • postbit_imicons
  • bbcode_parse_start
  • bbcode_parse_complete_precache
  • bbcode_parse_complete
  • postbit_display_complete
  • post_thanks_function_can_thank_this_post_start
  • post_thanks_function_fetch_thanks_bit_start
  • post_thanks_function_show_thanks_date_start
  • post_thanks_function_show_thanks_date_end
  • post_thanks_function_fetch_thanks_bit_end
  • post_thanks_function_fetch_post_thanks_template_start
  • post_thanks_function_fetch_post_thanks_template_end
  • pagenav_page
  • pagenav_complete
  • tag_fetchbit_complete
  • forumrules
  • navbits
  • navbits_complete
  • showthread_complete