===================
Фикс бага с 255 предупреждениями в профиле
===================
reputation.php
1)
ищем код: (стр > 350)
$result = db_query('SELECT COUNT(*) AS cnt FROM {REPUTATION_TABLE}
WHERE (modification = {REPUTATION_WARNING} OR modification = {REPUTATION_BAN})
AND user_id = %d', $user_id);
$warnings = $db->sql_fetchfield('cnt', -1, $result);
db_query('UPDATE {USERS_TABLE} SET user_warnings = %d WHERE user_id = %d', $warnings, $user_id);
меняем на:
$result = db_query('SELECT COUNT(*) AS cnt FROM {REPUTATION_TABLE}
WHERE (modification = {REPUTATION_WARNING} OR modification = {REPUTATION_BAN})
AND user_id = %d', $user_id);
$warnings = abs(intval($db->sql_fetchfield('cnt', -1, $result)));
db_query('UPDATE {USERS_TABLE} SET user_warnings = %d WHERE user_id = %d', $warnings, $user_id);
2)
ищем код: (стр > 740)
switch ($modification)
{
case REPUTATION_INC:
$set = 'user_reputation = user_reputation - 1, user_reputation_plus = user_reputation_plus - 1';
break;
case REPUTATION_DEC:
$set = 'user_reputation = user_reputation + 1';
break;
case REPUTATION_WARNING:
$set = 'user_warnings = user_warnings - 1';
break;
case REPUTATION_BAN:
$set = 'user_warnings = user_warnings - 1';
db_query('DELETE FROM {BANLIST_TABLE} WHERE ban_userid = %d', $user_id);
db_query('UPDATE {USERS_TABLE} SET user_allow_pm = 1 WHERE user_id = %d', $user_id);
break;
case REPUTATION_WARNING_EXPIRED:
case REPUTATION_BAN_EXPIRED:
$set = '';
break;
default:
message_die(GENERAL_MESSAGE, $lang['Not_Authorised']);
break;
}
меняем его на:
if($modification == REPUTATION_WARNING OR $modification == REPUTATION_BAN)
{
$u_data = get_userdata($user_id);
}
switch ($modification)
{
case REPUTATION_INC:
$set = 'user_reputation = user_reputation - 1, user_reputation_plus = user_reputation_plus - 1';
break;
case REPUTATION_DEC:
$set = 'user_reputation = user_reputation + 1';
break;
case REPUTATION_WARNING:
$set = (($u_data['user_warnings'] > 0) ? 'user_warnings = user_warnings - 1' : 'user_warnings = 0');
break;
case REPUTATION_BAN:
$set = (($u_data['user_warnings'] > 0) ? 'user_warnings = user_warnings - 1' : 'user_warnings = 0');
db_query('DELETE FROM {BANLIST_TABLE} WHERE ban_userid = %d', $user_id);
db_query('UPDATE {USERS_TABLE} SET user_allow_pm = 1 WHERE user_id = %d', $user_id);
break;
case REPUTATION_WARNING_EXPIRED:
case REPUTATION_BAN_EXPIRED:
$set = '';
break;
default:
message_die(GENERAL_MESSAGE, $lang['Not_Authorised']);
break;
}
-----------------
includes/page_header.php
ищем код: (стр > 100)
db_query('UPDATE {USERS_TABLE} SET user_warnings = user_warnings - 1 WHERE user_id = %d', $row['user_id']);
меняем на:
db_query('UPDATE {USERS_TABLE} SET user_warnings = IF(user_warnings > 0, user_warnings - 1, 0) WHERE user_id = %d', $row['user_id']);
KLoAS,
http://maswap.ru/profile.php?mode=viewprofile&u=50
Предупреждения:
255
Tahi, ctrl+f
db_query('UPDATE {USERS_TABLE} SET user_warnings = %d WHERE user_id = %d', $warnings, $user_id);
находиш и меняеш