#### Temperated Membership HACK,
#### by C.v. Marle (C.A.vanMarle@inter.NL.net)

#### This hack creates an extra function called Temperated Membership
#### Users are only allowed to post a specific number of posts
#### After that you (as administrator) have give them new credit
#### they can post again

# Some things may differ, because I've a very modified board...
# Sorry... If you can't find any thing, please mail me...
# BACK-UP all your files before editing!!!
# Don't blame me if your board's messed up

[post.cgi]

>> after:

require "ikonmail.lib";      # Require email func ()

>> add:

require "data/tempinfo.cgi"; # Require temperate info

>> after:

    $helpurl = &helpfiles("Making_a_post");
    $helpurl = qq~$helpurl<img src="$imagesurl/images/help_b.gif" border=0></a>~;

>> add:

    &getmember("$inmembername");
	if (($temperate eq 'yes' && $usrpost <= 0) and ($membercode ne 'mo' || $dismo eq 'no') and ($membercode ne 'ad' || $disad eq 'no')) {
            &mischeader("No Posts Left");
		    $output .= qq~
        <table cellpadding=0 cellspacing=0 border=0 width=$tablewidth bgcolor=$tablebordercolor align=center>
            <tr><td>
                <table cellpadding=4 cellspacing=1 border=0 width=100%>
                <tr>
                    <td bgcolor=$titlecolor colspan=2 align=center><font face="$font" color=$titlefontcolor size=2><b>No Posts Left</b></td>
                </tr>
                <tr>
                <td bgcolor=$miscbackone valign=middle colspan=2><font face="$font" color=$fontcolormisc size=1>You have no postcredit left, send an e-mail to the administrator and ask for new post credits.</font>
                </td></tr>
            </table>
        </tr></td></table>
        ~;
	} else {

>> after:

    if($Mode{$action}) { 
        $Mode{$action}->();
        }
        elsif ($action eq "addnew"   && $previewfirst eq "no")  { &addnewthread; }
        elsif ($action eq "addnew"   && $previewfirst eq "yes") { &newthread; }
        elsif ($action eq "addreply" && $previewfirst eq "no")  { &addreply; }
        elsif ($action eq "addreply" && $previewfirst eq "yes") { &reply; }
        else { &error("General&Please only access this script in the correct manner"); }

>> add:

	}

>> after: (3x)

                <td bgcolor=$miscbackone valign=middle><font face="$font" color=$fontcolormisc size=1><b>Password</b></font></td>
                <td bgcolor=$miscbackone valign=middle><input type=password size=20 name="password" value="$inpassword"> &nbsp; <font face="$font" color=$fontcolormisc size=1><a href="$profileprog?action=lostpass">Forgotten your password?</a></font></td>
                </tr><tr>

>> add:

                <td bgcolor=$miscbackone valign=middle><font face="$font" color=$fontcolormisc size=1><b>Post Credit</b></font></td>
                <td bgcolor=$miscbackone valign=middle>$usrpost</td>
                </tr><tr>

>> change:

        open(FILE, ">$filetomake");
        flock(FILE, 2);
        print FILE "$inmembername|$password|$membertitle|$membercode|$numberofposts|$emailaddress|$showemail|$ipaddress|$homepage|$aolname|$icqnumber|$location|$interests|$joineddate|$lastpostdate|$signature|$timedifference|$privateforums|$useravatar|$misc1|$misc2|$misc3";
        close(FILE);

>> to:

		if ($membercode ne 'mo' && $membercode ne 'ad' && $disadmo eq 'yes') {
			$usrpost--;
		}
		
        open(FILE, ">$filetomake");
        flock(FILE, 2);
        print FILE "$inmembername|$password|$membertitle|$membercode|$numberofposts|$emailaddress|$showemail|$ipaddress|$homepage|$aolname|$icqnumber|$location|$interests|$joineddate|$lastpostdate|$signature|$timedifference|$privateforums|$useravatar|$misc1|$misc2|$misc3|$usrpost";
        close(FILE);

>> change:

        $filetomake = "$ikondir" . "members/$cleanmembername.cgi";
        $filetomake = &stripMETA($filetomake);
        open(FILE, ">$filetomake");
        flock(FILE, 2);
        print FILE "$inmembername|$password|$membertitle|$membercode|$numberofposts|$emailaddress|$showemail|$ipaddress|$homepage|$aolname|$icqnumber|$location|$interests|$joineddate|$lastpostdate|$signature|$timedifference|$privateforums|$useravatar|$misc1|$misc2|$misc3";
        close(FILE);

>> to:

        $filetomake = "$ikondir" . "members/$cleanmembername.cgi";
        $filetomake = &stripMETA($filetomake);
        open(FILE, ">$filetomake");
        flock(FILE, 2);
        print FILE "$inmembername|$password|$membertitle|$membercode|$numberofposts|$emailaddress|$showemail|$ipaddress|$homepage|$aolname|$icqnumber|$location|$interests|$joineddate|$lastpostdate|$signature|$timedifference|$privateforums|$useravatar|$misc1|$misc2|$misc3|$usrpost";
        close(FILE);


[ikon.lib]

>> change:

        ($membername, $password, $membertitle, $membercode, $numberofposts, $emailaddress, $showemail, $ipaddress, $homepage, $aolname, $icqnumber ,$location ,$interests, $joineddate, $lastpostdate, $signature, $timedifference, $privateforums, $useravatar, $misc1, $misc2, $misc3) = split(/\|/,$filedata);

>> to:

        ($membername, $password, $membertitle, $membercode, $numberofposts, $emailaddress, $showemail, $ipaddress, $homepage, $aolname, $icqnumber ,$location ,$interests, $joineddate, $lastpostdate, $signature, $timedifference, $privateforums, $useravatar, $misc1, $misc2, $misc3, $usrpost) = split(/\|/,$filedata);


[profile.cgi]

>> change:

	        print FILE "$inmembername|$newpassword|$membertitle|$membercode|$numberofposts|$newemailaddress|$newshowemail|$ipaddress|$newhomepage|$newaolname|$newicqnumber|$newlocation|$newinterests|$joineddate|$lastpostdate|$newsignature|$newtimedifference|$privateforums|$inuseravatar|$misc1|$misc2|$misc3";

>> to:

	        print FILE "$inmembername|$newpassword|$membertitle|$membercode|$numberofposts|$newemailaddress|$newshowemail|$ipaddress|$newhomepage|$newaolname|$newicqnumber|$newlocation|$newinterests|$joineddate|$lastpostdate|$newsignature|$newtimedifference|$privateforums|$inuseravatar|$misc1|$misc2|$misc3|$usrpost";


[register.cgi]

>> after:

require "ikonmail.lib";      # Require styles info

>> add:

require "data/tempinfo.cgi"; # Require temperate info

>> after:

        if ($allowregister eq "fail") {
            print header(); &error("Registering&Error, user already exists. Please go back and correct");
            }

>> add:

		if ($membercode ne 'mo' && $membercode ne 'ad' && $disadmo eq 'yes') {
			$usrpost--;
		}

>> change:

        print FILE "$inmembername|$password|$membertitle|$membercode|$numberofposts|$emailaddress|$showemail|$ipaddress|$homepage|$aolname|$icqnumber|$location|$interests|$joineddate|$lastpostdate|$signature|$timedifference|$privateforums|$useravatar|$misc1|$misc2|$misc3";

>> to:

        print FILE "$inmembername|$password|$membertitle|$membercode|$numberofposts|$emailaddress|$showemail|$ipaddress|$homepage|$aolname|$icqnumber|$location|$interests|$joineddate|$lastpostdate|$signature|$timedifference|$privateforums|$useravatar|$misc1|$misc2|$misc3|$usrpost";


[setmembers.cgi]

>> after:

require "data/styles.cgi";   # Require styles info

>> add:

require "data/tempinfo.cgi"; # Require temperate info  

>> after:

    <tr>
    <td bgcolor=#FFFFFF valign=middle><font face=verdana color=#333333 size=1><b>Total Posts:</b></font></td>
    <td bgcolor=#FFFFFF valign=middle><font face=verdana color=#333333 size=1>$numberofposts</font></td></tr>

>> add:

    <tr>
    <td bgcolor=#FFFFFF valign=middle><font face=verdana color=#333333 size=1><b>Postcredit:</b></font></td>
    <td bgcolor=#FFFFFF valign=middle><font face=verdana color=#333333 size=1>$usrpost</font></td></tr>


>> after:

	$inmembercode       = $query -> param('membercode');

>> add:

	$inusrpost          = $query -> param('usrpost');


>> change:

        print FILE "$membername|$innewpassword|$inmembertitle|$inmembercode|$innumberofposts|$inemailaddress|$showemail|$ipaddress|$inhomepage|$inaolname|$inicqnumber|$inlocation|$interests|$joineddate|$lastpostdate|$signature|$intimedifference|$allowedforums2|$useravatar|$misc1|$misc2|$misc3";

>> to:

        print FILE "$membername|$innewpassword|$inmembertitle|$inmembercode|$innumberofposts|$inemailaddress|$showemail|$ipaddress|$inhomepage|$inaolname|$inicqnumber|$inlocation|$interests|$joineddate|$lastpostdate|$signature|$intimedifference|$allowedforums2|$useravatar|$misc1|$misc2|$misc3|$inusrpost";

>> after:

    <tr>
    <td bgcolor=#FFFFFF><font face=verdana color=#333333 size=1><b>Number of posts:</b></td>
    <td bgcolor=#FFFFFF><input type=text size=20 name="numberofposts" value="$numberofposts"></td>
    </tr>

>> add:

    <tr>
    <td bgcolor=#FFFFFF><font face=verdana color=#333333 size=1><b>Post Credit:</b></td>
    <td bgcolor=#FFFFFF><input type=text size=4 name="usrpost" value="$usrpost"> &nbsp;<input type=button value=reset name=resetpost onClick="usrpost.value=$tempposts"></td>
    </tr>


[ikonadmin.lib]

>> change:

    <td bgcolor=#FFFFFF><font face=verdana size=2 color=#333333>
    &raquo; <a href="$stylesprog">Styles set-up</a><br>
    &raquo; <a href="$tempprog">Temperate set-up</a><br>
    &raquo; <a href="$varsprog">Variables set-up</a><br>
    &raquo; <a href="$membertitlesprog">Member titles set-up</a><br>
    &raquo; <a href="setbadwords.cgi">Bad word filter set-up</a>
    </td></tr>

>> to:

    <td bgcolor=#FFFFFF><font face=verdana size=2 color=#333333>
    &raquo; <a href="$stylesprog">Styles set-up</a><br>
    &raquo; <a href="$tempprog">Temperate set-up</a><br>
    &raquo; <a href="$tempusrprog">Temperated members</a><br>
    &raquo; <a href="$varsprog">Variables set-up</a><br>
    &raquo; <a href="$membertitlesprog">Member titles set-up</a><br>
    &raquo; <a href="setbadwords.cgi">Bad word filter set-up</a>
    </td></tr>

[data/progs.cgi]

>> add before 1; :
$tempprog = "settemp.cgi";
$tempusrprog = "settempusr.cgi";