Мод позволяет установить дату автоматического удаления пользователя из группы (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
===============================================================================
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']);
, 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);
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">
<!-- 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'] = 'Выбытие';