вопрос
Версия DLE 9.4
Вопрос:
Как разрешить гостям пользоваться функцией Жалобы (в основном интересует жалоба на краткую/полную новость (complaint)).
И возможно ли такое вообще?
Вопрос:
Как разрешить гостям пользоваться функцией Жалобы (в основном интересует жалоба на краткую/полную новость (complaint)).
И возможно ли такое вообще?
Открыть engine/modules/show.***.php
Найти
Заменить на
Открыть engine/ajax/complaint.php
Найти и удалить строку:
Не много криво, но работает ))
UPD 20.05.2012
Маленькая инструкция (работает, протестировано на DLE 9.5):
1. Открыть файл engine/classes/comments.class.php
найти там следующее (строчка 380 в коде):
Заменить на:
2. Открыть файл engine/ajax/complaint.php
Найти следующее (122 строчка):
Заменить строку
на
3. Удалить в вашем шаблоне comments.tpl теги [not-group=5] и [/not-group](если хотите чтоб гости смогли отправлять жалобы на комментарии)
1. Открыть файл engine/modules/show.full.php (для краткой новости это также будет и engine/modules/show.short.php)
найти там:
Заменьть на:
2. Открыть файл engine/ajax/complaint.php
Найти следующее (144 строчка):
( Обратите внимание на разницу по сравнению с тем же хаком для комментариев
} elseif ($_POST['action'] == "news") { )
Далее заменить строку идущую на строчке 146
на
Проверенно. Все работает как часы! Единственный минус, что вам могут слать таким образом тучи фальшивых жалоб. Но, как правило, спам создается для массовой аудитории. Много ли найдется таких идиотов которые будут слать спам лично админу? Не думаю, что много, и уж тем более не думаю, что часто. Удачи вам .
Найти
$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 );
Проверенно. Все работает как часы! Единственный минус, что вам могут слать таким образом тучи фальшивых жалоб. Но, как правило, спам создается для массовой аудитории. Много ли найдется таких идиотов которые будут слать спам лично админу? Не думаю, что много, и уж тем более не думаю, что часто. Удачи вам .