- Совместимость
- не проверялся на совместимость
- Изменения в БД
- требуются
- Автор
- Gemini_13
- Общественное достояние
- нет
Описание: добавляет возможность парковки аккаунта на случай длительного отъезда.
Если аккаунт припаркован, то во время чистки он не будет удален, но справедливости ради на аккаунт наложен запрет скачивания.
Если аккаунт припаркован, то во время чистки он не будет удален, но справедливости ради на аккаунт наложен запрет скачивания.
- Инструкция по установке
-
PHP:
# ---- [ SQL ] ------------------- ALTER TABLE `bb_users` ADD `user_park_profile` TINYINT(1) NOT NULL DEFAULT '0'; # ---- [ Открыть ] ------------------- tracker.php # ---- [ Найти ] ------------------- 'TOR_FROZEN' => (!IS_AM) ? isset($bb_cfg['tor_frozen'][$tor['tor_status']]) : '', # ---- [ Заменить на ] ------------------- 'TOR_FROZEN' => (!IS_AM) ? (isset($bb_cfg['tor_frozen'][$tor['tor_status']]) || $userdata['user_park_profile']) : '', # ---- [ Открыть ] ------------------- viewforum.php # ---- [ Найти ] ------------------- 'TOR_FROZEN' => isset($topic['tor_status']) ? ((!IS_AM) ? isset($bb_cfg['tor_frozen'][$topic['tor_status']]) : '') : '', # ---- [ Заменить на ] ------------------- 'TOR_FROZEN' => isset($topic['tor_status']) ? ((!IS_AM) ? (isset($bb_cfg['tor_frozen'][$topic['tor_status']]) || $userdata['user_park_profile']) : '') : '', # ---- [ Открыть ] ------------------- attach_mod/displaying_torrent.php # ---- [ Найти ] ------------------- 'TOR_FROZEN' => (!IS_AM) ? (isset($bb_cfg['tor_frozen'][$tor_info['tor_status']]) && !(isset($bb_cfg['tor_frozen_author_download'][$tor_info['tor_status']]) && $userdata['user_id'] == $tor_info['poster_id'])) ? true : '' : '', # ---- [ Заменить на ] ------------------- 'TOR_FROZEN' => (!IS_AM) ? (isset($bb_cfg['tor_frozen'][$tor_info['tor_status']]) && !(isset($bb_cfg['tor_frozen_author_download'][$tor_info['tor_status']]) && $userdata['user_id'] == $tor_info['poster_id']) || $userdata['user_park_profile']) ? true : '' : '', # ---- [ Открыть ] ------------------- includes/cron/jobs/prune_inactive_users.php # ---- [ Найти ] ------------------- if ($not_activated_days = intval($bb_cfg['user_not_activated_days_keep'])) { $sql = " SELECT user_id FROM ". BB_USERS ." WHERE user_active = 0 AND user_lastvisit = 0 AND user_regdate < ". (TIMENOW - 86400*$not_activated_days) ." AND user_id NOT IN($excluded_users) LIMIT $users_per_cycle "; foreach (DB()->fetch_rowset($sql) as $row) { $not_activated_users[] = $row['user_id']; } } if ($not_active_days = intval($bb_cfg['user_not_active_days_keep'])) { $sql = " SELECT user_id FROM ". BB_USERS ." WHERE user_active = 1 AND user_posts = 0 AND user_lastvisit < ". (TIMENOW - 86400*$not_active_days) ." AND user_id NOT IN($excluded_users) LIMIT $users_per_cycle "; foreach (DB()->fetch_rowset($sql) as $row) { $not_active_users[] = $row['user_id']; } } # ---- [ Заменить на ] ------------------- if ($not_activated_days = intval($bb_cfg['user_not_activated_days_keep'])) { $sql = " SELECT user_id FROM ". BB_USERS ." WHERE user_active = 0 AND user_park_profile = 0 AND user_lastvisit = 0 AND user_regdate < ". (TIMENOW - 86400*$not_activated_days) ." AND user_id NOT IN($excluded_users) LIMIT $users_per_cycle "; foreach (DB()->fetch_rowset($sql) as $row) { $not_activated_users[] = $row['user_id']; } } if ($not_active_days = intval($bb_cfg['user_not_active_days_keep'])) { $sql = " SELECT user_id FROM ". BB_USERS ." WHERE user_active = 1 AND user_park_profile = 0 AND user_posts = 0 AND user_lastvisit < ". (TIMENOW - 86400*$not_active_days) ." AND user_id NOT IN($excluded_users) LIMIT $users_per_cycle "; foreach (DB()->fetch_rowset($sql) as $row) { $not_active_users[] = $row['user_id']; } } # ---- [ Открыть ] ------------------- includes/ucp/usercp_register.php # ---- [ Найти ] ------------------- $pr_data = array( 'user_id' => GUEST_UID, 'username' => '', 'user_password' => '', 'user_email' => '', # ---- [ Вставить после ] ------------------- 'user_park_profile'=> 0, # ---- [ Найти ] ------------------- // field => can_edit $profile_fields = array( 'user_active' => IS_ADMIN, 'username' => (IS_ADMIN || $bb_cfg['allow_namechange']), 'user_password' => true, 'user_email' => true, // должен быть после user_password 'user_lang' => true, # ---- [ Вставить после ] ------------------- 'user_park_profile'=> true, # ---- [ Найти ] ------------------- /** * Язык (edit, reg) */ case 'user_lang': $user_lang = isset($_POST['user_lang']) ? (string) $_POST['user_lang'] : $pr_data['user_lang']; if ($submit && ($user_lang != $pr_data['user_lang'] || $mode == 'register')) { $pr_data['user_lang'] = $user_lang; $db_data['user_lang'] = $user_lang; } break; # ---- [ Вставить после ] ------------------- /** * Парковка аккаунта (edit) */ case 'user_park_profile': $user_park_profile = isset($_POST['user_park_profile']) ? (int) $_POST['user_park_profile'] : $pr_data['user_park_profile']; if ($submit && ($user_park_profile != $pr_data['user_park_profile'] || $mode == 'register')) { $pr_data['user_park_profile'] = $user_park_profile; $db_data['user_park_profile'] = $user_park_profile; } break; # ---- [ Найти ] ------------------- 'USER_TIMEZONE' => $pr_data['user_timezone'], # ---- [ Вставить после ] ------------------- 'PARK_PROFILE' => $pr_data['user_park_profile'], # ---- [ Открыть ] ------------------- includes/ucp/usercp_viewprofile.php # ---- [ Найти ] ------------------- if ($user_rank = $profiledata['user_rank'] AND isset($ranks[$user_rank])) { $rank_image = ($ranks[$user_rank]['rank_image']) ? '<img src="'. $ranks[$user_rank]['rank_image'] .'" alt="" title="" border="0" />' : ''; $poster_rank = $ranks[$user_rank]['rank_title']; } # ---- [ Вставить после ] ------------------- $park_status = $profiledata['user_park_profile'] ? $lang['YES'] : $lang['NO']; $template->assign_vars(array( 'STATUS_PARK' => $park_status, )); # ---- [ Открыть ] ------------------- language/lang_russian/lang_main.php # ---- [ Вставить в конец ] ------------------- // Парковка аккаунта $lang['PARK_CONTROL'] ='Парковка аккаунта'; $lang['PARK_WARNING'] ='Припарковав аккаунт Вы не сможете скачивать!'; $lang['PARK_PROFILE_STATUS'] ='Аккаунт припаркован'; $lang['PARK_PROFILE_STATUS_WHOTE'] ='<h5>Что такое "Парковка Аккаунта"?</h5>'; # ---- [ Открыть ] ------------------- templates/default/usercp_register.tpl # ---- [ Найти ] ------------------- <!-- IF not ADM_EDIT --> <tr> <td>{L_AUTOLOGIN}:</td> <td><a href="{U_RESET_AUTOLOGIN}">{L_RESET_AUTOLOGIN}</a><h6>{L_RESET_AUTOLOGIN_EXPL}</h6></td> </tr> <!-- ENDIF --> # ---- [ Вставить после ] ------------------- <tr> <td>{L_PARK_CONTROL}: <h6><a target="blank" href="viewtopic.php?t=123">{L_PARK_PROFILE_STATUS_WHOTE}</a></h6></td> <td> <label><input type="radio" name="user_park_profile" value="1" <!-- IF PARK_PROFILE -->checked="checked"<!-- ENDIF --> />{L_YES}</label> <label><input type="radio" name="user_park_profile" value="0" <!-- IF not PARK_PROFILE -->checked="checked"<!-- ENDIF --> />{L_NO}</label> <h6>{L_PARK_WARNING}</h6> </td> </tr> # ---- [ Открыть ] ------------------- templates/default/usercp_viewprofile.tpl # ---- [ Найти ] ------------------- <p class="small mrg_4"> <!-- IF IS_ADMIN --> {RANK_SELECT} <script type="text/javascript"> $('#rank-sel').bind('change', function(){ ajax.change_user_rank( {PROFILE_USER_ID}, $(this).val() ); }); </script> <div id="rank-msg" class="mrg_6"></div> <!-- ELSE IF POSTER_RANK --> {POSTER_RANK} <!-- ENDIF --> </p> # ---- [ Вставить до ] ------------------- <h4 class="cat border bw_TB">{L_PARK_PROFILE_STATUS}: {STATUS_PARK}</h4> # ---- [ Конец ] -------------------