Для того чтобы снизить "кармические войны" на сайте, и чтобы пользователи не регистрировались по многу раз на сайте под разными логинами и минусовали своих псевдо врагов со своих клон анкет. Давайте сделаем так чтобы пользователь с нулевой кармой не мог минусовать других пользователей.
И так начнем.
Находим файл:
/core/classes/user.class.php
Далее:
Находим код:
public static function getKarmaFormat($user_id, $showtitle=false, $controls=true){ //calculate positive karma $inUser = self::getInstance(); $karma = self::getKarma($user_id); $plus = ''; $minus = ''; if ($inUser->id && $controls){ if(usrCanKarma($user_id, $inUser->id)){ $plus = '<a href="/users/karma/plus/'.$user_id.'/'.$inUser->id.'" onclick="plusUkarma(\''.$user_id.'\', \''.$inUser->id.'\'); return false;" title="Карма +"><img src="/components/users/images/karma_up.png" border="0" alt="Карма +"/></a>'; $minus = '<a href="/users/karma/minus/'.$user_id.'/'.$inUser->id.'" onclick="minusUkarma(\''.$user_id.'\', \''.$inUser->id.'\'); return false;" title="Карма -"><img src="/components/users/images/karma_down.png" border="0" alt="Карма -"/></a>'; } } $html = '<table cellpadding="2" cellspacing="0"><tr>'; $html .= '<td style="color:green">'.$plus.'</td>'; if($karma>0){ $html .= '<td><span class="user_karma_point">+'.$karma.'</span></td>'; } elseif ($karma<0){ $html .= '<td><span class="user_karma_point">'.$karma.'</span></td>'; } else { $html .= '<td><span class="user_karma_point">'.$karma.'</span></td>'; } $html .= '<td style="color:red">'.$minus.'</td>'; $html .= '</tr></table>'; return $html; }
Заменяем на:
public static function getKarmaFormat($user_id, $showtitle=false, $controls=true){ //calculate positive karma $inUser = self::getInstance(); $karma = self::getKarma($user_id); $inDB = cmsDatabase::getInstance(); $sql = "SELECT karma FROM cms_user_profiles WHERE user_id =".$inUser->id; $result = $inDB->query($sql); while($usr = $inDB->fetch_assoc($result)){ $users=$usr['karma']; } $plus = ''; $minus = ''; if ($inUser->id && $controls){ if(usrCanKarma($user_id, $inUser->id)){ $plus = '<a href="/users/karma/plus/'.$user_id.'/'.$inUser->id.'" onclick="plusUkarma(\''.$user_id.'\', \''.$inUser->id.'\'); return false;" title="Карма +"><img src="/components/users/images/karma_up.png" border="0" alt="Карма +"/></a>'; if ($users >= 10) { $minus = '<a href="/users/karma/minus/'.$user_id.'/'.$inUser->id.'" onclick="minusUkarma(\''.$user_id.'\', \''.$inUser->id.'\'); return false;" title="Карма -"><img src="/components/users/images/karma_down.png" border="0" alt="Карма -"/></a>'; } } } $html = '<table cellpadding="2" cellspacing="0"><tr>'; $html .= '<td style="color:green">'.$plus.'</td>'; if($karma>0){ $html .= '<td><span class="user_karma_point">'.$karma.'</span></td>'; } elseif ($karma<0){ $html .= '<td><span class="user_karma_point">'.$karma.'</span></td>'; } else { $html .= '<td><span class="user_karma_point">'.$karma.'</span></td>'; } $html .= '<td style="color:red">'.$minus.'</td>'; $html .= '</tr></table>'; return $html; }
Теперь в новом коде находим:
if ($users >= 10)
И цифру 10 заменяем, на тот уровень кармы пользователя, при которой пользователь сможет иметь доступ к ссылке чтобы минусануть пользователя. Теперь пока пользователю не плюсанут карму, другие пользователи, он не сможет не кого минусовать.
Если Вы хотите чтобы пользователь с кармой меньше установленного нами уровня, не мог и плюсовать других пользователей тогда
if ($users >= 10) {
необходимо перенести и прописать перед строкой :
$plus = '<a href="/users/karma/plus/'.$user_id.'/'.$inUser->id.'" onclick="plusUkarma(\''.$user_id.'\', \''.$inUser->id.'\'); return false;" title="Карма +"><img src="/components/users/images/karma_up.png" border="0" alt="Карма +"/></a>';
Теперь он не сможет и плюсовать других.
P.S. вот подумалось что можно привязать и к рейтингу тогда пока пользователь не проявит себя на сайте на лояльность и вменяемость не смог и участвовать в «кармических войнах»....
У меня вообще была мысль, если человек, допустим к статье нажимает "Нравится", то за кого он голосует прибавляется 5, а у того, кто голосует снимается 2... таким образом выражается благодарность... а если ставишь "Не нравится", то за кого голосуешь снимается 5, а у того, кто голосует снимается 10. Таким образом человек выражает недовольство, но при это сам теряет.