Фрилич за сид-бонус

Фрилич за сид-бонус 1.0.1

Нет прав для скачивания
Совместимость
проверялся на совместимость
Изменения в БД
требуются
Автор
dredd
Общественное достояние
нет
Описание: добавляет пользователям возможность скидываться на всеобщий фрилич (на месяц).

Перечислять можно как с главной страницы, так и со страницы обмена сид-бонуса. Фрилич на месяц (пока не опционально).
Инструкция по установке
-- выполнить запросы
PHP:
CREATE TABLE IF NOT EXISTS `bb_freeleech` (
  `id` int(10) NOT NULL AUTO_INCREMENT,
  `user_id` mediumint(8) NOT NULL,
  `made` float(16,2) NOT NULL,
  `date` int(11) NOT NULL,
  PRIMARY KEY (`id`),
  KEY `id` (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ;

INSERT INTO `bb_config` (`config_name`, `config_value`) VALUES
('freeleech_enabled', '1'),
('freeleech_cost', '500000.00'),
('freeleech_time_end', '0000-00-00 00:00');
-- ajax.php
- найти
PHP:
'manage_group'      => array('user'),
- после добавить
PHP:
'freeleech'         => array('user'),
- найти
PHP:
function sitemap()
{
    require(AJAX_DIR .'sitemap.php');
}
- после добавить
PHP:
    function freeleech()
    {
        global $bb_cfg, $userdata, $lang;

        if($bb_cfg['freeleech_enabled'] && (strtotime($bb_cfg['freeleech_time_end'], TIMENOW) > TIMENOW)) $this->ajax_die('На трекере уже идёт фрилич!');

        $points = (float) $this->request['points'];
        $user_id = $userdata['user_id'];

        if($points > $userdata['user_points'])
        {
            $this->ajax_die($lang['BONUS_NOT_SUCCES']);
        }
        else
        {
            DB()->query("INSERT INTO bb_freeleech(id, user_id, made, date) VALUES('', '" . $user_id . "', '" . $points . "', '" . TIMENOW . "')");
            DB()->query("UPDATE bb_users SET user_points = user_points - $points WHERE user_id = $user_id");
            cache_rm_user_sessions($user_id);

            $freel = DB()->fetch_row("SELECT SUM(made) AS mades FROM bb_freeleech");
            if($freel['mades'] >= $bb_cfg['freeleech_cost'])
            {
                bb_update_config(array('freeleech_enabled' => 1, 'freeleech_time_end' => bb_date(TIMENOW + 2592000)));
                DB()->query("TRUNCATE bb_freeleech");
                $message = 'Сумма для активации фрилича собрана! Фрилич активирован до ' . bb_date(TIMENOW + 2592000) . '';
            }
            else
            {
                $message = 'Вы успешно перевели средства для фрилича.';
            }
            $this->ajax_die($message);
        }
    }
-- tr_cleanup_and_dlstat.php
- найти
PHP:
            // Update TOTAL user's dlstat
            DB()->query("
                UPDATE
                    ". BB_BT_USERS             ." u,
                    ". NEW_BB_BT_LAST_USERSTAT ." ub
                SET
                    u.u_up_total   = u.u_up_total   + ub.up_add,
                    u.u_down_total = u.u_down_total + ub.down_add,
                    u.u_up_release = u.u_up_release + ub.release_add,
                    u.u_up_bonus   = u.u_up_bonus   + ub.bonus_add,
                    u.up_today         = u.up_today         + ub.up_add,
                    u.down_today       = u.down_today       + ub.down_add,
                    u.up_release_today = u.up_release_today + ub.release_add,
                    u.up_bonus_today   = u.up_bonus_today   + ub.bonus_add
                WHERE u.user_id = ub.user_id
            ");
- заменить на
PHP:
    if($bb_cfg['freeleech_enabled'] && (strtotime($bb_cfg['freeleech_time_end'], TIMENOW) < TIMENOW))
    {
        bb_update_config(array('freeleech_enabled'  => 0));
    }
    // Update TOTAL user's dlstat
    if ($bb_cfg['freeleech_enabled'] && (strtotime($bb_cfg['freeleech_time_end'], TIMENOW) > TIMENOW))
    {
        DB()->query("
                UPDATE
                    ". BB_BT_USERS             ." u,
                    ". NEW_BB_BT_LAST_USERSTAT ." ub
                SET
                    u.u_up_total   = u.u_up_total   + ub.up_add,
                    u.u_down_total = u.u_down_total,
                    u.u_up_release = u.u_up_release + ub.release_add,
                    u.u_up_bonus   = u.u_up_bonus   + ub.bonus_add,
                    u.up_today         = u.up_today         + ub.up_add,
                    u.down_today       = u.down_today       + ub.down_add,
                    u.up_release_today = u.up_release_today + ub.release_add,
                    u.up_bonus_today   = u.up_bonus_today   + ub.bonus_add
                WHERE u.user_id = ub.user_id
            ");
    }
    else
    {
        DB()->query("
                UPDATE
                    ". BB_BT_USERS             ." u,
                    ". NEW_BB_BT_LAST_USERSTAT ." ub
                SET
                    u.u_up_total   = u.u_up_total   + ub.up_add,
                    u.u_down_total = u.u_down_total + ub.down_add,
                    u.u_up_release = u.u_up_release + ub.release_add,
                    u.u_up_bonus   = u.u_up_bonus   + ub.bonus_add,
                    u.up_today         = u.up_today         + ub.up_add,
                    u.down_today       = u.down_today       + ub.down_add,
                    u.up_release_today = u.up_release_today + ub.release_add,
                    u.up_bonus_today   = u.up_bonus_today   + ub.bonus_add
                WHERE u.user_id = ub.user_id
            ");
    }
-- bonus.php
- найти
PHP:
else
{
    $template->assign_vars(array(
        'U_USER_PROFILE'  => PROFILE_URL . $user_id,
- перед добавить
PHP:
//Freeleech START
elseif(isset($_POST['submit']) && isset($_POST['points_fr']))
{
    if($bb_cfg['freeleech_enabled'] && (strtotime($bb_cfg['freeleech_time_end'], TIMENOW) > TIMENOW))
    {
        $message = 'На трекере уже идёт фрилич!<br /><br /><a href="'. BONUS_URL .'">'. $lang['BONUS_RETURN'] .'</a><br /><br /><a href="'. PROFILE_URL . $userdata['user_id'] .'">'. $lang['RETURN_PROFILE'] .'</a><br /><br />';
        bb_die($message);
    }
    else
    {
        $points_fr = (int) $_POST['points_fr'];

        if($points_fr > $userdata['user_points'])
        {
            meta_refresh('index.php', 5);

            $message = $lang['BONUS_NOT_SUCCES'] .'<br /><br /><a href="'. BONUS_URL .'">'. $lang['BONUS_RETURN'] .'</a><br /><br /><a href="'. PROFILE_URL . $userdata['user_id'] .'">'. $lang['RETURN_PROFILE'] .'</a><br /><br />'. sprintf($lang['CLICK_RETURN_INDEX'],  '<a href="index.php">', '</a>');

            bb_die($message);
        }
        else
        {
            DB()->query("INSERT INTO bb_freeleech(id, user_id, made, date) VALUES('', '" . $user_id . "', '" . $points_fr . "', '" . TIMENOW . "')");
            DB()->query("UPDATE bb_users SET user_points = user_points - $points_fr WHERE user_id = $user_id");
            cache_rm_user_sessions($user_id);

            $freel = DB()->fetch_row("SELECT SUM(made) AS mades FROM bb_freeleech");
            if($freel['mades'] >= $bb_cfg['freeleech_cost'])
            {
                bb_update_config(array('freeleech_enabled' => 1, 'freeleech_time_end' => bb_date(TIMENOW + 2592000)));
                DB()->query("TRUNCATE bb_freeleech");
                $message = 'Сумма для активации фрилича собрана! Фрилич активирован до ' . bb_date(TIMENOW + 2592000) . ' <br /><br /><a href="'. BONUS_URL .'">'. $lang['BONUS_RETURN'] .'</a><br /><a href="'. PROFILE_URL . $userdata['user_id'] .'">'. $lang['RETURN_PROFILE'] .'</a><br /><br />';
            }
            else
            {
                $message = 'Вы успешно перевели средства для фрилича.<br /><br /><a href="'. BONUS_URL .'">'. $lang['BONUS_RETURN'] .'</a><br /><a href="'. PROFILE_URL . $userdata['user_id'] .'">'. $lang['RETURN_PROFILE'] .'</a><br /><br />';
            }
            bb_die($message);
        }
    }
}
//Freeleech END
- найти
PHP:
else
{

    $template->assign_vars(array(
        'U_USER_PROFILE'  => PROFILE_URL . $user_id,
        'S_MODE_ACTION'     => 'profile.php?mode=bonus',
        'PAGE_TITLE'     => $lang['EXCHANGE_BONUS'],
        'MY_BONUS'        => sprintf($lang['MY_BONUS'], $user_points),
    ));
- заменить на
PHP:
else
{
    $freel = DB()->fetch_row("SELECT SUM(made) AS mades FROM bb_freeleech");

    $template->assign_vars(array(
        'U_USER_PROFILE'  => PROFILE_URL . $user_id,
        'S_MODE_ACTION'     => 'profile.php?mode=bonus',
        'PAGE_TITLE'     => $lang['EXCHANGE_BONUS'],
        'MY_BONUS'        => sprintf($lang['MY_BONUS'], $user_points),
        //Freeleech START
        'FREELEECH'       => $bb_cfg['freeleech_enabled'] && (strtotime($bb_cfg['freeleech_time_end'], TIMENOW) > TIMENOW),
        'MADE'            => ($freel['mades'] == 0) ? 0 : $freel['mades'],
        'COST_FREE'       => $bb_cfg['freeleech_cost'],
        //Freeleech END
    ));
-- admin_board.php
- найти
PHP:
'SEED_BONUS_USER_REGDATE' => $new['seed_bonus_user_regdate'],
- после вставить
PHP:
//Freeleech START
'FREELEECH_ENABLED'       => $new['freeleech_enabled'],
'FREELEECH_COST'          => $new['freeleech_cost'],
'FREELEECH_TIME_END'      => $new['freeleech_time_end'],
//Freeleech END
-- admin_board.tpl
- найти
HTML:
<!-- END bonus -->
<tr class="row3 med"><td colspan="2"></td></tr>
<tr id="bonus_upload">
    <td><h4>{L_SEED_BONUS_ROPORTION}</h4><h6></h6></td>
    <td>
        <input class="post" type="text" size="5" name="bonus_upload[]" value="" />&nbsp;{L_GB} <br />
        <input class="post" type="text" size="5" name="bonus_upload_price[]" value="" />&nbsp;{L_PRICE}
        <input onclick="$('#bonus_upload').clone().appendTo('.bonus_upload');" class="post" type="button" size="2" value="+" />
        <input onclick="$('#bonus_upload').remove();" class="post" type="button" size="2" value="-" />
    </td>
</tr>
<tbody class="bonus_upload"></tbody>
- после вставить
HTML:
<tr class="row3 med">
    <td class="bold tCenter" colspan="2">Настройки фрилича</td>
</tr>
<tr>
    <td><h4>Включить/отключить фрилич</h4></td>
    <td>
        <label><input type="radio" name="freeleech_enabled" value="1" <!-- IF FREELEECH_ENABLED -->checked="checked"<!-- ENDIF --> />{L_ENABLED}</label>&nbsp;&nbsp;
        <label><input type="radio" name="freeleech_enabled" value="0" <!-- IF not FREELEECH_ENABLED -->checked="checked"<!-- ENDIF --> />{L_DISABLED}</label>
    </td>
</tr>
<tr>
    <td><h4>Стоимость фрилича</h4></td>
    <td><input class="post" type="text" size="25" maxlength="100" name="freeleech_cost" value="{FREELEECH_COST}" /></td>
</tr>
<!-- IF FREELEECH_ENABLED -->
<tr>
    <td><h4>Дата окончания фрилича</h4></td>
    <td><input class="post" type="text" size="25" maxlength="100" name="freeleech_time_end" value="{FREELEECH_TIME_END}" /></td>
</tr>
<!-- ENDIF -->
-- usercp_bonus.tpl
- найти

<!-- END bonus_upload -->

- после вставить
HTML:
<!-- IF not FREELEECH -->
<tr class="sectionFooter med">
    <td class="bold tCenter">{L_DESCRIPTION}</td>
    <td class="bold tCenter">{L_PRICE}</td>
    <td class="bold tCenter">Уже внесено</td>
</tr>
<tr class="row2 med">
    <td class="tLeft">
        Хотите скачивать раздачи не думая о рейтинге? Вы можете пожертвовать свои очки сидирования для всеобщего фрилича.
        <input type="text" name="points_fr" placeholder="Введите количество сид-бонусов для пожертвования" value="">
    </td>
    <td>{COST_FREE}</td>
    <td>{MADE}</td>
</tr>
<!-- ENDIF -->
-- page_header.tpl
- найти
HTML:
<!--logo-->
- перед вставить
HTML:
<script type="text/javascript">
    ajax.freeleech = function() {
        ajax.exec({
            action  : 'freeleech',
            points  : 100.00,
        });
    };
    ajax.callback.freeleech = function(data) {};
</script>
- найти
HTML:
<a href="{U_INDEX}"><img src="styles/images/logo/logo.png" alt="{SITENAME}" /></a>
- после вставить
HTML:
<span title="Добавить 100 очков в копилку для фрилича" style="margin: 56px 867px 10px -25px" class="UserOnline" onclick="ajax.freeleech();"><span></span>+100</span>
-- main.css
- вставить
HTML:
.UserOnline, .UserOnlineInvisible {
    background: url("../images/category-23px-light.png") repeat-x scroll center top #6CB2E4;
    border: 1px solid #6CB2E5;
    border-radius: 3px 0 3px 3px;
    box-shadow: 1px 1px 3px rgba(0, 0, 0, 0.25);
    color: #FCFCFF;
    display: block;
    float: right;
    font-size: 9px;
    margin: -15px -5px 5px -25px;
    padding: 3px 4px;
    position: relative;
}
.UserOnline span, .UserOnlineInvisible span {
    background-color: #6CB2E4;
    border-top-right-radius: 3px;
    height: 4px;
    position: absolute;
    right: -1px;
    top: -4px;
    width: 5px;
}
.UserOnline {
    background: url("../images/category-23px-light.png") repeat-x scroll center top #62A641;
    border: 1px solid #5FA23E;
}
.UserOnline span {  background-color: #5FA23E; }
  • 1.png
    1.png
    152 KB · Просмотры: 274
  • 2.png
    2.png
    168.5 KB · Просмотры: 267
  • 3.png
    3.png
    85.1 KB · Просмотры: 259
  • 4.png
    4.png
    60.1 KB · Просмотры: 252
  • 5.png
    5.png
    60.7 KB · Просмотры: 244
  • 6.png
    6.png
    99 KB · Просмотры: 252
  • Мне нравится
Реакции: Bender и PheRum
Автор
dredd
Скачивания
49
Просмотры
224
Первый выпуск
Обновление
Оценка
0.00 звёзд 0 оценок

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

Последние обновления

  1. Обновление 1.0.1

    Фикс нотисов
  2. Обновление 1.0.0

    Обновлено описание ресурса
  3. Обновление 0.2

    Дополнил инструкцию
Сверху