Делаем общим рейтинг новостей и комментариев

4 2 апреля 2017
Версия DLE: Любая
Стоимость: FREE

ionCube Loader: NOT

Последнее обновление: 7 мая 2017


 Подписаться 0 Скачать

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

Автор: SX2
Проверенно на DLE: 10.4
собрано 0 долларов Поддержать автора

Войдите на сайт


Все собранные средства будут переданы автору этой статьи - SX2
Сумма перевода от 1 доллар
Установка:

Делаем вывод рейтинга, в профиле пользователя!

Для этого нужно открыть /engine /modules/profile.php найти
$tpl->set('{lastdate}', langdate("j F Y H:i", $row['lastdate']));

Ниже вставить, только один из вариантов!

Первый вариант!
$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 SUM(rating) as rating FROM " . PREFIX . "_comments WHERE user_id ='{$row['user_id']}'" );

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

Второй вариант!
$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);

После открыть /templates/Ваш шаблон/userinfo.tpl в удобном месте вставить
Общий рейтинг: {total}

Вот и все!

Если нужно поставить + или - тогда делаем так
$tpl->set('{total}', (($total>0) ? '+ ' : '- ') . $total);

Третий вариант!
Открыть engine/modules/functions.php перед
function dle_session( $sid = false ) {

Втавить
function full_like($id){
	
    global $db, $config;
	
    $id       = intval($id);
    $post_sql = $db->query("SELECT SUM(rating) as rating FROM " . PREFIX . "_post_extras WHERE user_id ='{$id}'");
    while ($row = $db->get_row($post_sql))
        $rating_p += $row['rating'];
	
    $comm_sql = $db->query("SELECT SUM(rating) as rating FROM " . PREFIX . "_comments WHERE user_id ='{$id}'");
    while ($row = $db->get_row($comm_sql))
        $rating_c += $row['rating'];
	
    $rating = ((int)$rating_p + (int)$rating_c);
	
    return $rating;
	
}

В comments.class.php после
$tpl->set( '{id', $row['id'] );

Вставить
$tpl->set('{full_like}', full_like($row['user_id']));

В profile.php после
$tpl->set('{lastdate}', langdate("j F Y H:i", $row['lastdate']));

Вставить
$tpl->set('{full_like}', full_like($row['user_id']));

В userinfo.tpl, comments.tpl вставить тег
Общий рейтинг: {full_like}

Какой из вариантов использовать? Решайте сами!

Рекомендую третий вариант
Добавлен еще один вариант! Актуально для DLE 10.6
Нет файлов для загрузки!
Нет видео!
Уважаемый посетитель, Вы зашли на сайт как незарегистрированный пользователь.
Мы рекомендуем Вам зарегистрироваться либо войти на сайт под своим именем.


Подписка на новости

Подписаться

Кто онлайн
4 посетителя на сайте. Из них:
Гости3
Роботы1