##############################################################
## MOD Title: Advanced Karma Mod Update
## MOD Author: Nome < nome@bk.ru > 162783614
## MOD Version: 1.0.5
## MOD Description: Update AKM to 2.5.3 version from 2.0.x
##
## Installation Level: easy
## Installation Time: 5 Minutes
##
## Files To Edit: 7
##	admin/admin_board.php
##	includes/constants.php
##	includes/page_header.php
##	viewtopic.php
##	language/lang_english/lang_admin.php
##	language/lang_english/lang_main.php
##	templates/subSilver/admin/board_config_body.tpl
##	templates/subSilver/overall_header.tpl
##
## Included Files: 3
##	db_update.php
##	karma.php
##	templates/subSilver/karma_body.tpl
##
##############################################################
## This MOD is released under the GPL License.
## Intellectual Property is retained by the MOD Author(s) listed above
##############################################################
## Before Adding This MOD To Your Forum, You Should Back Up All Files Related To This MOD
##############################################################

#
#-----[ SQL ]-------------------------------------------
# Or upload and run the file db_update.php
CREATE TABLE phpbb_karma_comments (
   karma_id mediumint(8) NOT NULL auto_increment,
   karma_to mediumint(8) UNSIGNED DEFAULT '0' NOT NULL,
   karma_from mediumint(8) UNSIGNED DEFAULT '0' NOT NULL,
   karma_desc char(255) NOT NULL,
   karma_date int(11) DEFAULT '0' NOT NULL,
   karma_key tinyint(1) DEFAULT '0' NOT NULL,
   karma_viewed tinyint(1) DEFAULT '0' NOT NULL,
   PRIMARY KEY (karma_id)
);

INSERT INTO `phpbb_config` SET `config_name`='karma_comments', `config_value`='0';
INSERT INTO `phpbb_config` SET `config_name`='karma_comments_obligatory', `config_value`='0';
INSERT INTO `phpbb_config` SET `config_name`='karma_comments_max', `config_value`='3';
INSERT INTO `phpbb_config` SET `config_name`='karma_onoff', `config_value`='1';

#
# NOTE: 'phpbb_' is our $table_prefix
#

#
#-----[ OPEN ]------------------------------------------
#
admin/admin_board.php

#
#-----[ FIND ]------------------------------------------
#
$lag_karmer_yes = ($new['lag_karmer']) ? 'checked="checked"' : '';
$lag_karmer_no = (!$new['lag_karmer']) ? 'checked="checked"' : '';

#
#-----[ AFTER, ADD ]------------------------------------
#
$karma_comments_yes = ($new['karma_comments']) ? 'checked="checked"' : '';
$karma_comments_no = (!$new['karma_comments']) ? 'checked="checked"' : '';

$karma_comments_obligatory_yes = ($new['karma_comments_obligatory']) ? 'checked="checked"' : '';
$karma_comments_obligatory_no = (!$new['karma_comments_obligatory']) ? 'checked="checked"' : '';

$karma_onoff_yes = ($new['karma_onoff']) ? 'checked="checked"' : '';
$karma_onoff_no = (!$new['karma_onoff']) ? 'checked="checked"' : '';

#
#-----[ FIND ]------------------------------------------
#
	"L_LAG_KARMER_EXPLAIN" => $lang['Lag_Karmer_explain'],

#
#-----[ AFTER, ADD ]------------------------------------
#
	"L_KARMA_COMMENTS" => $lang['Karma_Comments'],
	"L_KARMA_COMMENTS_EXPLAIN" => $lang['Karma_Comments_explain'],
	"L_KARMA_COMMENTS_OBLIGATORY" => $lang['Karma_Comments_Obligatory'],
	"L_KARMA_COMMENTS_OBLIGATORY_EXPLAIN" => $lang['Karma_Comments_Obligatory_explain'],
	"L_KARMA_COMMENTS_MAX" => $lang['Karma_Comments_Max'],
	"L_KARMA_COMMENTS_MAX_EXPLAIN" => $lang['Karma_Comments_Max_explain'],
	"L_KARMA_ONOFF" => $lang['Karma_OnOff'],
	"L_KARMA_ONOFF_EXPLAIN" => $lang['Karma_OnOff_explain'],	

#
#-----[ FIND ]------------------------------------------
#
	"LAG_KARMER_NO" => $lag_karmer_no, 

#
#-----[ AFTER, ADD ]------------------------------------
#
	"KARMA_COMMENTS_YES" => $karma_comments_yes,
	"KARMA_COMMENTS_NO" => $karma_comments_no,
	"KARMA_COMMENTS_OBLIGATORY_YES" => $karma_comments_obligatory_yes,
	"KARMA_COMMENTS_OBLIGATORY_NO" => $karma_comments_obligatory_no,
	"KARMA_COMMENTS_MAX" => $new['karma_comments_max'],
	"KARMA_ONOFF_YES" => $karma_onoff_yes,
	"KARMA_ONOFF_NO" => $karma_onoff_no,	

#
#-----[ OPEN ]------------------------------------------
#
includes/constants.php

#
#-----[ FIND ]------------------------------------------
#
define('VOTE_USERS_TABLE', $table_prefix.'vote_voters');

#
#-----[ AFTER, ADD ]------------------------------------
#
define('KARMA_COMMENTS', $table_prefix.'karma_comments');


#
#-----[ OPEN ]------------------------------------------
#
includes/page_header.php

#
#-----[ FIND ]------------------------------------------
#
	'L_MEMBERLIST' => $lang['Memberlist'],

#
#-----[ AFTER, ADD ]------------------------------------
#
	'L_YOUR_KARMA' => $lang['Your_Karma'],

#
#-----[ FIND ]------------------------------------------
#
	'U_MEMBERLIST' => append_sid('memberlist.'.$phpEx),

#
#-----[ AFTER, ADD ]------------------------------------
#
	'U_YOUR_KARMA' => append_sid('karma.'.$phpEx),

#
#-----[ FIND ]------------------------------------------
#
	if ( !empty($userdata['user_popup_pm']) )
	{
		$template->assign_block_vars('switch_enable_pm_popup', array());
	}
}

#
#-----[ AFTER, ADD ]------------------------------------
#
if ( $board_config['karma_comments'] == 1 && $board_config['karma_onoff'] == 1 && $userdata['session_logged_in'] )
{
	$sql = "SELECT COUNT(karma_id) AS karma_num FROM " . KARMA_COMMENTS . " WHERE karma_to = '" . $userdata['user_id'] . "' AND karma_viewed = '0'";
	if ( !($result = $db->sql_query($sql)) )
	{
		message_die(GENERAL_ERROR, 'Could not obtain karma information', '', __LINE__, __FILE__, $sql);
	}
	
	$row = $db->sql_fetchrow($result);
	$karma_num = ( $row['karma_num'] ) ? $row['karma_num'] : 0;
	$db->sql_freeresult($result);
	$template->assign_block_vars('switch_show_karma', array('UNREAD' => (( $karma_num > 0 ) ? sprintf($lang['Unread'], $karma_num) : '' )));	
}

#
#-----[ OPEN ]------------------------------------------
#
viewtopic.php

#
#-----[ FIND ]------------------------------------------
#
//
// Advanced Karma Mod
// 
if ( $userdata['session_logged_in'] && isset($HTTP_GET_VARS['k']) && isset($HTTP_GET_VARS[POST_USERS_URL]) )
{

#
#-----[ REPLACE WITH ]----------------------------------
#
//
// Advanced Karma Mod
// 
if ( $userdata['session_logged_in'] && isset($HTTP_GET_VARS['k']) && isset($HTTP_GET_VARS[POST_USERS_URL]) && $board_config['karma_onoff'] == 1 )
{

#
#-----[ FIND ]------------------------------------------
#
	//
	// Advanced Karma Mod
	// 
	$karma = '';
	if ( $userdata['session_logged_in'] && $poster_id != ANONYMOUS )
	{
		$karma = '<br />' . $lang['Karma'] . '&nbsp;' . ( ( $board_config['simple_karma'] == 1 ) ? $postrow[$i]['karma_plus'] - $postrow[$i]['karma_minus'] : '+' . $postrow[$i]['karma_plus'] . '/-' . $postrow[$i]['karma_minus'] );

		if ( $userdata['user_id'] != $poster_id && ( $userdata['user_posts'] >= $board_config['min_post_karma'] || ( $board_config['admin_karma'] == 1 && $userdata['user_level'] == ADMIN ) ) )
		{
			$karma_time = ( $board_config['lag_karmer'] == 1 ) ? $userdata['karma_time'] : $postrow[$i]['karma_time'];
			if ( ( time() - $karma_time > $board_config['time_between_karma'] * 3600 ) || ( ( $board_config['admin_karma'] == 1 ) && ( $userdata['user_level'] == ADMIN ) ) )
			{
				$temp_url = append_sid("viewtopic.$phpEx?" . POST_POST_URL . "=" . $postrow[$i]['post_id'] . "&amp;" . POST_USERS_URL . "=" . $poster_id . "&amp;start=" . $start . "&amp;k=p") . "#" . $postrow[$i]['post_id'];
				$karma .= '&nbsp;<a href="' . $temp_url . '"><img src="' . $images['icon_plus'] . '" alt="' . $lang['Karma_Plus'] . '" title="' . $lang['Karma_Plus'] . '" width="11" height="11" border="0" /></a>';

				$temp_url = append_sid("viewtopic.$phpEx?" . POST_POST_URL . "=" . $postrow[$i]['post_id'] . "&amp;" . POST_USERS_URL . "=" . $poster_id . "&amp;start=" . $start . "&amp;k=m") . "#" . $postrow[$i]['post_id'];
				$karma .= '&nbsp;<a href="' . $temp_url . '"><img src="' . $images['icon_minus'] . '" alt="' . $lang['Karma_Minus'] . '" title="' . $lang['Karma_Minus'] . '" width="11" height="11" border="0" /></a>';
			}
		}
	}

#
#-----[ REPLACE WITH ]----------------------------------
#
	//
	// Advanced Karma Mod
	// 
	$karma = '';
	if ( $userdata['session_logged_in'] && $poster_id != ANONYMOUS && $board_config['karma_onoff'] == 1)
	{
		$karma = '<br />' . $lang['Karma'] . '&nbsp;' . ( ( $board_config['simple_karma'] == 1 ) ? $postrow[$i]['karma_plus'] - $postrow[$i]['karma_minus'] : '+' . $postrow[$i]['karma_plus'] . '/-' . $postrow[$i]['karma_minus'] );
		
		if ( $userdata['user_id'] != $poster_id && ( $userdata['user_posts'] >= $board_config['min_post_karma'] || ( $board_config['admin_karma'] == 1 && $userdata['user_level'] == ADMIN ) ) )
		{
			$karma_time = ( $board_config['lag_karmer'] == 1 ) ? $userdata['karma_time'] : $postrow[$i]['karma_time'];
			if ( ( time() - $karma_time > $board_config['time_between_karma'] * 3600 ) || ( ( $board_config['admin_karma'] == 1 ) && ( $userdata['user_level'] == ADMIN ) ) )
			{
				if ( $board_config['karma_comments'] )
				{
					$temp_url = append_sid("karma.$phpEx?" . POST_USERS_URL . "=" . $poster_id . "&amp;k=p");
					$temp_url .= '"onclick="window.open(\'' . $temp_url . '\', \'_phpbbkarma\', \'HEIGHT=300,resizable=yes,scrollbars=yes,WIDTH=500\');return false;" target="_phpbbkarma';
				}
				else
				{
					$temp_url = append_sid("viewtopic.$phpEx?" . POST_POST_URL . "=" . $postrow[$i]['post_id'] . "&amp;" . POST_USERS_URL . "=" . $poster_id . "&amp;start=" . $start . "&amp;k=p") . "#" . $postrow[$i]['post_id'];
				}
				$karma .= '&nbsp;<a href="' . $temp_url . '"><img src="' . $images['icon_plus'] . '" alt="' . $lang['Karma_Plus'] . '" title="' . $lang['Karma_Plus'] . '" width="11" height="11" border="0" /></a>';
	
				if ( $board_config['karma_comments'] )
				{
					$temp_url = append_sid("karma.$phpEx?" . POST_USERS_URL . "=" . $poster_id . "&amp;k=m");
					$temp_url .= '"onclick="window.open(\'' . $temp_url . '\', \'_phpbbkarma\', \'HEIGHT=300,resizable=yes,scrollbars=yes,WIDTH=500\');return false;" target="_phpbbkarma';
				}
				else
				{
					$temp_url = append_sid("viewtopic.$phpEx?" . POST_POST_URL . "=" . $postrow[$i]['post_id'] . "&amp;" . POST_USERS_URL . "=" . $poster_id . "&amp;start=" . $start . "&amp;k=m") . "#" . $postrow[$i]['post_id'];
				}
				$karma .= '&nbsp;<a href="' . $temp_url . '"><img src="' . $images['icon_minus'] . '" alt="' . $lang['Karma_Minus'] . '" title="' . $lang['Karma_Minus'] . '" width="11" height="11" border="0" /></a>';
			}
		}
	}



#*********************************************************************
#								       
# NOTE: You will have to apply these changes to all existing 
# language packs. I use lang_english as an example					       
#								       
#*********************************************************************

#
#-----[ OPEN ]------------------------------------------
#
language/lang_english/lang_admin.php

#
#-----[ FIND ]------------------------------------------
#
$lang['Lag_Karmer_explain'] = 

#
#-----[ AFTER, ADD ]------------------------------------
#
$lang['Karma_Comments'] = 'Allow comments';
$lang['Karma_Comments_explain'] = 'Allow users to post comments when giving karma';
$lang['Karma_Comments_Obligatory'] = 'Users must post comments';
$lang['Karma_Comments_Obligatory_explain'] = 'Users cannot give a Karma point without leaving a comment. This works only if comments are on';
$lang['Karma_Comments_Max'] = 'Maximum comments';
$lang['Karma_Comments_Max_explain'] = 'Maximum comments kept in the database for this user';
$lang['Karma_OnOff'] = 'Enable karma mod';
$lang['Karma_OnOff_explain'] = 'Turn karma mod on and off';

#
#-----[ OPEN ]------------------------------------------
#
language/lang_english/lang_main.php

#
#-----[ FIND ]------------------------------------------
#
$lang['Karma_Minus'] = 

#
#-----[ AFTER, ADD ]------------------------------------
#
$lang['Your_Karma'] = 'Comments to your karma';
$lang['Karma_Comment'] = 'Your comment:';
$lang['Must_Comment'] = 'You must leave a comment in order to change karma!';
$lang['Comment_Added'] = 'Your comment was successfully added!';
$lang['Give_Positive'] = 'You want to give positive karma to <b>%s</b>';
$lang['Give_Negative'] = 'You want to give negative karma to <b>%s</b>';
$lang['Positive_Karma'] = 'Positive karma';
$lang['Negative_Karma'] = 'Negative karma';
$lang['Unread'] = ' (<b>%s</b> unread)';
$lang['No_Karma_Yet'] = 'You can\'t give karma yet!';

#*********************************************************************
#								       
# NOTE: You will have to apply these changes to all existing templates 
# I use SubSilver as an example					       
#								       
#*********************************************************************

#
#-----[ OPEN ]------------------------------------------
#
templates/subSilver/admin/board_config_body.tpl

#
#-----[ FIND ]------------------------------------------
#
	<tr>
		<td class="row1">{L_LAG_KARMER} <br /><span class="gensmall">{L_LAG_KARMER_EXPLAIN}</span></td>
		<td class="row2"><input type="radio" name="lag_karmer" value="1" {LAG_KARMER_YES} /> {L_YES}&nbsp;&nbsp;<input type="radio" name="lag_karmer" value="0" {LAG_KARMER_NO} /> {L_NO}</td>
	</tr>
#
#-----[ AFTER, ADD ]------------------------------------
#
	<tr>
		<td class="row1">{L_KARMA_COMMENTS} <br /><span class="gensmall">{L_KARMA_COMMENTS_EXPLAIN}</span></td>
		<td class="row2"><input type="radio" name="karma_comments" value="1" {KARMA_COMMENTS_YES} /> {L_YES}&nbsp;&nbsp;<input type="radio" name="karma_comments" value="0" {KARMA_COMMENTS_NO} /> {L_NO}</td>
	</tr>
	<tr>
		<td class="row1">{L_KARMA_COMMENTS_OBLIGATORY} <br /><span class="gensmall">{L_KARMA_COMMENTS_OBLIGATORY_EXPLAIN}</span></td>
		<td class="row2"><input type="radio" name="karma_comments_obligatory" value="1" {KARMA_COMMENTS_OBLIGATORY_YES} /> {L_YES}&nbsp;&nbsp;<input type="radio" name="karma_comments_obligatory" value="0" {KARMA_COMMENTS_OBLIGATORY_NO} /> {L_NO}</td>
	</tr>
	<tr>
		<td class="row1">{L_KARMA_COMMENTS_MAX}<br /><span class="gensmall">{L_KARMA_COMMENTS_MAX_EXPLAIN}</span></td>
		<td class="row2"><input class="post" type="text" size="2" maxlength="2" name="karma_comments_max" value="{KARMA_COMMENTS_MAX}" /></td>
	</tr>

#
#-----[ FIND ]------------------------------------------
#
	<tr>
	  <th class="thHead" colspan="2">{L_KARMA_SETTINGS}</th>
	</tr>

#
#-----[ AFTER, ADD ]------------------------------------
#
	<tr>
		<td class="row1">{L_KARMA_ONOFF} <br /><span class="gensmall">{L_KARMA_ONOFF_EXPLAIN}</span></td>
		<td class="row2"><input type="radio" name="karma_onoff" value="1" {KARMA_ONOFF_YES} /> {L_YES}&nbsp;&nbsp;<input type="radio" name="karma_onoff" value="0" {KARMA_ONOFF_NO} /> {L_NO}</td>
	</tr>

#
#-----[ OPEN ]------------------------------------------
#
templates/subSilver/overall_header.tpl

#
#-----[ FIND ]------------------------------------------
#
						<td height="25" align="center" valign="top" nowrap="nowrap"><span class="mainmenu">&nbsp;<a href="{U_PROFILE}" class="mainmenu"><img src="templates/subSilver/images/icon_mini_profile.gif" width="12" height="13" border="0" alt="{L_PROFILE}" hspace="3" />{L_PROFILE}</a>&nbsp; &nbsp;<a href="{U_PRIVATEMSGS}" class="mainmenu"><img src="templates/subSilver/images/icon_mini_message.gif" width="12" height="13" border="0" alt="{PRIVATE_MESSAGE_INFO}" hspace="3" />{PRIVATE_MESSAGE_INFO}</a>&nbsp; &nbsp;<a href="{U_LOGIN_LOGOUT}" class="mainmenu"><img src="templates/subSilver/images/icon_mini_login.gif" width="12" height="13" border="0" alt="{L_LOGIN_LOGOUT}" hspace="3" />{L_LOGIN_LOGOUT}</a>&nbsp;</span></td>
					</tr>

#
#-----[ AFTER, ADD ]------------------------------------
#
					<!-- BEGIN switch_show_karma -->
					<tr>

						<td align="center"><a href="{U_YOUR_KARMA}" onclick="window.open('{U_YOUR_KARMA}', '_phpbbkarma', 'HEIGHT=300,resizable=yes,scrollbars=yes,WIDTH=500');return false;" target="_phpbbkarma" class="mainmenu"><img src="templates/subSilver/images/icon_mini_members.gif" width="12" height="13" border="0" alt="{L_YOUR_KARMA}" hspace="3" />{L_YOUR_KARMA}{switch_show_karma.UNREAD}</a></td>
					</tr>
					<!-- END switch_show_karma -->

#
#-----[ SAVE/CLOSE ALL FILES ]------------------------------------------
#
# EoM