VBsupport перешел с домена .ORG на родной .RU
Ура!
Пожалуйста, обновите свои закладки - VBsupport.ru
Блок РКН снят, форум доступен на всей территории России, включая новые терртории, без VPN
На форуме введена премодерация ВСЕХ новых пользователей
Почта с временных сервисов, типа mailinator.com, gawab.com и/или прочих, которые предоставляют временный почтовый ящик без регистрации и/или почтовый ящик для рассылки спама, отслеживается и блокируется, а так же заносится в спам-блок форума, аккаунты удаляются
Если вы хотите приобрести какой то скрипт/продукт/хак из каталогов перечисленных ниже: Каталог модулей/хаков
Ещё раз обращаем Ваше внимание: всё, что Вы скачиваете и устанавливаете на свой форум, Вы устанавливаете исключительно на свой страх и риск.
Сообщество vBSupport'а физически не в состоянии проверять все стили, хаки и нули, выкладываемые пользователями.
Помните: безопасность Вашего проекта - Ваша забота. Убедительная просьба: при обнаружении уязвимостей или сомнительных кодов обязательно отписывайтесь в теме хака/стиля
Спасибо за понимание
Вот у меня форум на Vbulletin и там если кому то меняешь репу, то она или +10 или -10 даётся.
Но вот на серче нетак. Там если у человека который даёт тебе + в репу у самого она большая, то и тебе может дать 1000+, а если маленькая то 20+. Что это за хак? Помогите найти.
psihadelic, вешай на "reputation_power" плагин, который будет в зависимости от значений $userinfo (информация пользователе: кол-во постов, репутация) и $reputation ('pos' - положительная, 'neg' - отрицательная) вычислять нужное значение и записывать в переменную $reppower. В самом простейшем случае это будет выглядеть так:
А и действительно, можно подробнее, что за плагин? Где взять?
@Ghost
Гуру
Join Date: Feb 2008
Posts: 983
Версия vB: 3.8.1
Reputation:
Гуру 1011
Репутация в разделе: 893
1
Quote:
Originally Posted by psihadelic
А и действительно, можно подробнее, что за плагин? Где взять?
Создается ручками: админка – продукты и модули – добавить новый модуль – заполняй форму: продукт=vBulletin, местоположение=reputation_power, заголовок=на свой вкус, порядок=5, код=тот что я написал выше или любой свой, включен=да; жми кнопку «Сохранить».
@psihadelic
Простоузер
Join Date: Nov 2008
Posts: 47
Reputation:
Lamer -10
Репутация в разделе: -6
0
Ураааа спасиба!!!! откуда ты всё это знаешь?
@Ghost
Гуру
Join Date: Feb 2008
Posts: 983
Версия vB: 3.8.1
Reputation:
Гуру 1011
Репутация в разделе: 893
6
Quote:
Originally Posted by psihadelic
Ураааа спасиба!!!! откуда ты всё это знаешь?
Не за что. Учи матчасть, тобишь PHP, HTML и собственно vBulletin. Могу объяснить как пришел к этому решению:
Выставление репутации вызывается по ссылке «reputation.php» – значит нужно смотреть этот скрипт.
Открываю исходный текст формы выставления репутации и вижу в POST-форме поле «<input type="hidden" name="do" value="addreputation" />» – значит нужно искать в скрипте раздел с условием «$_POST['do'] == 'addreputation'»
Нахожу в нужном скрипте в нужном разделе строку, которая вычисляет размер репутации. Это несложно, т.к. имена переменным и функциям даются понятные – достаточно перевести с ангийского на русский. Эта строка: «$score = fetch_reppower (…);»
Теперь нужно найти, где определяется функция «fetch_reppower» и внести в нее изменения. Простой поиск по файлам: «includes/functions_reputation.php».
В описании функции ищу вставку хука. Это выглядит так: «($hook = vBulletinHook::fetch_hook('имя_хука')) ? eval($hook) : false;». Там же ищу, что возвращает функция: «return $переменная».
Остается на найденный хук повесить свой код с вычислением нужного мне значения и записью его в найденную переменную.
@psihadelic
Простоузер
Join Date: Nov 2008
Posts: 47
Reputation:
Lamer -10
Репутация в разделе: -6
0
Спасиба конечно, но я в пхп не силён. Я больше оптимизатор.
У меня ещё есть вопрос именно к тебе. Как сделать так чтобы если повышаешь одному пользователю репутацию больше 1 раза в день она у него не повыщалась, а снижалась? При этом лимит на изменение репутации в день я уберу.
И ещё вопрос, как сделать чтобы от при изменении репы отдавалось не 10%, а 5?
@Ghost
Гуру
Join Date: Feb 2008
Posts: 983
Версия vB: 3.8.1
Reputation:
Гуру 1011
Репутация в разделе: 893
1
Quote:
Originally Posted by psihadelic
И ещё вопрос, как сделать чтобы от при изменении репы отдавалось не 10%, а 5?
Дели $reppower не на 10, а на 20 (другими словами, умножай не на 0.1, а на 0.05).
Quote:
Originally Posted by psihadelic
Как сделать так чтобы если повышаешь одному пользователю репутацию больше 1 раза в день она у него не повыщалась, а снижалась?
Плагин на "reputation_add_start". Что-то вроде такого (проверить не могу, т.к. у меня на форме репутация отключена вообще):
PHP Code:
if ($score > 0) // если добавляем репутацию { $lastrepa = 0; // ищем время последней добавленной этому пользователю репутации за последние сутки $sql = " SELECT MAX(dateline) AS lastrepa FROM " . TABLE_PREFIX . "reputation WHERE reputation>0 AND userid=$userinfo[userid] AND whoadded=$userid AND dateline>(UNIX_TIMESTAMP()-86400) "; $res = $db->query_read ($sql); while ($row = $db->fetch_array ($res)) { $lastrepa = intval ($row['lastrepa']); }
if ($lastrepa) // если время найдено (т.е. пользователю уже добавлялась репутация) { $score *= -1; // репа = -репа } }
Еще раз: учите матчасть
@psihadelic
Простоузер
Join Date: Nov 2008
Posts: 47
Reputation:
Lamer -10
Репутация в разделе: -6
0
Огромное спасибо!)
Ещё кое что.
Как сделать чтобы при изменении репы пользователь мог скривать свой ник? (как на серче)