VBsupport перешел с домена .ORG на родной .RU
Ура!
Пожалуйста, обновите свои закладки - VBsupport.ru
Блок РКН снят, форум доступен на всей территории России, включая новые терртории, без VPN
На форуме введена премодерация ВСЕХ новых пользователей
Почта с временных сервисов, типа mailinator.com, gawab.com и/или прочих, которые предоставляют временный почтовый ящик без регистрации и/или почтовый ящик для рассылки спама, отслеживается и блокируется, а так же заносится в спам-блок форума, аккаунты удаляются
Если вы хотите приобрести какой то скрипт/продукт/хак из каталогов перечисленных ниже: Каталог модулей/хаков
Ещё раз обращаем Ваше внимание: всё, что Вы скачиваете и устанавливаете на свой форум, Вы устанавливаете исключительно на свой страх и риск.
Сообщество vBSupport'а физически не в состоянии проверять все стили, хаки и нули, выкладываемые пользователями.
Помните: безопасность Вашего проекта - Ваша забота. Убедительная просьба: при обнаружении уязвимостей или сомнительных кодов обязательно отписывайтесь в теме хака/стиля
Спасибо за понимание
Хочется сделать не что типо статистики по спасибкам, и что бы за каждую спасибку прибовляли ну например 10 очков кармы, как это можно осуществить? может кто подсказаТЬ? Думаю понятно о чем я? Если нет то еще раз кратко: Есть хак "спасибо" так вот к этому хаку(а может и есть такой) нужно прикрутить функцию статистики (ТОП х) и что бы за каждую нажатую "спасибо" давали 10 очков кармы.
на 3.8.х
В настройках хака ->
Репутация
Параметр устанавливает количество очков к репутации, прибавляемых при благодарности. Установите на '0' для отключения данной опции. ->
Устанавливаете '10'
@SeM13
Знаток
Join Date: Dec 2007
Location: Норильск, Красноярский край.
Posts: 508
Версия vB: 4.0 Beta
Reputation:
Knowing 251
Репутация в разделе: 237
0
Quote:
Originally Posted by outlander
В настройках хака ->
Репутация
Параметр устанавливает количество очков к репутации, прибавляемых при благодарности. Установите на '0' для отключения данной опции. ->
Устанавливаете '10'
Ага, нашел, как я раньше этого не замечал? О-о Спасибо!
А со статистикой? не хачу использовать те грамозкие.:(
@Ghost
Гуру
Join Date: Feb 2008
Posts: 983
Версия vB: 3.8.1
Reputation:
Гуру 1014
Репутация в разделе: 896
0
Quote:
Originally Posted by SeMu13
А со статистикой? не хачу использовать те грамозкие
Да я сматрел ее(не на столько нуб, поиск юзать умею.).
Блин как бы объяснить, вот примерно такую же только что бы выводила например там где статистика форума "темы, сообщения, новый пользователь" был бы к примеру отписано самый "спасибный" человек
@Ghost
Гуру
Join Date: Feb 2008
Posts: 983
Версия vB: 3.8.1
Reputation:
Гуру 1014
Репутация в разделе: 896
1
SeMu13, отдельно такого хака лично я не видел. если "спасибы" хранятся в таблице пользователей, то можно сделать и самому, добавив еще один запрос в базу для главной страницы и немного подрихтовав шаблон. седня уже поздно, а завтра посмотрю, если никто не отпишется и не предложит тебе устраивающий тебя вариант.
Ghost добавил 04.05.2009 в 19:02
Короче так. В шаблон "FORUMHOME" после
Далее: админка - продукты и модули - добавить новый модуль:
продукт = vBulletin
Местоположение модуля = global_setup_complete
Заголовок = top_thanks
Порядок выполнения = 50
Модуль включен = Да
Код PHP модуля =
PHP Code:
$top_thanks = '';
if ($vbulletin->userinfo['userid'])
{
$top_thanks = array ();
$top_users = $vbulletin->db->query_read ("
SELECT user.*, usergroup.opentag, usergroup.closetag
FROM " . TABLE_PREFIX . "user AS user
JOIN " . TABLE_PREFIX . "usergroup AS usergroup ON(user.usergroupid=usergroup.usergroupid)
WHERE user.reputation>0
ORDER BY user.reputation DESC
LIMIT 0,10
");
while ($user = $vbulletin->db->fetch_array ($top_users))
{
$top_thanks[] = "<a href=\"member.php?u=$user[userid]\" rel=\"nofollow\" title=\"$user[reputation]\">$user[opentag]$user[username]$user[closetag]</a>";
}
$top_thanks = join (', ', $top_thanks);
}
$GLOBALS['top_thanks'] = $top_thanks;
Last edited by Ghost : 05-04-2009 at 07:02 PM.
Reason: Добавлено сообщение
kerk
k0t
Join Date: May 2005
Location: localhost
Posts: 28,844
Версия vB: 3.8.x
Пол:
Reputation:
Гуру 20333
Репутация в разделе: 8468
1
Quote:
Originally Posted by Ghost
добавив еще один запрос в базу для главной страницы
а разьве не в массиве $userinfo хранятся эти данные? если "спасибы" в таблице user...
если в постах выводит как $post[post_tanks] (ну или что то подобное)
и в профиле $userinfo[post_tanks]
@Ghost
Гуру
Join Date: Feb 2008
Posts: 983
Версия vB: 3.8.1
Reputation:
Гуру 1014
Репутация в разделе: 896
1
Quote:
Originally Posted by kerk
а разьве не в массиве $userinfo хранятся эти данные?
вообще-то этот массив описывает текущего пользователя, т.е. только одного. или пользователя, сообщение которого обрабатывается в данный момент. топикстартеру нужен вывод 10 пользователей с максимальной репутацией -- я сомневаюсь, что скрипт этого продукта любезно создает массив с такими данными для всех пользователей форума при вызове index.php. скорее уж только для залогинившегося, тех чей профиль просматривают (в member.php), чьи посты читают (showthread.php) и т.п. т.е. нужно все-таки такой массив получить. я не пользуюсь этим продуктом, но судя по описаниям, которые видел на форуме, он использует стандартную репутацию, просто видоизменяя ее, но данные при этом хранит там же и использует ее настройки (плюс свои собственные наверное). репутация пользователя же хранится в таблице user в поле reputation -- думаю, там же хранятся и "спасибы". если не прав -- поправь меня, где и как, и я просто поправлю запрос в модуле, но выполнять этот запрос все равно придется.
з.ы. ща скачаю продукт и посмотрю как он работает.
kerk
k0t
Join Date: May 2005
Location: localhost
Posts: 28,844
Версия vB: 3.8.x
Пол:
Reputation:
Гуру 20333
Репутация в разделе: 8468
2
Quote:
Originally Posted by Ghost
я не пользуюсь этим продуктом
я тоже =)
да, еще...
заметил в коде такое:
Code:
$user[opentag]$user[username]$user[closetag]
это для сохранения ресурсов?
я как то привык подключать ф-ю fetch_musername($result); где $result = массив с данными из запроса, ну примерно так
PHP Code:
$top_thanks = '';
if ($vbulletin->userinfo['userid'])
{
$top_thanks = array ();
$top_users = $vbulletin->db->query_read ("
SELECT user.*
FROM " . TABLE_PREFIX . "user AS user
WHERE user.reputation>0
ORDER BY user.reputation DESC
LIMIT 0,10
");
while ($user = $vbulletin->db->fetch_array ($top_users))
{
$user[musername] = fetch_musername($user);
$top_thanks[] = "<a href=\"member.php?u=$user[userid]\" rel=\"nofollow\" title=\"$user[reputation]\">$user[musername]</a>";
}
$top_thanks = join (', ', $top_thanks);
}
$GLOBALS['top_thanks'] = $top_thanks;
не проверял, но должно работать =)
@Ghost
Гуру
Join Date: Feb 2008
Posts: 983
Версия vB: 3.8.1
Reputation:
Гуру 1014
Репутация в разделе: 896
1
скачал. посмотрел. продукт добавляет в таблицу user три поля: post_thanks_user_amount, post_thanks_thanked_posts и post_thanks_thanked_times. судя по всему это сумма "спасиб", количество постов пользователя со "спасибами" и количество "спасиб". тогда мой модуль нужно переделать вот так:
PHP Code:
$top_thanks = '';
if ($vbulletin->userinfo['userid'])
{
$top_thanks = array ();
$top_users = $vbulletin->db->query_read ("
SELECT user.*, usergroup.opentag, usergroup.closetag
FROM " . TABLE_PREFIX . "user AS user
JOIN " . TABLE_PREFIX . "usergroup AS usergroup ON(user.usergroupid = usergroup.usergroupid)
WHERE user.post_thanks_user_amount > 0
ORDER BY user.post_thanks_user_amount DESC, user.post_thanks_thanked_posts DESC, user.post_thanks_thanked_times DESC
LIMIT 0,10
");
while ($user = $vbulletin->db->fetch_array ($top_users))
{
$top_thanks[] = "<a href=\"member.php?u=$user[userid]\" rel=\"nofollow\" title=\"$user[post_thanks_user_amount]\">$user[opentag]$user[username]$user[closetag]</a>";
}
$top_thanks = join (', ', $top_thanks);
}
$GLOBALS['top_thanks'] = $top_thanks;
вроде все.
Ghost добавил 05.05.2009 в 10:53 kerk, за "fetch_musername($user)" спасибо. думаю теперь из наших двух модулей топикстартер соберет себе, то что ему нужно.
з.ы. кстати, модуль лучше будет повесить на хук "forumhome_start", иначе он будет выполняться не только на главной странице форума, а вообще на всех, что не есть гут. хотя, если нужно отображать топ отспасибленных везде, то можно оставить и на "global_setup_complete" или добавить туда фильтр по содержимому константы THIS_SCRIPT.
Last edited by Ghost : 05-05-2009 at 10:53 AM.
Reason: Добавлено сообщение