Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 26.02.2013, 23:51
Новичок на форуме
Отправить личное сообщение для also Посмотреть профиль Найти все сообщения от also
 
Регистрация: 26.02.2013
Сообщений: 1

Рейтинг материала
Имеется следующий скрипт:
rateForm=function(c,d,f,g)
{if(typeof d=='undefined'||typeof c=='undefined'||(c!=1&&c!=-1))return false;c+=2;if(!f)f=location.pathname.match(/[^\\\/]+/i)+'';if(!f)return false;var h=$('#rate_'+d);g=$.extend({'before':function(a){a.prev('a').remove();a.next('a').remove()},'after-success':function(a,b){a.html(b).addClass(b>0?'positiveRate':(b==0?'nullRate':'negativeRate'));_uWnd.alert('Оценка засчитана!<br>lol-lol.ru')},'after-error':function(a){try{eval(a)}catch(e){}}},g||{});g.before(h);$.post('/'+f+'/',{'a':'65','id':d,'mark':c,'mod':f,'ajax':'2'},function(a){a=$('cmd:first',a).text();var b=a.match(/рейтинг:\s*([\d.]+)\/(\d+)/i);if(!b)return g['after-error'](a);b=Math.round(b[1]*b[2])-2*b[2];g['after-success'](h,b)})}


Сразу извиняюсь за этот "ужас", такой код мне был предоставлен, сам я в JS полный ноль, поэтому и пишу здесь.

Данный скрипт является решением для юкоз сайтов. Он делает из обычной пяти-звёздочной системы оценивания "Рейтинг + -". Он манипулирует данными "Сумма баллов", "Количество проголосовавших", "Результат" и выводит свой собственный рейтинг. Проблема в следующем:
1) Для того, чтобы можно было выводить топ материалов исходя из этого рейтинга, "Результат" должен быть равен 3. Так собственно и происходит, пока кто-то не поставит "минус" - отрицательную оценку. То есть:
- 1 пользователь ставит +: Сумма - 3; Кол-во проголосовавших - 1; Результат: 3.0
- 2 пользователь ставит +: Сумма - 6; Кол-во проголосовавших - 2; Результат: 3.0
- 3 пользователь ставит -: Сумма - 7; Кол-во проголосовавших - 3; Результат: 2.3

Вопрос: Можно ли изменить алгоритм подсчёта так, что-бы результат всегда был равен 3, даже после отрицательной оценки. Если возможно, буду премного благодарен за решение данной проблемы.
Ответить с цитированием
  #2 (permalink)  
Старый 02.03.2013, 05:16
Аватар для Paradoxxx
Новичок на форуме
Отправить личное сообщение для Paradoxxx Посмотреть профиль Найти все сообщения от Paradoxxx
 
Регистрация: 02.03.2013
Сообщений: 1

я не спец но в коде 1+2=+3 за 1 оценку плюс, значит в (c!=1&&c!=-1) должно быть (c!=1&&c!=-2)=0 при оценки минус,что потом разделится на кол-во голосов.. как-то так вроде..
Ответить с цитированием
  #3 (permalink)  
Старый 03.03.2013, 16:45
Интересующийся
Отправить личное сообщение для Сергей-Сергей Посмотреть профиль Найти все сообщения от Сергей-Сергей
 
Регистрация: 08.09.2012
Сообщений: 10

Присоединяюсь к просьбе. Очень нужная весчь!!!
Так тоже есть сайты на юкозе. Давно ищу такую примочку, но безрезультатно.
Ответить с цитированием
  #4 (permalink)  
Старый 03.03.2013, 17:33
Новичок на форуме
Отправить личное сообщение для bormotovk Посмотреть профиль Найти все сообщения от bormotovk
 
Регистрация: 17.01.2013
Сообщений: 3

Если я тебя правильно понял, то как то так.
Т.е. условие, что b != 100500 выполняется всегда => рейтинг всегда положительный ('positiveRate').

//Вот это
 a.html(b).addClass(b > 0 ? 'positiveRate' : (b == 0 ? 'nullRate' : 'negativeRate')); 
//Заменить на это
a.html(b).addClass(b != 100500 ? 'positiveRate' : (b == 0 ? 'nullRate' : 'negativeRate'));
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
jquery.rating Рейтинг к каждой фотографии Makkssimka jQuery 14 18.02.2013 21:38
Рейтинг для сайта ? GrizzlyBear Общие вопросы Javascript 0 28.07.2012 11:38
Звездный рейтинг на js nata031189 jQuery 3 22.04.2012 21:50
Рейтинг плюс/минус ybiza Элементы интерфейса 25 08.01.2011 22:21
Скрипт/плагин рейтинг плюс/минус arhi Библиотеки/Тулкиты/Фреймворки 1 16.08.2009 13:42