Не нравятся результаты поиска? Попробуйте другой поиск!
dle-faq.ru FAQ (все вопросы) Общие вопросы Как объеденить рейтинг за комментарии и за новости?

Как объеденить рейтинг за комментарии и за новости?


     04.04.2015    Общие вопросы    1584

вопрос
Всем известно что в DLE два вида рейтинга, за новости и за комментарии.
Для вывода каждого из них в нужном месте сущействует свой тег.
А вот для вывода общего рейтинга тега нет.

Подскажите, как сделать общий рейтинг, т.е.так чтобы рейтинг за новости суммировался с рейтингом за комментарии?
И как вывести его в нужных местах (в комментариях под аватаркой, и в профиле пользователя).

DLE 10.4 тип рейтинга 3

Ответил: SX2


$comm_rate = $db->super_query( "SELECT SUM(rating) as rating FROM " . PREFIX . "_post_extras WHERE user_id ='{$row['user_id']}'" );    
$news_rate = $db->super_query( "SELECT COUNT(rating) as rating FROM " . PREFIX . "_comments WHERE user_id ='{$row['user_id']}'" );

$tpl->set('{total}', ($news_rate['rating'] + $comm_rate['rating']));

Общий рейтинг: {total}

Комментарии пользователей (13)

SX2
38

122 | 84

SX2 - 4 апреля 2015 13:13 - Юзер

Исправьте на:
$news_rate = $db->super_query( "SELECT COUNT(rating) as rating FROM " . PREFIX . "_comments WHERE user_id ='{$row['user_id']}'" );
    $comm_rate = $db->super_query( "SELECT SUM(rating) as rating FROM " . PREFIX . "_post_extras WHERE user_id ='{$row['user_id']}'" );    
        
    $total = $news_rate['rating'] + $comm_rate['rating'];
    $tpl->set('{total}', $total);

m0skit
12

m0skit - 4 апреля 2015 15:11 - Юзер

Спасибо. А в каком файле подправить? Тег тотал в каких местах можно применять, только в профиле пользователя?

SX2
38

122 | 84

SX2 - 4 апреля 2015 20:36 - Юзер

Можно еще так:
$total_rate = $db->super_query("SELECT (SELECT SUM(rating) FROM " . PREFIX . "_post_extras WHERE user_id ='{$row['user_id']}') + (SELECT SUM(rating) FROM " . PREFIX . "_comments WHERE user_id ='{$row['user_id']}') AS rating" ); 
$total = isset($total_rate['rating']) ? $total_rate['rating'] : 0;

$tpl->set('{total}', $total);

m0skit
12

m0skit - 6 апреля 2015 06:20 - Юзер

Еще раз спасибо, но ваш ответ был бы полезен, если бы вы ответили на мои вопросы, заданные ранее.
На всякий случай повторю
В каком файле подправить? Тег тотал в каких местах можно применять, только в профиле пользователя?

m0skit
12

m0skit - 6 апреля 2015 06:26 - Юзер

Пробовал вставлять ваш код в profile.php - не работает ни один из трех вариантов

SX2
38

122 | 84

SX2 - 6 апреля 2015 06:31 - Юзер


m0skit
12

m0skit - 6 апреля 2015 06:40 - Юзер

Перейдя по ссылке наконец нашел ответы на свои вопросы. Спасибо.

Но, общий рейтинг выводится только цифрой без знака + или -
Подскажите, как сделать чтобы рейтинг отображался так же как и родной, но только был общим?

m0skit
12

m0skit - 6 апреля 2015 06:56 - Юзер

Кроме этого, интересует как складывается общий рейтинг, в случае если один или оба слагаемых рейтинга отрицательные? По идее, отрицательный рейтинг должен вычитаться

SX2
38

122 | 84

SX2 - 6 апреля 2015 09:03 - Юзер

$tpl->set('{total}', (($total>0) ? '+ ' : '- ') . $total);

m0skit
12

m0skit - 6 апреля 2015 15:18 - Юзер

Вот спасибо. Теперь все нормуль

m0skit
12

m0skit - 11 апреля 2015 16:26 - Юзер

А не поможете еще с оформлением рейтинга?

Дело в том что, стандартный рейтинг (за комментарии или за новости) оформляется в зависимости от того какой рейтинг - плюсовой имеет зеленый цвет, 0 серый, а отрицательный красный.

Поковырявшись в коде стандартного рейтинга, я понял что в зависимости от значения рейтинга ему присваивается класс CSS (ratingplus, reitingminus, retingzro).

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

К сожалению, моих знаний php не хватает для того чтобы изменить ваш код, внести туда эти классы.

Буду вам очень признателен за помощь.

m0skit
12

m0skit - 14 апреля 2015 10:38 - Юзер

На вашем сайте хрен зарегистрируешься. Я заколебался отвечать на вопрос про домен, уже все возможные варианты перепробовал, в итоге плюнул на это.
По поводу использования скриптов для присвоения классов - не совсем правильное решение. Зачем лишние скрипты пихать на страницу, их итак достаточно. Будет правильнее сделать точно так же как и в родном рейтинге. Я уже писал об этом.

Чтобы комментировать - войдите или зарегистрируйтесь на сайте

Похожие вопросы