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

Как получить значение результатов голосования в 3м типе рейтинга ('Нравится' или 'Не нравится')?


     19.12.2016    Общие вопросы по вёрстке, Общие вопросы по PHP, Хаки    189

вопрос
Доброго времени суток, интересует такой момент, уверен и не одного меня, ответа так толкового и не нашёл...
Как получить значение (результаты) голосования в 3-м. типе рейтинга + / - с модификацией от Sander-а.



Скажите, это вообще реально приделать этому патчу определенное значение? Подскажите пожалуйста, очень сильно интересует этот момент.
Спасибо

Ответил: list


Для того чтобы добавить к рейтингу количество минусов и количество плюсов, делаем так (дле 11.2)

Открываем в зависимости от того, где хотим выводить дополнительные теги (короткая, полная новость или custom)
engine/modules/show.short.php
engine/modules/show.full.php
engine/modules/show.custom.php

После
if( $row['allow_rate'] ) { 


Вставить
$row['rate_minus'] = ($row['vote_num'] - $row['rating'])/2;
$row['rating_plus'] = $row['rating'] + $row['rate_minus'];


после
$tpl->set( '{vote-num}', "<span id=\"vote-num-id-".$row['id']."\">".$row['vote_num']."</span>" );


вставить
$tpl->set( '{rate_minus}', "<span id=\"rate_minus-id-".$row['id']."\" >". $row['rate_minus']."</span>" );
$tpl->set( '{rating_plus}', "<span id=\"rating_plus-id-".$row['id']."\" >". $row['rating_plus']."</span>" );



Открыть
engine/ajax/rating.php

После
$row = $db->super_query( "SELECT news_id, rating, vote_num FROM " . PREFIX . "_post_extras WHERE news_id ='$news_id'" );


вставить
$row['rate_minus'] = ($row['vote_num'] - $row['rating'])/2;
$row['rating_plus'] = $row['rating'] + $row['rate_minus'];


и меняем это
$buffer = htmlspecialchars("{\"success\":true, \"rating\":\"{$buffer}\", \"votenum\":\"{$row['vote_num']}\"}", ENT_NOQUOTES, $config['charset']);


на это
$buffer = htmlspecialchars("{\"success\":true, \"rating\":\"{$buffer}\", \"votenum\":\"{$row['vote_num']}\", \"rate_minus\":\"{$row['rate_minus']}\", \"rating_plus\":\"{$row['rating_plus']}\"}", ENT_NOQUOTES, $config['charset']);



Открыть
engine/classes/js/dle_js.js

Найти
function doRate(a,c){ShowLoading("");$.get(dle_root+"engine/ajax/rating.php",{go_rate:a,news_id:c,skin:dle_skin},function(a){HideLoading("");if(a.success){var b=a.rating,b=b.replace(/&lt;/g,"<"),b=b.replace(/&gt;/g,">"),b=b.replace(/&amp;/g,"&");$("#ratig-layer-"+c).html(b);$("#vote-num-id-"+c).html(a.votenum)}else a.error&&DLEalert(a.errorinfo,dle_info)},"json")}


заменить на:
function doRate(a,c){ShowLoading("");$.get(dle_root+"engine/ajax/rating.php",{go_rate:a,news_id:c,skin:dle_skin},function(a){HideLoading("");if(a.success){var b=a.rating,b=b.replace(/&lt;/g,"<"),b=b.replace(/&gt;/g,">"),b=b.replace(/&amp;/g,"&");$("#ratig-layer-"+c).html(b);$("#rate_minus-id-"+c).html(a.rate_minus);$("#rating_plus-id-"+c).html(a.rating_plus);$("#vote-num-id-"+c).html(a.votenum)}else a.error&&DLEalert(a.errorinfo,dle_info)},"json")}



В шаблоне использовать
{rate_minus} - выведет количество минусов
{rating_plus} - выведет количество плюсов

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

backtoearth
16 | 1

backtoearth - 21 декабря 2016 09:34 - Юзер

Спасибо огромное, Это именно то что нужно, даже больше...

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

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