Репутация

G

Gemini_13

Гость
BEST^MOD, а на предыдущую страницу глянуть влом?
Notice: Undefined index: user_reputation in /home/maxtrack/public_html/viewtopic.php on line 944 Fatal error: Call to undefined function append_sid() in /home/maxtrack/public_html/viewtopic.php on line 965 что за фигня?

ZEvS, функцию выпилили, а первое запрос не проходит, добавь его.
 

Lynx

Пользователь
Ещё баг: некорректно работает уведомление в ЛС об изменении репы - как непрочитанное помечается предыдущее ЛС, лежащее в папке "Входящие", а вновь пришедшее (об изменении репы) не определяется как непрочитанное.
Вылечил так:

Открыть functions_reputation.php

Найти:

PHP:
//
// This function will send the PM to the user $user_2id
// (заимствовано из privmsg.php)
//
function r_send_pm(&$user_id, &$user_2id, &$rep_sum, &$user_ip)
{
    global $lang;
 
    $msg_time = time();

Ниже вставить:

PHP:
    $timenow = TIMENOW;
    $privmsg_sent_id = $l_box_name = $to_username = $privmsg_subject = $privmsg_message = $error_msg = '';
    $privmsg_sent_id = DB()->sql_nextid();

Найти:

PHP:
    $sql = "INSERT INTO " . BB_PRIVMSGS_TEXT . " (privmsgs_text_id, privmsgs_text)
        VALUES ($next_id, '" . str_replace("\'", "''", $privmsg_message) . "')";
    if ( !DB()->sql_query($sql) )
    {
        message_die(GENERAL_ERROR, "Could not insert/update private message sent text.", "", __LINE__, __FILE__, $sql_info);
    }
 
    //
    // Add to the users new pm counter
    //
    $sql = "UPDATE " .BB_USERS . "
        SET user_new_privmsg = user_new_privmsg + 1, user_last_privmsg = " . $msg_time . " 
        WHERE user_id = " . $user_2id;
    if ( !$status = DB()->sql_query($sql) )
    {
        message_die(GENERAL_ERROR, 'Could not update private message new/read status for user', '', __LINE__, __FILE__, $sql);
    }
 
    return;

Заменить:

PHP:
    $privmsg_sent_id = DB()->sql_nextid();
    $sql = "INSERT INTO " . BB_PRIVMSGS_TEXT . " (privmsgs_text_id, privmsgs_text)
        VALUES ($privmsg_sent_id, '" . str_replace("\'", "''", $privmsg_message) . "')";
    if ( !DB()->sql_query($sql) )
    {
        message_die(GENERAL_ERROR, "Could not insert/update private message sent text.", "", __LINE__, __FILE__, $sql_info);
    }
 
    //
    // Add to the users new pm counter
    //
    $sql = "UPDATE " .BB_USERS . "
        SET user_new_privmsg = user_new_privmsg + 1, user_last_privmsg = $timenow,
        user_newest_pm_id = $privmsg_sent_id
        WHERE user_id = " . $user_2id;
    if ( !$status = DB()->sql_query($sql) )
    {
        message_die(GENERAL_ERROR, 'Could not update private message new/read status for user', '', __LINE__, __FILE__, $sql);
    }
 
    return;

И по мелочи исправления:
ANONYMOUS везде заменить на GUEST_UID
IN_PHPBB везде заменить на IN_FORUM
Избавиться везде от append_sid()
Поправить ланги, о которых тут уже не раз говорилось

Нотис Undefined index: user_reputation лечится добавлением
PHP:
, u.user_reputation
в файле viewtopic.php после
PHP:
u.user_opt
дважды:
1). в запросе, который идёт после // 1. Add first post of topic if it pinned and page of topic not first
2). в запросе, который после // 2. All others posts (в инструкции по установке об этом не написано, поэтому в теме возникло столько вопросов по данному нотису).

Ну вот, вроде бы всё. Мод работает пока без ошибок.
 

Lynx

Пользователь
Заметил вот ещё что: если юзер кому-то меняет репу (как в положительную, так и в отрицательную сторону), у него самого репа уменьшается. Так и должно быть?
 

Exile

Администратор
Lynx, да, насколько мод помню. Репутация за счет своей репутации дается. Нулевого обмена нет потому что отнимает на 30% меньше.
 

svetozar

Пользователь
Стесняюсь спросить и все же: каким образом тогда зарабатывается репа? если пользователь зарегился, у него по нулям и если будет добавлять репу другим, то сам уйдет в минус..
 
Сверху