View file forum/inc/set_them_act.php

File size: 8.49Kb
<?php
if ( isset( $_GET['act'] ) && isset( $_GET['ok'] ) && $_GET['act'] == 'mesto' && isset( $_POST['razdel'] ) && is_numeric( $_POST['razdel'] ) && ( db::count("SELECT COUNT(*) FROM `forum_r` WHERE `id` = '" . intval( $_POST['razdel'] ) . "'") == 1 && user_access( 'forum_them_edit' ) || db::count("SELECT COUNT(*) FROM `forum_r` WHERE `id` = '" . intval( $_POST['razdel'] ) . "' WHERE `id_forum` = '$forum[id]'") == 1 && $ank2['id'] == $user['id'] ) ) {
    $razdel_new = db::fetch("SELECT * FROM `forum_r` WHERE `id` = '" . intval( $_POST['razdel'] ) . "' LIMIT 1", ARRAY_A);
    db::query("UPDATE `forum_p` SET `id_forum` = '$razdel_new[id_forum]', `id_razdel` = '$razdel_new[id]' WHERE `id_forum` = '$forum[id]' AND `id_razdel` = '$razdel[id]' AND `id_them` = '$them[id]'");
    db::query("UPDATE `forum_t` SET `id_forum` = '$razdel_new[id_forum]', `id_razdel` = '$razdel_new[id]' WHERE `id_forum` = '$forum[id]' AND `id_razdel` = '$razdel[id]' AND `id` = '$them[id]'");
    $old_razdel = $razdel;
    $forum      = db::fetch("SELECT * FROM `forum_f` WHERE `id` = '$razdel_new[id_forum]' LIMIT 1", ARRAY_A);
    $razdel     = db::fetch("SELECT * FROM `forum_r` WHERE `id` = '$razdel_new[id]' LIMIT 1", ARRAY_A);
    $them       = db::fetch("SELECT * FROM `forum_t` WHERE `id_razdel` = '$razdel[id]' AND `id` = '$them[id]' LIMIT 1", ARRAY_A);
    $msgg       = '[red]Тему переместил ' . $user['group_name'] . ' ' . $user['nick'] . ' из раздела ' . $old_razdel['name'] . ' в раздел ' . $razdel['name'] . '[/red]';
    db::query("INSERT INTO `forum_p` (`id_forum`, `id_razdel`, `id_them`, `id_user`, `msg`, `time`) values('$forum[id]', '$razdel[id]', '$them[id]', '0', '" . my_esc( $msgg ) . "', '$time')");
    if ( $ank2['id'] != $user['id'] )
        admin_log( 'Форум', 'Перемещение темы', "Перемещение темы '[url=/forum/$forum[id]/$razdel[id]/$them[id]/]$them[name][/url]' из раздела '[url=/forum/$forum[id]/$old_razdel[id]/]$old_razdel[name][/url]' в раздел '[url=/forum/$forum[id]/$old_razdel[id]/]$razdel[name][/url]'" );
    $_SESSION['message'] = 'Тема успешно перемещена';
    header( "Location: /forum/$forum[id]/$razdel[id]/$them[id]/" );
    exit;
}
if ( ( user_access( 'forum_them_del' ) || $ank2['id'] == $user['id'] ) && isset( $_GET['act'] ) && isset( $_GET['ok'] ) && $_GET['act'] == 'delete' ) {
    $qf = db::query("SELECT * FROM `forum_p` WHERE `id_them` = '$them[id]'");
    while ( $postf =  $qf->fetch_assoc() ) {
        if ( db::count("SELECT COUNT(*) FROM `forum_files` WHERE `id_post` = '$postf[id]'") > 0 ) {
            $qS = db::query("SELECT * FROM `forum_files` WHERE `id_post` = '$postf[id]'");
            while ( $postS =  $qS->fetch_assoc() ) {
                db::query("DELETE FROM `forum_files` WHERE `id` = '$postS[id]'");
                @unlink( PATH_UPLOADS . '/forum/files/' . $postS['id'] . '.frf' );
            }
        }
    }
    db::query("DELETE FROM `forum_t` WHERE `id` = '$them[id]'");
    db::query("DELETE FROM `forum_p` WHERE `id_them` = '$them[id]'");
    if ( $ank2['id'] != $user['id'] )
        admin_log( 'Форум', 'Удаление темы', "Удаление темы '$them[name]' (автор '[url=/info.php?id=$ank2[id]]$ank2[nick][/url]')" );
    $_SESSION['message'] = 'Тема успешно удалена';
    header( "Location: /forum/$forum[id]/$razdel[id]/$them[id]/" );
    exit;
}
if ( isset( $_GET['act'] ) && isset( $_GET['ok'] ) && $_GET['act'] == 'set' && isset( $_POST['name'] ) && ( user_access( 'forum_them_edit' ) || $ank2['id'] == $user['id'] ) ) {
    $name = $_POST['name'];
    $msg  = $_POST['msg'];
    if ( strlen2( $name ) < 3 )
        $err = 'Слишком короткое название';
    if ( strlen2( $name ) > 32 )
        $err = 'Слишком длинное название';
    $name = my_esc( $_POST['name'] );
    $msg  = my_esc( $_POST['msg'] );
    if ( $user['level'] > 0 ) {
        if ( isset( $_POST['up'] ) && $_POST['up'] == 1 ) {
            if ( $ank2['id'] != $user['id'] )
                admin_log( 'Форум', 'Параметры темы', "Закрепление темы '[url=/forum/$forum[id]/$razdel[id]/$them[id]/]$them[name][/url]' (автор '[url=/info.php?id=$ank2[id]]$ank2[nick][/url]', раздел '$razdel[name]')" );
            $up   = 1;
            $msgg = '[red]Тему закрепил ' . $user['group_name'] . ' ' . $user['nick'] . '[/red]';
            db::query("INSERT INTO `forum_p` (`id_forum`, `id_razdel`, `id_them`, `id_user`, `msg`, `time`) values('$forum[id]', '$razdel[id]', '$them[id]', '0', '" . my_esc( $msgg ) . "', '$time')");
        } else
            $up = 0;
        $add_q = " `up` = '$up',";
    } else
        $add_q = NULL;
    if ( isset( $_POST['close'] ) && $_POST['close'] == 1 && $them['close'] == 0 ) {
        $close = 1;
        if ( $ank2['id'] != $user['id'] )
            admin_log( 'Форум', 'Параметры темы', "Закрытие темы '[url=/forum/$forum[id]/$razdel[id]/$them[id]]$them[name][/url]' (автор '[url=/info.php?id=$ank2[id]]$ank2[nick][/url]')" );
        $msgg = '[red]Тему закрыл ' . $user['group_name'] . ' ' . $user['nick'] . '[/red]';
        db::query("INSERT INTO `forum_p` (`id_forum`, `id_razdel`, `id_them`, `id_user`, `msg`, `time`) values('$forum[id]', '$razdel[id]', '$them[id]', '0', '" . my_esc( $msgg ) . "', '$time')");
    } elseif ( $them['close'] == 1 && ( !isset( $_POST['close'] ) || $_POST['close'] == 0 ) ) {
        $close = 0;
        if ( $ank2['id'] != $user['id'] )
            admin_log( 'Форум', 'Параметры темы', "Открытие темы '[url=/forum/$forum[id]/$razdel[id]/$them[id]]$them[name][/url]' (автор '[url=/info.php?id=$ank2[id]]$ank2[nick][/url]')" );
        $msgg = '[red]Тему открыл ' . $user['group_name'] . ' ' . $user['nick'] . '[/red]';
        db::query("INSERT INTO `forum_p` (`id_forum`, `id_razdel`, `id_them`, `id_user`, `msg`, `time`) values('$forum[id]', '$razdel[id]', '$them[id]', '0', '" . my_esc( $msgg ) . "', '$time')");
    } else
        $close = $them['close'];
    if ( isset( $_POST['autor'] ) && $_POST['autor'] == 1 )
        $autor = $user['id'];
    else
        $autor = $ank2['id'];
    if ( !isset( $err ) ) {
        db::query("UPDATE `forum_t` SET `name` = '$name', `text` = '$msg', `id_user` = '$autor',$add_q `close` = '$close' WHERE `id` = '$them[id]' LIMIT 1");
        $them                = db::fetch("SELECT * FROM `forum_t` WHERE `id` = '$them[id]' LIMIT 1", ARRAY_A);
        $ank2                = db::fetch("SELECT * FROM `user` WHERE `id` = '$them[id_user]' LIMIT 1", ARRAY_A);
        $_SESSION['message'] = 'Изменения успешно приняты';
        header( "Location: /forum/$forum[id]/$razdel[id]/$them[id]/" );
        exit;
    }
}
if ( ( user_access( 'forum_post_ed' ) || isset( $user ) && $ank2['id'] == $user['id'] ) && isset( $_GET['act'] ) && $_GET['act'] == 'post_delete' && isset( $_GET['ok'] ) ) {
    foreach ( $_POST as $key => $value ) {
        if ( preg_match( '#^post_([0-9]*)$#', $key, $postnum ) && $value = '1' ) {
            $delpost[] = $postnum[1];
        }
    }
    if ( isset( $delpost ) && is_array( $delpost ) ) {
        db::query("DELETE FROM `forum_p` WHERE `id_them` = '$them[id]' AND (`id` = '" . implode( "'" . ' OR `id` = ' . "'", $delpost ) . "') LIMIT " . count( $delpost ) );
        if ( $ank2['id'] != $user['id'] )
            admin_log( 'Форум', 'Очистка темы', "Очистка темы '[url=/forum/$forum[id]/$razdel[id]/$them[id]/]$them[name][/url]' (автор '[url=/info.php?id=$ank2[id]]$ank2[nick][/url]', удалено '" . count( $delpost ) . "' постов)");
        $msgg = '[red]Тему почистил ' . $user['group_name'] . ' ' . $user['nick'] . '[/red]';
        db::query("INSERT INTO `forum_p` (`id_forum`, `id_razdel`, `id_them`, `id_user`, `msg`, `time`) values('$forum[id]', '$razdel[id]', '$them[id]', '0', '" . my_esc( $msgg ) . "', '$time')");
        $_SESSION['message'] = 'Успешно удалено ' . count( $delpost ) . ' постов';
        header( "Location: /forum/$forum[id]/$razdel[id]/$them[id]/" );
        exit;
    }
}
if ( isset( $_GET['act'] ) && $_GET['act'] == 'post_delete' && ( user_access( 'forum_post_ed' ) || isset( $user ) && $ank2['id'] == $user['id'] ) ) {
    echo "<form method='post' action='/forum/$forum[id]/$razdel[id]/$them[id]/?act=post_delete&amp;ok'>\n";
}
?>