Go Back   vb.org Archive > Community Discussions > Modification Requests/Questions (Unpaid)
Prev Previous Post   Next Post Next
  #7  
Old 10-22-2001, 06:11 AM
Palmer ofShinra's Avatar
Palmer ofShinra Palmer ofShinra is offline
 
Join Date: Oct 2001
Location: Vancouver, BC, Canada
Posts: 171
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Well, after some time, I threw a simple version of this hack together for our board.

It's nothing fancy and pretty well completely tweaked for our specific setup.

But really, it's quite simple.

The short way to do it...

Add a Custom User Field. Call it Bonus Points or something.

Remember which field number it is (ours was 5, the first custom field we made)

Now, edit the Postbit template.
Right after where it says
Posts: $post[posts]

add
[pre]<br><a href="http://www.myboard.com/board/mod/points.php?action=points&userid=$post[userid]" target=_blank>Points: $post[field5]</a>[/pre]
(change field5 to whichever number matches)

This displays the total points the user has and adds a link (opening in a new window) to give them points.

Then points.php should look something like this
PHP Code:
<?php

error_reporting
(7);

require(
"./global.php");

cpheader("<title>Your Title Here</title>");
echo 
"<p>";

$perms=getpermissions();
if (!
$perms[ismoderator] and !$ismod=$DB_site->query_first("SELECT * FROM moderator WHERE userid=$bbuserinfo[userid]")) {
    echo 
"<p>You do not have permission to do this!</p>";
    exit;
  }
if (
$action=="points") {
$user=$DB_site->query_first("SELECT username FROM user WHERE userid='$userid'");
doformheader("points","dopoints");
maketableheader("Give Points to $user[username]");
makehiddencode("userid",$userid);
makehiddencode("username",$user[username]);
makeinputcode("Points to give","amount","");
doformfooter("Submit Points");
}

if (
$HTTP_POST_VARS['action']=="dopoints") {
$userpointstr=$DB_site->query_first("SELECT field5 FROM userfield WHERE userid=$userid");
$userpoints = (int) $userpointstr[field5];
$amount = (int) $amount;
$pointstr = ($userpoints $amount);
$DB_site->query("UPDATE userfield SET field5='$pointstr' WHERE userid=$userid");
echo 
"$username has been given $amount Points successfully.<br>";
}

cpfooter();
?>
Put this PHP file, named points.php, into your MOD folder.

Now that you have that... you have your basic Points giving and displaying down.
You can use the query

$userpointstr=$DB_site->query_first("SELECT field5 FROM userfield WHERE userid=$userid");

to fetch a user's current points anytime... what you do with that number is up to you.

On our fr\orum, the points (Called "Gil") are used as a virtual currency to buy things like custom titles and avatars.
I have a completely automated system for that set up too.
Reply With Quote
 

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 09:55 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.05860 seconds
  • Memory Usage 3,012KB
  • Queries Executed 12 (?)
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)bbcode_code
  • (1)bbcode_php
  • (1)bbcode_quote
  • (1)footer
  • (1)forumjump
  • (1)forumrules
  • (1)gobutton
  • (1)header
  • (1)headinclude
  • (1)navbar
  • (3)navbar_link
  • (120)option
  • (27)post_thanks_box
  • (27)post_thanks_button
  • (1)post_thanks_javascript
  • (1)post_thanks_navbar_search
  • (27)post_thanks_postbit_info
  • (27)postbit
  • (17)postbit_onlinestatus
  • (27)postbit_wrapper
  • (1)showthread_list
  • (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_threadedmode.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_threaded
  • showthread_threaded_construct_link
  • 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