Защита от минусаторов (микро хак *1.10_*)

3530
Всем привет!

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

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



Идея не новая и уже было решение на 1.9, но на 1.10 не подошло...

Правки минимальны.

В файле - www\components\users\ frontend.php

Есть строчка :

Код PHP:
  1. // можно ли пользователю изменять карму
  2. $usr['can_change_karma'] = $model->isUserCanChangeKarma($usr['id']) && $inUser->id;

Сразу после нее добавить строчку:

Код PHP:
  1. if (($usr['can_change_karma']) && ($_SESSION['user']['rating'] < 20)){$usr['can_karma'] = 1;}
* Где цифра 20 - это тот порог рейтинга после достижения которого будет разрешено минусовать.
В этом файле все.

Далее в www\templates\_ВАШ_ШАБЛОН_\components\ com_users_profile.tpl

Есть такие строки:

Код PHP:
  1. {if $usr.can_change_karma}
  2. <a href="javascript:void(0)" onclick="users.changeKarma('{$usr.id}', 'minus'); return false;" title="{$LANG.KARMA} -"><img src="/templates/{template}/images/icons/karma_down.png" border="0" alt="{$LANG.KARMA} -"/></a>
  3. {/if}
Меняем их целиком на :


Код PHP:
  1. {if $usr.can_change_karma}{if !$usr.can_karma}
  2. <a href="javascript:void(0)" onclick="users.changeKarma('{$usr.id}', 'minus'); return false;" title="{$LANG.KARMA} -"><img src="/templates/{template}/images/icons/karma_down.png" border="0" alt="{$LANG.KARMA} -"/></a>{else}
  3. <a href="javascript:void(0)" onclick="if(!alert('Недостаточно рейтинга! Право минусовать закрыто!')){literal}{ return false; }{/literal}" title="{$LANG.KARMA} -"><img src="/templates/{template}/images/icons/karma_down.png" border="0" alt="{$LANG.KARMA} -"/></a>
  4. {/if}{/if}
на этом все. теперь пользователь с рейтингом ниже указанного не сможет ставить минусы в карму .
Фото пользователей ~ легкий аякс (ver*1.10 ...) | FAQ - уведомление и простая модерация (*1.10...) мини_хак
Комментарии (5)
Таня 15 января 2013 в 20:48 +7
и от плюсаторов тоже не помешало бы, с таким же успехом регают новые профили чтоб себе рейтинг и карму наращивать)
Викторыч 15 января 2013 в 22:32 +1
KS, благодарю за решение. Я уже поднимал вопрос в тему, но хотел просто убрать минусы как таковые, вообще. К сожалению, ответа не получил, самому не удалось разобраться. Поэтому воспользуюсь вашим способом. В свое время на моем сайте тоже завелись минусаторы, в итоге пришлось просто убрать возможность минусовать (на версии 1.9)...
lesterkey 16 января 2013 в 00:40 +1
+
maia 9 апреля 2013 в 23:53 0
А где это было для 1.9?
Александр 8 октября 2014 в 13:05 0
ваше шик))) спасибо Вам большое v !!! =)))) пригодилось, сразу поставил! Чтоб не минусовали, а то люди регают по 2-3 твинка, что б потом другим анонимно ставить по 3 минуса сразу(прям в наглую подряд). Одно не понятно, почему после полного удаления таких пользователей их голосование везде остаются, нельзя, что б при полном удалении пользователя все удалялось(вся его активность на сайте), его голосование за карму людям, рейтинг(статей, фоток, комментариев, блогов и т.п.) и т.д., его фотки удалялись с сайта которые были загружены в общий фотоальбом(сайта) тоже и т.п.
Было бы круто ^^ laugh smile