Отключение учета сообщений в форумах (флуд-форумы)

Отключение учета сообщений в форумах (флуд-форумы) 1.0.0

Нет прав для скачивания
Совместимость
не проверялся на совместимость
Изменения в БД
требуются
Автор
Gemini_13
Общественное достояние
нет
Описание: добавляет возможность отключить учет сообщений в конкретных форумах (создать флуд-форумы). Сообщения, созданные в таких разделах, не зачисляются в статистику пользователям.
Инструкция по установке
PHP:
# ---- [ SQL ] -------------------

ALTER TABLE bb_forums ADD forum_postcount TINYINT(1) DEFAULT '1' NOT NULL;
ALTER TABLE bb_posts ADD posts_count TINYINT(1) DEFAULT '1' NOT NULL;

# ---- [ Открыть ] -------------------

admin/admin_forums.php

# ---- [ Найти ] -------------------

                'S_STATUS_LIST' => $statuslist,

# ---- [ Вставить после ] -------------------

                'S_FORUM_POSTCOUNT' => ( isset($row) && isset($row['forum_postcount']) && ($row['forum_postcount'] == 0) ) ? '' : 'checked="checked"',

# ---- [ Найти ] -------------------

$columns = '

# ---- [ Вставить до ] -------------------

            $forum_postcount = isset($_POST['forum_postcount']) ? intval($_POST['forum_postcount']) : 0;

# ---- [ Найти ] -------------------

$columns = '

# ---- [ В строке найти ] -------------------

,  forum_display_order

# ---- [ В строке добавить после ] -------------------

, forum_postcount

# ---- [ Найти ] -------------------

$values = "

# ---- [ В строке найти ] -------------------

, $forum_display_order

# ---- [ В строке добавить после ] -------------------

, $forum_postcount

# ---- [ Найти ] -------------------

                $prune_days = $row['prune_days'];

# ---- [ Вставить после ] -------------------

                $forum_postcount = ($row['forum_postcount']) ? HTML_CHECKED : '';

# ---- [ Найти ] -------------------

                $prune_days = 0;

# ---- [ Вставить после ] -------------------

                $forum_postcount = '';

# ---- [ Найти ] -------------------

            $forum_data = get_forum_data($forum_id);
            $old_cat_id = $forum_data['cat_id'];
            $forum_order = $forum_data['forum_order'];

# ---- [ Вставить после ] -------------------

            $forum_postcount = '';

# ---- [ Найти ] -------------------

            DB()->query("
                UPDATE ". BB_FORUMS ." SET
                    forum_name          = '$forum_name',
                    cat_id              = $cat_id,

# ---- [ Вставить до ] -------------------

            $forum_postcount = isset($_POST['forum_postcount']) ? intval($_POST['forum_postcount']) : 0;
            $forum_postcount_old = DB()->query("
                SELECT forum_postcount
                FROM bb_forums
                WHERE forum_id = $forum_id
            ");

            // Update posts count options if changed forum_postcount
            if ($forum_postcount != $forum_postcount_old)
            {
                DB()->query("
                    UPDATE ". BB_POSTS ."
                    SET posts_count = $forum_postcount
                    WHERE forum_id = $forum_id
                ");
            }

# ---- [ Найти ] -------------------

            DB()->query("
                UPDATE ". BB_FORUMS ." SET
                    forum_name          = '$forum_name',
                    cat_id              = $cat_id,

# ---- [ В строке найти ] -------------------

                    prune_days    = $prune_days,

# ---- [ В строке добавить после ] -------------------

                    forum_postcount = $forum_postcount,

# ---- [ Найти ] -------------------

                // Update topics
                DB()->query("
                    UPDATE ". BB_TOPICS ." SET
                        forum_id = $to_id
                    WHERE forum_id = $from_id
                ");

# ---- [ Вставить после ] -------------------

                // Update posts count options
                DB()->query("
                    UPDATE ". BB_POSTS ." p
                    SET p.posts_count = (
                        SELECT f.forum_postcount
                        FROM ". BB_FORUMS ." f
                        WHERE f.forum_id = $to_id
                    )
                    WHERE p.forum_id = $from_id
                ");

# ---- [ Открыть ] -------------------

includes/functions_admin.php

# ---- [ Найти ] -------------------

                        DB()->query("
                                REPLACE INTO $tmp_user_posts
                                        SELECT user_id, 0
                                        FROM ". BB_USERS ."
                                        WHERE user_id != ". GUEST_UID ."
                                                $where_user_sql
                                UNION
                                        SELECT poster_id, COUNT(*)
                                        FROM ". BB_POSTS ."
                                        WHERE poster_id != ". GUEST_UID ."

# ---- [ Вставить после ] -------------------

AND posts_count != 0

# ---- [ Найти ] -------------------

    DB()->query("
        INSERT INTO $tmp_user_posts

# ---- [ В строке найти ] -------------------

                AND p.poster_id != ". GUEST_UID ."

# ---- [ В строке добавить после ] -------------------

                AND p.posts_count != 0

# ---- [ Найти ] -------------------

    // Update torrents
    DB()->query("
        UPDATE ". BB_BT_TORRENTS ." SET
            forum_id = $to_forum_id
        WHERE topic_id IN($topic_csv)
    ");

# ---- [ Вставить после ] -------------------

    // Update posts count options
    DB()->query("
        UPDATE ". BB_POSTS ." p
        SET p.posts_count = (
            SELECT f.forum_postcount
            FROM ". BB_FORUMS ." f
            WHERE f.forum_id = $to_forum_id
        )
        WHERE p.topic_id IN ($topic_csv)
    ");

# ---- [ Открыть ] -------------------

includes/functions_post.php

# ---- [ Найти ] -------------------

    // Flood control
    $row = null;
    $where_sql = (IS_GUEST) ? "p.poster_ip = '". USER_IP ."'" : "p.poster_id = {$userdata['user_id']}";
     
# ---- [ Вставить до ] -------------------

    // Check post count option
    $sql = "SELECT forum_postcount AS forum_post_count FROM ". BB_FORUMS ." WHERE forum_id = '" . $forum_id . "'";
    if (!$forum_posts_count = DB()->fetch_row($sql))
    {
        message_die(GENERAL_ERROR, $forum_posts_count['forum_post_count']);
    }
    $posts_count = (intval($forum_posts_count['forum_post_count'])) ? intval($forum_posts_count['forum_post_count']) : 0;

# ---- [ Найти ] -------------------

    $sql = ($mode != "editpost") ? "INSERT INTO " . BB_POSTS

# ---- [ В строке найти ] -------------------

post_time, poster_ip

# ---- [ В строке добавить после ] -------------------

, posts_count

# ---- [ В строке найти ] -------------------

, $current_time, '". USER_IP ."'

# ---- [ В строке добавить после ] -------------------

, $posts_count

# ---- [ Найти ] -------------------

        $sql = "UPDATE " . BB_USERS . "

# ---- [ Вставить до ] -------------------

        $sql = "SELECT forum_postcount
            FROM " . BB_FORUMS . "
            WHERE forum_id = $forum_id
            AND forum_postcount = 0";
        if (!$result = DB()->sql_query($sql))
        {
            message_die(GENERAL_ERROR, 'Error in deleting post', '', __LINE__, __FILE__, $sql);
        }
        if ($row = DB()->sql_fetchrow($result))
        {
            return;
        }

# ---- [ Открыть ] -------------------

language/lang_russian/lang_admin.php

# ---- [ Найти ] -------------------

$lang['PRUNE_DAYS']

# ---- [ Вставить до ] -------------------

$lang['FORUM_POSTCOUNT'] = 'Считать сообщения пользователей';

# ---- [ Открыть ] -------------------

templates/admin/admin_forums.tpl

# ---- [ Найти ] -------------------

    <tr>
        <td class="catBottom" colspan="2">
            <input type="submit" name="submit" value="{S_SUBMIT_VALUE}" class="mainoption" />
        </td>
    </tr>

# ---- [ Вставить до ] -------------------

    <tr>
        <td class="row1">{L_FORUM_POSTCOUNT}</td>
        <td class="row2">{L_ENABLED}<input type="checkbox" name="forum_postcount" value="1" {S_FORUM_POSTCOUNT} /></td>
    </tr>

# ---- [ Конец ] -------------------
Автор
Exile
Скачивания
14
Просмотры
138
Первый выпуск
Обновление
Оценка
0.00 звёзд 0 оценок

Другие ресурсы пользователя Exile

Сверху