PDA

View Full Version : Refferal system + rewards V1


Tony
02-02-2011, 04:21 PM
Ref system V1:
I DID NOT DO MUCH TESTING, IF YOU FIND AN ERROR, LET ME KNOW.

How this works?
step1: go into admincp
step2: Site settings
step3: View or Edit Basic Site Settings
step4: Rewards for referrals set the value
step5: Be happy.




Future updates:
rewarding pets
IP address checking to stop abuse.
User must be active for at least X amount of time before the reward is recieved
PM the user telling him/her they were rewarded.
taking suggestions.

database
SQL WILL COME SOON.

add Referrer and Referrals to the end of prefix_users

add refreward and a default value of 0 to prefix_settings






Register.php

First find this:

//Grab the post data from the form
$username = $_POST["username"];
$pass1 = $_POST["pass1"];
$pass2 = $_POST["pass2"];
$email = $_POST["email"];
$tos = $_POST["tos"];
$hidden = $_POST["hidden"];

and change it to this:
//Grab the post data from the form
$refer = $_POST["refer"];
$username = $_POST["username"];
$pass1 = $_POST["pass1"];
$pass2 = $_POST["pass2"];
$email = $_POST["email"];
$tos = $_POST["tos"];
$hidden = $_POST["hidden"];

find this:
$article_title = $regnew;
$article_content = $regnewexplain."<br><form name='form1' method='post' action='register.php'>
<p>Username: <input name='username' type='text' id='username' maxlength='20'></p>
<p>Your username may be up to 20 characters long and may only contain letters, numbers and spaces. </p>
<p>Password: <input name='pass1' type='password' id='pass1' maxlength='20'></p>
<p>Your password may be up to 20 characters long and may contain letters, numbers, spaces and special characters. The use of a special character, such as * or ! is recommended for increased security. </p>
<p>Confirm Password: <input name='pass2' type='password' id='pass2' maxlength='20'></p>
<p>Email Address: <input name='email' type='text' id='email'></p>
<p><input name='tos' type='checkbox' id='tos' value='yes'> I agree to the <a href='tos.php' target='_blank'>Terms of Service</a>.
<input name='hidden' type='hidden' id='hidden' value='goregister'></p>
<p><input type='submit' name='Submit' value='Register'>
</p></form>";

and change to this:
//TMOD added Reffered field.
$article_title = $regnew;
$article_content = $regnewexplain."<br><form name='form1' method='post' action='register.php'>
<p>Username: <input name='username' type='text' id='username' maxlength='20'></p>
<p>Your username may be up to 20 characters long and may only contain letters, numbers and spaces. </p>
<p>Password: <input name='pass1' type='password' id='pass1' maxlength='20'></p>
<p>Your password may be up to 20 characters long and may contain letters, numbers, spaces and special characters. The use of a special character, such as * or ! is recommended for increased security. </p>
<p>Confirm Password: <input name='pass2' type='password' id='pass2' maxlength='20'></p>
Who invited you? Leave blank if no one!
<p>Referrer: <input name='refer' type='text' id='refer'></p>
<p>Email Address: <input name='email' type='text' id='email'></p>
<p><input name='tos' type='checkbox' id='tos' value='yes'> I agree to the <a href='tos.php' target='_blank'>Terms of Service</a>.
<input name='hidden' type='hidden' id='hidden' value='goregister'></p>
<p><input type='submit' name='Submit' value='Register'>
</p></form>";

find this:
if(@eregi("^[_a-z0-9-]+(\.[_a-z0-9-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)*(\.[a-z]{2,3})$", $email)) {

$emailisvalid = "yes";

}

replace with this: *And wasn't working with the SQL so I just have two queries, i'll fix eventually.*
if(@eregi("^[_a-z0-9-]+(\.[_a-z0-9-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)*(\.[a-z]{2,3})$", $email)) {

$emailisvalid = "yes";

}

//TMOD +1 for refferal..
if($refer){
$query = "SELECT value FROM ".$prefix."settings WHERE name = 'refreward'";
$result = mysql_query($query);
$row = mysql_fetch_array($result);
$refreward = $row['value'];

mysql_query("UPDATE ".$prefix."users SET Referrals = Referrals + 1 WHERE username = '$refer'");
mysql_query("UPDATE ".$prefix."users SET dollar = dollar + '$refreward' WHERE username = '$refer'");
}

find:
mysql_query("INSERT INTO ".$prefix."users VALUES ('', '$username', '$pass1','$email','3','1', '$date', '0','','','','','','0')");

and change to:
mysql_query("INSERT INTO ".$prefix."users VALUES ('', '$username', '$pass1','$email','3','1', '$date', '0','','','','','','0', '$refer', '')");

Admin.php
find:

<p>Site Title:
<input name='sitetitle' type='text' id='sitetitle' value='".grabanysetting("browsertitle")."'>
</p>


add:

<p>Site Title:
<input name='sitetitle' type='text' id='sitetitle' value='".grabanysetting("browsertitle")."'>
</p>

This is the amount of gold you want to give out for each refferal.
<p>Rewards for refferals:
<input name='reward' type='text' id='reward' value='".grabanysetting("refreward")."'>
</p>


admpost.php
find:
$sitenamevar = $_POST["sitename"];
$sitenamevar = secure($sitenamevar);

add:
// We are changing the settings for the site...
$rewardvar = $_POST["reward"];
$rewardvar = secure($rewardvar);

$sitenamevar = $_POST["sitename"];
$sitenamevar = secure($sitenamevar);

find:// Everything looks good, update the settings...

$query = "UPDATE ".$prefix."settings SET value='".$sitenamevar."' WHERE name='sitename'";
mysql_query($query);

add:
// Everything looks good, update the settings...

$query = "UPDATE ".$prefix."settings SET value='".$sitenamevar."' WHERE name='sitename'";
mysql_query($query);

$query = "UPDATE ".$prefix."settings SET value='".$rewardvar."' WHERE name='refreward'";
mysql_query($query);

Kyris
02-02-2011, 07:21 PM
To sum up my entire response to you coding this; <3!

Missy Master
02-03-2011, 07:21 AM
you ROCK!!!! thank you!!!

RoconzaArt
02-03-2011, 09:54 AM
Sounds interesting, I may have to try it later.

Tony
02-03-2011, 11:58 AM
No prob :D

Rozel
02-03-2011, 12:32 PM
I'll be sure to try it out. It seems pretty awesome XD I love adding mods to my site, even though I still have like, no pets or plot or anything >_>;

RoconzaArt
02-03-2011, 03:09 PM
Can this be tweaked to reward adoptales? Like 10 gets you X pet?

Tony
02-03-2011, 03:12 PM
Can this be tweaked to reward adoptales? Like 10 gets you X pet?

Yeah, V2 will support much more including preventions of abuse.