Не нравятся результаты поиска? Попробуйте другой поиск!
DLE FAQ » Все вопросы » Модули » Как исправить проблему с закрашивание звезд при 10 рейтинга?

Как исправить проблему с закрашивание звезд при 10 рейтинга?


     17.05.2023    Все вопросы » Модули    673

вопрос
У меня просьба, помогите разобраться в чем может быть проблема... Не знаю по какой причине некорректно закрашиваются звезды((
вот скрин:
Как исправить проблему с закрашивание звезд при 10 рейтинга?


у меня dle 16.0

Ответа пока нет


13 комментариев

alex.sg.spb
Юзер

alex.sg.spb - 17 мая 2023 22:12 -

для расчета рейтинга используется плагин Ratingscore likes и 4 тип рейтинга нравится и не нравится

TeraMoune
Эксперт

TeraMoune - 17 мая 2023 22:24 -

Очевидно по причине неправильного расчёта значения width для величины закрашивания.

Тестовый репозиторий установки плагинов: teramoune

alex.sg.spb
Юзер

alex.sg.spb - 17 мая 2023 22:35 -

TeraMoune,
можете подсказать куда смотреть? в какие файлы лезть?

alex.sg.spb
Юзер

alex.sg.spb - 17 мая 2023 22:39 -

<div data-ratig-layer-id='{$id}'>
	<div class="rating">
		<ul class="unit-rating">
		<li class="current-rating" style="width:{$rating}%;">{$rating}</li>
		<li><a href="#" title="{$lang['useless']}" class="r1-unit" onclick="doRate('1', '{$id}'); return false;">1</a></li>
		<li><a href="#" title="{$lang['poor']}" class="r2-unit" onclick="doRate('2', '{$id}'); return false;">2</a></li>
		<li><a href="#" title="{$lang['fair']}" class="r3-unit" onclick="doRate('3', '{$id}'); return false;">3</a></li>
		<li><a href="#" title="{$lang['good']}" class="r4-unit" onclick="doRate('4', '{$id}'); return false;">4</a></li>
		<li><a href="#" title="{$lang['excellent']}" class="r5-unit" onclick="doRate('5', '{$id}'); return false;">5</a></li>
		</ul>
	</div>
</div>


вот что нашел

TeraMoune
Эксперт

TeraMoune - 18 мая 2023 02:24 -

можете подсказать куда смотреть? в какие файлы лезть?

В плагине искать. В происхождение переменной $rating. Там перед тем как она попадает в html разметку последняя строка где задействована переменная будет вроде математическая операция с умножением. В ней неверное число на которое множится рейтинг.

Тестовый репозиторий установки плагинов: teramoune

alex.sg.spb
Юзер

alex.sg.spb - 18 мая 2023 09:18 -

Да вроде по формуле все правильно считает рейтинг, а вот закрашивает нет.
Если допустим стоит 1 лайк и 1 диз, то закрашивается верно по 5 звезд, а если больше, как на скрине что я приложил, идет все наперекосяк(
show.full.php
найти:
if( $row['vote_num'] ) $ratingscore = str_replace( ',', '.', round( ($row['rating'] / $row['vote_num']), 1 ) );
			else $ratingscore = 0;
добавить ниже:
if( $row['vote_num'] ) $ratingscorelikes = str_replace( ',', '.', round( ( ($row['vote_num'] - $dislikes ) / $row['vote_num']*10), 1 ) );
			else $ratingscorelikes = 0;

найти:
$tpl->set( '{ratingscore}', $ratingscore );

добавить ниже:
$tpl->set( '{ratingscorelikes}', $ratingscorelikes );

show.short.php
найти:
$dislikes = ($row['vote_num'] - $row['rating'])/2;
			$likes = $row['vote_num'] - $dislikes;

добавить ниже:
if( $row['vote_num'] ) $ratingscorelikes = str_replace( ',', '.', round( ( ($row['vote_num'] - $dislikes ) / $row['vote_num']*10), 1 ) );
			else $ratingscorelikes = 0;

найти:
$tpl->set( '[/rating]', "" );

добавить ниже:
$tpl->set( '{ratingscorelikes}', $ratingscorelikes );

show.custom.php
найти:
$dislikes = ($row['vote_num'] - $row['rating'])/2;
			$likes = $row['vote_num'] - $dislikes;

добавить ниже:
if( $row['vote_num'] ) $ratingscorelikes = str_replace( ',', '.', round( ( ($row['vote_num'] - $dislikes ) / $row['vote_num']*10), 1 ) );
			else $ratingscorelikes = 0;

найти:
$tpl->set( '[/rating]', "" );

добавить ниже:
$tpl->set( '{ratingscorelikes}', $ratingscorelikes );


Это все код плагина... Можете посмотреть, что именно тут не корректно работает?

TeraMoune
Эксперт

TeraMoune - 18 мая 2023 16:27 -

Конкретно тут ничего нету относящегося к вопросу. Да и в принципе данный код не относится именно к нужному типу рейтинга. Вы показывали код с разметкой, вот там смотреть надо. Но тот код стандартный, вы предоставили разметку на 5 звёзд.

Тестовый репозиторий установки плагинов: teramoune

redissx
Юзер

redissx - 18 мая 2023 09:18 -

Думаю, что дело не в плагине, а в изменениях в 16 версии.
Если в шаблоне есть нестандартный рейтинг лайк-дизлайк (проценты, десятибальная шкала), то в js/libs.js поиском и заменой (ctrl+H)
найти
span[id]
и заменить на
span[data-vote-num-id]

найти
span[id*=vote]
и заменить на
span[data-vote-num-id]

найти
$("#ratig-layer-" + id).html(rating);
$("#vote-num-id-" + id).html(data.votenum);
заменить на
$('[data-ratig-layer-id="' + id + '"]').html(rating);
$('[data-vote-num-id="' + id + '"]').html(data.votenum);

найти
$("#ratig-layer-" + id).html(rating);
$("#vote-num-id-" + id).html(data.votenum);
$("#likes-id-" + id).html(data.likes);
$("#dislikes-id-" + id).html(data.dislikes);
заменить на
$('[data-ratig-layer-id="' + id + '"]').html(rating);
$('[data-vote-num-id="' + id + '"]').html(data.votenum);
$('[data-likes-id="' + id + '"]').html(data.likes);
$('[data-dislikes-id="' + id + '"]').html(data.dislikes);


В разных шаблонах по-разному, поэтому если не можете найти что-то, значит это и не нужно.

alex.sg.spb
Юзер

alex.sg.spb - 18 мая 2023 09:45 -

redissx, что-то в моем файле такого вообще нет

redissx
Юзер

redissx - 18 мая 2023 10:49 -

Шаблон hdrezka 4k? Тогда понятно, судя по коду выше, плагин неполный. Значит шаблон пиратский. Что тут скажешь... Ничего получается.

alex.sg.spb
Юзер

alex.sg.spb - 18 мая 2023 13:01 -

redissx,
да шаблон именно этого сайта. План я ставил не только который идет с шаблоном, но брал из других источников и код, что самое интересное идентичен

redissx
Юзер

redissx - 18 мая 2023 13:26 -

alex.sg.spb, нормальный источник может быть один - разработчик и продавец шаблона. Все остальное - на ваш страх и риск, что называется.

deadluk
Юзер

deadluk - 19 мая 2023 15:01 -

в точку. ну скачал, теперь пусть пользуется. какие вопросы?

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

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

наверх