Хак "Оповещение о измении Кармы" или "Новые Отзывы в Шапке сайта" Версия #2
Автор: ValekS http://johncms.com/users/profile.php?user=11915
Сайт Автора: http://john-help.ru
Совместимость: JohnCMS 5(если не заменять файлы, а вставлять код самому, то будет работать и на JohnCMS 4)

Данный хак показывает новые отзывы в вашей Карме в Шапке Сайта. Как например Новое ЛС.
С этим хаком юзеры вашего сайта всегда будут знать о новых голосах в их Карму.

Версия #2:
Проверка на Новые Отзывы в Карме идёт не по времени(24 часа) а по просмотру отзыва. 
Т.Е. В первой версии юзер зашедший на сайт через неделю не увидит оповещения о новом Отзыве. Так как Оповещение будет показываться 24 часа.
А теперь увидит. Так так Оповещение будет висеть пока он его не просмотрит.

Установка проста: 
1) Распаковать архив в корневую папку сайта;
2) Перейти по адресу http://ваш_сайт.ру/install.ru и дождаться надписи "Хак успешно Установлен";
3) Всё!

Весь код Хака выделен комментариями. 
Если у вас изменён файл /incfiles/head.php или /users/includes/profile/karma.php или /users/profile.php то вы можете легко найти нужный код и вставить в свой файл.
Для удобства привожу весь код здесь:

1) Файл /incfiles/head.php

    // Оповещение о изменеии Кармы
    $new_karma = mysql_result(mysql_query("SELECT COUNT(*) FROM `karma_users` WHERE `karma_user` = '$user_id' AND `see` = '0' AND `time` > " . (time() - 86400)), 0);
    if ($new_karma > 0) $list[] = '<a href="/users/profile.php?act=karma&amp;mod=new">' . $lng['responses_new'] . '</a> (' . $new_karma . ')';
    //Конец оповещения о Изменении Кармы
	
Код вставлять в конце файла, после 203 строки или после 2 строчки(с конца).


2) Файл /users/includes/profile/karma.php

    // Код Хака "Оповещение о изменеии Кармы"
    if ($res['see'] == 0) {
    mysql_query("UPDATE `karma_users` SET `see` = '1' WHERE `id` = '".$res['id']."'");
    }
    // КОНЕЦ Кода
	
Код вставлять в case 'new'. После 147 строки(после начала цикла - while($res = mysql_fetch_assoc($req)) ).

    // Код Хака "Оповещение о изменеии Кармы"
    $req = mysql_query("SELECT * FROM `karma_users` WHERE `karma_user` = '$user_id' AND `see` = '0' ORDER BY `time` DESC LIMIT $start, $kmess");
    // КОНЕЦ Кода
	
Заменить имеющийся запрос этим(146 строка).

3) Файл /users/profile.php

    // Код Хака "Оповещение о изменеии Кармы"
    $total_karma = mysql_result(mysql_query("SELECT COUNT(*) FROM `karma_users` WHERE `karma_user` = '$user_id' AND `see` = '0'"), 0);
    // КОНЕЦ Кода
	
Заменить имеющийся запрос(140 строка) этим.



18.07.2013 12:28(Kiev Time) 
© ValekS