Массовое удаление тем на форуме

574
.
AlezZ, Так вроде такое есть уже
.
тa чe тaм дyмaть зaпycтил циkл и пoшлa жapa гг блин ecлиб щa идти нe нaдo былo я б пoмoг
.
dakilla (01.11.2010/07:45)
тa чe тaм дyмaть зaпycтил циkл и пoшлa жapa гг блин ecлиб щa идти нe нaдo былo я б пoмoг
Не так уж и легко это.
/ само удаление постов уже почти есть

elseif ($_GET['do'] == 'del' && $rights == 9) {
        $dc = $_SESSION['dc'];
        $prd = $_SESSION['prd'];
        $total = 0;
        foreach ($dc as $delid) {
                $req_f = mysql_query("SELECT * FROM `cms_forum_files` WHERE `post` = '$delid' LIMIT 1");
                if (mysql_num_rows($req_f)) {
                    $res_f = mysql_fetch_assoc($req_f);
                    unlink('files/' . $res_f['filename']);
                    mysql_query("DELETE FROM `cms_forum_files` WHERE `post` = '$delid' LIMIT 1");
                }
mysql_query("DELETE FROM `forum` WHERE `id` = '$delid' LIMIT 1");
                $req_u = mysql_query("SELECT `postforum` FROM `users` WHERE `id` = '" . $res['user_id'] . "' LIMIT 1");
                if (mysql_num_rows($req_u)) {
                    // Вычитаем один балл из счетчика постов юзера
                    $res_u = mysql_fetch_assoc($req_u);
                    $postforum = $res_u['postforum'] > 0 ? $res_u['postforum'] - 1 : 0;
                    mysql_query("UPDATE `users` SET `postforum` = '" . $postforum . "' WHERE `id` = '" . $res['user_id'] . "' LIMIT 1");
                }
            }

    $total++;
        }
        echo '<div class="gmenu">Отмеченные посты удалены<br />Удалено ' . $total . ' постов<br /><a href="' . $prd . '">Назад</a></div>';
    }
.
AlezZ
[KIT], Да, есть, но там только удаление а я хотел сделать скрытие и удаление постов. При удалении выбераешь что нужно - удалить посты или скрыть.
.
Вот весь код скрипта
/*
////////////////////////////////////////////////////////////////////////////////
// JohnCMS                             Content Management System              //
// Официальный сайт сайт проекта:      http://johncms.com                     //
// Дополнительный сайт поддержки:      http://gazenwagen.com                  //
////////////////////////////////////////////////////////////////////////////////
// JohnCMS core team:                                                         //
// Евгений Рябинин aka john77          john77@gazenwagen.com                  //
// Олег Касьянов aka AlkatraZ          alkatraz@gazenwagen.com                //
//                                                                            //
// Информацию о версиях смотрите в прилагаемом файле version.txt              //
////////////////////////////////////////////////////////////////////////////////
*/

defined('_IN_JOHNCMS') or die('Error: restricted access');

if ($rights == 3 || $rights >= 6) {
    require_once ("../incfiles/head.php");
    if ($_GET['do'] == 'hide') {
        $dc = $_SESSION['dc'];
        $prd = $_SESSION['prd'];
        $total = 0;
        foreach ($dc as $delid) {

            mysql_query("UPDATE `forum` SET  `close` = '1', `close_who` = '$login' WHERE `id`='" . intval($delid) . "';");
    $total++;
        }
        echo '<div class="gmenu">Отмеченные посты скрыты<br />Скрыто ' . $total . ' постов<br /><a href="' . $prd . '">Назад</a></div>';
    }
    elseif ($_GET['do'] == 'del' && $rights == 9) {
        $dc = $_SESSION['dc'];
        $prd = $_SESSION['prd'];
        $total = 0;
        foreach ($dc as $delid) {
                $req_f = mysql_query("SELECT * FROM `cms_forum_files` WHERE `post` = '$delid' LIMIT 1");
                if (mysql_num_rows($req_f)) {
                    $res_f = mysql_fetch_assoc($req_f);
                    unlink('files/' . $res_f['filename']);
                    mysql_query("DELETE FROM `cms_forum_files` WHERE `post` = '$delid' LIMIT 1");
                }
mysql_query("DELETE FROM `forum` WHERE `id` = '$delid' LIMIT 1");
                $req_u = mysql_query("SELECT `postforum` FROM `users` WHERE `id` = '" . $res['user_id'] . "' LIMIT 1");
                if (mysql_num_rows($req_u)) {
                    // Вычитаем один балл из счетчика постов юзера
                    $res_u = mysql_fetch_assoc($req_u);
                    $postforum = $res_u['postforum'] > 0 ? $res_u['postforum'] - 1 : 0;
                    mysql_query("UPDATE `users` SET `postforum` = '" . $postforum . "' WHERE `id` = '" . $res['user_id'] . "' LIMIT 1");
                }
            }

    $total++;
        }
        echo '<div class="gmenu">Отмеченные посты удалены<br />Удалено ' . $total . ' постов<br /><a href="' . $prd . '">Назад</a></div>';
    }
    else {
        if (empty ($_POST['delch'])) {
            echo '<div class="rmenu"><p>Вы ничего не выбрали для удаления<br /><a href="' . htmlspecialchars(getenv("HTTP_REFERER")) . '">Назад</a></p></div>';
            require_once ("../incfiles/end.php");
            exit;
        }
        foreach ($_POST['delch'] as $v) {
            $dc[] = intval($v);
        }
        $_SESSION['dc'] = $dc;
        $_SESSION['prd'] = htmlspecialchars(getenv("HTTP_REFERER"));
        echo '<div class="rmenu"><p>Вы уверены в удалении постов?<br /><a href="index.php?act=massdel&amp;do=del">Да</a> | <a href="' . htmlspecialchars(getenv("HTTP_REFERER")) . '">Нет</a>' . ($rights == 9 ? ' | <a href="index.php?act=massdel&amp;do=hide">Скрыть</a>' : '') . '</p></div>';
   }
.
Если быть точным там только скрытие.
.
AlezZ
[KIT], Если переменная $_GET['do'] == 'hide' то скрытие, если del то удаление.
Или я тебя не правильно понял..
.
AlezZ, Так эта функция же есть в стандартном форуме, я думал тебе нужно вообще все посты форума почисть с файлаи и тд
.
dakilla, Есть только скрытие постов а я хотел еще сделать и удаление(на выбор - удалить/скрыть)
.
AlezZ (01.11.2010/16:43)
dakilla, Есть только скрытие постов а я хотел еще сделать и удаление(на выбор - удалить/скрыть)
второй день читаю твою тему , и так и не асилил гг.
У меня на форуме есть и удаление, и сокрытие тем - джон 3.2.2. У кого ещё есть такое же?
Всего: 26