Не нравятся результаты поиска? Попробуйте другой поиск!
dle-faq.ru FAQ (все вопросы) Общие вопросы Как разрешить гостям пользоваться функцией Жалобы (complaint)

Как разрешить гостям пользоваться функцией Жалобы (complaint)


     23.09.2011    Общие вопросы    13557

вопрос
Версия DLE 9.4

Вопрос:
Как разрешить гостям пользоваться функцией Жалобы (в основном интересует жалоба на краткую/полную новость (complaint)).
И возможно ли такое вообще?

Ответил: GSMexpress


Открыть engine/modules/show.***.php
Найти
$tpl->set_block( "'\\[complaint\\](.*?)\\[/complaint\\]'si", "" );

Заменить на
$tpl->set( '[complaint]', "<a href=\"javascript:AddComplaint('" . $row['id'] . "', 'news')\">");
$tpl->set( '[/complaint]', "</a>" );

Открыть engine/ajax/complaint.php
Найти и удалить строку:
if( !$is_logged ) die( "error" );

Не много криво, но работает ))

UPD 20.05.2012

Маленькая инструкция (работает, протестировано на DLE 9.5):

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


1. Открыть файл engine/classes/comments.class.php
найти там следующее (строчка 380 в коде):
$tpl->set_block( "'\\[complaint\\](.*?)\\[/complaint\\]'si", "" );


Заменить на:
$tpl->set( '[complaint]', "<a href=\"javascript:AddComplaint('" . $row['id'] . "', 'comments')\">" );
$tpl->set( '[/complaint]', "</a>" );


2. Открыть файл engine/ajax/complaint.php
Найти следующее (122 строчка):

} elseif ($_POST['action'] == "comments") {
    
if( !$is_logged ) die( "error" );



Заменить строку
if( !$is_logged ) die( "error" );

на
if( !$is_logged );


3. Удалить в вашем шаблоне comments.tpl теги [not-group=5] и [/not-group](если хотите чтоб гости смогли отправлять жалобы на комментарии)

Кстати, чтоб для новости тоже работало и не выбивало ошибок, нужно:


1. Открыть файл engine/modules/show.full.php (для краткой новости это также будет и engine/modules/show.short.php)
найти там:
$tpl->set_block( "'\\[complaint\\](.*?)\\[/complaint\\]'si", "" );


Заменьть на:
$tpl->set( '[complaint]', "<a href=\"javascript:AddComplaint('" . $row['id'] . "', 'news')\">");
$tpl->set( '[/complaint]', "</a>" );


2. Открыть файл engine/ajax/complaint.php
Найти следующее (144 строчка):

 } elseif ($_POST['action'] == "news") {
    
        if( !$is_logged ) die( "error" );

( Обратите внимание на разницу по сравнению с тем же хаком для комментариев
} elseif ($_POST['action'] == "news") { )

Далее заменить строку идущую на строчке 146
if( !$is_logged ) die( "error" );

на
if( !$is_logged );


Проверенно. Все работает как часы! Единственный минус, что вам могут слать таким образом тучи фальшивых жалоб. Но, как правило, спам создается для массовой аудитории. Много ли найдется таких идиотов которые будут слать спам лично админу? Не думаю, что много, и уж тем более не думаю, что часто. Удачи вам smile .
Отредактировал 20-05-2012, 10:29 - ПафНутиЙ
Причина: Дополнил ответ из комментария

Комментарии пользователей (30)

1KoTuK
20 | 22

1KoTuK - 25 сентября 2011 13:48 - Юзер

У меня действительно кнопка у гостей появилась и когда нажимаешь появляется окно, в нём ввожу жалобу нажимаю отправить и пишет error
Жалоба так и не доходит...

GSMexpress
9

3 | 7

GSMexpress - 25 сентября 2011 19:36 - Юзер

значит где то здесь доупустили ошибку или не выполнили этот пункт, у меня все работает
Открыть engine/ajax/complaint.php
Найти
if( !$is_logged ) die( "error" );

Заменить на
if( !$is_logged )

Webstrannik
3

53 | 27

Webstrannik - 28 сентября 2011 10:30 - Юзер

GSMexpress - я поражаюсь с таких ответов !

.... Открыть engine/modules/show.short.php
это краткая новость а где инструкция для полной ?

Открыть engine/ajax/complaint.php
Найти ....
там мля эта строчка повторяется 4 раза !

не ужели трудно 10 букав дописать что бы понятнее было как юзать хак
am

nowheremany
192

1659 | 1292

nowheremany - 28 сентября 2011 11:29 - Эксперт

наверно не

Заменить на

if( !$is_logged )


А просто убрать эту строку.

И вы о спаме не подумали да?

Благодарность принимаю тут Связь

1KoTuK
20 | 22

1KoTuK - 28 сентября 2011 16:46 - Юзер

Спам меня не волнует - пускай хоть 1000сообщений в час пишут, жалобы вижу только я а значит всё ок.

Webstrannik
3

53 | 27

Webstrannik - 28 сентября 2011 18:20 - Юзер

у меня не заработало !
так что считаю что вопрос остается в силе ...

GSMexpress
9

3 | 7

GSMexpress - 28 сентября 2011 19:37 - Юзер

Открыть engine/modules/show.short.php (это для короткой новости)
Найти
$tpl->set_block( "'\\[complaint\\](.*?)\\[/complaint\\]'si", "" );


Заменить на
$tpl->set( '[complaint]', "<a href=\"javascript:AddComplaint('" . $row['id'] . "', 'news')\">");
$tpl->set( '[/complaint]', "</a>" );


Открыть engine/modules/show.full.php (это для полной новости)
Найти
$tpl->set_block( "'\\[complaint\\](.*?)\\[/complaint\\]'si", "" );


Заменить на
$tpl->set( '[complaint]', "<a href=\"javascript:AddComplaint('" . $row['id'] . "', 'news')\">");
$tpl->set( '[/complaint]', "</a>" );


Открыть engine/ajax/complaint.php
Найти
 if( !$is_logged ) die( "error" );
(там мля эта строчка одна, где то 88-89 строка, где начинается определение групп пользователей)
Заменить на
if( !$is_logged )

или просто удалить
 die( "error" );
кому как больше нравится...

nowheremany
192

1659 | 1292

nowheremany - 28 сентября 2011 21:57 - Эксперт

 if( !$is_logged ) die( "error" );

Убрать вообще

Благодарность принимаю тут Связь

Yamakasi
5

198 | 105

Yamakasi - 12 декабря 2011 01:54 - Юзер

дополню по пункту по удалению:
if( !$is_logged ) die( "error" );


надо удалить под:
elseif ($_POST['action'] == "news") {

то есть жалоба на новость, а остальные две на другое значение относится!

Sobak
18 | 18

Sobak - 28 декабря 2011 14:52 - Юзер

у меня сперва тоже не заработало, но в фуллстори в шаблоне у меня стоял тег [not-group=5] на месте блока с кнопкой жалобы, 5 группа по умолчанию - гости, т.е. если вы не в группе 5, то можете жаловаться, поэтому советую сделать все как здесь подсказали и немного отредактировать свой шаблон

sergey
6 | 6

sergey - 5 февраля 2012 18:51 - Юзер

подскажите для комментариев? нужно, чтобы гости жаловались на комменты

sergey
6 | 6

sergey - 5 февраля 2012 19:30 - Юзер

ха) все, разобрался. там все просто. идем в файл comments.class.php, заменяем (399-400 строчка)
$tpl->set_block( "'\\[complaint\\](.*?)\\[/complaint\\]'si", "" );

на
$tpl->set( '[complaint]', "<a href=\"javascript:AddComplaint('" . $row['id'] . "', 'comments')\">" );
                $tpl->set( '[/complaint]', "</a>" );


дальше в файле complaint.php (папка /public_html/engine/ajax) ищем (122 строчка)
} elseif ($_POST['action'] == "comments") {

    if( !$is_logged ) die( "error" );

удаляем:
if( !$is_logged ) die( "error" );


теперь гости видят отметку жалобы и соответственно могут настучать)

san85ua
1 | 1

san85ua - 27 апреля 2012 14:47 - Юзер

GSMexpress,
Все сделал как Вы показывали... У меня по прежнему Error и жалоба не доходит. в complaint.пхп на 88-89 строке я так понимаю нужно удалить die( "error" );

из этой ли части кода, я вас правильно понял??? :
if ($_POST['action'] == "pm") {

    if( !$is_logged ) die( "error" );

    if( !$id OR !$text) die( "error" );

    $row = $db->super_query( "SELECT id, text, user, user_from FROM " . USERPREFIX . "_pm WHERE id='{$id}'" );

    if( $row['user'] != $member_id['user_id'] OR !$row['id']) die("Operation not Allowed");

    if ($row['user_from'] == $member_id['name']) { echo $lang['error_complaint_2']; die(); }


ах да - точку с запятой оставлять или как Вы показали с ";" удалять?

или просто удалить

die( "error" );

Grimyar
2 | 2

Grimyar - 12 мая 2012 20:05 - Юзер

***Комментарий удален***

Grimyar
2 | 2

Grimyar - 12 мая 2012 20:35 - Юзер

***Комментарий удален***

ПафНутиЙ
1065

3395 | 2433

ПафНутиЙ - 12 мая 2012 21:31 - Админ

Ну например у меня в блоге есть форма обратной связи без каптчи - спам-боты в среднем 2-3 письма в день шлют (иногда нет вообще, иногда по 5 штук), при этом сайт то не большой и не часто-посещаемый.

Каков вопрос - таков и ответ. Просто помните об этом.

Warlog
5 | 2

Warlog - 31 октября 2012 17:07 - Юзер

в 9,7 не работает. (не появляется у гостей вобще)

zloy
2 | 3

zloy - 17 января 2013 22:13 - Юзер

Подскажите как подобное можно реализовать на 9.7? Так как данный метод не работает...

zloy
2 | 3

zloy - 17 января 2013 22:29 - Юзер

PS... Разобрался, для жалоб на новости необходимо редактировать show.full

kubanochka
1 | 1

kubanochka - 29 января 2013 17:02 - Юзер

Это все я сделала. но у меня какой то баг чтоли. В админке жалобы приходят все время на одну и туже новость, как исправить? Подскажите, как правильно прописать этот тег в шаблоне в фулстори?

Korobasow
52 | 33

Korobasow - 21 февраля 2013 21:56 - Юзер

Не могу вывести отдельную кнопку ЖАЛОБА

В fullstory.tpl прописал так:

<a href="javascript:sendNotice(' $row['id'] ', 'news');" class="btn btn-danger btn-mini"><i class="icon-white icon-fire"></i> СООБЩИТЬ ОБ ОШИБКЕ</a>


Но окно добавления жалобы открывается только администратору!
Даже пользователю не открывается. А я хочу что бы даже гости могли писать жалобу!

Подскажите как мне вывести функцию жалобы в шаблоне для всех групп?

dj-avtosh
39

1479 | 390

dj-avtosh - 12 июля 2013 00:40 - шашлычник

$row['id'] - в tpl???

skype: elhan.isaev

wadim112
5

wadim112 - 11 июля 2013 23:20 - Юзер

Такая же беда как и у Webstrannik, все сделал пошагово, как прописано. Результат - ноль, даже окно жалобы не выходит, ни гостю, ни администратору. DLE 9.7, может кто -то сталкивался с такой проблемой и смог решить?

feniks01
4

203 | 17

feniks01 - 24 января 2014 11:49 - Гости

Ребят, а данное на DLE 10.1 пашет? Я новичок :)

Панкратов
1

Панкратов - 20 марта 2014 11:27 - Юзер

да работает проверил на 10.1 спасибо решил свою проблему

csgamee
35 | 2

csgamee - 3 февраля 2015 00:07 - Юзер

Спасибо, ДЛЕ 10.2 полет нормальный))

kent
2

38 | 7

kent - 4 февраля 2015 14:41 - Юзер

когда отправляет пользователь жалобу, то пишется его ник, а можно сделать так, чтоб когда гость отправляет жалобу отображался его ip, чтоб можно было узнать кто спамит?

Denis Gusak
4

Denis Gusak - 22 апреля 2015 08:14 - Юзер

Спасибо, dle 10.4 работает нормально

neGURU
1 | 1

neGURU - 17 июля 2015 23:23 - Юзер

Если использовать способ от Korobasow то нужно исправить:
 $row['id'] 
на
{news-id}
и
javascript:sendNotice
на
javascript:AddComplaint


Цитата: Korobasow
Не могу вывести отдельную кнопку ЖАЛОБА

В fullstory.tpl прописал так:

<a href="javascript:sendNotice(' $row['id'] ', 'news');" class="btn btn-danger btn-mini"><i class="icon-white icon-fire"></i> СООБЩИТЬ ОБ ОШИБКЕ</a>


Но окно добавления жалобы открывается только администратору!
Даже пользователю не открывается. А я хочу что бы даже гости могли писать жалобу!

Подскажите как мне вывести функцию жалобы в шаблоне для всех групп?

Gordon
2

Gordon - 25 октября 2016 14:44 - Юзер

Все сделал по инструкции. При отправке выдает ошибку

Fatal error: require_once(): Failed opening required '/engine/classes/mysql.php' (include_path='.:/usr/share/php:/usr/share/pear') in /var/www/tube/data/www/************.stream/engine/ajax/complaint.php on line 31

Dle 11.1

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

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