Парковка аккаунта

Парковка аккаунта 1.0.0

Совместимость
не проверялся на совместимость
Изменения в БД
требуются
Автор
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>&nbsp;&nbsp;
        <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>
# ---- [ Конец ] -------------------
  • Мне нравится
Реакции: boko
Автор
Exile
Скачивания
17
Просмотры
237
Первый выпуск
Обновление
Оценка
0.00 звёзд 0 оценок

Другие ресурсы пользователя Exile

Сверху