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

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

Compatibility
not tested for compatibility
Database changes
required
Author
Gemini_13
Public domain
no
Описание: добавляет возможность парковки аккаунта на случай длительного отъезда.

Если аккаунт припаркован, то во время чистки он не будет удален, но справедливости ради на аккаунт наложен запрет скачивания.
Installation instructions
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>
# ---- [ Конец ] -------------------
  • I like it
Reactions: boko
Author
Exile
Downloads
120
Views
465
First release
Last update

Ratings

0.00 star(s) 0 ratings

More resources from Exile

Back
Top