Не нравятся результаты поиска? Попробуйте другой поиск!
DLE FAQ » Все вопросы » jQuery » Как разрешить голосовать администратору безлимитно, oRating?

Как разрешить голосовать администратору безлимитно, oRating?


     25.01.2019    jQuery, Хаки    1098

вопрос
Помогите мне пожалуйста, не могу понять, чтобы разрешить голосование для группы администратор безлимитно и без проверки что уже голосовал. Что именно нужно дописать? Для голосования стоит oRating. Вот кусок функции при нажатии "Понравилось".

//Определение групп пользователей
$user_group = get_vars( "usergroup" );
if( ! $user_group ) {
	$user_group = array ();
	$db->query( "SELECT * FROM " . USERPREFIX . "_usergroups ORDER BY id ASC" );
	while ( $row = $db->get_row() ) {
		$user_group[$row['id']] = array ();
		foreach ( $row as $key => $value ) $user_group[$row['id']][$key] = stripslashes($value);
	}
	set_vars( "usergroup", $user_group );
	$db->free();
}
@header( "Content-type: text/html; charset=" . $config['charset'] );
require_once ENGINE_DIR . '/modules/sitelogin.php';

if( ! $is_logged ) $member_id['user_group'] = 5;
if( $user_group[$member_id['user_group']]['allow_rating'] ){

//if($is_logged){
//	$autor = $db->super_query( "SELECT autor FROM " . PREFIX . "_post where id ='$news_id'" );
//	if($member_id['name']==$autor['autor']) die("{\"msg\": \"Нельзя голосовать за себя\"}");
//}

$_TIME = time () + ($config['date_adjust'] * 60);
$member_name = $db->safesql($member_id['name']);

if( $is_logged ) $where = "member = '{$member_name}'";
else $where = "ip ='{$_IP}'";

$row = $db->super_query( "SELECT news_id FROM " . PREFIX . "_logs where news_id ='$news_id' AND {$where}" );

//Голосование
if( !$row['news_id'] AND count( explode( ".", $_IP ) ) == 4) {
$db->query( "UPDATE " . PREFIX . "_post_extras SET rating=rating+'$go_rate', vote_num=vote_num+1 WHERE news_id ='$news_id'" );
	if ( $db->get_affected_rows() )	{
		if( $is_logged ) $user_name = $member_name;
		else $user_name = "noname";
		$db->query( "INSERT INTO " . PREFIX . "_logs (news_id, ip, member, value, date) values ('$news_id', '$_IP', '$user_name', '$go_rate', '$_TIME')" );
		clear_cache( "news_" );
		clear_cache( "full_".$news_id );
		}
	}else die("{\"msg\": \"Вы уже голосовали\"}");
}else die("{\"msg\": \"Вы не зарегистрированы\"}");
$row = $db->super_query("SELECT rating FROM ".PREFIX."_post_extras WHERE news_id={$news_id}");
echo "{\"rating\":\"{$row['rating']}\",\"msg\":\"\"}";


Заранее спасибо.

Ответил: dj-avtosh


if( !$row['news_id']


заменить на

if(  (!$row['news_id'] || ( ! empty ( $member_id['user_group'] ) && 1 == $member_id['user_group'] ) ) 

4 комментария

luchanov
Юзер

luchanov - 25 января 2019 13:37 -

Пока показывает "Вы уже голосовали" и не дает сделать еще +1 голос.

dj-avtosh
PHP-developer

dj-avtosh - 25 января 2019 18:42 -

if( !$row['news_id']


заменить на

if(  (!$row['news_id'] || ( ! empty ( $member_id['user_group'] ) && 1 == $member_id['user_group'] ) ) 

По заказам пишем сюда: @Rud00y

ЯД: 41001679231462
Заказы в telegram (ремонт модулей, оптимизация нагрузок и т.п.):
В телегу писать сразу задачу и бюджет.

luchanov
Юзер

luchanov - 25 января 2019 18:56 -

Это невероятно!!! Спасибо. Гениально!
Я конечно уже не расчитывал на ответ и составил на 5 строк кода с множеством if.. Выбросил.

Вы волшебник. 100р. кину вам в карму. Пришлите пожалуйста реквизиты в ЛС.

dj-avtosh
PHP-developer

dj-avtosh - 25 января 2019 19:01 -

все в профиле

По заказам пишем сюда: @Rud00y

ЯД: 41001679231462
Заказы в telegram (ремонт модулей, оптимизация нагрузок и т.п.):
В телегу писать сразу задачу и бюджет.

Чтобы комментировать - войдите или зарегистрируйтесь на сайте

Похожие вопросы

наверх