/**
 * Karma System 3.1
 * Originally Developed by: FunForum
 * Version 2.0 Developed by:  The XMB Group
 * Copyright (c) 2001-2006 FunForum
 * Copyright (c) 2008 The XMB Group
 * http://www.xmbforum.com
 * Description: This modification is a member rating system.
 *                    It will display the members rating (if turned on) in the Member List, in Posts and in Profiles.
 *                    The viewthread.php will be altered a bit so when a member has been deleted it will now show up as "Deleted Member" and the username will show in the Custom Status. I personally don't like it when someone has been deleted that all text and buttons are still in place, even though they are all empty.
 *                    V3.0 now sports a new admin panel with more options. And you can now edit karma ratings in the members manager of the admin panel.
 *
 **/

============================================================================================================================
=======
Step 1.
=======

Upload the following files to the /include/ folder:
	karma_admin.inc.php
	karma_member.inc.php
	
Upload the following files to the forum root folder:
	install.php

Upload the following files to your theme image folders:
	thumb-down.gif
	thumb-up.gif

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

// Karma - Member Rating System Mod Begin
$lang['karmastatus'] = "Karma System Status";
$lang['karmaname'] = "Karma Control Name (Default: Karma)";
$lang['karmaincrement'] = "Increment<br /><b>Note:</b> Number given or taken away when Karma is issued";
$lang['karmaimage-'] = "Image to be used when negative Karma";
$lang['karmaimage+'] = "Image to be used when positive Karma";
$lang['karmastar'] = "For how many points do you want an image to show up?";
$lang['karmaaddbr'] = "After how many images should a &lt;br /&gt; tag be placed?";
$lang['karmavnum'] = "Allow users to edit Karma by Karma number.<br />   0 = N/A ";
$lang['karmapost'] = "Block users from giving Karma points if they have less than this number of posts.<br />   0 = N/A ";
$lang['karmaallow'] = "Input user status and/or usernames that are allowed to give Karma points, if not allowed elsewhere.<br /><strong>Note:</strong> Place a comma after every entry.<br /><br /><strong>Example:</strong> Member,Moderator,Super Moderator,Administrator, Super Administrator,Bill,John,Chloe";
$lang['karmatimer'] = "Time restrict before the next Karma Selection is allowed <br /><br />  Each user must wait this much time between Karma Point selections";
$lang['karmatgroup'] = "Input user status and/or usernames that are allowed to give Karma points without waiting for the time selected.<br /><strong>Note:</strong> Place a comma after every entry<br /><br /><strong>Example:</strong> Member,Moderator,Super Moderator,Administrator,Super Administrator,Bill,John,Chloe";
$lang['karmabanned'] = "Banned users list. Users banned from the Karma System.<br /><strong>Note:</strong> Place a comma after every entry<br /><br /><strong>Example:</strong> Member,Moderator,Super Moderator,Administrator,Super Administrator,Bill,John,Chloe";
$lang['karma_nomlist'] = "COLSPAN setting before Karma modification being installed:";
$lang['karma_nomlist_admin'] = "COLSPAN setting before Karma modification being installed:";
$lang['karmasettings'] = "Karma Settings";
$lang['karma'] = "Karma Edit";
$lang['karma_admin_edit'] = "*karma* Rating";
$lang['karma_negative'] = "(-) Karma";
$lang['karma_positive'] = "(+) Karma";
$lang['karma_norating'] = "<i>No Rating</i>";
$lang['karma_rating'] = "*karma* Rating: *rating*<br />";
$lang['karma_editeval'] = $lang['karma_edit'] = "You have successfully edited $member's *karma*";
$lang['karma_noedit'] = "Sorry! You are not allowed to edit this user's *karma*.<br />Take note that time restrictions may be in place.<br />Also remember that you cannot edit your own!";
$lang['karma_nomember'] = "No member specified...";
$lang['karma_noaction'] = "No action specified...";
$lang['karma_break'] = "<br />";
$lang['karma_textedit'] = "Edit";
$lang['karma_textsettings'] = "Settings";
$lang['karma_viewlog'] = "View Log File";
$lang['karma_textmemberselect'] = "Select a member:";
$lang['karma_textwhoedit'] = "View who edited this member's Karma";
$lang['karma_textwhoskarma'] = "View whose Karma this member edited";
$lang['karma_textalledits'] = "View all Karma edits";
$lang['karma_textid'] = "ID";
$lang['karma_textfrom'] = "From";
$lang['karma_textto'] = "To";
$lang['karma_textamount'] = "Amount";
$lang['karma_textmode'] = "Mode";
$lang['karma_textdate'] = "Datestamp";
$lang['karma_textpraise'] = '(+) Karma';
$lang['karma_textbash'] = '(-) Karma';
$lang['karma_texterror'] = ' ... Error';
$lang['karma_texttimerestrict'] = ' ... Time restrictions';
// Karma - Member Rating System Mod End

============================================================================================================================
=======
Step 3.
=======
=======================
Edit File: include/admin.inc.php
=======================
======
Find:
======

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

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

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

======
Find:
======

    &raquo;&nbsp;<a href="cp2.php?action=censor"><?php echo $lang['textcensors']?></a><br />
    
===========
Add Below:
===========

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

============================================================================================================================
=======
Step 4.
=======
==============
Edit File: cp.php
==============
======
Find:
======

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

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

            <!-- Karma - Member Rating System Mod Begin -->
            <?php
            $lang['karma_admin_edit'] = str_replace("*karma*", $SETTINGS['karma_title'], $lang['karma_admin_edit']);
            ?>
            <td><strong><font color="<?php echo $THEME['cattext']?>"><?php echo $lang['karma_admin_edit']?></font></strong></td>
            <!-- Karma - Member Rating System Mod End -->

======
Find:
======

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

===========
Add 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:
======

colspan="7"

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

colspan="8"

======
Find:
======

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

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

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

======
Find:
======

$db->query("UPDATE ".X_PREFIX."members SET ban='$banstatus', status='$to[status]', postnum='$postnum', customstatus='$newcustom'$queryadd WHERE uid='$mem[uid]'");

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

$db->query("UPDATE ".X_PREFIX."members SET ban='$banstatus', status='$to[status]', postnum='$postnum', karma='$karma', customstatus='$newcustom'$queryadd WHERE uid='$mem[uid]'");

============================================================================================================================
=======
Step 5.
=======
===============
Edit File: cp2.php
===============
======
Find:
======

if ($action == 'templates') {

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

// Karma - Member Rating System Mod Begin
if ( $action == 'karma') {
    include ROOT.'include/karma_admin.inc.php';
}
// Karma - Member Rating System Mod End

============================================================================================================================
=======
Step 6.
=======
=================
Edit File: member.php
=================
======
Find:
======

    case 'viewpro':
        nav($lang['textviewpro']);
        break;
    
===========
Add Above:
===========

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

======
Find:
======

    case 'viewpro':
        $member = postedVar('member', '', TRUE, TRUE, FALSE, 'g');

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

    // Karma - Member Rating System Mod Begin
    case 'karma':
        include ROOT.'include/karma_member.inc.php';
        break;
    // Karma - Member Rating System Mod End

======
Find:
======

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

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

                // Karma - Member Rating System Mod Begin
            	if ($SETTINGS['karma_status'] == 'on') {
                	$thaimage = $Fi = ''; 
                	if ($memberinfo['karma'] <> 0) {
                	    $Fkarmaimg = ($memberinfo['karma'] < 0 ? $SETTINGS['karma_image1'] : $SETTINGS['karma_image2']);
                	    $karmapv = str_replace("-", "", $memberinfo['karma']);
                	    if ($Fkarmaimg != "" && ($SETTINGS['karma_star'] <= $karmapv)) {
                	        $theimage = floor($karmapv / $SETTINGS['karma_star']);
                	        for($num = 0; $num < $theimage; $num++) {
                              $Fi++;
                	            if ($Fi == ($SETTINGS['karma_addbr'] + 1)) {
                	                $thaimage .=  '<br />';
                                  $Fi = 1;
                	            }
                	            $thaimage .= '<img alt="'.$SETTINGS['karma_title'].': '.$memberinfo['karma'].'" src="'.$imgdir.'/'.$Fkarmaimg.'" />';
                	        }
                	    } 
                	} else {
                	    $thaimage = $lang['karma_norating'];
                	}
                	$karmahtml = '<tr><td bgcolor="'.$altbg1.'" class="tablerow">'.$SETTINGS['karma_title'].':</td><td bgcolor="'.$altbg2.'" class="tablerow"><table border="0" cellpadding="0" cellspacing="0" width="100%"><tr><td width="50%" class="tablerow" align="left">'.$memberinfo['karma'].' &nbsp; '.$thaimage.'</td><td width="50%" align="right" class="tablerow"> <a href="member.php?action=karma&do=smite&fr=pro&member='.recodeOut($memberinfo['username']).'">'.$lang['karma_negative'].'</a>'.$lang['karma_break'].'<a href="member.php?action=karma&do=praise&fr=pro&member='.recodeOut($memberinfo['username']).'">'.$lang['karma_positive'].'</a></td></tr></table></td></tr>';
            	} else {
            	    $karmahtml = '';
            	}
            	// Karma - Member Rating System Mod End

============================================================================================================================
=======
Step 7.
=======
===============
Edit File: misc.php
===============
======
Find:
======

           if ($order != 'username' && $order != 'postnum' && $order != 'status') {

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

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

======
Find:
======

            while($member = $db->fetch_array($querymem)) {

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

                // Karma - Member Rating System Mod Begin
                if ($SETTINGS['karma_status'] == 'on') {
                    $karmahtml = '<td width="10%">'.$SETTINGS['karma_title'].'</td><td width="15%">'.$lang['karma_textedit'].'</td>';
                    $karmalyhtml = '<td bgcolor="'.$THEME['altbg2'].'" class="ctrtablerow">'.$member['karma'].'</td><td bgcolor="'.$THEME['altbg1'].'" class="ctrtablerow"><a href="member.php?action=karma&do=smite&member='.recodeOut($member['username']).'&fr=mem&order='.$order.'&page='.$page.'">'.$lang['karma_negative'].'</a>'.$lang['karma_break'].'<a href="member.php?action=karma&do=praise&member='.recodeOut($member['username']).'&fr=mem&amp;order='.$order.'&page='.$page.'">'.$lang['karma_positive'].'</a> </td>';
                } else {
                    $karmahtml = '';
                    $karmalyhtml = '';
                }
                // Karma - Member Rating System Mod End

============================================================================================================================
=======
Step 8.
=======
===================
Edit File: viewthread.php
===================
======
Find:
======

        } else {
            $post['author'] = ($post['author'] == 'Anonymous') ? $lang['textanonymous'] : $post['author'];

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

            // Karma - Member Rating System Mod Begin
            if ($SETTINGS['karma_status'] == 'on') {
                $thaimage = $Fi = ''; 
                if ($post['karma'] <> 0) {
                    $Fkarmaimg = ($post['karma'] < 0 ? $SETTINGS['karma_image1'] : $SETTINGS['karma_image2']);
                    $karmapv = str_replace("-", "", $post['karma']);
                    if ($Fkarmaimg != '' && ($SETTINGS['karma_star'] <= $karmapv)) {
                        $theimage = floor($karmapv / $SETTINGS['karma_star']);
                        for($num = 0; $num < $theimage; $num++) {
	                        $Fi++;
                            if ($Fi == ($SETTINGS['karma_addbr'] + 1)) {
                                $thaimage .=  '<br />';
                                $Fi = 1;
                            }
                            $thaimage .= '<img alt="'.$SETTINGS['karma_title'].': '.$post['karma'].'" src="'.$THEME['imgdir'].'/'.$Fkarmaimg.'" />';
                        }
                    } 
                }
                $karma = str_replace("*karma*", $SETTINGS['karma_title'], str_replace("*rating*", $post['karma'], $lang['karma_rating'])).''.$thaimage.'<br />
                <a href="member.php?action=karma&do=smite&member='.recodeOut($post['username']).'&fr=view&tid='.$tid.'&page='.$page.'&pid='.$post['pid'].'">'.$lang['karma_negative'].'</a>'.$lang['karma_break'].'<a href="member.php?action=karma&do=praise&member='.recodeOut($post['username']).'&fr=view&tid='.$tid.'&page='.$page.'&pid='.$post['pid'].'">'.$lang['karma_positive'].'</a>';
            } else {
                $karma = '';
            }
            $post['karma'] = $thaimage = '';
        } else {
            $post['author'] = ($post['author'] == 'Anonymous') ? $lang['textanonymous'] : $post['author'];
            $karma = $thaimage = '';
            // Karma - Member Rating System Mod End

============================================================================================================================
=======
Step 9.
=======
=================
Edit File: header.php
=================
======
Find:
======

    'forums',

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

    'karmalog',

============================================================================================================================
========
Step 10.
========
=======================
Edit Template: member_profile
=======================
======
Find:
======

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

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

$karmahtml

============================================================================================================================
========
Step 11.
========
=====================================
Edit Templates: misc_mlist AND misc_mlist_admin
=====================================
=============
Find (2 Times):
=============

colspan="7"

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

colspan="$karma_colspan"

======
Find:
======

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


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

<tr class="header" align="center">
<td width="15%">$lang[textusername]</td>
<td width="12%">$lang[status]</td>
<td width="8%">$lang[textemail]:</td>
<td width="8%">$lang[textsite]</td>
<td width="12%">$lang[textlocation]</td>
<td width="12%">$lang[textregistered]</td>
<td width="4%">$lang[textposts]</td>
$karmahtml
</tr>

============================================================================================================================
========
Step 12.
========
==============================================================
Edit Templates: misc_mlist_multipage, misc_mlist_results_none and misc_mlist_separator
==============================================================
======
Find:
(Note: This colspan value may be different due to other modifications. Therefore you will need to remember this value as you will need it for the Karma Settings)
======

colspan="7"

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

colspan="$karma_colspan"

============================================================================================================================
========
Step 13.
========
=======================
Edit Template: misc_mlist_row
=======================
======
Find:
======

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

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

$karmalyhtml

============================================================================================================================
========
Step 14.
========
========================
Edit Template: viewthread_post
========================
======
Find:
======

$location

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

<br />
$karma

============================================================================================================================
========
Step 15.
========

Run the install.php file in your browser by typing http://yourdomain/forum root/install.php

Make sure install.php was deleted from your root directory.

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