1 (03.03.2013 21:54 отредактировано vladimkrav)

Тема: Кнопка "Сообщить об ошибке"

Приветствую всех !
У меня кино сайт. Очень часто фильмы изымаются из общего доступа и уследить за всеми не возможно. Я решил воспользоваться кнопкой "сообщить об ошибке" и установил ее в другом месте _http://pxphoto.ru/?di=V7L2. Осталась для меня одна проблема, сделать ее видимой для гостей. Ее в данный момент могут видеть зарегистрированные посетители и т.д. Я знаю, что это стандартная функция и что можно выделить текст и нажать CTRL + Ente, но меня это не устраивает. Я видел на другом сайте DLE _http://pxphoto.ru/?di=JYY6, что это возможно. Есть еще варианты и на других сайтах DLE _http://www.tvcok.ru/film/printsip-habarova.html.
Подскажите в каком файле прописан запрет на просмотр посетителями ?  Может кто знает специалистов в этом вопросе, к которому можно обратиться ? Я уже искал помощи на форуме dle-news, где мне ответили "откройте dle_js.js и изучите, как это сделано". Надеюсь хоть на этом форуме мне подскажут что либо полезное.
Спасибо.

2

Re: Кнопка "Сообщить об ошибке"

Открыть 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" );

Маленькая инструкция (работает, протестировано на 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 );

Проверенно. Все работает как часы! Единственный минус, что вам могут слать таким образом тучи фальшивых жалоб. Но, как правило, спам создается для массовой аудитории. Много ли найдется таких идиотов которые будут слать спам лично админу? Не думаю, что много, и уж тем более не думаю, что часто. Удачи вам

3

Re: Кнопка "Сообщить об ошибке"

Спасибо Elisey за уделенное мне время!
Сейчас буду пробовать.

Добавлено: 03.03.2013 14:17

Ещё раз спасибо!
Всё заработало на DLE 9.7. Очень, очень сильно пригодится онлайн кинотеатрам.
Отличный форум с грамотными участниками !!!

4

Re: Кнопка "Сообщить об ошибке"

Извините что пишу в эту тему, засорять новой темой не хочу smile
Есть ли способ, чтоб добавить кнопку "Жалоба" в сторонний модуль? Этот сторонний модуль работает с публикациями.