Лимит на скачивание файлов для DLE
Модуль лимит на скачивание файлов разрешает пользователям из N группы скачивать не более N файлов за одни сутки. При превышении лимита на загрузку, пользователь вместо ссылки видит "Уведомление"
Обнуление счетчика происходит автоматически по истечении 24 часов с момента первой загрузки файла.
Настройки лимита устанавливаются для каждой группы отдельно.
1. Выполнить SQL запрос
UTF-8:
ALTER TABLE `dle_usergroups` ADD `limit_files` smallint(6) NOT NULL DEFAULT '0';
CREATE TABLE `dle_downloadlog_files` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`user` varchar(40) NOT NULL DEFAULT '',
`date` int(11) UNSIGNED NOT NULL DEFAULT '0',
`ip` varchar(40) NOT NULL DEFAULT '',
PRIMARY KEY (`id`)
) ENGINE=MyISAM /*!40101 DEFAULT CHARSET=utf8*/;
CP1251:ALTER TABLE `dle_usergroups` ADD `limit_files` smallint(6) NOT NULL DEFAULT '0';
CREATE TABLE `dle_downloadlog_files` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`user` varchar(40) NOT NULL DEFAULT '',
`date` int(11) UNSIGNED NOT NULL DEFAULT '0',
`ip` varchar(40) NOT NULL DEFAULT '',
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARACTER SET cp1251 COLLATE cp1251_general_ci;
2. Открыть download.php
Найти:
if ($config['files_antileech']) {
Выше вставить:/// Ограничение на скачку ///
if ($user_group[$member_id['user_group']]['allow_files'] AND $user_group[$member_id['user_group']]['limit_files']) {
if ($member_id['user_group'] != 5) {
$user = $member_id['name'];
$where = "user = '{$member_id['name']}'";
} else {
$user = "noname";
$where = "ip ='{$_IP}'";
}
$sql_max = $db->super_query("SELECT DISTINCT COUNT(*) as count, date FROM " . PREFIX . "_downloadlog_files WHERE {$where}");
if ($user_group[$member_id['user_group']]['limit_files'] <= $sql_max['count']) {
die("Access denied");
} else {
$db->query("INSERT INTO " . PREFIX . "_downloadlog_files (user, date, ip) values ('{$db->safesql($user)}', '{$_TIME}', '{$db->safesql($_IP)}')");
}
}
/// Ограничение на скачку ///
3. Открыть functions.php
Найти:
if ($user_group[$member_id['user_group']]['allow_files']) {
Выше вставить:
/// Ограничение на скачку ///
if ($user_group[$member_id['user_group']]['allow_files'] AND $user_group[$member_id['user_group']]['limit_files']) {
if ($member_id['user_group'] != 5) {
$user = $member_id['name'];
$where = "user = '" . $member_id['name'] . "'";
} else {
$user = "noname";
$where = "ip ='" . get_ip() . "'";
}
$sql_max = $db->super_query("SELECT DISTINCT COUNT(*) as count, date FROM " . PREFIX . "_downloadlog_files WHERE {$where}");
$this_time = $_TIME - 86400;
if ($sql_max['count'] AND $sql_max['date'] < $this_time) {
$db->query("DELETE FROM " . PREFIX . "_downloadlog_files WHERE {$where}");
}
$zapros = $user_group[$member_id['user_group']]['limit_files'] <= $sql_max['count'];
}
if (!empty($zapros)) {
$tpl->set('[limit-download]', "");
$tpl->set('[/limit-download]', "");
$tpl->set('{limit-day}', $user_group[$member_id['user_group']]['limit_files']);
$tpl->set('{next}', langdate("H:i", $sql_max['date'] + 86400));
$tpl->set_block("'\\[allow-download\\](.*?)\\[/allow-download\\]'si", "");
$tpl->set_block("'\\[not-allow-download\\](.*?)\\[/not-allow-download\\]'si", "");
} else {
$tpl->set_block("'\\[limit-download\\](.*?)\\[/limit-download\\]'si", "");
$tpl->set('[allow-download]', "");
$tpl->set('[/allow-download]', "");
$tpl->set('[not-allow-download]', "");
$tpl->set('[/not-allow-download]', "");
}
/// Ограничение на скачку ///
4. Открыть attachment.tpl в самый низ добавить:
[limit-download]
<div class="box berrors fix_grid">
Вы исчерпали дневной лимит на скачивание файлов!
<br />
Ваш дневной лимит на скачивание раз: <b>{limit-day}</b>
<br />
Вы сможете скачивать файлы: <b>Завтра в - {next}</b>
</div>
[/limit-download]
5. Открыть usergroup.php
Найти:
$max_pm_day = intval( $_REQUEST['max_pm_day'] );
Ниже вставить:
$limit_files = intval( $_REQUEST['limit_files'] );
Найти:
max_pm_day,
Заменить на:
max_pm_day, limit_files,
Найти:
'$max_pm_day',
Заменить на:
'$max_pm_day', '$limit_files',
Найти:
max_pm_day='$max_pm_day',
Заменить на:
max_pm_day='$max_pm_day', limit_files='$limit_files',
Найти:
<tr>
<td><h6 class="media-heading text-semibold">{$lang['group_afil']}</h6><span class="text-muted text-size-small hidden-xs">{$lang['hint_gafile']}</span></td>
<td><input class="switch" type="checkbox" name="allow_files" {$allow_files} value="1"></td>
</tr>
Ниже вставить:
<tr>
<td><h6 class="media-heading text-semibold">{$lang['group_limit']}</h6><span class="text-muted text-size-small hidden-xs">{$lang['hint_limit']}</span></td>
<td><input type="text" class="form-control" style="max-width:100px; text-align: center;" name="limit_files" value="{$limit_files_value}"></td>
</tr>
6. Открыть adminpanel.lng
Найти:
'group_afil'=>"Разрешить скачивание файлов",
Ниже вставить:
'group_limit'=>"Максимальное количество скачиваемых файлов в сутки",
Найти:
'hint_gafile' =>"Разрешить пользователю скачивать прикрепленные к новости файлы.",
Ниже вставить:
'hint_limit' =>"Укажите максимальное количество скачиваемых файлов, которое разрешено скачивать пользователям в сутки, другим посетителям сайта. Для снятия данного ограничения оставьте поле пустым или укажите 0.",
7. Зайти в настройки групп и настроить лимиты.
Ссылка для скачивания доступна только авторизованным пользователям, пожалуйста пройдите регистрацию.
Это займёт не более минуты. Не волнуйтесь, мы не спамим!
Информация
Посетители, находящиеся в группе Гости, не могут оставлять комментарии к данной публикации.
Облако тегов
bootstrap Bootstrap CSS CSS3 dle DLE fruit farm html html шаблон html5 HTML5 Payeer PNG PSD wap Wordpress Скрипт удвоителя адаптивный адаптивный шаблон бонусник дизайн игровой хостинг иконки лендинг меню модуль панель портфолио сайт скрипт скрипт фермы текстура удвоитель удвоитель Payeer ферма фон фруктовая ферма хак шаблон экономическая игра
Какую операционную систему вы используете