Последние комментарии и последние добавленные файлы в 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-авторизации).
Еще по теме: Download System, SSI, модератор
Категория: Модерация, Хаки и доработки