29 мая 2015
Фикс рейтинга в DLE 10.4
Ares Категория: DATALIFE ENGINE » Баг-Фиксы
У нас вы можете скачать бесплатно Фикс рейтинга в DLE 10.4 .

Данный материал предоставлен сайтом Skripter.info исключительно в ознакомительных целях. Администрация не несет ответственности за его содержимое.
Фикс рейтинга в DLE 10.4

Небольшой фикс рейтинговой системы DLE 10.4. Когда выставляется рейтинг, появляется полупрозрачное окно "Загрузка. Пожалуйста, подождите" и рейтинг еще в кликабельном состоянии, что позволяет нажимать снова и снова. Данный фикс решит эту проблему.

1) Открываем engine/ajax/rating.php

Находим:

$member_id['name'] = $db->safesql($member_id['name']);


Ниже добавляем:

$userid = $db->safesql($member_id['user_id']);



Находим:

$db->query( "UPDATE " . PREFIX . "_post_extras SET rating='{$go_rate}', vote_num='1' WHERE news_id ='{$news_id}'" );


Выше добавляем:

$db->query( "INSERT INTO ".PREFIX."_rating_log (`user_id`,`news_id`) VALUES ('$userid','{$news_id}')" );



Находим:

$db->query( "UPDATE " . PREFIX . "_post_extras SET rating='{$go_rate}', vote_num='1' WHERE news_id ='{$news_id}'" );


Выше добавляем:

$db->query( "INSERT INTO ".PREFIX."_rating_log (`user_id`,`news_id`) VALUES ('$userid','{$news_id}')" );



Находим:

$db->query( "UPDATE " . PREFIX . "_post_extras SET rating=rating+'{$go_rate}', vote_num=vote_num+1 WHERE news_id ='{$news_id}'" );


Выше добавляем:

$db->query( "INSERT INTO ".PREFIX."_rating_log (`user_id`,`news_id`) VALUES ('$userid','{$news_id}')" );



2) Открываем engine/modules/show.short.php

Находим:

if( $row['allow_rate'] ) {


Ниже добавляем:

$userid = $member_id['user_id'];
$newsid = $row['id'];
$check = $db->query("SELECT * FROM ".PREFIX."_rating_log where user_id='$userid' AND news_id='$newsid'");



Находим:

if( $config['short_rating'] AND $user_group[$member_id['user_group']]['allow_rating']) {


Заменяем на:

if( $config['short_rating'] AND $user_group[$member_id['user_group']]['allow_rating'] AND $db->num_rows($check)==0) {



3) Открываем engine/modules/show.full.php

Находим:

if( $row['allow_rate'] ) {


Ниже добавляем:

$userid = $member_id['user_id'];
$newsid = $row['id'];
$check = $db->query("SELECT * FROM ".PREFIX."_rating_log WHERE user_id='$userid' AND news_id='$newsid'");



Находим:

$tpl->set( '{rating}', ShowRating( $row['id'], $row['rating'], $row['vote_num'], $user_group[$member_id['user_group']]['allow_rating'] ) );


Заменяем на:

if($db->num_rows($check)<=0){
$tpl->set( '{rating}', ShowRating( $row['id'], $row['rating'], $row['vote_num'], $user_group[$member_id['user_group']]['allow_rating'] ) );
}
else{
$tpl->set( '{rating}', ShowRating( $row['id'], $row['rating'], $row['vote_num'], false ) );
}



Находим:

if( $user_group[$member_id['user_group']]['allow_rating']) {


Заменяем на:

if( $user_group[$member_id['user_group']]['allow_rating'] AND $db->num_rows($check)==0) {



4) Открываем phpmyadmin и выполняем запрос:

CREATE TABLE IF NOT EXISTS `ПРЕФИКС_rating_log` (
  `user_id` text NOT NULL,
  `news_id` text NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=cp1251;


заменив ПРЕФИКС на ваш префикс

Готово!

Результат: После первой оценки новости пользователь не сможет оценивать новость еще раз, повторно.










Уважаемый посетитель, Вы зашли на сайт как незарегистрированный пользователь.
Мы рекомендуем Вам зарегистрироваться либо войти на сайт под своим именем.
Информация
Посетители, находящиеся в группе Гости, не могут оставлять комментарии к данной публикации.