Последние комментарии и последние добавленные файлы в Download System SMF 2.0 RCx

Дата: 2 июня, 2011 год

Есть такой классный мод для SMF — Download System. Есть ее платная версия, и бесплатная. Конечно, мы юзаем бесплатную, поэтому все хаки предназначены для нее. Сегодня речь пойдет о модерировании комментариев к файлам, загруженным с помощью этого мода, а также о модерации самих файлов.

Чтобы иметь возможность модерировать файлы и комментарии, их нужно где-то видеть списком — не будешь же залезать в каждый файл/категорию, чтоб смотреть чего там кто добавил/написал. В случае с файлами у нас есть кусочек такого списка, в разделе статистике показываются последние 10 добавленных файлов. Неплохо, но хочется больше. А с комментариями вообще беда — такого списка вообще нет.

Так что я решил расширить список полезных функций в SSI, чтобы выдергивать нужные нам списки в удобный инструмент модерирования.

Хочу обратить внимание на то, что методы и классы для форума версии SMF 1.1.x довольно существенно отличаются от версии SMF 2.0 RCx, и нижеописанные функции будут работать только с версией 2.0.

Функция вывода последних добавленных Х файлов:

function ssi_get_last_files ($limit = 15)
{    
    global $db_prefix, $smcFunc;

    $request = $smcFunc['db_query']('', '
        SELECT ID_FILE, title, date
        FROM {db_prefix}down_file
        where approved=1
        order by date DESC
        LIMIT '.$limit
    );
    $return = '<ul>';
    while ($row = $smcFunc['db_fetch_assoc']($request)) {
        $date = date("d-m-Y, H:i", $row['date']);
        $return.= '<li><a href="http://my_cool_forum.ru/index.php?action=downloads;sa=view;id='.$row['ID_FILE'].'">'.$row['title'].'</a> (добавлен: '.$date.') <a href="http://my_cool_forum.ru/index.php?action=downloads;sa=delete;id='.$row['ID_FILE'].'" style="color:red;">удалить</a></li>'."\n";
    }
    $smcFunc['db_free_result']($request);
    $return .= '</ul>';
    return $return;
}

Параметром к функции можно передать кол-во последних добавленных файлов. Кнопка удалить будет работать только тогда, когда вы будете залогинены под юзером, который имеет право удалять данный файл.

Функция вывода последних комментариев к файлам:

function ssi_get_last_files_comm ($limit = 20) {
    global $db_prefix, $smcFunc;
    $request = $smcFunc['db_query']('', '
        SELECT c.ID_COMMENT, c.ID_FILE, c.comment, c.date, f.title
        FROM {db_prefix}down_comment AS c
        LEFT JOIN {db_prefix}down_file AS f ON (f.ID_FILE = c.ID_FILE)
        order by c.date DESC
        LIMIT '.$limit
    );
    $return = '<ul>';
    while ($row = $smcFunc['db_fetch_assoc']($request)) {
        $date = date("d-m-Y, H:i", $row['date']);
        $return.= '<li style="padding-top:10px;">'.$row['comment'].' (добавлен '.$date.', <a href="http://my_cool_forum.ru/index.php?action=downloads;sa=delcomment&id='.$row['ID_COMMENT'].'">удалить</a>, <a href="http://my_cool_forum.ru/index.php?action=downloads;sa=delcomment&id='.$row['ID_COMMENT'].'">изменить</a>) <div style="font-size:10px;">(к файлу <a href="http://my_cool_forum.ru/index.php?action=downloads;sa=view;id='.$row['ID_FILE'].'">'.$row['title'].'</a></div></li>'."\n";
    }
    $smcFunc['db_free_result']($request);
    $return .= '</ul>';
    return $return;
}

Тут также в параметре к функции передается кол-во выводимых последних комментариев к файлам. И также ссылки на удаление и изменение комментария будут работать только если у вас есть соответствующие привелегии на форуме.

Совместив эти две функции на одной страничке можно вполне комфортно модерировать активность пользователей в download system.

PS: хорошо бы эту страничку положить в папку, закрытую какой-нибудь авторизацией (в случае использование cpanel, directadmin или ispmanager это легко делается с помощью http-авторизации).

Comments are closed.

SEO Powered by Platinum SEO from Techblissonline