Jump to content

Звёздный рейтинг


Go to solution Solved by Noxter,

Recommended Posts

  • Replies 306
  • Created
  • Last Reply

Top Posters In This Topic

Top Posters In This Topic

Posted Images

Обращаю внимание, что входное значение голоса хоть и приводится к типу, но не проверяется на минимум/максимум. В итоге, с учётом того, что сами оценки никуда не записываются, любой может манипулировать рейтингами как захочет.

Link to post
Share on other sites
  • 1 month later...

Как вывести рейтинг на других страницах? Просто изображение


upd: в api\Products.php

109 строка после p.body, добавить

p.rating,
p.votes,


следующим кодом выводим звездочки в main.tpl, products.tpl и может еще куда

<!-- Ретинг -->	<div class="testRater" id="product_{$product->id}">		<div class="statVal">			<span class="rater">				<span class="rater-starsOff" style="width:115px;">					<span class="rater-starsOn" style="width:{$product->rating*115/5|string_format:"%.0f"}px"></span>				</span>			</span>		</div>	</div><!-- Рейтинг (The End) -->
Link to post
Share on other sites
  • 3 weeks later...

Голосование проходит отлично. Но после этого появляется текст "Вы уже голосовали!". Подскажите пожалуйста, как это исправить. Текст "Спасибо, Ваш голос принят" не появляется ни при каких обстоятельствах. Действовал строго по инструкции.

Link to post
Share on other sites
  • 1 month later...

Кому нужно чтобы появлялась надпись "спасибо ...." замените в js кусок (~ 50 строка):
var $count = $this.find('.rater-rateCount');
$count.text(parseInt($count.text()) + 1);
$this.find('.rater-rating').text(opts.rating.toFixed(1));
$off.fadeTo(200, 1);

на
$off.fadeTo(200, 0.6);
$this.find('.test-text').text('Спасибо! Ваш голос учтен.');

Link to post
Share on other sites
  • 1 month later...

Danya

ты сам пробовал?? попробуй и потом скажи. картинки работают. но на какой бы рейтинг я не нажимал всегда показывается *как будто* я нажал на первый товар (рейтинг)

Link to post
Share on other sites

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

Link to post
Share on other sites

Решил немного переделать вывод количества голосов, по аналогии с корзиной, что бы после звездочек был только счетчик количества проголосовавших в виде (1 оценка, 2 оценки, 5 оценок)

<span class="test-text">
<span class="rater-rateCount">{$product->votes|string_format:"%.0f"}</span> {$product->votes|plural:'оценка':'оценок':'оценки'} 
</span>



Но при такое реализации, что бы окончание менялось необходимо перезагружать страницу

Пробовал так:

<span class="test-text"><span class="rater-rateCount">{$product->votes|string_format:"%.0f"} {$product->votes|plural:'оценка':'оценок':'оценки'}</span> </span>


В этой реализации, при голосовании надпись оценка вообще пропадает и появляется только при перезагрузке страницы.

Полагаю, нужно править project.js но, что конкретно не понимаю. Помогите разобраться.
Link to post
Share on other sites
  • 1 month later...
  • 2 weeks later...

большое спасибо за скрипт, поставил, работает, но ставлю рейтинг, перезахожу в товар, снова 0 голосов, можно выделить зведочки, только на этот раз мне говорится, что я голосовал, где я ошибся?

Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
×
×
  • Create New...