Репутация

Тема в разделе "Модификации для TorrentPier (архив)", создана пользователем DarkMod, 28 авг 2011.

  1. DarkMod

    DarkMod Пользователь

    Сообщения:
    1.449
    Симпатии:
    375
    MOD Title: Репутация
    MOD Version: 1.0.2
    MOD Author: antongranik
    Updated MOD TP II: DarkMod, отдельное спасибо Antony Rus Liverov

    MOD Description: Allows users to give reputation points to each others,
    earn it by posts and by "living" on forum, see the history of givings.
    Admin can edit users' reputations in admin cp. The whole system can be a text or a
    graphic version (5 different medals) and simple or advanced version
    (with choosing of how much reputation to give).
    You can get help on the system in the guide/ folder.

    [​IMG]
     

    Вложения:

    Locer нравится это.
  2. druid

    druid Пользователь

    Сообщения:
    206
    Симпатии:
    119
    Ставил этот мод на SVN, нагрузка нехилая конечно ;-)
     
  3. Mr.ELDORADO

    Mr.ELDORADO Гость

    в админ панели такая трабла
    Notice: Undefined index: DISABLE_REP in F:\nimp\htdocs\suite.org\admin\admin_reputation.php on line 95 Notice: Undefined index: POSTS_TO_EARN in F:\nimp\htdocs\ suite.org \admin\admin_reputation.php on line 96 Notice: Undefined index: DAYS_TO_EARN in F:\nimp\htdocs\ suite.org \admin\admin_reputation.php on line 97 Notice: Undefined index: FLOOD_CONTROL_TIME in F:\nimp\htdocs\suite.org\admin\admin_reputation.php on line 98 Notice: Undefined index: SHOW_STATS_TO_MODS in F:\nimp\htdocs\suite.org\admin\admin_reputation.php on line 99 Notice: Undefined index: GRAPHIC_VERSION in F:\nimp\htdocs\suite.org\admin\admin_reputation.php on line 100 Notice: Undefined index: MEDAL1_TO_EARN in F:\nimp\htdocs\suite.org\admin\admin_reputation.php on line 101 Notice: Undefined index: MEDAL2_TO_EARN in F:\nimp\htdocs\suite.org\admin\admin_reputation.php on line 102 Notice: Undefined index: MEDAL3_TO_EARN in F:\nimp\htdocs\suite.org\admin\admin_reputation.php on line 103 Notice: Undefined index: MEDAL4_TO_EARN in F:\nimp\htdocs\suite.org\admin\admin_reputation.php on line 104 Notice: Undefined index: GIVEN_REP_TO_EARN in F:\nimp\htdocs\suite.org\admin\admin_reputation.php on line 105 Notice: Undefined index: REPSUM_LIMIT in F:\nimp\htdocs\suite.org\admin\admin_reputation.php on line 106 Notice: Undefined index: PM_NOTIFY in F:\nimp\htdocs\suite.org \admin\admin_reputation.php on line 107 Notice: Undefined index: DEFAULT_AMOUNT in F:\nimp\htdocs\suite.org\admin\admin_reputation.php on line 108 Notice: Undefined index: REPUTATION_CONFIG_TITLE in F:\nimp\htdocs\suite.org\admin\admin_reputation.php on line 110 Notice: Undefined index: REPUTATION_CONFIG_EXPLAIN in F:\nimp\htdocs\suite.org\admin\admin_reputation.php on line 111
    [​IMG]
     
  4. DarkMod

    DarkMod Пользователь

    Сообщения:
    1.449
    Симпатии:
    375
    Mr.ELDORADO, в ланги добавить не как?
     
  5. Mikotka

    Mikotka Пользователь

    Сообщения:
    79
    Симпатии:
    22
    DarkMod,

    В аттаче ланги строчные, а надо прописные. Потому и ругается. Под виндой может и пофиг, но никсам критично

    Фикс 1.
    Код:
    $lang['REPUTATION'] = 'Репутация';
    $lang['NO_VOTES'] = 'Нет голосов';
    $lang['VOTES'] = 'голосов';
    $lang['REPUTATION'] = 'Репутация';
    $lang['REPUTATION_CONFIG_TITLE'] = 'Настройка системы репутации пользователей';
    $lang['REPUTATION_CONFIG_EXPLAIN'] = 'Здесь можно настроить все параметры работы системы репутации пользователей.';
    $lang['REP_CONFIG_UPDATED'] = 'Настройки репутации изменены';
    $lang['CLICK_RETURN_REP_CONFIG'] = '%sВернуться к настройкам репутации%s';
    $lang['DISABLE_REP'] = 'Отключить систему репутаций';
    $lang['GRAPHIC_VERSION'] = 'Графическая система репутаций';
    $lang['SHOW_STATS_TO_MODS'] = 'Показывать статистику выданных очков только администраторам/модераторам';
    $lang['PM_NOTIFY'] = 'Уведомлять пользователей через личные сообщения о получении ими новых очков репутации';
    $lang['POSTS_TO_EARN'] = 'Кол-во сообщений для заработка 1 очка репутации (0 - запретить)';
    $lang['DAYS_TO_EARN'] = 'Кол-во дней существования на форуме для заработка 1 очка репутации (0 - запретить)';
    $lang['FLOOD_CONTROL_TIME'] = 'Минимальное кол-во минут для одного пользователя между раздачами репутаций<br />(не действует на модераторов и администраторов)';
    $lang['MEDAL1_TO_EARN'] = 'Кол-во очков репутации для заработка медали 1 размера';
    $lang['MEDAL2_TO_EARN'] = 'Кол-во очков репутации для заработка медали 2 размера';
    $lang['MEDAL3_TO_EARN'] = 'Кол-во очков репутации для заработка медали 3 размера';
    $lang['MEDAL4_TO_EARN'] = 'Кол-во очков репутации для заработка медали 4 размера';
    $lang['GIVEN_REP_TO_EARN'] = 'Кол-во отданной репутации для заработка 1 очка (0 - запретить)';
    $lang['REPSUM_LIMIT'] = 'Максимальное кол-во очков, которые единовременно пользователи могут выдавать (0 - неограниченно)';
    $lang['DEFAULT_AMOUNT'] = 'Включить упрощенную систему выдачи репутации и установить каждую выдачу равную этому числу (0 - запретить)'; 
    Фикс 2.
    Вместо

    Код:
    #
    #-----[ OPEN ]------------------------------------------
    #
    language/lang_main.php
    
    Надо
    Код:
    #
    #-----[ OPEN ]------------------------------------------
    #
    language/lang_russian/lang_main.php
    
    Мелочь, но тут и более тупые "Почему не работает?!" встречаются

    Фикс 3.
    А вот это серьезный косяк, делающий мод несовместимым с ТП2

    Код:
    #
    #-----[ OPEN ]------------------------------------------
    #
    reputation.php
    #
    #-----[ FIND ]--------------------------------------
    #
    include($phpbb_root_path . 'extension.inc');
    include($phpbb_root_path . 'common.php');
    include($phpbb_root_path . 'reputation_common.php');
    include($phpbb_root_path . 'language/lang_' . $bb_cfg['default_lang'] . '/lang_reputation.php');
    
    #
    #-----[ REPLACE ]--------------------------------------
    #
    define('IN_PHPBB', true);
    define('BB_ROOT', './');
    require(BB_ROOT .'common.php');
    require(BB_ROOT .'reputation_common.php');
    require(BB_ROOT .'language/lang_' . $bb_cfg['default_lang'] . '/lang_reputation.php');
    
    Upd. ну и файлик reputation.tpl в аттаче неплохо было бы в UTF сконвертить. А то кракозяблы :)
     
  6. Mikotka

    Mikotka Пользователь

    Сообщения:
    79
    Симпатии:
    22
    Госссподи... ну и мешанина в коде с регистрами вызова лангов... Лог разрывается просто от необъявленных переменных:confused:

    А так, вроде работает... Докинул только проверку от несуществующих пользователей. У меня за несколько лет по разным причинам попадаются посты от юзверей, которых в bb_users нет. На таких постах в теме мод блокирует все.
     
  7. Didier

    Didier Пользователь

    Сообщения:
    111
    Симпатии:
    8
    Вот честно. За последнее время это первый мод сделанный настолько через ... кхм ... ну вы поняли через что. Пришлось уже самому править сие безобразие руками, но так как я себя никогда программистом не считал, то очень много сказал нецензурных выражений. Ну то что в нескольких местах пришлось править Reputation на REPUTATION - это ладно.

    В настоящую минуту если включить
    , а я ставил скажем 1, то мускуль начинал орать

    Код:
    )______________________________________________________________________________
    
    #001064 You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '4 WHERE user_id = 3299' at line 2
    
    UPDATE bb_users SET user_reputation = user_reputation + 1,4 WHERE user_id = 3299
    
    Source  : reputation.php(156) :: db1.team_gdi_2011
    IP      : 178.49.136.62
    Date    : 2011-10-04 13:53:07
    Agent  : Mozilla/5.0 (Windows NT 6.1; WOW64; rv:7.0.1) Gecko/20100101 Firefox/7.0.1
    Req_URI : /reputation.php?a=post
    Referer : http://www.team-gdi.com/reputation.php?a=add&u=3299&p=138001&c=d41d8cd9
    Method  : POST
    PID    : 02414
    Request : Array
    (
        [a] => post
        [rep_sum_to_give] => 1
        [rep_neg_to_give] => 0
        [rep_comment_to_give] =>
        [submit] => Выдать
        [user_id_to_give] => 3299
        [post_id_to_give] => 138001
        [ccode] => d41d8cd9
    
    Ну и репутация соответственно не выдавалась (Could not update reputation for the user)

    Есть способ избавиться или проще все снести к свиням? :)
     
  8. Mikotka

    Mikotka Пользователь

    Сообщения:
    79
    Симпатии:
    22
    Didier,
    Удалите или закоментируйте в \language\lang_russian\lang_main.php строку
    Код:
    setlocale(LC_ALL, 'ru_RU.UTF-8');
    в ТП2 двойное объявление локали, из-за этого у вас в "+ 1,4" запятая, а должна быть точка. Мускль такого надругательства не выдерживает :)
     
    PheRum и Didier нравится это.
  9. Didier

    Didier Пользователь

    Сообщения:
    111
    Симпатии:
    8
    Mikotka, спасибо огромное. Сам бы не допер. :)
    --- добавлено: Oct 5, 2011 12:38 AM ---
    Кстати, как избавится от вывода десятичных дробей?
    (Репутация 535.5
    Голосов 524)
     
  10. Mikotka

    Mikotka Пользователь

    Сообщения:
    79
    Симпатии:
    22
    А зачем? Мне как раз даже понравилось, что, чем больше разница в "уровнях" по рейтингу, тем больше бонус получающему.

    Но, если очень надо, то это явно задается в reputation.php

    Код:
            if ($userdata['user_reputation'] > $row['user_reputation'])
            {
                if ($userdata['user_reputation'] >= $rep_config['medal1_to_earn']) // >= medal1?
                {
                    $mul = 1.4;
                } else if ($userdata['user_reputation'] >= $rep_config['medal2_to_earn']) // >= medal2 && < medal1
                {
                    $mul = 1.3;
                } else if ($userdata['user_reputation'] >= $rep_config['medal3_to_earn']) // >=medal3 && <medal2 && <medal1
                {
                    $mul = 1.2;
                } else
                {
                    $mul = 1.1;
                }
            } else
            {
                $mul = 1;
            }
    
    Поставьте вместо этого просто
    Код:
    $mul = 1;
    И не будет присваивать дробные числа.
     
    Didier нравится это.

Поделиться этой страницей