Узнать разрешение вашего экрана и IP адрес
Артем Мáлков
1 082 просм
4 комм
Поделиться

Улучшаем рейтинг материалов DLE + выводим общую оценку в нужном месте

Для тех, кто не знал, мы недавно обновили наши онлайн инструменты. Сделали их более удобными и функциональными. Но сейчас речь идет не об этом. В процессе реализации мы столкнулись с некоторыми проблемами, а именно:

1. Стандартный рейтинг звездами в DLE показался нам не совсем точным;
2. Нам потребовалось вывести числом общую оценку рейтинга в нужном нам месте.

Первую мы смогли обнаружить с помощью второй проблемы, когда вывели число рейтинга, который показывал нам оценку 4.7, в то время, как звезды показывали нам показатель в 4.5. Решить обе проблемы нам удалось, и сейчас мы расскажем вам, как мы это сделали.

Повышаем точность рейтинга

Для того чтобы сделать ваш рейтинг более точным, выполним следующее:

1. Открываем файл functions.php в папке /engine/modules/, на 281 строке находим:

if( $rating AND $vote_num ) $rating = round( ($rating / $vote_num), 0 );
else $rating = 0;
if ($rating < 0 ) $rating = 0;
$rating = $rating * 20;

2. И заменяем все на:

if( $rating AND $vote_num ) $rating = round( ($rating / $vote_num), 1 ); 
else $rating = 0;
if ($rating < 0 ) $rating = 0;
$rating = floor($rating * 20);

Вот такими манипуляциями мы сделали наш рейтинг более точным.

Выводим общую оценку рейтинга

Для того чтобы вывести в нужном месте общую оценку рейтинга числом, делаем следующее:

1. Открываем файлы show.short.php и show.full.php и папке /engine/modules/ находим строчку:

$tpl->set( '{rating}', ShowRating( $row['id'], $row['rating'], $row['vote_num'], $user_group[$member_id['user_group']]['allow_rating'] ) );

2. После нее вставляем:

$tpl->set( '{rating_nums}', str_replace(",",".",round($row['rating']/max(1,$row['vote_num']),1)));

На сайте, в нужном вам месте используйте тег {rating_nums} для вывода общей оценки

Важное замечание, 1 здесь – это сколько должно выводиться знаков после запятой, то есть рейтинг будет в виде 4.7, если вы измените 1 на 2, то будет, например, 4.67.

Ну вот вроде и все, мы с вами сделали небольшой апгрейд стандартного рейтинга DLE, тем самым повысив точность показателей и сделали возможность вывести оценку рейтинга числом в нужном месте.

Если у вас остались вопросы – задавайте их в комментариях.

4
комментария
Chessman
29.11 в 15:11
Кстати про рейтинг. была б очень полезной статья про микроразметку рейтинга да и вообще всего сайта на dle. Находил много полезностей на эту тему у Алаичъа но там старая инфа, не рискнул применять к своим сайтам.
  • 1
Артем Малков
29.11 в 15:13
Chessman, Мы не давно делали размету для наших онлайн сервисов - все работает. Так что позже опубликуем статейку на эту тему
  • 1
Gh8st
3.03 в 14:05
Спасибо за отличный хак :) Так же интересует микроразметка рейтинга.
  • 0
Gh8st, всегда пожалуйста. А с микроразметкой рейтинга вы можете ознакомиться здесь - https://artem-malcov.ru/stati_i_sovety/mikrorazmetkareytinga-polnoy-novosti-v-dle
  • 1
Оставить комментарий:
Нажимая кнопку «Отправить» вы даете согласие на обработку своих персональных данных.
Ваше Имя
Ваш E-mail
Текст комментария