- Совместимость
- проверялся на совместимость
- Изменения в БД
- требуются
- Автор
- 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');
- найти
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); } }
- найти
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 "); }
- найти
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 ));
- найти
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
- найти
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="" /> {L_GB} <br /> <input class="post" type="text" size="5" name="bonus_upload_price[]" value="" /> {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> <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 -->
- найти
<!-- 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 -->
- найти
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>
- вставить
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; }