Мод позволяет установить дату автоматического удаления пользователя из группы (TorrentPier II r400)
Файлы к редактированию:
ajax/index_data.php
includes/functions_group.php
includes/cron/jobs/clean_dlstat.php
language/lang_russian/lang_main.php
templates/default/groupcp.tpl
groupcp.php
===============================================================================
# ----[ SQL ]---------------------------------
ALTER TABLE `bb_user_group` ADD `time_del` date NOT NULL DEFAULT '0000-00-00';
# ---- [ Открыть ] -------------------
groupcp.php
# ---- [ Найти ] -------------------
$page_cfg['use_tablesorter'] = true;
# ---- [ Вставить после ] -------------------
$time = bb_date(TIMENOW, 'Y-m-d', 'false');
# ---- [ Найти ] -------------------
, &$user_time
# ---- [ Вставить после ] -------------------
, &$time_del
# ---- [ Найти ] -------------------
$from = ( !empty($row['user_from']) ) ? $row['user_from'] : '';
# ---- [ Вставить до ] -------------------
$time_del = (!empty($row['time_del'])) ? $row['time_del'] : $lang['NONE'];
# ---- [ Найти ] -------------------
add_user_into_group($group_id, $userdata['user_id'], 1, TIMENOW);
# ----[ Заменить ]------------------------------------------
add_user_into_group($group_id, $userdata['user_id'], 1, TIMENOW, @$_POST['time_del']);
# ---- [ Найти ] -------------------
if (!$row = get_userdata(@$_POST['username'], true))
{
bb_die($lang['COULD_NOT_ADD_USER']);
}
# ---- [ Вставить после ] -------------------
if(@$_POST['time_del'] <= $time)
{
bb_die($lang['TIME_DEL_MIN']);
}
# ---- [ Найти ] -------------------
add_user_into_group($group_id, $row['user_id']);
# ----[ Заменить ]------------------------------------------
add_user_into_group($group_id, $row['user_id'], '', TIMENOW, @$_POST['time_del']);
# ----[ Найти 2 раза ]------------------------------------------
, ug.user_time
# ---- [ Вставить после ] -------------------
, ug.time_del
# ---- [ Найти ] -------------------
generate_user_info($group_moderator, $bb_cfg['default_dateformat'], $is_moderator, $from, $posts, $joined, $pm, $email, $www, $user_time);
# ----[ Заменить ]------------------------------------------
generate_user_info($group_moderator, $bb_cfg['default_dateformat'], $is_moderator, $from, $posts, $joined, $pm, $email, $www, $user_time, $time_del);
# ----[ Найти 2 раза ]------------------------------------------
generate_user_info($member, $bb_cfg['default_dateformat'], $is_moderator, $from, $posts, $joined, $pm, $email, $www, $user_time);
# ----[ Заменить ]------------------------------------------
generate_user_info($member, $bb_cfg['default_dateformat'], $is_moderator, $from, $posts, $joined, $pm, $email, $www, $user_time, $time_del);
# ---- [ Найти ] -------------------
'TIME' => $user_time,
# ---- [ Вставить после ] -------------------
'TIME_DEL' => $time_del,
# ---- [ Найти ] -------------------
print_page('groupcp.tpl');
# ---- [ Вставить до ] -------------------
$template->assign_vars(array(
'TIME_DEL' => $time,
));
# ---- [ Открыть ] -------------------
includes/functions_group.php
# ---- [ Найти ] -------------------
function add_user_into_group ($group_id, $user_id, $user_pending = 0, $user_time = TIMENOW)
# ----[ Заменить ]------------------------------------------
function add_user_into_group ($group_id, $user_id, $user_pending = 0, $user_time = TIMENOW, $time_del = '0000-00-00')
# ---- [ Найти ] -------------------
'user_time' => (int) $user_time,
# ---- [ Вставить после ] -------------------
'time_del' => (string) $time_del,
# ---- [ Открыть ] -------------------
templates/default/groupcp.tpl
# ---- [ Найти ] -------------------
<input type="text" name="username" maxlength="50" size="20" />
# ---- [ Вставить после ] -------------------
<input type="date" name="time_del" value="{TIME_DEL}" title="{L_TIME_AUTODEL}" />
# ----[ Найти (ВСЕ значения) ]------------------------------------------
colspan="10"
# ----[ Заменить ]------------------------------------------
colspan="<!-- IF IS_ADMIN -->11<!-- ELSE -->10<!-- ENDIF -->"
# ---- [ Найти ] -------------------
<td class="small">{member.TIME}</td>
# ---- [ Вставить после ] -------------------
<!-- IF IS_ADMIN --><td><input type="date" onblur="ajax.exec({action: 'index_data', mode: 'time_del', user_id: '{member.USER_ID}', time_del: $('#cu-{member.USER_ID}').val() });" id="cu-{member.USER_ID}" value="{member.TIME_DEL}" /></td><!-- ENDIF -->
# ---- [ Найти ] -------------------
<td class="small">{MOD_TIME}</td>
# ---- [ Вставить после ] -------------------
<!-- IF IS_ADMIN --><td width="3%"> </td><!-- ENDIF -->
# ---- [ Найти ] -------------------
<th class="{sorter: false}" ><b class="tbs-text">#</b></th>
# ---- [ Вставить до ] -------------------
<!-- IF IS_ADMIN --><th class="{sorter: false}" ><b class="tbs-text">{L_TIME_DELOUT}</b></th><!-- ENDIF -->
# ---- [ Открыть ] -------------------
ajax/index_data.php
# ---- [ Найти ] -------------------
break;
# ---- [ Вставить после ] -------------------
case 'time_del':
if(!IS_ADMIN) $this->ajax_die($lang['NOT_ADMIN']);
$time_del = (string) $this->request['time_del'];
$user_id = (int) $this->request['user_id'];
$time = bb_date(TIMENOW, 'Y-m-d', 'false');
if ($time_del == '' || $time_del < $time) $this->ajax_die($lang['TIME_DEL_MIN']);
DB()->query("UPDATE ". BB_USER_GROUP ." SET time_del = '$time_del' WHERE user_id = ". $user_id);
break;
# ---- [ Открыть ] -------------------
includes/cron/jobs/clean_dlstat.php
#
#-----[ Вставить (в конец) ]------------------------------------------
#
require(INC_DIR .'functions_group.php');
$time = bb_date(TIMENOW, 'Y-m-d', 'false');
$times_del = DB()->fetch_rowset("SELECT group_id, user_id FROM ". BB_USER_GROUP ." WHERE time_del <= '$time' AND time_del != '0000-00-00'");
foreach($times_del as $row)
{
delete_user_group ($row['group_id'], $row['user_id']);
}
# ---- [ Открыть ] -------------------
language/lang_russian/lang_main.php
#
#-----[ Вставить ]------------------------------------------
#
// Удаление из группы по истечении срока
$lang['TIME_AUTODEL'] = 'Дата автоудаления пользователя из группы';
$lang['TIME_DEL_MIN'] = 'Дата выбытия должна отличаться от сегодняшней';
$lang['TIME_DELOUT'] = 'Выбытие';
# ----[ Сохранить / Закрыть ]--------------------------