Помогите с DLE

Василич#
На сайте с 10.03.2009
Offline
111
2637

Есть код, файл deletenews.php, здесь разрешено удалять только админу(id1). Но нужно чтобы могли удалять модераторы (id2). Все мои манипуляции с данным файлом ничего не приводили хорошего...

<?php
/*
=====================================================
DataLife Engine - by SoftNews Media Group
-----------------------------------------------------
http://dle-news.ru/
-----------------------------------------------------
Copyright (c) 2004,2012 SoftNews Media Group
=====================================================
Данный код защищен авторскими правами
=====================================================
Файл: deletenews.php
-----------------------------------------------------
Назначение: Удаление новостей
=====================================================
*/

if(!defined('DATALIFEENGINE'))
{
die("Hacking attempt!");
}

if ( $is_logged and (($member_id['name'] == $row['autor'] and $user_group[$member_id['user_group']]['allow_edit']) or $user_group[$member_id['user_group']]['allow_all_edit']) ) {

if ($_GET['hash'] == "" OR $_GET['hash'] != $dle_login_hash) {

die("Hacking attempt! User not found");

}

$id = intval($_GET['id']);

if ($id > 0) {

$row = $db->super_query("SELECT id, autor, title, category FROM " . PREFIX . "_post WHERE id = '$id'");

if ($row['id']) {

$allow_list = explode( ',', $user_group[$member_id['user_group']]['cat_add'] );
$category = explode( ',', $row['category'] );

foreach ( $category as $selected ) {

if( $allow_list[0] != "all" AND !in_array( $selected, $allow_list ) AND $user_group[$member_id['user_group']]['allow_edit']) or $user_group[$member_id['user_group']]['allow_all_edit']) ) {
header("Location: {$_SESSION['referrer']}");
die();
}

}

$db->query( "INSERT INTO " . USERPREFIX . "_admin_logs (name, date, ip, action, extras) values ('".$db->safesql($member_id['name'])."', '{$_TIME}', '{$_IP}', '26', '".$db->safesql($row['title'])."')" );

$db->query("DELETE FROM " . PREFIX . "_post WHERE id='{$row['id']}'");
$db->query("DELETE FROM " . PREFIX . "_comments WHERE post_id='{$row['id']}'");
$db->query("DELETE FROM " . PREFIX . "_poll WHERE news_id='{$row['id']}'");
$db->query("DELETE FROM " . PREFIX . "_poll_log WHERE news_id='{$row['id']}'");
$db->query("DELETE FROM " . PREFIX . "_tags WHERE news_id = '{$row['id']}'");
$db->query("DELETE FROM " . PREFIX . "_logs WHERE news_id = '{$row['id']}'" );

$row['autor'] = $db->safesql($row['autor']);
$db->query("UPDATE " . USERPREFIX . "_users set news_num=news_num-1 where name='{$row['autor']}'");


$row_images = $db->super_query("SELECT images FROM " . PREFIX . "_images where news_id = '{$row['id']}'");

$listimages = explode("|||", $row_images['images']);

if ($row_images['images'] != "")
foreach ($listimages as $dataimages) {

$url_image = explode("/", $dataimages);

if (count($url_image) == 2) {

$folder_prefix = $url_image[0]."/";
$dataimages = $url_image[1];

} else {

$folder_prefix = "";
$dataimages = $url_image[0];

}

@unlink(ROOT_DIR."/uploads/posts/".$folder_prefix.$dataimages);
@unlink(ROOT_DIR."/uploads/posts/".$folder_prefix."thumbs/".$dataimages);
}

$db->query("DELETE FROM " . PREFIX . "_images WHERE news_id = '{$row['id']}'");

$db->query("SELECT id, onserver FROM " . PREFIX . "_files WHERE news_id = '{$row['id']}'");

while($row_files = $db->get_row()){

@unlink(ROOT_DIR."/uploads/files/".$row_files['onserver']);

}

$db->query("DELETE FROM " . PREFIX . "_files WHERE news_id = '{$row['id']}'");

clear_cache();

} else {

die("Hacking attempt! ID not found");

}

} else {

die("Hacking attempt! ID not found");
}

if ( strpos( $_SESSION['referrer'], "pages.php" ) !== false OR strpos( $_SESSION['referrer'], "do=deletenews" ) !== false OR $_SESSION['referrer'] == "") {

msgbox ($lang['all_info'], $lang['news_del_ok']);

} else {

header("Location: {$_SESSION['referrer']}");
die();

}

} else {

die("Hacking attempt! Not logged");
}
?>

Уважаемые знатоки DLE, помогите пожалуйста...

bmw-power.com.ua (https://bmw-power.com.ua)
[Удален]
#1

а в админке не пробовал выставить права модерам на удаление?

Василич#
На сайте с 10.03.2009
Offline
111
#2
vzalesko:
а в админке не пробовал выставить права модерам на удаление?

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

TaP3aH
На сайте с 13.12.2006
Offline
66
#3

На сайте в краткой и полной новости стоит [edit]Редактировать[/edit] в теге [not-group=5] верно? и при попытке удалить новость, у ваших модераторов какое сообщение появляется?

Василич#
На сайте с 10.03.2009
Offline
111
#4
TaP3aH:
На сайте в краткой и полной новости стоит [edit]Редактировать[/edit] в теге [not-group=5] верно? и при попытке удалить новость, у ваших модераторов какое сообщение появляется?

Hacking Attempt ! Not Logged

Василич#
На сайте с 10.03.2009
Offline
111
#5

Помогите пожалуйста =(((

siv1987
На сайте с 02.04.2009
Offline
427
#6

AND $member_id['user_group'] != 1

заменить на

AND ! in_array($member_id['user_group'], array(1, группа_в_которой_находятся_ваши_модераторы)

и выдавайте правильно права.

Василич#
На сайте с 10.03.2009
Offline
111
#7

Спасибо большое за ответ, но выбивает ошибка:

Parse error: syntax error, unexpected '{' in .../engine/modules/deletenews.php on line 44

---------- Добавлено 28.10.2012 в 01:52 ----------

P.S. добавил ")" после того что Вы описали, проблема устранилась, но опять Hacking Attempt ! Not Logged :(

siv1987
На сайте с 02.04.2009
Offline
427
#8
Василич#:
P.S. добавил ")" после того что Вы описали,

Да, там скобка в конце пропущена.

Василич#:
но опять Hacking Attempt ! Not Logged

Значит не дали все права. Группа должна иметь право 'allow_all_edit' - "Редактирование всех новостей"

Василич#
На сайте с 10.03.2009
Offline
111
#9

Спасибо большое ! Получилось ! ;)

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий