Reputation points (+ / -) for new threads and posts

Reputation points (+ / -) for new threads and posts

<div>Hey guys, im not a coder but ive been quickly trying to learn PHP over the 4 weeks ive had VBulletin. This is my first template mod cause ive not learn how to make plugins yet lol. I asked for weeks and weeks on how to do little things that would (when complete) construct my reputation system but know one replied with a respectable answer. Although once id managed to complete it and have it working i decided to share with you guys.

Purpose
I run a music production website where i provide downloads, but they are meant as a priveledge given to comitted members. So, to have access to the downloads section you must have 20 reps/reputation points (set as a rank in adminCP). This is now the share ratio because this mod rewards a rep point to the user who posts a new thread in the download section and deducts a rep point to those who reply to a thread. This will stop an progressive leeching issue, but of course without good moderation may introduce spamming (just a warning).

Modification
Ok down to the coding..

In > */includes/functions_newpost.php

find:
PHP Code:
eval(print_standard_redirect('redirect_postthanks'));
}
else
{
eval(
print_standard_redirect('redirect_duplicatepost', true, true));
}
}
}
}


and, underneath put:
PHP Code:
if ($type == 'thread')//if its a thread and not a post/reply
{
$result = $vbulletin->db->query_first("SELECT reputation FROM user WHERE userid =".$vbulletin->userinfo&#91;'userid'&#93;." ORDER BY userid ASC");
$punkty=$result&#91;'reputation'&#93;+1;//incrase reputation by 1 CHANGE IF REQUIRED
$vbulletin->db->query_write("UPDATE user SET reputation=".$punkty." WHERE userid=".$vbulletin->userinfo&#91;'userid'&#93;);
$senderpermissions=2;
$registry =& $vbulletin;
}
else
//if its anything but a thread, hense; post/reply
{
$result = $vbulletin->db->query_first("SELECT reputation FROM user WHERE userid =".$vbulletin->userinfo&#91;'userid'&#93;." ORDER BY userid ASC");
$punkty=$result&#91;'reputation'&#93;-1;//decreases reputation by 1 CHANGE IF REQUIRED
$vbulletin->db->query_write("UPDATE user SET reputation=".$punkty." WHERE userid=".$vbulletin->userinfo&#91;'userid'&#93;);
$senderpermissions=2;
$registry =& $vbulletin;
}


--
If you want this feature in just a select number of forums you add this around the above:
PHP Code:
if ($foruminfo&#91;forumid&#93; = 4 OR $foruminfo&#91;forumid&#93; =5)

//ABOVE CODE

}


or in a number of chained forums:
<div style="margin:20px; margin-top:5px"> PHP Code:
<div class="alt2"> <div dir="ltr" style="text-align:left;"> <span style="color: #000000"> if ($foruminfo&#91;forumid&#93;>4 AND $foruminfo&#91;forumid<span style="color: #007700">&#93;