Перейти к публикации

Помогите советом дилетанту.


Рекомендованные сообщения

Здравствуйте. Помогите дилетанту, пожалуйста. Повадились на сайт ходить люди и портить рейтинг новостей. Тупо, не глядя давят на одну звезду и тем самым портят рейтинг размещающим. Нет ли какого-то способа проследить, кто это пакостит? Может в логах движка где-нибудь фиксируется, кто сколько звезд надавил. Уж очень хочется выявить школоту эту. Движок DLE ver 7.5.

Спасибо.

Ссылка на сообщение
Поделиться на других сайтах

Может в логах движка где-нибудь фиксируется, кто сколько звезд надавил.

Нет не фиксируется

Ссылка на сообщение
Поделиться на других сайтах

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

Почему нет, смотрите настройки групп пользователей:

Разрешить выставление рейтинга новостей

Вы можете разрешить или запретить данной группе выставлять рейтинг для новостей, если запретить, то пользователи смогут только видеть результаты рейтинга

Правда в 7,5 не помню уже есть ли это. :)

Ссылка на сообщение
Поделиться на других сайтах

можно также посмотреть кто что ставил

модификации в скрипте минимальны

Ссылка на сообщение
Поделиться на других сайтах

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

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

можно также посмотреть кто что ставил

модификации в скрипте минимальны

Да я же в этом деле дилетант, так и в заголовке написано. ))

Ссылка на сообщение
Поделиться на других сайтах

добавляешь в таблицу dle_logs еще одно поле, например mark, тип int(1)

в файле engine/ajax/rating.php

находишь строку добавления лога, что то в виде

$db->query( "INSERT INTO " . PREFIX . "_logs (news_id, ip, member, 
и заменяешь на

$db->query( "INSERT INTO " . PREFIX . "_logs (news_id, ip, member, mark) values ('$news_id', '$_IP', '$user_name', '$go_rate')" );


[/code]


эта модификация будет фиксировать оценку в логах



а теперь для просмотра

engine/modules/show.full.php например перед строчкой

[code] $tpl->set( '{comments}', "<!--dlecomments-->" );[/code]
вставляешь:
[code]// вывод рейтинга пользователей $showrate=""; if ($member_id['user_group'] == 1) { $rate_sql = "SELECT * FROM dle_logs WHERE news_id=".$row['id']; $rate_result = $db->query( $rate_sql ); while ( $raterow = $db->get_row( $rate_result ) ) { $showrate .= addslashes($raterow["member"])." - ".$raterow["mark"].", "; } $tpl->set( '{showrate}', $showrate ); }[/code]
и в шаблоне fullstory.tpl вставь в удобное место вывод проголосовавших, видно будет только администраторам
[CODE][group=1]<br /><div>{showrate}</div>[/group][/code]

Изменено пользователем prikindel
Ссылка на сообщение
Поделиться на других сайтах

Вот спасибо. Обязательно попробую.

а теперь для просмотра

engine/modules/show.full.php например перед строчкой

 $tpl->set( '{comments}', "<!--dlecomments-->" );[/CODE]

Не нашел такой строчки в этом файле. ((

единственное похожее

$tpl->set( '{comment}', "<div id='comm-id-" . $row['id'] . "'>" . stripslashes( $row['text'] ) . "</div>" );

Ссылка на сообщение
Поделиться на других сайтах

drew_bras,

ну или перед этой, там не суть важно

главное не после $tpl->compile

Ссылка на сообщение
Поделиться на других сайтах

drew_bras,

ну или перед этой, там не суть важно

главное не после $tpl->compile

Там есть только такие: $tpl->compile( 'content' ) аж пять штук и эта строчка $tpl->set( '{comment}', "<div id='comm-id-" . $row['id'] . "'>" . stripslashes( $row['text'] ) . "</div>" ) находится явно после первой.

Изменено пользователем drew_bras
Ссылка на сообщение
Поделиться на других сайтах

не может быть $tpl->compile перед $tpl->set( '{comment}

ибо compile собирает из шаблона и переменных финальный хтмл.

ну, вставь перед $tpl->set( '{comment}', "<div id='comm-id-" . $row['id'] . "'>" . stripslashes( $row['text'] ) . "</div>" )

я не знаю куда точнее, у меня нет версии 7.5. под рукой.

Изменено пользователем prikindel
Ссылка на сообщение
Поделиться на других сайтах

замени мой код для show.full


// вывод рейтинга пользователей

			    $showrate="";

			    if ($member_id['user_group'] == 1) {

					    $rate_sql = "SELECT * FROM dle_logs WHERE news_id=".$row['id'];

					    $rate_result = $db->query( $rate_sql );

					    while ( $raterow = $db->get_row( $rate_result ) ) {

						 $showrate .= addslashes($raterow["member"])." - ".$raterow["mark"].", ";

					    }

					    $tpl->set( '{showrate}', $showrate );

			    }

на

// вывод рейтинга пользователей

			    $showrate="";

			    if ($member_id['user_group'] == 1) {

					    $rate_sql = "SELECT * FROM dle_logs WHERE news_id=".$row['id'];

					    $rate_result = $db->query( $rate_sql );

					    while ( $raterow = $db->get_row( $rate_result ) ) {

						 $showrate .= addslashes($raterow["member"])." - ".$raterow["mark"].", ";

					    }

			    }

$tpl->set( '{showrate}', $showrate );

если надпись исчезнет, то дело в условии if ($member_id['user_group'] == 1) {

я если честно не помню, как в 7.5. называется эта переменная

а если не исчезнет, то тогда ты просто неправильно вставил код.

еще один момент, у тебя префикс таблиц какой?

если что то и запрос надо поменять

"SELECT * FROM dle_logs WHERE news_id=".$row['id'];

на

"SELECT * FROM " . PREFIX . "_logs WHERE news_id=".$row['id'];

Ссылка на сообщение
Поделиться на других сайтах

Ого, вроде заработало. Только не вполне понятно, что означают цифры после логина пользователя, как-то никакой связи с рейтингом не вижу, т.е. рейтинг, к примеру, 3 звезды, проголосовало 7 человек и у всех после имени пользователя стоит 0. В принципе, конечно, неважно, уже можно вычислить, кто пакостит. Спасибо большое.

Ссылка на сообщение
Поделиться на других сайтах

drew_bras,

у меня возле ников пишется оценка ;)

Да это-то вроде понятно, что должна писаться оценка, только что вот за оценка 0? Или просто движок старые оценки не может вывести, которые были поставлены до внесений изменений в скрипт и ставит просто ноль? Сейчас вот проголосовал сам, все работает, свою оценку вижу, а все остальные ноли.

Ссылка на сообщение
Поделиться на других сайтах

drew_bras,

ну так да, только вновь добавленные оценки будет видно

старые ведь не фиксировались. фиксировался только факт голосования, а сама оценка нет.

уф..с тебя пиво)

Ссылка на сообщение
Поделиться на других сайтах

боюсь, что в силу геолокации встретиться не получится :)

с новым годом!

Ссылка на сообщение
Поделиться на других сайтах

боюсь, что в силу геолокации встретиться не получится :)

с новым годом!

Блин, а жалко! Но все равно, спасибо громадное. Уже вычислил одного умника. И вовсе даже не школота оказалось шалит, а вполне себе солидный и уважаемый (теперь уже в прошлом) человек.

С новым годом!

Ссылка на сообщение
Поделиться на других сайтах

Присоединяйтесь к обсуждению

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

Гость
Ответить в тему...

×   Вставлено в виде отформатированного текста.   Вставить в виде обычного текста

  Разрешено не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отобразить как ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставить изображения напрямую. Загрузите или вставьте изображения по ссылке.

×
×
  • Создать...