Хак Улучшаем рейтинг материалов 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, тем самым повысив точность показателей и сделали возможность вывести оценку рейтинга числом в нужном месте.