Оцени это!

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

Он на самом деле довольной простенький, но зато в отличие от стандартного скрипта выполняет ожидаемое действие — выводит обновлённую оценку не в _uWnd.alert, а заменяя устаревшую оценку в коде.

Начнём мы с описания классов и id которые нужны для нормальной работы:

#cRating$ID$ — элемент в котором должен быть весь блок с оценкой.
#comRate$ID$ — элемент в котором записана оценка.
  .cRpositive — класс для #comRate$ID$ при позитивной оценке.
  .cRnegative — класс для #comRate$ID$ при негативной оценке.
  .cRzero — класс для #comRate$ID$ при нулевой оценке.
.RateUp и .RateDn — классы для плюса и минуса, соответственно.
  .inactive — класс, который добавляется к .RateUp и .RateDn обозначая невозможность оценки

Сама функция вызывается так:
comVote(true, 123)

Первая переменная: true если оценка — плюс и false если минус.
Вторая переменная: цифровой id блока в котором совершается оценка. u.код — $ID$

Html после небольших добавлений должен выглядеть так:
<div class="cRaiting" id="cRating$ID$">
<span id="comRate$ID$" class="<?if($COMMENT_RATING$<0)?>cRnegative"><?else?><?if($COMMENT_RATING$=0||!$COMMENT_RATING$)?>cRzero"><?else?>cRpositive">+<?endif?><?endif?><?if(!$COMMENT_RATING$)?>0<?else?>$COMMENT_RATING$<?endif?></span>

<a href="javascript://" <?if($GOOD_COMMENT_URL$)?>onclick="comVote(true, $ID$)"<?endif?>class="RateUp<?if(!$GOOD_COMMENT_URL$)?> inactive<?endif?>" title="Хороший комментарий"> </a>

<a href="javascript://" <?if($GOOD_COMMENT_URL$)?>onclick="comVote(false, $ID$)"<?endif?> class="RateDn<?if(!$GOOD_COMMENT_URL$)?> inactive<?endif?>" title="Плохой комментарий"> </a>
</div>
Ну и наконец сам JS код, который нужно вставить либо в тег <script> в шаблоне «Страница материала и комментариев к нему» либо в подключаемый в коде страницы .js файл.
function comVote(a,b){var r=parseInt($('#comRate'+b).html());$('#cRating'+b+' a').addClass('inactive').removeAttr('onclick').unbind('click').click(function(){_uWnd.alert('Повторное голосование запрещено.','',{w:230,h:80,tm:2300})})
_uPostForm('',{url:'/index/60-'+b+(a?'-1':'-2'),success:function(){a?r++:r--;_uWnd.alert('Оценка засчитана','',{w:230,h:80,tm:4000});$('#comRate'+b).removeClass().addClass((r>0?'cRpositive':(r<0?'cRnegative':'cRzero'))).html((r>0?'+':'')+r);}});return false}

С новым годом! Всего-всего вам и шоб не болели!

30.12.2009
Скрипты
Добавлено 11 комментариев. Написать свой.
Буду краток... Спасибо!
Almlex, не в этом скрипте была забавная переменная, которую ты категорически отказывался переименовывать ? :)
В этом, но она была яростно сжата ;)
Понятно-понятно, я то думал ты изменился ))))
Дезмаск
+10    
О, пасиба, клас!
ЗЫ: Шабик крут!
Ребят, я тут выкладываю свои решения не для того чтобы вы потом ещё выдирали исходники из моего css и вставляли себе.

Да, да @KIMMI это я тебе.

Ykrop
+7    
Привет almlex! Очень красивый дизайн, молодец. Не мог бы ты написать статейку про дизайн форм =))) Очень нравится как у тебя они оформлены, оранжевая обводка просто превосходна!!!

Да и выдирать исходник из твоего кода не будут))) По крайней мере я ... =))

Спасибо ;)
я-полнейший нуб, куда нужно пихать ХТМЛ и в какую часть?
В вид комментариев? Как подключить джава скрипт? куда класть ссылку на него? объясните пожалуйста! :)
Я что то не понял куда все это вставлять, в вид коментов или я ошибаюсь?
ФДучФдуч
0    
я-полнейший нуб, куда нужно пихать ХТМЛ и в какую часть?
В вид комментариев? Как подключить джава скрипт? куда класть ссылку на него? объясните пожалуйста! :)|

+ Обьясните кто нибудь почему все подобные статьи делаются хрен знает для кого

Добавлять комментарии могут только зарегистрированные пользователи.
[ Регистрация | Вход ]