Default Green Orange
Gemini_13's Blog
Блокнот полезных вещей
Home
    • Карта сайта
    • Обо мне
RSS

Парковка аккаунта + запрет скачивания

Мои моды к TorrentPier II, Скрипты Add comments

—————————————————
Название: Парковка аккаунта + запрет скачивания
Автор: Craken
Адаптировал под TPII: Gemini_13 <gemini_13@torba.su>
Описание: Мод добавляет возможность припарковать аккаунт на сайте в случае длительного отъезда. Если аккаунт припаркован, то во время чистки он не будет удален, но справедливости ради на аккаунт наложен запрет скачивания.
Сложность установки: Легкая
Время установки: ~ 5 минут
Адаптирован под версию TPII: R550
Файлы к редактированию:
— tracker.php
— viewforum.php
— attach_mod/displaying_torrent.php
— includes/cron/jobs/prune_inactive_users.php
— includes/ucp/usercp_register.php
— includes/ucp/usercp_viewprofile.php
— language/lang_russian/lang_main.php
— templates/default/usercp_register.tpl
— templates/default/usercp_viewprofile.tpl
Addon:
— Отключение возможности писать у припаркованных аккаунтов
— Отключение модуля ЛС у припаркованных аккаунтов
—————————————————

Копирование и выкладывание модификаций на сторонних ресурсах без указания ссылки запрещено.

# ---- [ 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> 

# ---- [ Конец ] -------------------

10 февраля, 2014  
Tags: mod, park, profile, torrentpier, tp, tp2, мод, припарковать, профиль

Leave a Reply

  • Рубрики

    • FreeBSD (20)
    • Linux (46)
    • MySQL (11)
    • Windows (14)
    • Железо (3)
    • Мои моды к TorrentPier II (16)
    • Настройка сервера (49)
    • Разное (33)
    • Скрипты (30)
  • Свежие записи

    • Поля форм на Yii2: textInput(), passwordInput() и hiddenInput()
    • Поля форм на Yii2: CheckboxList()
    • SpeedTest датацентров Digital Ocean
    • Патчим Gearman на Debian
    • nginx + Apache 2.4 и REMOTE_ADDR (решение проблемы)
    • Создание и подключение swap-файла в Debian
    • Запуск PhpStorm 9 x64 на Windows
    • Рекурсивная замена прав доступа для папок и файлов в Linux
    • VirtualBox 5 + phpVirtualBox на Debian 8.2 (jessie)
    • Обработка сессий PHP с помощью Redis + phpredis на Debian 7.8
  • Ссылки

    • My GitHub
  • Архивы

    • Июнь 2016 (2)
    • Март 2016 (2)
    • Январь 2016 (3)
    • Ноябрь 2015 (2)
    • Август 2015 (1)
    • Февраль 2015 (1)
    • Январь 2015 (7)
    • Октябрь 2014 (1)
    • Июнь 2014 (1)
    • Май 2014 (1)
    • Апрель 2014 (7)
    • Февраль 2014 (9)
    • Январь 2014 (5)
    • Декабрь 2013 (7)
    • Ноябрь 2013 (1)
    • Октябрь 2013 (3)
    • Август 2013 (4)
    • Июль 2013 (4)
    • Июнь 2013 (3)
    • Апрель 2013 (2)
    • Март 2013 (2)
    • Февраль 2013 (6)
    • Январь 2013 (2)
    • Декабрь 2012 (1)
    • Ноябрь 2012 (2)
    • Октябрь 2012 (7)
    • Сентябрь 2012 (22)
Все права защищены © 2014 Gemini_13's Blog
G13.org.ua