Кнопка «Like» вместо рейтинга для uCoz

4558 просмотров Alan_Writer 17.05.2013

Весьма интересный вариант рейтинга для uCoz. Кнопка «Like» будет отображаться вместо рейтинга звездочками на Вашем сайте uCoz. Вы можете заменить изображение с большим поднятым вверх пальцем на свое (например, на сердечко или звездочку, прицел или еще что-то в этом роде). При первом нажатии на «Like» цифра просто увеличится на счетчике, никаких всплывающих окон не появится, при повторном нажатии появится окно, в котором будет написано, что Вы уже оценивали этот материал, и число больше не увеличится.

Пример работы скрипта:

160

В примере наглядно показана работа скрипта, но поскольку это только пример, число увеличивается при каждом нажатии и при обновлении не сохраняется.

Установка:

Идем сюда: Панель управления » Управление дизайном и вставляем этот скрипт, например, в Нижнюю часть сайта. Главное, чтобы он был только один раз на странице:
Код
<script type="text/javascript">
likePlus = 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) {
  },
  'after-success': function (a, b) {
  document.getElementById('frs2' + d).innerText++
  a.html(b).addClass(b > 0 ? 'positiveRate' : (b == 0 ? 'nullRate' : 'negativeRate'));
  },
  '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)
  })
}
function getClass(nameid, nameclass) {
  document.getElementById(nameid).className=nameclass
}
</script>

Следующий код Вы можете вставить туда же, а можно выдернуть все стили селекторов и вставить в свой файл CSS:
Код
<style type="text/css">
.likeplus {
font-size:1pt; background:url('http://yraaa.ru/_pu/10/58127939.png') top; width:13px; height:12px; overflow:hidden; cursor:pointer; margin-right:4px; margin-top:0px;}
.likeplus_hover {
font-size:1pt; background:url('http://yraaa.ru/_pu/10/58127939.png') bottom; width:13px; height:12px; overflow:hidden; cursor:pointer; margin-right:4px; margin-top:0px;}
.like2 {font-size:8pt;font-weight:bold;color:#111C49;}
.likex {font-size:8pt;font-weight:bold;color:#223276;}
</style>

Вот код самой кнопки. Вставлять нужно в вид материалов нужного модуля или на страницу материала и комментариев к нему. Для каталога статей в коде ниже написано publ. Чтобы использовать код для новостей сайта, например, заменить publ на news:
Код
<?if($RATING$)?>
<div onclick="likePlus(1,$ID$,'publ');return false" style="cursor:pointer;height:16px;" onmouseover="getClass('hr2$ID$','likeplus_hover');getClass('frs2$ID$','like2')" onmouseout="getClass('hr2$ID$','likeplus');getClass('frs2$ID$','likex')">
<table cellspacing="0" cellpadding="0"><tr><td><div id="hr2$ID$" class="likeplus"> </div></td><td><div class="likex" id="frs2$ID$">$RATED$</div></td></tr></table>
</div>
<?endif?>

Здесь наша установка уже как-бы все, окончена.

Теги: как на Facebook, Кнопка Like для uCoz, Кнопка «Like», вид рейтинга, для uCoz, вместо рейтинга
0 Комментариев