Изменения кармы основанное на карме

Автор sevabilder, 31 января 2011, 13:43:57

« назад - далее »

0 Пользователи и 1 гость просматривают эту тему.

sevabilder

Привет всем,
Хочу сделать так, чтобы карму на моем форуме могли изменять пользователи с определенной кармой. Видел подобное на некоторых форумах.
Сейчас есть ограничение по количеству постов, но я хочу добавить к этому условию наличие определенной положительной кармы (напр. 5).

Где изменять я нашел. Это очевидно Load.php, в этом куске кода:

'allow' => !$user_info['is_guest'] && !empty($modSettings['karmaMode']) && $user_info['id'] != $user && allowedTo('karma_edit') &&
         ($user_info['posts'] >= $modSettings['karmaMinPosts'] || $user_info['is_admin']),


Нужно чтобы было:

'allow' => !$user_info['is_guest'] && !empty($modSettings['karmaMode']) && $user_info['id'] != $user && allowedTo('karma_edit') &&
         (($user_info['posts'] >= $modSettings['karmaMinPosts'] && КАРМА ПОЛЬЗОВАТЕЛЯ > 5) || $user_info['is_admin']),


Собственно вопрос: какие переменные мне использовать чтобы получить значение кармы для текущего (просматривающего страницу) пользователя?
Спасибо.

Mavn

SimpleMachines Russian Community Team
п.1 Пройду курсы гадалок для определения исходного кода по скриншоту.

п.2 У вас нет желания читать правила раздела, у меня нет желания одобрять темы, которые не соответствуют этим правилам.

sevabilder

Массив $message в Load.php пустой. Поэтому не работает
if (($message['member']['karma']['good'] - $message['member']['karma']['bad']) > 10)

Как мне его вытянуть в этом файле?

Bugo

Перед строчкой
// First do a quick run through
вставьте
if($memberContext[$user]['good'] < 5)
$memberContext[$user]['karma']['allow'] = false;

и будет Вам счастье :)

sevabilder

Массив $memberContext в файле Load.php возвращает данные для всех пользователей оставивших сообщение на странице. А нужно для того кто просматривает страницу.

$memberContext[$user]['good'] вообще ничего не возвращает.

Есть еще варинты как вытянуть значение кармы для пользователя, просматривающего страницу, в файле Load.php ?

Bugo

loadMemberContext($context['user']['id']);
$context['member'] = $memberContext[$context['user']['id']];
if ($context['member']['karma']['good'] < 5)
$memberContext[$user]['karma']['allow'] = false;

Если положительная карма пользователя меньше 5, то он не может влиять на карму других.

sevabilder

Почти работает.
Но, $context['member']['karma']['good'] возвращает значение только если просматривающий пользователь оставил хоть одно сообщение на странице.
Если не оставлял, не возвращает ничего.

Здесь где-то еще чуть-чуть капнуть нужно :facepalm: .

sevabilder

Неужели эта задачка никому не под силу? :(
По мне, так эту функциональность нужно ввести в движок (опционально).