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

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


     23.09.2011    жалоба, dle 9.4    Все вопросы » Общие вопросы    19781

вопрос
Версия 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
Юзер

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

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

GSMexpress
Юзер

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

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

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

Webstrannik
Юзер

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

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

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

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

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

nowheremany
Эксперт

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

наверно не

Заменить на

if( !$is_logged )


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

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

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

1KoTuK
Юзер

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

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

Webstrannik
Юзер

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

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

GSMexpress
Юзер

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
Эксперт

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

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

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

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

Yamakasi
Юзер

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

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


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

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

Sobak
Юзер

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

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

sergey
Юзер

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

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

sergey
Юзер

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
Юзер

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
Юзер

Grimyar - 12 мая 2012 20:05 -

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

Grimyar
Юзер

Grimyar - 12 мая 2012 20:35 -

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

ПафНутиЙ
Админ

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

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

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

Warlog
Юзер

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

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

zloy
Юзер

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

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

zloy
Юзер

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

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

kubanochka
Юзер

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

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

Korobasow
Юзер

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
PHP-developer

dj-avtosh - 12 июля 2013 00:40 -

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

https://elkhan.ru
По заказам пишем сюда: @Rud00y

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

wadim112
Юзер

wadim112 - 11 июля 2013 23:20 -

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

feniks01
Гости

feniks01 - 24 января 2014 11:49 -

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

Панкратов
Юзер

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

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

csgamee
Юзер

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

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

kent
Юзер

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

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

Denis Gusak
Юзер

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

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

neGURU
Юзер

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
Юзер

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

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

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

наверх