Version: 1.00, by Reeve of shinra
Developer Last Online: Jan 2015
Version: 3.5.3
Rating:
Released: 02-15-2006
Last Update: 02-15-2006
Installs: 11
No support by the author.
Points add on for the Profile Commenting System coded by Danny.VBT
This small add on lets you add or deduct points for new profile comments. You can use this with ebux, ucash, or any other system by changing the table and field info in the variable below.
QUICK NOTE: If your actually using decimals, this may round off the users points to the nearest whole #.
This is more or less all I needed but the same code could probably be reused for editing and deleting comments as well. If you want to enchance this in any way, by all means feel free to do so.
Step 1: Create a new phrase (admincp -> languages and phrases -> phrase manager -> add new phrase)
Phrase Type: front end error messages
Product: vbulletin
Varname: error_not_enough_points
Text: Sorry but you do not have enough points to complete this action.
Step 2: Edit the "[Comments] Add Comment" plugin (admincp -> Plugin System -> Plugin Manager)
Step 3: Add this code at the very top.
Change the cost to whatever you would like. Negative #'s deduct points. Postive #'s add points.
Change the table and field your points are stored in. If your are using ebux and do not have a table prefix, leave it alone.
PHP Code:
/* **** Begin Points Hack **** */
// Lets define some variables.
$cost = -10; // use negative numbers to deduct points for adding a comment
// Where are your points stored? This is a default ebux without table prefix.
$pointstable = 'user'; // This is the table where the points are stored
$fieldx = 'ebux'; // This is the field where users points are stored
// OKAY NO MORE EDITING! Lets begin doing points stuff
// Lets see how many points the user has to start with
$userpointsqry = $db->query_first("
SELECT $fieldx FROM $pointstable WHERE userid = " . $vbulletin->userinfo['userid'] . "
");
$userpoints = (int) $userpointsqry + 0;
//Lets do a quick check to see if they have enough points.
if ($cost < 0)
{
if ($userpoints < abs($cost))
{
eval(standard_error(fetch_error('error_not_enough_points')));
}
}
// A little math to add/subtract the cost from the users existing points.
$amt = $userpoints + $cost;
// Lets update the users points now that they have made a comment
$db->query_write("
UPDATE $pointstable SET
$fieldx = '" . $db->escape_string($amt) . "'
WHERE userid = " . $vbulletin->userinfo['userid'] . "
");
/***** End Points Hack *****/
Step 6: Save it and your done!
Show Your Support
This modification may not be copied, reproduced or published elsewhere without author's permission.
It did for me but to be honest, my members were not really using the profile comments hack as much as I would have liked so I stopped using it and this hack unfortunately.
Anyone is more than welcome to pick up on it if they are so inclined. I just dont have the free time to check into it.
I guess nobody every fixed the problem that has happened to various people trying this hack. Shame really, would be a good incentive to be able to give my users a bonus for commenting on others profiles. not much good when it cuts the figure down to the amount it's supposed to add, instead of actually adding it though.
I may have to have a wee look and see if I can figure out the problem myself then, cause I want to use this hack.
It can't be much really, the only bit that changes the dbase is:
$amt = $userpoints + $cost;
to calculate the amount and
UPDATE $pointstable SET
$fieldx = '" . $db->escape_string($amt) . "'
WHERE userid = " . $vbulletin->userinfo['userid'] . "