форум vBSupport.ru > vBulletin > Вопрос — Ответ
  • »
VBsupport перешел с домена .ORG на родной .RU Ура! Пожалуйста, обновите свои закладки - VBsupport.ru
 
 
 
 
SeM13
Знаток
 
SeM13's Avatar
Default Спасибо + Топ10 на них
0

Хочется сделать не что типо статистики по спасибкам, и что бы за каждую спасибку прибовляли ну например 10 очков кармы, как это можно осуществить? может кто подсказаТЬ?
Думаю понятно о чем я? Если нет то еще раз кратко: Есть хак "спасибо" так вот к этому хаку(а может и есть такой) нужно прикрутить функцию статистики (ТОП х) и что бы за каждую нажатую "спасибо" давали 10 очков кармы.
на 3.8.х
Bot
Yandex Bot Yandex Bot is online now
 
Join Date: 05.05.2005
Реклама на форуме А что у нас тут интересного? =)
 
 
outlander
Специалист
 
outlander's Avatar
Default
1

В настройках хака ->
Репутация
Параметр устанавливает количество очков к репутации, прибавляемых при благодарности. Установите на '0' для отключения данной опции. ->
Устанавливаете '10'
 
 
SeM13
Знаток
 
SeM13's Avatar
Default
0

Quote:
Originally Posted by outlander View Post
В настройках хака ->
Репутация
Параметр устанавливает количество очков к репутации, прибавляемых при благодарности. Установите на '0' для отключения данной опции. ->
Устанавливаете '10'
Ага, нашел, как я раньше этого не замечал? О-о Спасибо!
А со статистикой? не хачу использовать те грамозкие.:(
 
 
Ghost
Гуру
 
Ghost's Avatar
Default
0

Quote:
Originally Posted by SeMu13 View Post
А со статистикой? не хачу использовать те грамозкие
Cyb - Advanced Forum Statistics v.6.5 Ru громоздка или подойдет?
 
 
SeM13
Знаток
 
SeM13's Avatar
Default
0

Quote:
Originally Posted by Ghost View Post
Cyb - Advanced Forum Statistics v.6.5 Ru громоздка или подойдет?
Да я сматрел ее(не на столько нуб, поиск юзать умею.).
Блин как бы объяснить, вот примерно такую же только что бы выводила например там где статистика форума "темы, сообщения, новый пользователь" был бы к примеру отписано самый "спасибный" человек
 
 
Ghost
Гуру
 
Ghost's Avatar
Default
1

SeMu13, отдельно такого хака лично я не видел. если "спасибы" хранятся в таблице пользователей, то можно сделать и самому, добавив еще один запрос в базу для главной страницы и немного подрихтовав шаблон. седня уже поздно, а завтра посмотрю, если никто не отпишется и не предложит тебе устраивающий тебя вариант.

Ghost добавил 04.05.2009 в 19:02
Короче так. В шаблон "FORUMHOME" после
HTML Code:
<div><phrase 1="member.php?$session[sessionurl]u=$newuserid" 2="$newusername">$vbphrase[welcome_to_our_newest_member_x]</phrase></div>
вставляем
HTML Code:
<if condition="$GLOBALS['top_thanks']"><div><b>Самые спасибные</b>: $GLOBALS[top_thanks]</div></if>
Далее: админка - продукты и модули - добавить новый модуль:
  • продукт = 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
 
kerk's Avatar
Default
1

Quote:
Originally Posted by Ghost View Post
добавив еще один запрос в базу для главной страницы
а разьве не в массиве $userinfo хранятся эти данные? если "спасибы" в таблице user...
если в постах выводит как $post[post_tanks] (ну или что то подобное)
и в профиле $userinfo[post_tanks]
 
 
Ghost
Гуру
 
Ghost's Avatar
Default
1

Quote:
Originally Posted by kerk View Post
а разьве не в массиве $userinfo хранятся эти данные?
вообще-то этот массив описывает текущего пользователя, т.е. только одного. или пользователя, сообщение которого обрабатывается в данный момент. топикстартеру нужен вывод 10 пользователей с максимальной репутацией -- я сомневаюсь, что скрипт этого продукта любезно создает массив с такими данными для всех пользователей форума при вызове index.php. скорее уж только для залогинившегося, тех чей профиль просматривают (в member.php), чьи посты читают (showthread.php) и т.п. т.е. нужно все-таки такой массив получить. я не пользуюсь этим продуктом, но судя по описаниям, которые видел на форуме, он использует стандартную репутацию, просто видоизменяя ее, но данные при этом хранит там же и использует ее настройки (плюс свои собственные наверное). репутация пользователя же хранится в таблице user в поле reputation -- думаю, там же хранятся и "спасибы". если не прав -- поправь меня, где и как, и я просто поправлю запрос в модуле, но выполнять этот запрос все равно придется.

з.ы. ща скачаю продукт и посмотрю как он работает.
 
 
kerk
k0t
 
kerk's Avatar
Default
2

Quote:
Originally Posted by Ghost View Post
я не пользуюсь этим продуктом
я тоже =)
да, еще...
заметил в коде такое:
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
Гуру
 
Ghost's Avatar
Default
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: Добавлено сообщение
 


Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off




All times are GMT +4. The time now is 11:19 PM.


Powered by vBulletin® Version 3.6.1
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Loading...