============================================================================================================================
Modification Name: Karma

Version: 3.0

Author: GuldantheWarlock (GuldantheWarlock@xmbgarage.com)

Based on Karma v1.5 by FunForum

Last Updated: April 25, 2010

Description:
This modification will add/subtract Karma points for each member.
This modification will allow authorized members to give or remove Karma points for users.
Karma points will be displayed in profiles, posts and the members list with a Karma image displayed in posts and profiles after a set number of Karma points is reached.

Supported Version: XMB 1.9.5 Nexus SP1

Notes: This modification is released under the GPL License v3. A copy is provided with this software package.

Please backup your files before installing this modificatioin.
Neither XMBGarage nor the author can be held  responsible if your board stops functioning properly due to you installing this modification.
============================================================================================================================
=======
Step 1:
=======

Upload the file 'install.php' from the 'Contents' folder to your forum directory and run install.php by directing your browser to it.

Example: http://www.domain.ext/forum/install.php

============================================================================================================================
=======
Step 2:
=======
=======================
Edit File: lang/English.lang.php
=======================
========================
Add To End Of File Above  ?>
========================

// Karma - Member Rating System Mod Begin
$lang['karma_00'] = 'Karma Settings';
$lang['karma_01'] = '-Karma';
$lang['karma_02'] = '+Karma';
$lang['karma_03'] = '<em>No Rating</em>';
$lang['karma_04'] = '*karma* Rating: *rating*';
$lang['karma_05'] = "You have successfully edited $member's *karma*.";
$lang['karma_06'] = "Sorry! You are not allowed to edit $member's *karma*.<br />Take note that time restrictions may be in place.<br />Also remember that you cannot edit your own Karma!";
$lang['karma_07'] = 'No member specified...';
$lang['karma_08'] = 'No action specified...';
$lang['karma_09'] = '|';
$lang['karma_10'] = 'Edit';
$lang['karma_11'] = 'Settings';
$lang['karma_12'] = 'Karma Logs';
$lang['karma_13'] = 'Select a member:';
$lang['karma_14'] = "View who has edited this member's Karma";
$lang['karma_15'] = "View whose Karma this member has edited";
$lang['karma_16'] = 'View all Karma logs';
$lang['karma_17'] = 'ID';
$lang['karma_18'] = 'From';
$lang['karma_19'] = 'To';
$lang['karma_20'] = 'Amount';
$lang['karma_21'] = 'Mode';
$lang['karma_22'] = 'Datestamp';
$lang['karma_23'] = '(+Karma)';
$lang['karma_24'] = '(-Karma)';
$lang['karma_25'] = ' ... Error';
$lang['karma_26'] = ' ... Error: Time restrictions';
$lang['karma_27'] = 'Enabled';
$lang['karma_28'] = 'Disabled';
$lang['karma_29'] = 'Yes';
$lang['karma_30'] = 'No';
$lang['karma_31'] = 'Karma Status';
$lang['karma_32'] = 'Karma Name';
$lang['karma_33'] = 'Increment';
$lang['karma_34'] = 'Use Images when displaying Karma?';
$lang['karma_35'] = 'If the above question has been answered with "Yes", please configure these options as well:';
$lang['karma_36'] = 'Image to be used when negative Karma';
$lang['karma_37'] = 'Image to be used when positive Karma';
$lang['karma_38'] = 'For how many points do you want an image to show up?';
$lang['karma_39'] = 'After how many images should a linebreak occur (a "<br />" tag be placed) ?';
$lang['karma_40'] = '<strong>Note:</strong> Cannot be empty, and cannot be 0.';
$lang['karma_41'] = 'Allow users to edit other users Karma if they have XX Karma points themselves. 0 = N/A';
$lang['karma_42'] = 'Allow users to edit other users karma if they have XX amount of posts themselves. 0 = N/A';
$lang['karma_43'] = 'Input user statuses and/or usernames that are allowed to edit Karma, if not allowed elsewhere.';
$lang['karma_44'] = '<strong>Note:</strong> Place a comma between entries<br /><strong>Example:</strong> Member, Moderator, Super Moderator, Administrator, Super Administrator, Bill, John, Susie';
$lang['karma_45'] = 'Time restriction before the next edit is allowed';
$lang['karma_46'] = 'Time restrict all EXCEPT (Usernames and/or statuses)';
$lang['karma_47'] = 'Banned Users';
$lang['karma_48'] = '<strong>Note:</strong> Place a comma between entries.';
$lang['karma_49'] = 'Money taken on Negative Karma (-K).';
$lang['karma_50'] = 'Money given on Positive Karma (+K).';
$lang['karma_51'] = '<strong>Note:</strong> Will only work if the Shop has been installed<br />If the Shop has not been installed, or to disable these functions, please set this to 0.';
$lang['karma_52'] = 'This next option is to adjust the COLSPAN in the "misc_mlist_results_none", "misc_mlist_multipage" and "misc_mlist_separator" templates when you turn this feature On/Off.<br />In the installation instructions you were asked to replace the COLSPAN in these templates. What number used to be there? Enter what it said right here.<br />As the default the standard value has been set for you.';
$lang['karma_53'] = 'Number of Member List Columns';
$lang['karma_54'] = 'The "'.$lang['karma_33'].'" must be a number...';
$lang['karma_55'] = 'The "'.$lang['karma_38'].'" must be a number...';
$lang['karma_56'] = 'The "'.$lang['karma_39'].'" must be a number...';
$lang['karma_57'] = 'The "'.$lang['karma_41'].'" must be a number...';
$lang['karma_58'] = 'The "'.$lang['karma_42'].'" must be a number...';
$lang['karma_59'] = 'The "'.$lang['karma_45'].'" must be a number...';
$lang['karma_60'] = 'The COLSPAN for the "misc_mlist_results_none", "misc_mlist_multipage" and "misc_mlist_separator" templates must be a number...';
$lang['karma_61'] = 'Karma Settings Updated Successfully';
$lang['karma_62'] = 'There were some errors. The Karma Settings were Updated Successfully, except for the ones mentioned in the error log shown above.';
$lang['karma_63'] = 'Click here to continue...';
$lang['karma_64'] = 'Seconds';
$lang['karma_65'] = 'Minutes';
$lang['karma_66'] = 'Hours';
$lang['karma_67'] = 'Days';
// Karma - Member Rating System Mod End

============================================================================================================================
=======
Step 3:
=======
=================
Edit File: header.php
=================
==========
Find Code:
==========

,'forums','logs'

================
Replace Code With:
================

,'forums','karmalog','logs'

============================================================================================================================
=======
Step 4:
=======
===========================
Edit File: include/admin.user.inc.php
===========================
===========================
Find Code (Will Be At End Of File):
===========================

    </td>
    </tr>
    </table>
    </td>
    </tr>
    </table>
    <br />
    <?php

===============
Add Code Above:
===============

    <!-- Karma - Member Rating System Mod Begin -->
    &raquo;&nbsp;<a href="cp.php?action=settings#karma"><?php echo $lang['karma_00']?></a><br />
    <!-- Karma - Member Rating System Mod End -->

==========
Find Code:
==========

    &raquo;&nbsp;<a href="cp2.php?action=cplog"><?php echo $lang['textcplogs']?></a>

================
Replace Code With:
================

    &raquo;&nbsp;<a href="cp2.php?action=cplog"><?php echo $lang['textcplogs']?></a><br />
    <!-- Karma - Member Rating System Mod Begin -->
    &raquo;&nbsp;<a href="cp2.php?action=karmalog"><?php echo $lang['karma_12']?></a><br />
    <!-- Karma - Member Rating System Mod End -->

==========
Find Code:
==========

        $db->query("UPDATE $table_whosonline SET username='$userto' WHERE username='$userfrom'");

==========
Add Below:
==========

        // Karma - Member Rating System Mod Begin
        $db->query("UPDATE $table_karmalog SET fuser='$userto' WHERE fuser='$userfrom'");
        $db->query("UPDATE $table_karmalog SET tuser='$userto' WHERE tuser='$userfrom'");
        // Karma - Member Rating System Mod End

============================================================================================================================
=======
Step 5:
=======
==============
Edit File: cp.php
==============
==========
Find Code:
==========

        $resetSigOn = $resetSigOff = '';
        if($SETTINGS['resetsigs'] == 'on') {
            $resetSigOn = $selHTML;
        } else {
            $resetSigOff = $selHTML;
        }

==========
Add Below:
==========

        // Karma - Member Rating System Mod Begin
        $karmastatuson = $karmastatusoff = '';
        switch($SETTINGS['karma_status']) {
            case 'on':
                $karmastatuson = $selHTML;
                break;
                
            default:
                $karmastatusoff = $selHTML;
        }
        
        $karmaimgson = $karmaimgsoff = '';
        switch($SETTINGS['karma_imgs']) {
            case 'on':
                $karmaimgson = $selHTML;
                break;
                
            default:
                $karmaimgsoff = $selHTML;
                break;
        }
        
        $ktime = explode('|#|', $SETTINGS['karma_timerestrict']);
        $ktimeselect1 = $ktimeselect2 = $ktimeselect3 = $ktimeselect4 = '';
        switch($ktime[1]) {
            case 1:
                $ktimeselect1 = $selHTML;
                break;
                
            case 60:
                $ktimeselect2 = $selHTML;
                break;
                
            case 3600:
                $ktimeselect3 = $selHTML;
                break;
                
            default:
                $ktimeselect4 = $selHTML;
                break;
        }
        
        $lang['karma_36'] .= ($SETTINGS['karma_image1'] != '') ? '&nbsp;<img src="'.$THEME['imgdir'].'/'.$SETTINGS['karma_image1'].'" alt="" />' : '';
        $lang['karma_37'] .= ($SETTINGS['karma_image2'] != '') ? '&nbsp;<img src="'.$THEME['imgdir'].'/'.$SETTINGS['karma_image2'].'" alt="" />' : '';
        // Karma - Member Rating System Mod End

==========
Find Code:
==========

        <tr>
        <td class="ctrtablerow" bgcolor="<?php echo $altbg2?>" colspan="2"><input class="submit" type="submit" name="settingsubmit" value="<?php echo $lang['textsubmitchanges']?>" /></td>
        </tr>

===============
Add Code Above:
===============
        
        <!-- Karma - Member Rating System Mod Begin -->
        <tr class="category">
        <td colspan="2"><strong><font color="<?php echo $cattext?>">&raquo;&nbsp;<?php echo $lang['karma_00']?></font></strong><a id="karma"></a></td>
        </tr>
        <?php
        printsetting1($lang['karma_31'], 'karmastatusnew', $karmastatuson, $karmastatusoff);
        printsetting2($lang['karma_32'], 'karmatitlenew', $SETTINGS['karma_title'], 50);
        printsetting2($lang['karma_33'], 'karmaincnew', $SETTINGS['karma_increment'], 5);
        printsetting1($lang['karma_34'], 'karmaimgsnew', $karmaimgson, $karmaimgsoff);
        printsetting2($lang['karma_36'], 'karmaimg1new', $SETTINGS['karma_image1'], 30);
        printsetting2($lang['karma_37'], 'karmaimg2new', $SETTINGS['karma_image2'], 30);
        printsetting2($lang['karma_38'], 'karmastarnew', $SETTINGS['karma_star'], 5);
        printsetting2($lang['karma_39'].'<br />'.$lang['karma_40'], 'karmaaddbrnew', $SETTINGS['karma_addbr'], 5);
        printsetting2($lang['karma_41'], 'karmabynum', $SETTINGS['karma_bynum'], 5);
        printsetting2($lang['karma_42'], 'karmabypost', $SETTINGS['karma_bypost'], 5);
        printsetting4($lang['karma_43'].'<br />'.$lang['karma_44'], 'karmaallownew', $SETTINGS['karma_allow'], 5);
        ?>
        <tr>
        <td class="tablerow" bgcolor="<?php echo $THEME['altbg1']?>"><?php echo $lang['karma_45']?></td>
        <td class="tablerow" bgcolor="<?php echo $THEME['altbg2']?>"><input type="text" name="karmatimer1" maxlength="20" size="5" value="<?php echo $ktime[0]?>" />&nbsp;&nbsp;&nbsp;
        <select name="karmatimer2">
        <option value="1" <?php echo $ktimeselect1?>><?php echo $lang['karma_64']?></option>
        <option value="60" <?php echo $ktimeselect2?>><?php echo $lang['karma_65']?></option>
        <option value="3600" <?php echo $ktimeselect3?>><?php echo $lang['karma_66']?></option>
        <option value="86400" <?php echo $ktimeselect4?>><?php echo $lang['karma_67']?></option>
        </select></td>
        </tr>
        <?php
        printsetting4($lang['karma_46'], 'karmatimegroupnew', $SETTINGS['karma_timegroup']);
        printsetting4($lang['karma_47'].'<br />'.$lang['karma_48'], 'karmabannew', $SETTINGS['karma_banuser']);
        printsetting2($lang['karma_49'].'<br />'.$lang['karma_51'], 'karmamoneysubnew', $SETTINGS['karma_moneysub'], 5);
        printsetting2($lang['karma_50'].'<br />'.$lang['karma_51'], 'karmamoneyaddnew', $SETTINGS['karma_moneyadd'], 5);
        printsetting2($lang['karma_52'], 'karmacolspannew', $SETTINGS['karma_ma'], 5);
        ?>
        <!-- Karma - Member Rating System Mod End -->

==========
Find Code:
==========

        $resetSigNew = ($resetSigNew == 'on') ? 'on' : 'off';

==============
Add CodeBelow:
==============

        // Karma - Member Rating System Mod Begin
        $karmastatusnew = ($karmastatusnew == 'on') ? 'on' : 'off';
        $karmaimgsnew = ($karmaimgsnew == 'on') ? 'on' : 'off';
        $karmaincnew = is_numeric($karmaincnew) ? (int) $karmaincnew : 1;
        $karmastarnew = is_numeric($karmastarnew) ? (int) $karmastarnew : 1;
        $timerestrictnew = $karmatimer1.'|#|'.$karmatimer2;
        // Karma - Member Rating System Mod End

==========
Find Code:
==========

        $db->query("UPDATE $table_settings SET

========================
Add To End Of Line Before  ");
========================

, karma_title='$karmatitlenew', karma_status='$karmastatusnew', karma_increment='$karmaincnew', karma_image1='$karmaimg1new', karma_image2='$karmaimg2new', karma_star='$karmastarnew', karma_addbr='$karmaaddbrnew', karma_bynum='$karmabynum', karma_bypost='$karmabypost', karma_allow='$karmaallownew', karma_timerestrict='$timerestrictnew', karma_timegroup='$karmatimegroupnew', karma_banuser='$karmabanusernew', karma_moneysub='$karmamoneysubnew', karma_moneyadd='$karmamoneyaddnew', karma_ma='$karmacolspannew', karma_imgs='$karmaimgsnew'

==========
Find Code:
==========

        echo "<tr bgcolor=\"$altbg2\" class=\"ctrtablerow\"><td>$lang[textsettingsupdate]</td></tr>";

===============
Add Code Below:
===============

        redirect("cp.php?action=settings", 2, X_REDIRECT_JS);

==========
Find Code:
==========

            <td><strong><font color="<?php echo $cattext?>"><?php echo $lang['textposts']?></font></strong></td>

===============
Add Code Below:
===============

            <!-- Karma - Member Rating System Mod Begin -->
            <td><strong><font color="<?php echo $cattext?>"><?php echo $SETTINGS['karma_title']?></font></strong></td>
            <!-- Karma - Member Rating System Mod End -->

==========
Find Code:
==========

                <td><input type="text" size="3" name="postnum<?php echo $member['uid']?>" value="<?php echo $member['postnum']?>"></td>

===============
Add Code Below:
===============

                <!-- Karma - Member Rating System Mod Begin -->
                <td><input type="text" size="3" name="karma<?php echo $member['uid']?>" value="<?php echo $member['karma']?>"></td>
                <!-- Karma - Member Rating System Mod End -->

==========
Find Code:
==========

            $postnum = "postnum".$mem['uid'];
            $postnum = isset($_POST[$postnum]) ? $_POST[$postnum] : '';

===============
Add Code Below:
===============

            // Karma - Member Rating System Mod Begin
            $karma = 'karma'.$mem['uid'];
            $karma = isset($_POST[$karma]) ? $_POST[$karma] : 0;
            // Karma - Member Rating System Mod End

==========
Find Code:
==========

                    $db->query("UPDATE $table_members SET ban='$banstatus', status='$to[status]', postnum='$postnum'

==============
Add Code After:
==============

, karma='$karma'

==========
Find Code:
==========

colspan="7"

================
Replace Code With:
================

colspan="8"

============================================================================================================================
=======
Step 6:
=======
==============
Edit File: cp2.php
==============
==========
Find Code:
==========

} elseif ($action == "templates") {

===============
Add Code Above:
===============

// Karma: Member Rating System Mod Begin
} elseif ($action == 'karmalog') {
    $view = isset($view) ? $view : '';
    $page  = (isset($page) && is_numeric($page)) ? (int) $page : 1;
    $start = 0;
    $lpp   = 30;

    if ($page > 1) {
        $start = ($page * $lpp);
    }
    
    $where = '';
    switch($view) {
        case 'all':
            break;
            
        case 'edited':
            $uid = (isset($uid) && is_numeric($uid)) ? (int) $uid : 0;
            if ($uid === 0) {
                redirect('cp2.php?action=karmalog', 0);
                exit;
            }
            
            $where = " WHERE (mode='add' OR mode='sub') AND fuid = ".$uid;
            break;
            
        case 'editedby':
            $uid = (isset($uid) && is_numeric($uid)) ? (int) $uid : 0;
            if ($uid === 0) {
                redirect('cp2.php?action=karmalog', 0);
                exit;
            }
            
            $where = " WHERE (mode='add' OR mode='sub') AND tuid = ".$uid;
            break;
    }
    
    if ($view != '') {
        $logcount = $db->result($query = $db->query("SELECT COUNT(kid) FROM $table_karmalog$where"), 0);
        $db->free_result($query);
    
        $multipage = '';
        if (($multi = multi($logcount, $lpp, $page, 'cp2.php?action=karmalog')) !== false) {
            $multipage = '<table cellspacing="0" cellpadding="0" border="0" width="'.$THEME['tablewidth'].'" align="center"><tr><td bgcolor="'.$THEME['bordercolor'].'"><table border="0" cellspacing="'.$THEME['borderwidth'].'" cellpadding="'.$THEME['tablespace'].'" width="100%"><tr><td bgcolor="'.$THEME['altbg2'].'"><table width="100%" cellpadding="0" cellspacing="0"><tr><td class="smalltxt" align="left" width="50%">'.$multi.'</td><td class="smalltxt" align="right" width="50%"> </td></tr></table></td></tr></table></td></tr></table>';
        }
        ?>
        <?php echo $multipage?>
        <table cellspacing="0" cellpadding="0" border="0" width="<?php echo $THEME['tablewidth']?>" align="center">
        <tr><td bgcolor="<?php echo $THEME['bordercolor']?>"><table border="0" cellspacing="<?php echo $THEME['borderwidth']?>" cellpadding="<?php echo $THEME['tablespace']?>" width="100%">
        <tr class="tablerow" bgcolor="<?php echo $THEME['altbg2']?>">
        <td><strong><?php echo $lang['karma_17']?></strong></td>
        <td><strong><?php echo $lang['karma_18']?></strong></td>
        <td><strong><?php echo $lang['karma_19']?></strong></td>
        <td><strong><?php echo $lang['karma_20']?></strong></td>
        <td><strong><?php echo $lang['karma_21']?></strong></td>
        <td><strong><?php echo $lang['karma_22']?></strong></td>
        </tr>
        <?php
        $query = $db->query("SELECT * FROM $table_karmalog$where ORDER BY dateline DESC LIMIT $start, $lpp");
        while($log = $db->fetch_array($query)) {
            $bgcolor = ($bgcolor == $THEME['altbg1'] ? $THEME['altbg2'] : $THEME['altbg1']);
            $lmode   = ($log['mode'] == 'add' ? $lang['karma_23'] : ($log['mode'] == 'sub' ? $lang['karma_24'] : ($log['mode'] == 'ptime' ? $lang['karma_23'].$lang['karma_26'] : ($log['mode'] == 'stime' ? $lang['karma_24'].$lang['karma_26'] : ''))));
            $logtime = $log['dateline'] + ($timeoffset * 3600) + ($addtime * 3600);
            ?>
            <tr class="tablerow" bgcolor="<?php echo $bgcolor?>">
            <td><?php echo $log['kid']?></td>
            <td><?php echo $log['fuser']?></td>
            <td><?php echo $log['tuser']?></td>
            <td><?php echo $log['amount']?></td>
            <td><?php echo $lmode?></td>
            <td><?php echo gmdate($dateformat, $logtime)?> / <?php echo gmdate($timecode, $logtime)?></td>
            </tr>
            <?php
        }
        $db->free_result($query);
        ?>
        </table></td>
        </tr>
        </table>
        <?php
        if (!empty($multipage)) {
            echo '<br />'.$multipage;
        }
    } else {
        $ubox   = array();
        $ubox[] = '<select id="userbox" name="userbox">';
        $ubox[] = '<option value="">'.$lang['karma_13'].'</option>';
        $query = $db->query("SELECT uid, username FROM $table_members ORDER BY username ASC");
        while($user = $db->fetch_array($query)) {
            $ubox[] = '<option value="'.$user['uid'].'">'.stripslashes($user['username']).'</option>';
        }
        $db->free_result($query);
        $ubox[] = '</select>';
        $ubox   = implode("\n", $ubox);
        ?>
        <script type="text/javascript">
        function change_view(view) {
            var ubox = document.getElementById('userbox');
            
            if (ubox.options[ubox.selectedIndex].value == '') {
                return;
            }
            
            window.location.replace('cp2.php?action=karmalog&view='+view+'&uid='+ubox.options[ubox.selectedIndex].value);
        }
        </script>
        <table cellspacing="0" cellpadding="0" border="0" width="<?php echo $THEME['tablewidth']?>" align="center">
        <tr><td bgcolor="<?php echo $THEME['bordercolor']?>"><table border="0" cellspacing="<?php echo $THEME['borderwidth']?>" cellpadding="<?php echo $THEME['tablespace']?>" width="100%">
        <tr class="category">
        <td colspan="2"><strong><font color="<?php echo $cattext?>"><?php echo $lang['karma_12']?></font></strong></td>
        </tr>
        <tr class="tablerow" bgcolor="<?php echo $THEME['altbg2']?>">
        <td colspan="2" style="text-align: center;"><a href="cp2.php?action=karmalog&amp;view=all"><?php echo $lang['karma_16']?></a></td>
        </tr>
        <tr class="tablerow" bgcolor="<?php echo $THEME['altbg2']?>">
        <td><?php echo $lang['karma_12']?></td>
        <td><?php echo $ubox?></td>
        </tr>
        <tr class="tablerow" bgcolor="<?php echo $THEME['altbg2']?>">
        <td><input type="button" value="<?php echo $lang['karma_14']?>" onclick="change_view('editedby');return false;" /></td>
        <td><input type="button" value="<?php echo $lang['karma_15']?>" onclick="change_view('edited');return false;" /></td>
        </tr>
        </table></td>
        </tr>
        </table>
        <?php
    }
    // Karma: Member Rating System Mod End

============================================================================================================================
=======
Step 7:
=======
=================
Edit File: member.php
=================
==========
Find Code:
==========

    default:
        nav($lang['error']);
        break;

===============
Add Code Above:
===============

    // Karma - Member Rating System Mod Begin
    case 'karma':
        nav($SETTINGS['karma_title']);
        break;
    // Karma - Member Rating System Mod End

==========
Find Code:
==========

} elseif ($action == "viewpro") {

===============
Add Code Above:
===============

// Karma - Member Rating System Mod Begin
} elseif ($action == 'karma') {
    $order = '';
    if ($SETTINGS['karma_status'] != 'on') {
        nav($lang['error']);
        eval('echo "'.template('header').'";');
        eval('echo "'.template('misc_feature_notavailable').'";');
        end_time();
        eval('echo "'.template('footer').'";');
        exit;
    }

    if (X_GUEST) {
        error($lang['welcomeunregnotify']);
    }

    $member = isset($member) ? $member : NULL;
    if ($member === NULL) {
        error($lang['karma_07']);
    }

    $query = $db->query("SELECT uid, username, status FROM $table_members WHERE username='".rawurldecode($member)."'");
    $mem = $db->fetch_array($query);
    $db->free_result($query);

    if (empty($mem['uid'])) {
        error($lang['nomember']);
    }

    $karma_banuser = '|#|'.str_replace(',', '|#|', str_replace(', ', ',', $SETTINGS['karma_banuser'])).'|#|';
    $karma_allow = '|#|'.str_replace(',', '|#|', str_replace(', ', ',', $SETTINGS['karma_allow'])).'|#|';
    $karma_timegroup = '|#|'.str_replace(',', '|#|', str_replace(', ', ',', $SETTINGS['karma_timegroup'])).'|#|';

    $specialallow = (false !== strpos($karma_allow, '|#|'.$self['username'].'|#|') ? 'yes' : (false !== strpos($karma_allow, '|#|'.$self['status'].'|#|') ? 'yes' : ''));
    $disallow = (false !== strpos($karma_banuser, '|#|'.$self['username'].'|#|') ? true : false);
    $derestrict = (false !== strpos($karma_timegroup, '|#|'.$self['username'].'|#|') ? 'yes' : (false !== strpos($karma_timegroup, '|#|'.$self['status'].'|#|') ? 'yes' : ''));

    $ktime = explode('|#|', $SETTINGS['karma_timerestrict']);
    if (empty($derestrict) && ((time() - $self['ktime']) < ($ktime[0] * $ktime[1]))) {
        $disallow = true;
    }

    $do = isset($do) ? $do : '';
    switch($do) {
        case 'sub':
            $mode = 'sub';
            $shop = ($SETTINGS['karma_moneysub'] > 0 ? 'money=money-'.$SETTINGS['karma_moneysub'].', ' : '');
            if (($SETTINGS['karma_bynum'] == 0 || $SETTINGS['karma_bynum'] > 0 && $self['karma'] >= $SETTINGS['karma_bynum']) && $self['username'] != $member && $disallow === false || $specialallow == "yes" && $self['username'] != $member && $disallow === false || !empty($SETTINGS['karma_bypost']) && $self['postnum'] >= $SETTINGS['karma_bypost'] && $self['username'] != $member && $disallow === false) {
                $db->query("UPDATE $table_members SET $shop karma=karma-".$SETTINGS['karma_increment']." WHERE uid='".(int)$mem['uid']."'");
                $db->query("UPDATE $table_members SET ktime='$onlinetime' WHERE uid='".(int)$self['uid']."'");
                $omessage = $lang['karma_05'];
            } else {
                if ((time() - $self['ktime']) < ($ktime[0] * $ktime[1])) {
                    $mode = 'stime';
                }

                nav($lang['error']);
                $omessage = $lang['karma_06'];
            }
            break;

        case 'add':
            $mode = 'add';
            $shop = ($SETTINGS['karma_moneyadd'] > 0 ? 'money=money+'.$SETTINGS['karma_moneyadd'].', ' : '');
            if (($SETTINGS['karma_bynum'] == 0 || $SETTINGS['karma_bynum'] > 0 && $self['karma'] >= $SETTINGS['karma_bynum']) && $self['username'] != $member && $disallow === false || $specialallow == "yes" && $self['username'] != $member && $disallow === false || $SETTINGS['karma_bypost'] > 0 && $self['postnum'] >= $SETTINGS['karma_bypost'] && $self['username'] != $member && $disallow === false) {
                $db->query("UPDATE $table_members SET $shop karma=karma+".$SETTINGS['karma_increment']." WHERE uid='".(int)$mem['uid']."'");
                $db->query("UPDATE $table_members SET ktime='$onlinetime' WHERE uid='".(int)$self['uid']."'");
                $omessage = $lang['karma_05'];
            } else {
                if ((time() - $self['ktime']) < ($ktime[0] * $ktime[1])) {
                    $mode = 'ptime';
                }
                nav($lang['error']);
                $omessage = $lang['karma_06'];
            }
            break;

        default:
            nav($lang['error']);
            $omessage = $lang['karma_08'];
            break;
    }

    $db->query("INSERT INTO $table_karmalog ( `fuid` , `fuser` , `tuid` , `tuser` , `amount` , `mode` , `dateline` ) VALUES ('".$self['uid']."', '".$self['username']."', '".$mem['uid']."', '".$mem['username']."', '".$SETTINGS['karma_increment']."', '".$mode."', '".$onlinetime."')");

    eval('echo "'.template('header').'";');
    echo '<table cellspacing="0" cellpadding="0" border="0" width="'.$THEME['tablewidth'].'" align="center"><tr><td bgcolor="'.$THEME['bordercolor'].'"><table border="0" cellspacing="'.$THEME['borderwidth'].'" cellpadding="'.$THEME['tablespace'].'" width="100%"><tr><td bgcolor="'.$THEME['altbg1'].'" class="mediumtxt" align="center">'.str_replace("*karma*", $SETTINGS['karma_title'], $omessage).'</td></tr></table></td></tr></table>';
    redirect(($fr == "view" ? "viewthread.php?tid=$tid&pid=$pid#pid$pid" : ($fr == "pro" ? "member.php?action=viewpro&member=$member" : ($fr == "mem" ? "misc.php?action=list&order=$order&page=$page" : "index.php"))), 2);
    // Karma - Member Rating System Mod End

==========
Find Code:
==========

            eval('echo stripslashes("'.template('member_profile').'");');

===============
Add Code Above:
===============

            // Karma - Member Rating System Mod Begin
            $karma = '';
            if ($SETTINGS['karma_status'] == 'on') {
                $kimgs = ''; 
                if ($SETTINGS['karma_imgs'] == 'on' && $memberinfo['karma'] <> 0) {
                    $karmaimg = ($memberinfo['karma'] < 0 ? $SETTINGS['karma_image1'] : $SETTINGS['karma_image2']);
                    $karma = str_replace('-', '', $memberinfo['karma']);
                    if ($karmaimg != '' && ($SETTINGS['karma_star'] <= $karma)){
                        $karmacount = floor($karma / $SETTINGS['karma_star']);
                        for($num = 0, $i = 0; $num < $karmacount; $num++){
                            $i++;
                            if ($i == ($SETTINGS['karma_addbr'] + 1)) {
                                $kimgs .=  '<br />';
                                $i = 1;
                            }
                            $kimgs .= '<img alt="'.$SETTINGS['karma_title'].': '.$memberinfo['karma'].'" src="'.$THEME['imgdir'].'/'.$karmaimg.'" />';
                        }
                        $kimgs .= '<br />';
                    }
                }
                $karmahtml = '<tr class="tablerow"><td bgcolor="'.$THEME['altbg1'].'">'.$SETTINGS['karma_title'].':</td><td bgcolor="'.$THEME['altbg2'].'"><table border="0" cellpadding="0" cellspacing="0" width="100%"><tr><td width="50%" class="tablerow" align="left">'.$memberinfo['karma'].'<br />'.$kimgs.'</td><td width="50%" align="right" class="tablerow"> <img src="'.$imgdir.'/thumb-up.gif" alt="$lang[karma_02]" border="0" /> (<a href="member.php?action=karma&do=add&fr=pro&member='.rawurlencode($memberinfo['username']).'">'.$lang['karma_02'].'</a>) '.$lang['karma_09'].' <img src="'.$imgdir.'/thumb-down.gif" alt="$lang[karma_01]" border="0" /> (<a href="member.php?action=karma&do=sub&fr=pro&member='.rawurlencode($memberinfo['username']).'">'.$lang['karma_01'].'</a>)</td></tr></table></td></tr>';
            }
            $memberinfo['karma'] = $karmaimg = '';
            // Karma - Member Rating System Mod End

============================================================================================================================
=======
Step 8:
=======
===============
Edit File: misc.php
==============
==========
Find Code:
==========

        $ext = array('&order='.$order);

===============
Add Code Above:
===============

        // Karma - Member Rating System Mod Begin
        $karma_colspan = ($SETTINGS['karma_status'] == 'on' ? ($SETTINGS['karma_ma'] + 2) : $SETTINGS['karma_ma']);
        // Karma - Member Rating System Mod End

==========
Find Code:
==========

                $member['regdate'] = gmdate($dateformat, $member['regdate'] + $adjTime );

===============
Add Code Below:
===============

                // Karma - Member Rating System Mod Begin
                $karmahtml = $karmahtml2 = '';
                if ($SETTINGS['karma_status'] == 'on') {
                    $karmahtml  = '<td class="header">'.$SETTINGS['karma_title'].'</td><td class="header">'.$lang['karma_10'].'</td>';
                    $karmahtml2 = '<td class="tablerow" bgcolor="'.$altbg1.'" align="center">'.$member['karma'].'</td><td class="tablerow" bgcolor="'.$altbg2.'" align="center"><a href="member.php?action=karma&do=sub&member='.rawurlencode($member['username']).'&fr=mem&;order='.$order.'&page='.$page.'">'.$lang['karma_01'].'</a><br />'.$lang['karma_09'].'<br /><a href="member.php?action=karma&do=add&member='.rawurlencode($member['username']).'&fr=mem&order='.$order.'&page='.$page.'">'.$lang['karma_02'].'</a> </td></tr>';
                }
                // Karma - Member Rating System Mod End

============================================================================================================================
=======
Step 9:
=======
===================
Edit File: viewthread.php
===================
==========
Find Code:
==========

            $tharegdate = gmdate($dateformat, $post['regdate'] + $tmoffset);

===============
Add Code Above:
===============

            // Karma - Member Rating System Mod Begin
            $karma = '';
            if ($SETTINGS['karma_status'] == 'on') {
                $kimgs = ''; 
                if ($SETTINGS['karma_imgs'] == 'on' && $post['karma'] <> 0) {
                    $karmaimg = ($post['karma'] < 0 ? $SETTINGS['karma_image1'] : $SETTINGS['karma_image2']);
                    $karma = str_replace('-', '', $post['karma']);
                    if ($karmaimg != '' && ($SETTINGS['karma_star'] <= $karma)){
                        $karmacount = floor($karma / $SETTINGS['karma_star']);
                        for($num = 0, $i = 0; $num < $karmacount; $num++){
                            $i++;
                            if ($i == ($SETTINGS['karma_addbr'] + 1)) {
                                $kimgs .=  '<br />';
                                $i = 1;
                            }
                            $kimgs .= '<img alt="'.$SETTINGS['karma_title'].': '.$post['karma'].'" src="'.$THEME['imgdir'].'/'.$karmaimg.'" />';
                        }
                        $kimgs .= '<br />';
                    }
                }
                $karma = '<br /><br />'.str_replace("*karma*", $SETTINGS['karma_title'], str_replace("*rating*", $post['karma'], $lang['karma_04'])).'<br />'.$kimgs.'<a href="member.php?action=karma&do=sub&member='.rawurlencode($post['username']).'&fr=view&tid='.$tid.'&page='.$page.'&pid='.$post['pid'].'">'.$lang['karma_01'].'</a>'.$lang['karma_09'].'<a href="member.php?action=karma&do=add&member='.rawurlencode($post['username']).'&fr=view&tid='.$tid.'&page='.$page.'&pid='.$post['pid'].'">'.$lang['karma_02'].'</a><br />';
            }
            $post['karma'] = $karmaimg = '';
            // Karma - Member Rating System Mod End

==========
Find Code:
==========

            $location = '';
            $mood = '';

===============
Add Code Below:
===============

            // Karma - Member Rating System Mod Begin
            $karma = '';
            // Karma - Member Rating System Mod End

============================================================================================================================
========
Step 10:
========
===============================
Go To Administration Panel --> Templates
===============================
=======================
Edit Template: member_profile
=======================
==========
Find Code:
==========

<tr>
<td bgcolor="$altbg1" class="tablerow">$lang[textregistered]</td>
<td bgcolor="$altbg2" class="tablerow">$memberinfo[regdate] ($ppd $lang[textmesperday])</td>
</tr>

===============
Add Code Above:
===============

$karmahtml

============================================================================================================================
========
Step 11:
========
===============================
Go To Administration Panel --> Templates
===============================
===================================
Edit Templates: misc_mlist and misc_mlist_admin
===================================
==========
Find Code:
==========

<td width="5%" class="header" align="center">$lang[mcpuid]</td>
<td width="20%" class="header">$lang[textusername]</td>
<td width="16%" class="header" align="center">$lang[status]</td>
<td width="10%" class="header" align="center">$lang[textemail]:</td>
<td width="10%" class="header" align="center">$lang[textsite]</td>
<td class="header" width="19%">$lang[textlocation]</td>
<td class="header" align="center" width="19%">$lang[textregistered]</td>
<td class="header" align="center" width="5%">$lang[textposts]</td>

==========
Add Below:
==========

$karmahtml

============================================================================================================================
========
Step 12:
========
===============================
Go To Administration Panel --> Templates
===============================
==============================================================
Edit Templates: misc_mlist_multipage, misc_mlist_results_none and misc_mlist_separator
==============================================================
==========
Find Code:
==========

colspan="8"

================
Replace Code With:
================

colspan="$karma_colspan"

============================================================================================================================
========
Step 13:
========
===============================
Go To Administration Panel --> Templates
===============================
=======================
Edit Template: misc_mlist_row
=======================
==========
Find Code:
==========

<td bgcolor="$altbg2" class="ctrtablerow">$member[postnum]</td>

===============
Add Code Below:
===============

$karmahtml2

============================================================================================================================
========
Step 14:
========
===============================
Go To Administration Panel --> Templates
===============================
========================
Edit Template: viewthread_post
========================
==========
Find Code:
==========

$location

===============
Add Code Below:
===============

$karma

============================================================================================================================
Enjoy!