mirror of
https://github.com/torrentpier/torrentpier
synced 2025-08-21 22:03:49 -07:00
Merge pull request #301 from Exile37/feature/environments
Cron subsystem rework. Environments
This commit is contained in:
commit
8bac810833
91 changed files with 865 additions and 834 deletions
12
.env.example
Normal file
12
.env.example
Normal file
|
@ -0,0 +1,12 @@
|
|||
# Common params
|
||||
APP_NAME=TorrentPier
|
||||
APP_ENV=local
|
||||
APP_DEBUG=false
|
||||
|
||||
# Database credentials
|
||||
DB_CONNECTION=mysql
|
||||
DB_HOST=localhost
|
||||
DB_PORT=3306
|
||||
DB_DATABASE=torrentpier
|
||||
DB_USERNAME=root
|
||||
DB_PASSWORD=secret
|
2
.gitignore
vendored
2
.gitignore
vendored
|
@ -1,11 +1,11 @@
|
|||
### TorrentPier ###
|
||||
.idea
|
||||
.php_cs.cache
|
||||
bower_components
|
||||
composer.phar
|
||||
composer.lock
|
||||
configs/local.php
|
||||
data/avatars
|
||||
data/old_files
|
||||
data/torrent_files
|
||||
internal_data/ajax_html
|
||||
internal_data/atom
|
||||
|
|
|
@ -67,20 +67,20 @@ $default_cfg_num = array(
|
|||
);
|
||||
|
||||
// Set template vars
|
||||
set_tpl_vars($default_cfg_str, $tr_cfg);
|
||||
set_tpl_vars($default_cfg_str, $bb_cfg['tracker']);
|
||||
set_tpl_vars_lang($default_cfg_str);
|
||||
|
||||
set_tpl_vars_bool($default_cfg_bool, $tr_cfg);
|
||||
set_tpl_vars_bool($default_cfg_bool, $bb_cfg['tracker']);
|
||||
set_tpl_vars_lang($default_cfg_bool);
|
||||
|
||||
set_tpl_vars($default_cfg_num, $tr_cfg);
|
||||
set_tpl_vars($default_cfg_num, $bb_cfg['tracker']);
|
||||
set_tpl_vars_lang($default_cfg_num);
|
||||
|
||||
$template->assign_vars(array(
|
||||
'IGNORE_REPORTED_IP' => $bb_cfg['ignore_reported_ip'],
|
||||
'ANNOUNCE_INTERVAL' => $bb_cfg['announce_interval'],
|
||||
'PASSKEY_KEY' => $bb_cfg['passkey_key'],
|
||||
'GOLD_SILVER_ENABLED' => $tr_cfg['gold_silver_enabled'],
|
||||
'GOLD_SILVER_ENABLED' => $bb_cfg['tracker']['gold_silver_enabled'],
|
||||
'DISABLE_SUBMIT' => true,
|
||||
|
||||
'S_HIDDEN_FIELDS' => '',
|
||||
|
|
|
@ -32,6 +32,7 @@ require __DIR__ . '/pagestart.php';
|
|||
|
||||
$datastore->enqueue(array(
|
||||
'moderators',
|
||||
'cat_forums',
|
||||
));
|
||||
|
||||
$log_action->init();
|
||||
|
|
|
@ -27,7 +27,7 @@ define('IN_TRACKER', true);
|
|||
define('BB_ROOT', './../');
|
||||
require dirname(__DIR__) . '/common.php';
|
||||
|
||||
global $bb_cfg, $tr_cfg;
|
||||
global $bb_cfg;
|
||||
|
||||
if (empty($_SERVER['HTTP_USER_AGENT'])) {
|
||||
header('Location: http://127.0.0.1', true, 301);
|
||||
|
@ -249,15 +249,15 @@ if ($lp_info) {
|
|||
$tor_type = $row['tor_type'];
|
||||
|
||||
// Ratio limits
|
||||
if ((TR_RATING_LIMITS || $tr_cfg['limit_concurrent_ips']) && !$stopped) {
|
||||
if ((TR_RATING_LIMITS || $bb_cfg['tracker']['limit_concurrent_ips']) && !$stopped) {
|
||||
$user_ratio = ($row['u_down_total'] && $row['u_down_total'] > MIN_DL_FOR_RATIO) ? ($row['u_up_total'] + $row['u_up_release'] + $row['u_up_bonus']) / $row['u_down_total'] : 1;
|
||||
$rating_msg = '';
|
||||
|
||||
if (!$seeder) {
|
||||
foreach ($rating_limits as $ratio => $limit) {
|
||||
foreach ($bb_cfg['rating'] as $ratio => $limit) {
|
||||
if ($user_ratio < $ratio) {
|
||||
$tr_cfg['limit_active_tor'] = 1;
|
||||
$tr_cfg['limit_leech_count'] = $limit;
|
||||
$bb_cfg['tracker']['limit_active_tor'] = 1;
|
||||
$bb_cfg['tracker']['limit_leech_count'] = $limit;
|
||||
$rating_msg = " (ratio < $ratio)";
|
||||
break;
|
||||
}
|
||||
|
@ -265,29 +265,29 @@ if ($lp_info) {
|
|||
}
|
||||
|
||||
// Limit active torrents
|
||||
if (!isset($bb_cfg['unlimited_users'][$user_id]) && $tr_cfg['limit_active_tor'] && (($tr_cfg['limit_seed_count'] && $seeder) || ($tr_cfg['limit_leech_count'] && !$seeder))) {
|
||||
if (!isset($bb_cfg['unlimited_users'][$user_id]) && $bb_cfg['tracker']['limit_active_tor'] && (($bb_cfg['tracker']['limit_seed_count'] && $seeder) || ($bb_cfg['tracker']['limit_leech_count'] && !$seeder))) {
|
||||
$sql = "SELECT COUNT(DISTINCT topic_id) AS active_torrents
|
||||
FROM " . BB_BT_TRACKER . "
|
||||
WHERE user_id = $user_id
|
||||
AND seeder = $seeder
|
||||
AND topic_id != $topic_id";
|
||||
|
||||
if (!$seeder && $tr_cfg['leech_expire_factor'] && $user_ratio < 0.5) {
|
||||
$sql .= " AND update_time > " . (TIMENOW - 60 * $tr_cfg['leech_expire_factor']);
|
||||
if (!$seeder && $bb_cfg['tracker']['leech_expire_factor'] && $user_ratio < 0.5) {
|
||||
$sql .= " AND update_time > " . (TIMENOW - 60 * $bb_cfg['tracker']['leech_expire_factor']);
|
||||
}
|
||||
$sql .= " GROUP BY user_id";
|
||||
|
||||
if ($row = DB()->fetch_row($sql)) {
|
||||
if ($seeder && $tr_cfg['limit_seed_count'] && $row['active_torrents'] >= $tr_cfg['limit_seed_count']) {
|
||||
msg_die('Only ' . $tr_cfg['limit_seed_count'] . ' torrent(s) allowed for seeding');
|
||||
} elseif (!$seeder && $tr_cfg['limit_leech_count'] && $row['active_torrents'] >= $tr_cfg['limit_leech_count']) {
|
||||
msg_die('Only ' . $tr_cfg['limit_leech_count'] . ' torrent(s) allowed for leeching' . $rating_msg);
|
||||
if ($seeder && $bb_cfg['tracker']['limit_seed_count'] && $row['active_torrents'] >= $bb_cfg['tracker']['limit_seed_count']) {
|
||||
msg_die('Only ' . $bb_cfg['tracker']['limit_seed_count'] . ' torrent(s) allowed for seeding');
|
||||
} elseif (!$seeder && $bb_cfg['tracker']['limit_leech_count'] && $row['active_torrents'] >= $bb_cfg['tracker']['limit_leech_count']) {
|
||||
msg_die('Only ' . $bb_cfg['tracker']['limit_leech_count'] . ' torrent(s) allowed for leeching' . $rating_msg);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Limit concurrent IPs
|
||||
if ($tr_cfg['limit_concurrent_ips'] && (($tr_cfg['limit_seed_ips'] && $seeder) || ($tr_cfg['limit_leech_ips'] && !$seeder))) {
|
||||
if ($bb_cfg['tracker']['limit_concurrent_ips'] && (($bb_cfg['tracker']['limit_seed_ips'] && $seeder) || ($bb_cfg['tracker']['limit_leech_ips'] && !$seeder))) {
|
||||
$sql = "SELECT COUNT(DISTINCT ip) AS ips
|
||||
FROM " . BB_BT_TRACKER . "
|
||||
WHERE topic_id = $topic_id
|
||||
|
@ -295,16 +295,16 @@ if ($lp_info) {
|
|||
AND seeder = $seeder
|
||||
AND ip != '$ip_sql'";
|
||||
|
||||
if (!$seeder && $tr_cfg['leech_expire_factor']) {
|
||||
$sql .= " AND update_time > " . (TIMENOW - 60 * $tr_cfg['leech_expire_factor']);
|
||||
if (!$seeder && $bb_cfg['tracker']['leech_expire_factor']) {
|
||||
$sql .= " AND update_time > " . (TIMENOW - 60 * $bb_cfg['tracker']['leech_expire_factor']);
|
||||
}
|
||||
$sql .= " GROUP BY topic_id";
|
||||
|
||||
if ($row = DB()->fetch_row($sql)) {
|
||||
if ($seeder && $tr_cfg['limit_seed_ips'] && $row['ips'] >= $tr_cfg['limit_seed_ips']) {
|
||||
msg_die('You can seed only from ' . $tr_cfg['limit_seed_ips'] . " IP's");
|
||||
} elseif (!$seeder && $tr_cfg['limit_leech_ips'] && $row['ips'] >= $tr_cfg['limit_leech_ips']) {
|
||||
msg_die('You can leech only from ' . $tr_cfg['limit_leech_ips'] . " IP's");
|
||||
if ($seeder && $bb_cfg['tracker']['limit_seed_ips'] && $row['ips'] >= $bb_cfg['tracker']['limit_seed_ips']) {
|
||||
msg_die('You can seed only from ' . $bb_cfg['tracker']['limit_seed_ips'] . " IP's");
|
||||
} elseif (!$seeder && $bb_cfg['tracker']['limit_leech_ips'] && $row['ips'] >= $bb_cfg['tracker']['limit_leech_ips']) {
|
||||
msg_die('You can leech only from ' . $bb_cfg['tracker']['limit_leech_ips'] . " IP's");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -328,7 +328,7 @@ $up_add = ($lp_info && $uploaded > $lp_info['uploaded']) ? $uploaded - $lp_info[
|
|||
$down_add = ($lp_info && $downloaded > $lp_info['downloaded']) ? $downloaded - $lp_info['downloaded'] : 0;
|
||||
|
||||
// Gold/Silver releases
|
||||
if ($tr_cfg['gold_silver_enabled'] && $down_add) {
|
||||
if ($bb_cfg['tracker']['gold_silver_enabled'] && $down_add) {
|
||||
if ($tor_type == TOR_TYPE_GOLD) {
|
||||
$down_add = 0;
|
||||
} // Silver releases
|
||||
|
@ -337,7 +337,12 @@ if ($tr_cfg['gold_silver_enabled'] && $down_add) {
|
|||
}
|
||||
}
|
||||
|
||||
// Insert/update peer info
|
||||
// Freeleech
|
||||
if ($bb_cfg['tracker']['freeleech'] && $down_add) {
|
||||
$down_add = 0;
|
||||
}
|
||||
|
||||
// Insert / update peer info
|
||||
$peer_info_updated = false;
|
||||
$update_time = ($stopped) ? 0 : TIMENOW;
|
||||
|
||||
|
@ -414,8 +419,8 @@ if (DBG_LOG) {
|
|||
|
||||
if (!$output) {
|
||||
// Retrieve peers
|
||||
$numwant = (int)$tr_cfg['numwant'];
|
||||
$compact_mode = ($tr_cfg['compact_mode'] || !empty($compact));
|
||||
$numwant = (int)$bb_cfg['tracker']['numwant'];
|
||||
$compact_mode = ($bb_cfg['tracker']['compact_mode'] || !empty($compact));
|
||||
|
||||
$rowset = DB()->fetch_rowset("
|
||||
SELECT ip, port
|
||||
|
@ -445,7 +450,7 @@ if (!$output) {
|
|||
$seeders = 0;
|
||||
$leechers = 0;
|
||||
|
||||
if ($tr_cfg['scrape']) {
|
||||
if ($bb_cfg['tracker']['scrape']) {
|
||||
$row = DB()->fetch_row("
|
||||
SELECT seeders, leechers
|
||||
FROM " . BB_BT_TRACKER_SNAP . "
|
||||
|
|
|
@ -27,11 +27,11 @@ if (!defined('IN_TRACKER')) {
|
|||
die(basename(__FILE__));
|
||||
}
|
||||
|
||||
global $tr_cfg;
|
||||
global $bb_cfg;
|
||||
|
||||
// Exit if tracker is disabled
|
||||
if ($tr_cfg['off']) {
|
||||
msg_die($tr_cfg['off_reason']);
|
||||
if ($bb_cfg['tracker']['off']) {
|
||||
msg_die($bb_cfg['tracker']['off_reason']);
|
||||
}
|
||||
|
||||
//
|
||||
|
|
|
@ -27,9 +27,9 @@ define('IN_TRACKER', true);
|
|||
define('BB_ROOT', './../');
|
||||
require dirname(__DIR__) . '/common.php';
|
||||
|
||||
global $tr_cfg;
|
||||
global $bb_cfg;
|
||||
|
||||
if (!$tr_cfg['scrape']) {
|
||||
if (!$bb_cfg['tracker']['scrape']) {
|
||||
msg_die('Please disable SCRAPE!');
|
||||
}
|
||||
|
||||
|
|
51
common.php
51
common.php
|
@ -27,7 +27,6 @@ if (isset($_REQUEST['GLOBALS'])) {
|
|||
die();
|
||||
}
|
||||
|
||||
ignore_user_abort(true);
|
||||
define('TIMESTART', utime());
|
||||
define('TIMENOW', time());
|
||||
|
||||
|
@ -47,6 +46,9 @@ if (empty($_SERVER['SERVER_NAME'])) {
|
|||
if (!defined('BB_ROOT')) {
|
||||
define('BB_ROOT', './');
|
||||
}
|
||||
if (!defined('BB_SCRIPT')) {
|
||||
define('BB_SCRIPT', 'undefined');
|
||||
}
|
||||
|
||||
header('X-Frame-Options: SAMEORIGIN');
|
||||
|
||||
|
@ -64,9 +66,54 @@ if (!file_exists(__DIR__ . '/vendor/autoload.php')) {
|
|||
}
|
||||
require_once __DIR__ . '/vendor/autoload.php';
|
||||
|
||||
/**
|
||||
* Gets the value of an environment variable. Supports boolean, empty and null.
|
||||
*
|
||||
* @param string $key
|
||||
* @param mixed $default
|
||||
* @return mixed
|
||||
*/
|
||||
function env($key, $default = null)
|
||||
{
|
||||
$value = getenv($key);
|
||||
if (!$value) return value($default);
|
||||
switch (strtolower($value)) {
|
||||
case 'true':
|
||||
case '(true)':
|
||||
return true;
|
||||
case 'false':
|
||||
case '(false)':
|
||||
return false;
|
||||
case '(null)':
|
||||
return null;
|
||||
case '(empty)':
|
||||
return '';
|
||||
}
|
||||
return $value;
|
||||
}
|
||||
|
||||
/**
|
||||
* Return the default value of the given value.
|
||||
*
|
||||
* @param mixed $value
|
||||
* @return mixed
|
||||
*/
|
||||
function value($value)
|
||||
{
|
||||
return $value instanceof Closure ? $value() : $value;
|
||||
}
|
||||
|
||||
// Get initial config
|
||||
if (!getenv('APP_DEBUG') && file_exists(__DIR__ . '/.env')) {
|
||||
(new Symfony\Component\Dotenv\Dotenv())->load(__DIR__ . '/.env');
|
||||
}
|
||||
require_once __DIR__ . '/library/config.php';
|
||||
|
||||
// Local config
|
||||
if (file_exists(__DIR__ . '/library/config.local.php')) {
|
||||
require_once __DIR__ . '/library/config.local.php';
|
||||
}
|
||||
|
||||
// Bugsnag error reporting
|
||||
if ($bb_cfg['bugsnag']['enabled'] && !empty($bb_cfg['bugsnag']['api_key'])) {
|
||||
/** @var Bugsnag\Handler $bugsnag */
|
||||
|
@ -93,7 +140,7 @@ define('BT_AUTH_KEY_LENGTH', 10);
|
|||
|
||||
define('PEER_HASH_PREFIX', 'peer_');
|
||||
define('PEERS_LIST_PREFIX', 'peers_list_');
|
||||
define('PEER_HASH_EXPIRE', round($bb_cfg['announce_interval'] * (0.85 * $tr_cfg['expire_factor']))); // sec
|
||||
define('PEER_HASH_EXPIRE', round($bb_cfg['announce_interval'] * (0.85 * $bb_cfg['tracker']['expire_factor']))); // sec
|
||||
define('PEERS_LIST_EXPIRE', round($bb_cfg['announce_interval'] * 0.7)); // sec
|
||||
|
||||
define('DL_STATUS_RELEASER', -1);
|
||||
|
|
|
@ -44,7 +44,8 @@
|
|||
"roave/security-advisories": "dev-master",
|
||||
"rych/bencode": "^1.0",
|
||||
"samdark/sitemap": "^2.0",
|
||||
"swiftmailer/swiftmailer": "^5.4"
|
||||
"swiftmailer/swiftmailer": "^5.4",
|
||||
"symfony/dotenv": "^3.3"
|
||||
},
|
||||
"autoload": {
|
||||
"psr-4": {
|
||||
|
|
1
dl.php
1
dl.php
|
@ -31,6 +31,7 @@ require ATTACH_DIR . '/attachment_mod.php';
|
|||
|
||||
$datastore->enqueue(array(
|
||||
'attach_extensions',
|
||||
'cat_forums',
|
||||
));
|
||||
|
||||
$download_id = request_var('id', 0);
|
||||
|
|
|
@ -39,6 +39,7 @@ $show_subforums = true;
|
|||
$datastore->enqueue(array(
|
||||
'stats',
|
||||
'moderators',
|
||||
'cat_forums',
|
||||
));
|
||||
if ($bb_cfg['show_latest_news']) {
|
||||
$datastore->enqueue('latest_news');
|
||||
|
|
|
@ -70,6 +70,7 @@ switch ($mode) {
|
|||
|
||||
$datastore->enqueue(array(
|
||||
'moderators',
|
||||
'cat_forums',
|
||||
));
|
||||
|
||||
$moderators = array();
|
||||
|
|
|
@ -123,7 +123,7 @@ switch ($mode) {
|
|||
|
||||
case 'unlock_cron':
|
||||
|
||||
cron_enable_board();
|
||||
TorrentPier\Helpers\CronHelper::enableBoard();
|
||||
|
||||
$this->response['unlock_cron_html'] = '<span class="seed bold">' . $lang['ADMIN_UNLOCKED'] . '</span>';
|
||||
|
||||
|
|
|
@ -103,9 +103,7 @@ if ($tor_auth_reg || $tor_auth_del) {
|
|||
$tracker_link = ($tor_reged) ? $unreg_tor_url : $reg_tor_url;
|
||||
}
|
||||
|
||||
if ($bb_cfg['torrent_name_style']) {
|
||||
$display_name = '[' . $bb_cfg['server_name'] . '].t' . $bt_topic_id . '.torrent';
|
||||
}
|
||||
$display_name = '[' . $bb_cfg['server_name'] . '].t' . $bt_topic_id . '.torrent';
|
||||
|
||||
if (!$tor_reged) {
|
||||
$template->assign_block_vars('postrow.attach.tor_not_reged', array(
|
||||
|
|
|
@ -27,32 +27,34 @@ if (!defined('BB_ROOT')) {
|
|||
die(basename(__FILE__));
|
||||
}
|
||||
|
||||
$bb_cfg = $tr_cfg = $page_cfg = [];
|
||||
$domain_name = 'torrentpier.me'; // enter here your primary domain name of your site
|
||||
$domain_name = (!empty($_SERVER['SERVER_NAME'])) ? $_SERVER['SERVER_NAME'] : $domain_name;
|
||||
|
||||
$bb_cfg = [];
|
||||
|
||||
// Increase number after changing js or css
|
||||
$bb_cfg['js_ver'] = $bb_cfg['css_ver'] = 1;
|
||||
|
||||
// Primary domain name
|
||||
$domain_name = 'torrentpier.me'; // enter here your primary domain name of your site
|
||||
$domain_name = (!empty($_SERVER['SERVER_NAME'])) ? $_SERVER['SERVER_NAME'] : $domain_name;
|
||||
|
||||
// Version info
|
||||
$bb_cfg['tp_version'] = '2.1.6';
|
||||
$bb_cfg['tp_release_date'] = '07-07-2017';
|
||||
$bb_cfg['tp_release_date'] = '12-07-2017';
|
||||
$bb_cfg['tp_release_codename'] = 'Aurochs';
|
||||
|
||||
// Database
|
||||
$charset = 'utf8';
|
||||
$pconnect = false;
|
||||
|
||||
// Настройка баз данных ['db']['srv_name'] => (array) srv_cfg;
|
||||
// порядок параметров srv_cfg (хост, название базы, пользователь, пароль, charset, pconnect);
|
||||
$bb_cfg['db'] = array(
|
||||
'db' => array('localhost', 'tp_216', 'user', 'pass', $charset, $pconnect),
|
||||
);
|
||||
$bb_cfg['db'] = [
|
||||
'db' => [
|
||||
env('DB_HOST', 'localhost'),
|
||||
env('DB_DATABASE', 'torrentpier'),
|
||||
env('DB_USERNAME', 'root'),
|
||||
env('DB_PASSWORD', 'pass'),
|
||||
'utf8',
|
||||
false
|
||||
],
|
||||
];
|
||||
|
||||
$bb_cfg['db_alias'] = array(
|
||||
// 'alias' => 'srv_name'
|
||||
$bb_cfg['db_alias'] = [
|
||||
'log' => 'db', // BB_LOG
|
||||
'search' => 'db', // BB_TOPIC_SEARCH
|
||||
'sres' => 'db', // BB_BT_USER_SETTINGS, BB_SEARCH_RESULTS
|
||||
|
@ -62,63 +64,64 @@ $bb_cfg['db_alias'] = array(
|
|||
'ut' => 'db', // BB_TOPICS_USER_POSTED
|
||||
'pm' => 'db', // BB_PRIVMSGS, BB_PRIVMSGS_TEXT
|
||||
'pt' => 'db', // BB_POSTS_TEXT
|
||||
);
|
||||
];
|
||||
|
||||
// Cache
|
||||
$bb_cfg['cache']['pconnect'] = true;
|
||||
$bb_cfg['cache']['db_dir'] = realpath(BB_ROOT) . '/internal_data/cache/filecache/';
|
||||
$bb_cfg['cache']['prefix'] = 'tp_'; // Префикс кеша ('tp_')
|
||||
$bb_cfg['cache']['memcache'] = array(
|
||||
'host' => '127.0.0.1',
|
||||
'port' => 11211,
|
||||
$bb_cfg['cache'] = [
|
||||
'pconnect' => true,
|
||||
'con_required' => true,
|
||||
);
|
||||
$bb_cfg['cache']['redis'] = array(
|
||||
'host' => '127.0.0.1',
|
||||
'port' => 6379,
|
||||
'con_required' => true,
|
||||
);
|
||||
'db_dir' => realpath(BB_ROOT) . '/internal_data/cache/filecache/',
|
||||
'prefix' => 'tp_', // Префикс кеша ('tp_')
|
||||
'memcache' => [
|
||||
'host' => '127.0.0.1',
|
||||
'port' => 11211,
|
||||
'pconnect' => true,
|
||||
'con_required' => true,
|
||||
],
|
||||
'redis' => [
|
||||
'host' => '127.0.0.1',
|
||||
'port' => 6379,
|
||||
'con_required' => true,
|
||||
],
|
||||
// Available cache types: memcache, sqlite, redis, apc, xcache (default of filecache)
|
||||
'engines' => [
|
||||
'bb_cache' => ['filecache', []],
|
||||
'bb_config' => ['filecache', []],
|
||||
'tr_cache' => ['filecache', []],
|
||||
'session_cache' => ['filecache', []],
|
||||
'bb_cap_sid' => ['filecache', []],
|
||||
'bb_login_err' => ['filecache', []],
|
||||
'bb_poll_data' => ['filecache', []],
|
||||
],
|
||||
];
|
||||
|
||||
// Available cache types: memcache, sqlite, redis, apc, xcache (default of filecache)
|
||||
# name => array( (string) type, (array) cfg )
|
||||
$bb_cfg['cache']['engines'] = array(
|
||||
'bb_cache' => array('filecache', array()),
|
||||
'bb_config' => array('filecache', array()),
|
||||
'tr_cache' => array('filecache', array()),
|
||||
'session_cache' => array('filecache', array()),
|
||||
'bb_cap_sid' => array('filecache', array()),
|
||||
'bb_login_err' => array('filecache', array()),
|
||||
'bb_poll_data' => array('filecache', array()),
|
||||
);
|
||||
// Datastore
|
||||
// Available datastore types: memcache, sqlite, redis, apc, xcache (default filecache)
|
||||
$bb_cfg['datastore_type'] = 'filecache';
|
||||
|
||||
// Server
|
||||
$bb_cfg['server_name'] = $domain_name; // The domain name from which this board runs
|
||||
$bb_cfg['server_name'] = $domain_name; // The domain name from which this board runs
|
||||
$bb_cfg['server_port'] = (!empty($_SERVER['SERVER_PORT'])) ? $_SERVER['SERVER_PORT'] : 80; // The port your server is running on
|
||||
$bb_cfg['script_path'] = '/'; // The path where FORUM is located relative to the domain name
|
||||
$bb_cfg['script_path'] = '/'; // The path where FORUM is located relative to the domain name
|
||||
|
||||
// GZip
|
||||
$bb_cfg['gzip_compress'] = true; // compress output
|
||||
$bb_cfg['gzip_compress'] = true; // compress output
|
||||
|
||||
// Tracker
|
||||
$bb_cfg['announce_interval'] = 2400; // Announce interval (default: 1800)
|
||||
$bb_cfg['passkey_key'] = 'uk'; // Passkey key name in GET request
|
||||
$bb_cfg['ignore_reported_ip'] = false; // Ignore IP reported by client
|
||||
$bb_cfg['verify_reported_ip'] = true; // Verify IP reported by client against $_SERVER['HTTP_X_FORWARDED_FOR']
|
||||
$bb_cfg['allow_internal_ip'] = false; // Allow internal IP (10.xx.. etc.)
|
||||
$bb_cfg['announce_interval'] = 2400; // Announce interval (default: 1800)
|
||||
$bb_cfg['passkey_key'] = 'uk'; // Passkey key name in GET request
|
||||
$bb_cfg['ignore_reported_ip'] = false; // Ignore IP reported by client
|
||||
$bb_cfg['verify_reported_ip'] = true; // Verify IP reported by client against $_SERVER['HTTP_X_FORWARDED_FOR']
|
||||
$bb_cfg['allow_internal_ip'] = false; // Allow internal IP (10.xx.. etc.)
|
||||
|
||||
// Ocelot
|
||||
$bb_cfg['ocelot'] = array(
|
||||
$bb_cfg['ocelot'] = [
|
||||
'enabled' => false,
|
||||
'host' => $domain_name,
|
||||
'port' => 34000,
|
||||
'url' => "http://$domain_name:34000/", // with '/'
|
||||
'secret' => 'some_10_chars', // 10 chars
|
||||
'stats' => 'some_10_chars', // 10 chars
|
||||
);
|
||||
'secret' => 'some_10_chars', // 10 chars
|
||||
'stats' => 'some_10_chars', // 10 chars
|
||||
];
|
||||
|
||||
// FAQ url help link
|
||||
$bb_cfg['how_to_download_url_help'] = 'viewtopic.php?t=1'; // Как скачивать?
|
||||
|
@ -127,10 +130,319 @@ $bb_cfg['ratio_url_help'] = 'viewtopic.php?t=3'; // Рейтинг и огран
|
|||
$bb_cfg['search_help_url'] = 'viewtopic.php?t=4'; // Помощь по поиску
|
||||
|
||||
// Torrents
|
||||
$bb_cfg['bt_min_ratio_allow_dl_tor'] = 0.3; // 0 - disable
|
||||
$bb_cfg['bt_min_ratio_warning'] = 0.6; // 0 - disable
|
||||
$bb_cfg['bt_min_ratio_allow_dl_tor'] = 0.3; // 0 - disable
|
||||
$bb_cfg['bt_min_ratio_warning'] = 0.6; // 0 - disable
|
||||
|
||||
$tr_cfg = array(
|
||||
$bb_cfg['show_dl_status_in_search'] = true;
|
||||
$bb_cfg['show_dl_status_in_forum'] = true;
|
||||
$bb_cfg['show_tor_info_in_dl_list'] = true;
|
||||
$bb_cfg['allow_dl_list_names_mode'] = true;
|
||||
|
||||
// Days to keep torrent registered
|
||||
$bb_cfg['seeder_last_seen_days_keep'] = 0; // сколько дней назад был сид последний раз
|
||||
$bb_cfg['seeder_never_seen_days_keep'] = 0; // сколько дней имеется статус "Сида не было никогда"
|
||||
|
||||
// DL-Status (days to keep user's dlstatus records)
|
||||
$bb_cfg['dl_will_days_keep'] = 360;
|
||||
$bb_cfg['dl_down_days_keep'] = 180;
|
||||
$bb_cfg['dl_complete_days_keep'] = 180;
|
||||
$bb_cfg['dl_cancel_days_keep'] = 30;
|
||||
|
||||
// Tor-Stats
|
||||
$bb_cfg['torstat_days_keep'] = 60; // days to keep user's per-torrent stats
|
||||
|
||||
// Tor-Help
|
||||
$bb_cfg['torhelp_enabled'] = false; // find dead torrents (without seeder) that user might help seeding
|
||||
|
||||
// URL's
|
||||
$bb_cfg['ajax_url'] = 'ajax.php'; # "http://{$_SERVER['SERVER_NAME']}/ajax.php"
|
||||
$bb_cfg['login_url'] = 'login.php'; # "http://{$domain_name}/login.php"
|
||||
$bb_cfg['posting_url'] = 'posting.php'; # "http://{$domain_name}/posting.php"
|
||||
$bb_cfg['pm_url'] = 'privmsg.php'; # "http://{$domain_name}/privmsg.php"
|
||||
|
||||
// Language
|
||||
$bb_cfg['charset'] = 'utf8'; // page charset
|
||||
$bb_cfg['auto_language'] = true; // select user-preferred language automatically
|
||||
$bb_cfg['lang'] = [
|
||||
'ru' => [
|
||||
'name' => 'Русский',
|
||||
'locale' => 'ru_RU.UTF-8',
|
||||
'encoding' => 'UTF-8',
|
||||
],
|
||||
'uk' => [
|
||||
'name' => 'Український',
|
||||
'locale' => 'uk_UA.UTF-8',
|
||||
'encoding' => 'UTF-8',
|
||||
],
|
||||
'en' => [
|
||||
'name' => 'English',
|
||||
'locale' => 'en_US.UTF-8',
|
||||
'encoding' => 'UTF-8',
|
||||
],
|
||||
];
|
||||
|
||||
// Templates
|
||||
$bb_cfg['templates'] = [
|
||||
'default' => 'Стандартный',
|
||||
];
|
||||
|
||||
$bb_cfg['tpl_name'] = 'default';
|
||||
$bb_cfg['stylesheet'] = 'main.css';
|
||||
|
||||
$bb_cfg['show_sidebar1_on_every_page'] = false;
|
||||
$bb_cfg['show_sidebar2_on_every_page'] = false;
|
||||
|
||||
// Cookie
|
||||
$bb_cfg['cookie_domain'] = in_array($domain_name, [getenv('SERVER_ADDR'), 'localhost'], true) ? '' : ".$domain_name";
|
||||
$bb_cfg['cookie_secure'] = !empty($_SERVER['HTTPS']) ? 1 : 0;
|
||||
$bb_cfg['cookie_prefix'] = 'bb_'; // 'bb_'
|
||||
|
||||
// Sessions
|
||||
$bb_cfg['session_update_intrv'] = 180; // sec
|
||||
$bb_cfg['user_session_duration'] = 1800; // sec
|
||||
$bb_cfg['admin_session_duration'] = 6 * 3600; // sec
|
||||
$bb_cfg['user_session_gc_ttl'] = 1800; // number of seconds that a staled session entry may remain in sessions table
|
||||
$bb_cfg['session_cache_gc_ttl'] = 1200; // sec
|
||||
$bb_cfg['max_last_visit_days'] = 14; // days
|
||||
$bb_cfg['last_visit_update_intrv'] = 3600; // sec
|
||||
|
||||
// Registration
|
||||
$bb_cfg['invalid_logins'] = 5; // Количество неверных попыток ввода пароля, перед выводом проверки капчей
|
||||
$bb_cfg['new_user_reg_disabled'] = false; // Запретить регистрацию новых учетных записей
|
||||
$bb_cfg['unique_ip'] = false; // Запретить регистрацию нескольких учетных записей с одного ip
|
||||
$bb_cfg['new_user_reg_restricted'] = false; // Ограничить регистрацию новых пользователей по времени с 01:00 до 17:00
|
||||
$bb_cfg['reg_email_activation'] = true; // Требовать активацию учетной записи по email
|
||||
|
||||
// Email
|
||||
$bb_cfg['emailer'] = [
|
||||
'enabled' => true,
|
||||
'smtp' => [
|
||||
'enabled' => true, // send email via external SMTP server
|
||||
'host' => '', // SMTP server host
|
||||
'port' => 25, // SMTP server port
|
||||
'username' => '', // SMTP username (if server requires it)
|
||||
'password' => '', // SMTP password (if server requires it)
|
||||
],
|
||||
'ssl_type' => '', // SMTP ssl type (ssl or tls)
|
||||
];
|
||||
|
||||
$bb_cfg['board_email'] = "noreply@$domain_name"; // admin email address
|
||||
$bb_cfg['board_email_form'] = false; // can users send email to each other via board
|
||||
$bb_cfg['board_email_sig'] = ''; // this text will be attached to all emails the board sends
|
||||
$bb_cfg['board_email_sitename'] = $domain_name; // sitename used in all emails header
|
||||
|
||||
$bb_cfg['topic_notify_enabled'] = true;
|
||||
$bb_cfg['pm_notify_enabled'] = true;
|
||||
$bb_cfg['group_send_email'] = true;
|
||||
$bb_cfg['email_change_disabled'] = false; // disable changing email by user
|
||||
|
||||
$bb_cfg['bounce_email'] = "bounce@$domain_name"; // bounce email address
|
||||
$bb_cfg['tech_admin_email'] = "admin@$domain_name"; // email for sending error reports
|
||||
$bb_cfg['abuse_email'] = "abuse@$domain_name";
|
||||
$bb_cfg['adv_email'] = "adv@$domain_name";
|
||||
|
||||
// Bugsnag error reporting
|
||||
$bb_cfg['bugsnag'] = [
|
||||
'enabled' => false,
|
||||
'api_key' => '',
|
||||
];
|
||||
|
||||
// Special users
|
||||
$bb_cfg['dbg_users'] = [
|
||||
# user_id => 'name',
|
||||
2 => 'admin',
|
||||
];
|
||||
$bb_cfg['unlimited_users'] = [
|
||||
# user_id => 'name',
|
||||
2 => 'admin',
|
||||
];
|
||||
$bb_cfg['super_admins'] = [
|
||||
# user_id => 'name',
|
||||
2 => 'admin',
|
||||
];
|
||||
|
||||
// Date format
|
||||
$bb_cfg['date_format'] = 'Y-m-d';
|
||||
|
||||
// Subforums
|
||||
$bb_cfg['sf_on_first_page_only'] = true;
|
||||
|
||||
// Forums
|
||||
$bb_cfg['allowed_topics_per_page'] = [50, 100, 150, 200, 250, 300];
|
||||
|
||||
// Topics
|
||||
$bb_cfg['show_quick_reply'] = true;
|
||||
$bb_cfg['show_rank_text'] = false;
|
||||
$bb_cfg['show_rank_image'] = true;
|
||||
$bb_cfg['show_poster_joined'] = true;
|
||||
$bb_cfg['show_poster_posts'] = true;
|
||||
$bb_cfg['show_poster_from'] = true;
|
||||
$bb_cfg['show_bot_nick'] = false;
|
||||
$bb_cfg['text_buttons'] = false; // replace EDIT, QUOTE... images with text links
|
||||
$bb_cfg['parse_ed2k_links'] = true; // make ed2k links clickable
|
||||
$bb_cfg['post_date_format'] = 'd-M-Y H:i';
|
||||
$bb_cfg['ext_link_new_win'] = true; // open external links in new window
|
||||
|
||||
$bb_cfg['topic_moved_days_keep'] = 7; // remove topic moved links after xx days (or FALSE to disable)
|
||||
$bb_cfg['allowed_posts_per_page'] = [15, 30, 50, 100];
|
||||
$bb_cfg['user_signature_start'] = '<div class="signature"><br />_________________<br />';
|
||||
$bb_cfg['user_signature_end'] = '</div>'; // Это позволит использовать html теги, которые требуют закрытия. Например <table> или <font color>
|
||||
|
||||
// Posts
|
||||
$bb_cfg['use_posts_cache'] = true;
|
||||
$bb_cfg['posts_cache_days_keep'] = 14;
|
||||
$bb_cfg['max_post_length'] = 120000;
|
||||
$bb_cfg['use_ajax_posts'] = true;
|
||||
|
||||
// Search
|
||||
$bb_cfg['search_engine_type'] = 'mysql'; // none, mysql, sphinx
|
||||
$bb_cfg['sphinx_topic_titles_host'] = '127.0.0.1';
|
||||
$bb_cfg['sphinx_topic_titles_port'] = 3312;
|
||||
$bb_cfg['sphinx_config_path'] = realpath("../install/sphinx/sphinx.conf");
|
||||
$bb_cfg['disable_ft_search_in_posts'] = false; // disable searching in post bodies
|
||||
$bb_cfg['disable_search_for_guest'] = true;
|
||||
$bb_cfg['allow_search_in_bool_mode'] = true;
|
||||
$bb_cfg['max_search_words_per_post'] = 200;
|
||||
$bb_cfg['search_min_word_len'] = 3;
|
||||
$bb_cfg['search_max_word_len'] = 35;
|
||||
$bb_cfg['limit_max_search_results'] = false;
|
||||
$bb_cfg['spam_filter_file_path'] = ''; // BB_PATH .'/misc/spam_filter_words.txt';
|
||||
|
||||
// Posting
|
||||
$bb_cfg['prevent_multiposting'] = true; // replace "reply" with "edit last msg" if user (not admin or mod) is last topic poster
|
||||
$bb_cfg['max_smilies'] = 10; // Максимальное число смайлов в посте (0 - без ограничения)
|
||||
|
||||
// PM
|
||||
$bb_cfg['privmsg_disable'] = false; // отключить систему личных сообщений на форуме
|
||||
$bb_cfg['max_outgoing_pm_cnt'] = 10; // ограничение на кол. одновременных исходящих лс (для замедления рассылки спама)
|
||||
$bb_cfg['max_inbox_privmsgs'] = 500; // максимальное число сообщений в папке входящие
|
||||
$bb_cfg['max_savebox_privmsgs'] = 500; // максимальное число сообщений в папке сохраненные
|
||||
$bb_cfg['max_sentbox_privmsgs'] = 500; // максимальное число сообщений в папке отправленные
|
||||
$bb_cfg['pm_days_keep'] = 180; // время хранения ЛС
|
||||
|
||||
// Actions log
|
||||
$bb_cfg['log_days_keep'] = 90;
|
||||
|
||||
// Users
|
||||
$bb_cfg['color_nick'] = true; // Окраска ников пользователей по user_rank
|
||||
$bb_cfg['user_not_activated_days_keep'] = 7; // "not activated" == "not finished registration"
|
||||
$bb_cfg['user_not_active_days_keep'] = 180; // inactive users but only with no posts
|
||||
|
||||
// Groups
|
||||
$bb_cfg['group_members_per_page'] = 50;
|
||||
|
||||
// Tidy
|
||||
$bb_cfg['tidy_post'] = (!in_array('tidy', get_loaded_extensions(), true)) ? false : true;
|
||||
|
||||
// Misc
|
||||
$bb_cfg['mem_on_start'] = MEM_USAGE ? memory_get_usage() : 0;
|
||||
$bb_cfg['translate_dates'] = true; // in displaying time
|
||||
$bb_cfg['use_word_censor'] = true;
|
||||
|
||||
$bb_cfg['last_visit_date_format'] = 'd-M H:i';
|
||||
$bb_cfg['last_post_date_format'] = 'd-M-y H:i';
|
||||
$bb_cfg['poll_max_days'] = 180; // сколько дней с момента создания темы опрос будет активным
|
||||
|
||||
$bb_cfg['allow_change'] = [
|
||||
'language' => true,
|
||||
'dateformat' => true,
|
||||
];
|
||||
|
||||
$bb_cfg['trash_forum_id'] = 0; // (int) 7
|
||||
|
||||
$bb_cfg['first_logon_redirect_url'] = 'index.php';
|
||||
$bb_cfg['terms_and_conditions_url'] = 'terms.php';
|
||||
$bb_cfg['tor_help_links'] = 'terms.php';
|
||||
|
||||
$bb_cfg['user_agreement_url'] = 'info.php?show=user_agreement';
|
||||
$bb_cfg['copyright_holders_url'] = 'info.php?show=copyright_holders';
|
||||
$bb_cfg['advert_url'] = 'info.php?show=advert';
|
||||
|
||||
// Extensions
|
||||
$bb_cfg['file_id_ext'] = [
|
||||
1 => 'gif',
|
||||
2 => 'gz',
|
||||
3 => 'jpg',
|
||||
4 => 'png',
|
||||
5 => 'rar',
|
||||
6 => 'tar',
|
||||
7 => 'tiff',
|
||||
8 => 'torrent',
|
||||
9 => 'zip',
|
||||
];
|
||||
|
||||
// Attachments
|
||||
$bb_cfg['attach'] = [
|
||||
'upload_path' => DATA_DIR . '/torrent_files', // путь к директории с torrent файлами
|
||||
'max_size' => 5 * 1024 * 1024, // максимальный размер файла в байтах
|
||||
];
|
||||
|
||||
$bb_cfg['tor_forums_allowed_ext'] = ['torrent', 'zip', 'rar']; // для разделов с раздачами
|
||||
$bb_cfg['gen_forums_allowed_ext'] = ['zip', 'rar']; // для обычных разделов
|
||||
|
||||
// Avatars
|
||||
$bb_cfg['avatars'] = [
|
||||
'allowed_ext' => ['gif', 'jpg', 'jpeg', 'png'], // разрешенные форматы файлов
|
||||
'bot_avatar' => '/gallery/bot.gif', // аватара бота
|
||||
'max_size' => 100 * 1024, // размер аватары в байтах
|
||||
'max_height' => 100, // высота аватара в px
|
||||
'max_width' => 100, // ширина аватара в px
|
||||
'no_avatar' => '/gallery/noavatar.png', // дефолтная аватара
|
||||
'upload_path' => BB_PATH . '/data/avatars/', // путь к директории с аватарами
|
||||
'up_allowed' => true, // разрешить загрузку аватар
|
||||
];
|
||||
|
||||
// Group avatars
|
||||
$bb_cfg['group_avatars'] = [
|
||||
'allowed_ext' => ['gif', 'jpg', 'jpeg', 'png'], // разрешенные форматы файлов
|
||||
'max_size' => 300 * 1024, // размер аватары в байтах
|
||||
'max_height' => 300, // высота аватара в px
|
||||
'max_width' => 300, // ширина аватара в px
|
||||
'no_avatar' => '/gallery/noavatar.png', // дефолтная аватара
|
||||
'upload_path' => BB_PATH . '/data/avatars/', // путь к директории с аватарами
|
||||
'up_allowed' => true, // разрешить загрузку аватар
|
||||
];
|
||||
|
||||
// Captcha
|
||||
// Get a Google reCAPTCHA API Key: https://www.google.com/recaptcha/admin
|
||||
$bb_cfg['captcha'] = [
|
||||
'disabled' => false,
|
||||
'public_key' => '', // your public key
|
||||
'secret_key' => '', // your secret key
|
||||
'theme' => 'light', // light or dark
|
||||
];
|
||||
|
||||
// Atom feed
|
||||
$bb_cfg['atom'] = [
|
||||
'path' => INT_DATA_DIR . '/atom', // without ending slash
|
||||
'url' => './internal_data/atom', // without ending slash
|
||||
];
|
||||
|
||||
// Nofollow
|
||||
$bb_cfg['nofollow'] = [
|
||||
'disabled' => false,
|
||||
'allowed_url' => [$domain_name], // 'allowed.site', 'www.allowed.site'
|
||||
];
|
||||
|
||||
// Page settings
|
||||
$bb_cfg['page'] = [
|
||||
'show_torhelp' => [
|
||||
#BB_SCRIPT => true
|
||||
'index' => true,
|
||||
'tracker' => true,
|
||||
],
|
||||
'show_sidebar1' => [
|
||||
#BB_SCRIPT => true
|
||||
'index' => true,
|
||||
],
|
||||
'show_sidebar2' => [
|
||||
#BB_SCRIPT => true
|
||||
'index' => true,
|
||||
]
|
||||
];
|
||||
|
||||
// Tracker settings
|
||||
$bb_cfg['tracker'] = [
|
||||
'autoclean' => true,
|
||||
'off' => false,
|
||||
'off_reason' => 'temporarily disabled',
|
||||
|
@ -152,63 +464,86 @@ $tr_cfg = array(
|
|||
'gold_silver_enabled' => true,
|
||||
'retracker' => true,
|
||||
'retracker_host' => 'http://retracker.local/announce',
|
||||
);
|
||||
'freeleech' => false,
|
||||
'guest_tracker' => true,
|
||||
];
|
||||
|
||||
$bb_cfg['show_dl_status_in_search'] = true;
|
||||
$bb_cfg['show_dl_status_in_forum'] = true;
|
||||
|
||||
$bb_cfg['show_tor_info_in_dl_list'] = true;
|
||||
$bb_cfg['allow_dl_list_names_mode'] = true;
|
||||
|
||||
$bb_cfg['torrent_name_style'] = true; // use torrent name style [yoursite.com].txxx.torrent
|
||||
$bb_cfg['tor_help_links'] = 'terms.php';
|
||||
|
||||
// Сколько дней сохранять торрент зарегистрированным / Days to keep torrent registered, if:
|
||||
$bb_cfg['seeder_last_seen_days_keep'] = 0; // сколько дней назад был сид последний раз
|
||||
$bb_cfg['seeder_never_seen_days_keep'] = 0; // сколько дней имеется статус "Сида не было никогда"
|
||||
|
||||
/**
|
||||
* Ratio limits
|
||||
*
|
||||
* Don't change the order of ratios (from 0 to 1):
|
||||
* rating < 0.4 -- allow only 1 torrent for leeching
|
||||
* rating < 0.5 -- only 2
|
||||
* rating < 0.6 -- only 3
|
||||
* rating > 0.6 -- depend on your tracker config limits (in "ACP - Tracker Config - Limits")
|
||||
*/
|
||||
$rating_limits = array(
|
||||
// Ratio settings
|
||||
// Don't change the order of ratios (from 0 to 1)
|
||||
// rating < 0.4 -- allow only 1 torrent for leeching
|
||||
// rating < 0.5 -- only 2
|
||||
// rating < 0.6 -- only 3
|
||||
// rating > 0.6 -- depend on your tracker config limits (in "ACP - Tracker Config - Limits")
|
||||
$bb_cfg['rating'] = [
|
||||
'0.4' => 1,
|
||||
'0.5' => 2,
|
||||
'0.6' => 3,
|
||||
);
|
||||
];
|
||||
|
||||
// DL-Status (days to keep user's dlstatus records)
|
||||
$bb_cfg['dl_will_days_keep'] = 360;
|
||||
$bb_cfg['dl_down_days_keep'] = 180;
|
||||
$bb_cfg['dl_complete_days_keep'] = 180;
|
||||
$bb_cfg['dl_cancel_days_keep'] = 30;
|
||||
// Иконки статусов раздач
|
||||
$bb_cfg['tor_icons'] = [
|
||||
TOR_NOT_APPROVED => '<span class="tor-icon tor-not-approved">*</span>',
|
||||
TOR_CLOSED => '<span class="tor-icon tor-closed">x</span>',
|
||||
TOR_APPROVED => '<span class="tor-icon tor-approved">√</span>',
|
||||
TOR_NEED_EDIT => '<span class="tor-icon tor-need-edit">?</span>',
|
||||
TOR_NO_DESC => '<span class="tor-icon tor-no-desc">!</span>',
|
||||
TOR_DUP => '<span class="tor-icon tor-dup">D</span>',
|
||||
TOR_CLOSED_CPHOLD => '<span class="tor-icon tor-closed-cp">©</span>',
|
||||
TOR_CONSUMED => '<span class="tor-icon tor-consumed">∑</span>',
|
||||
TOR_DOUBTFUL => '<span class="tor-icon tor-approved">#</span>',
|
||||
TOR_CHECKING => '<span class="tor-icon tor-checking">%</span>',
|
||||
TOR_TMP => '<span class="tor-icon tor-dup">T</span>',
|
||||
TOR_PREMOD => '<span class="tor-icon tor-dup">∏</span>',
|
||||
];
|
||||
|
||||
// Tor-Stats
|
||||
$bb_cfg['torstat_days_keep'] = 60; // days to keep user's per-torrent stats
|
||||
// Запрет на скачивание
|
||||
$bb_cfg['tor_frozen'] = [
|
||||
TOR_CHECKING => true,
|
||||
TOR_CLOSED => true,
|
||||
TOR_CLOSED_CPHOLD => true,
|
||||
TOR_CONSUMED => true,
|
||||
TOR_DUP => true,
|
||||
TOR_NO_DESC => true,
|
||||
TOR_PREMOD => true,
|
||||
];
|
||||
|
||||
// Tor-Help
|
||||
$bb_cfg['torhelp_enabled'] = false; // find dead torrents (without seeder) that user might help seeding
|
||||
// Разрешение на скачку автором, если закрыто на скачивание.
|
||||
$bb_cfg['tor_frozen_author_download'] = [
|
||||
TOR_CHECKING => true,
|
||||
TOR_NO_DESC => true,
|
||||
TOR_PREMOD => true,
|
||||
];
|
||||
|
||||
$page_cfg['show_torhelp'] = array(
|
||||
# BB_SCRIPT => true
|
||||
'index' => true,
|
||||
'tracker' => true,
|
||||
);
|
||||
// Запрет на редактирование головного сообщения
|
||||
$bb_cfg['tor_cannot_edit'] = [
|
||||
TOR_CHECKING => true,
|
||||
TOR_CLOSED => true,
|
||||
TOR_CONSUMED => true,
|
||||
TOR_DUP => true,
|
||||
];
|
||||
|
||||
// URL's
|
||||
$bb_cfg['ajax_url'] = 'ajax.php'; # "http://{$_SERVER['SERVER_NAME']}/ajax.php"
|
||||
$bb_cfg['login_url'] = 'login.php'; # "http://{$domain_name}/login.php"
|
||||
$bb_cfg['posting_url'] = 'posting.php'; # "http://{$domain_name}/posting.php"
|
||||
$bb_cfg['pm_url'] = 'privmsg.php'; # "http://{$domain_name}/privmsg.php"
|
||||
// Запрет на создание новых раздач если стоит статус недооформлено/неоформлено/сомнительно
|
||||
$bb_cfg['tor_cannot_new'] = [TOR_NEED_EDIT, TOR_NO_DESC, TOR_DOUBTFUL];
|
||||
|
||||
// Language
|
||||
$bb_cfg['charset'] = 'utf8'; // page charset
|
||||
$bb_cfg['auto_language'] = true; // select user-preferred language automatically
|
||||
// Разрешение на ответ релизера, если раздача исправлена.
|
||||
$bb_cfg['tor_reply'] = [TOR_NEED_EDIT, TOR_NO_DESC, TOR_DOUBTFUL];
|
||||
|
||||
// Если такой статус у релиза, то статистика раздачи будет скрыта
|
||||
$bb_cfg['tor_no_tor_act'] = [
|
||||
TOR_CLOSED => true,
|
||||
TOR_DUP => true,
|
||||
TOR_CLOSED_CPHOLD => true,
|
||||
TOR_CONSUMED => true,
|
||||
];
|
||||
|
||||
// Vote graphic length defines the maximum length of a vote result graphic, ie. 100% = this length
|
||||
$bb_cfg['vote_graphic_length'] = 205;
|
||||
$bb_cfg['privmsg_graphic_length'] = 175;
|
||||
$bb_cfg['topic_left_column_witdh'] = 150;
|
||||
|
||||
// Images auto-resize
|
||||
$bb_cfg['post_img_width_decr'] = 52;
|
||||
$bb_cfg['attach_img_width_decr'] = 130;
|
||||
|
||||
if (!empty($_SERVER['HTTP_ACCEPT_LANGUAGE']) && $bb_cfg['auto_language']) {
|
||||
$user_lang = substr($_SERVER['HTTP_ACCEPT_LANGUAGE'], 0, 2);
|
||||
|
@ -226,302 +561,3 @@ if (!empty($_SERVER['HTTP_ACCEPT_LANGUAGE']) && $bb_cfg['auto_language']) {
|
|||
$bb_cfg['default_lang_dir'] = LANG_ROOT_DIR . '/en/';
|
||||
}
|
||||
}
|
||||
|
||||
$bb_cfg['lang'] = array(
|
||||
'ru' => array(
|
||||
'name' => 'Русский',
|
||||
'locale' => 'ru_RU.UTF-8',
|
||||
'encoding' => 'UTF-8',
|
||||
),
|
||||
'uk' => array(
|
||||
'name' => 'Український',
|
||||
'locale' => 'uk_UA.UTF-8',
|
||||
'encoding' => 'UTF-8',
|
||||
),
|
||||
'en' => array(
|
||||
'name' => 'English',
|
||||
'locale' => 'en_US.UTF-8',
|
||||
'encoding' => 'UTF-8',
|
||||
),
|
||||
);
|
||||
|
||||
// Templates
|
||||
$bb_cfg['templates'] = array(
|
||||
// 'folder' => 'Name',
|
||||
'default' => 'Стандартный',
|
||||
);
|
||||
|
||||
$bb_cfg['tpl_name'] = 'default';
|
||||
$bb_cfg['stylesheet'] = 'main.css';
|
||||
|
||||
$bb_cfg['show_sidebar1_on_every_page'] = false;
|
||||
$bb_cfg['show_sidebar2_on_every_page'] = false;
|
||||
|
||||
$page_cfg['show_sidebar1'] = array(
|
||||
# BB_SCRIPT => true
|
||||
'index' => true,
|
||||
);
|
||||
$page_cfg['show_sidebar2'] = array(
|
||||
# BB_SCRIPT => true
|
||||
'index' => true,
|
||||
);
|
||||
|
||||
// Cookie
|
||||
$bb_cfg['cookie_domain'] = in_array($domain_name, array(getenv('SERVER_ADDR'), 'localhost'), true) ? '' : ".$domain_name";
|
||||
$bb_cfg['cookie_secure'] = (!empty($_SERVER['HTTPS']) ? 1 : 0);
|
||||
$bb_cfg['cookie_prefix'] = 'bb_'; // 'bb_'
|
||||
|
||||
// Sessions
|
||||
$bb_cfg['session_update_intrv'] = 180; // sec
|
||||
$bb_cfg['user_session_duration'] = 1800; // sec
|
||||
$bb_cfg['admin_session_duration'] = 6 * 3600; // sec
|
||||
$bb_cfg['user_session_gc_ttl'] = 1800; // number of seconds that a staled session entry may remain in sessions table
|
||||
$bb_cfg['session_cache_gc_ttl'] = 1200; // sec
|
||||
$bb_cfg['max_last_visit_days'] = 14; // days
|
||||
$bb_cfg['last_visit_update_intrv'] = 3600; // sec
|
||||
|
||||
// Registration
|
||||
$bb_cfg['invalid_logins'] = 5; // Количество неверных попыток ввода пароля, перед выводом проверки капчей
|
||||
$bb_cfg['new_user_reg_disabled'] = false; // Запретить регистрацию новых учетных записей
|
||||
$bb_cfg['unique_ip'] = false; // Запретить регистрацию нескольких учетных записей с одного ip
|
||||
$bb_cfg['new_user_reg_restricted'] = false; // Ограничить регистрацию новых пользователей по времени с 01:00 до 17:00
|
||||
$bb_cfg['reg_email_activation'] = true; // Требовать активацию учетной записи по email
|
||||
|
||||
// Email
|
||||
$bb_cfg['emailer'] = [
|
||||
'enabled' => true,
|
||||
'smtp' => [
|
||||
'enabled' => true, // send email via external SMTP server
|
||||
'host' => '', // SMTP server host
|
||||
'port' => 25, // SMTP server port
|
||||
'username' => '', // SMTP username (if server requires it)
|
||||
'password' => '', // SMTP password (if server requires it)
|
||||
],
|
||||
'ssl_type' => '', // SMTP ssl type (ssl or tls)
|
||||
];
|
||||
|
||||
$bb_cfg['board_email'] = "noreply@$domain_name"; // admin email address
|
||||
$bb_cfg['board_email_form'] = false; // can users send email to each other via board
|
||||
$bb_cfg['board_email_sig'] = ''; // this text will be attached to all emails the board sends
|
||||
$bb_cfg['board_email_sitename'] = $domain_name; // sitename used in all emails header
|
||||
|
||||
$bb_cfg['topic_notify_enabled'] = true;
|
||||
$bb_cfg['pm_notify_enabled'] = true;
|
||||
$bb_cfg['group_send_email'] = true;
|
||||
$bb_cfg['email_change_disabled'] = false; // disable changing email by user
|
||||
|
||||
$bb_cfg['bounce_email'] = "bounce@$domain_name"; // bounce email address
|
||||
$bb_cfg['tech_admin_email'] = "admin@$domain_name"; // email for sending error reports
|
||||
$bb_cfg['abuse_email'] = "abuse@$domain_name";
|
||||
$bb_cfg['adv_email'] = "adv@$domain_name";
|
||||
|
||||
// Bugsnag error reporting
|
||||
$bb_cfg['bugsnag'] = [
|
||||
'enabled' => false,
|
||||
'api_key' => '',
|
||||
];
|
||||
|
||||
// Special users
|
||||
$bb_cfg['dbg_users'] = array(
|
||||
# user_id => 'name',
|
||||
2 => 'admin',
|
||||
);
|
||||
|
||||
$bb_cfg['unlimited_users'] = array(
|
||||
# user_id => 'name',
|
||||
2 => 'admin',
|
||||
);
|
||||
|
||||
$bb_cfg['super_admins'] = array(
|
||||
# user_id => 'name',
|
||||
2 => 'admin',
|
||||
);
|
||||
|
||||
// Check some variable
|
||||
// Magic quotes
|
||||
if (get_magic_quotes_gpc()) {
|
||||
die('Set magic_quotes off');
|
||||
}
|
||||
// JSON
|
||||
if (!function_exists('json_encode')) {
|
||||
die('Json_encode not installed');
|
||||
}
|
||||
|
||||
// Date format
|
||||
$bb_cfg['date_format'] = 'Y-m-d';
|
||||
|
||||
// Subforums
|
||||
$bb_cfg['sf_on_first_page_only'] = true;
|
||||
|
||||
// Forums
|
||||
$bb_cfg['allowed_topics_per_page'] = array(50, 100, 150, 200, 250, 300);
|
||||
|
||||
// Topics
|
||||
$bb_cfg['show_quick_reply'] = true;
|
||||
$bb_cfg['show_rank_text'] = false;
|
||||
$bb_cfg['show_rank_image'] = true;
|
||||
$bb_cfg['show_poster_joined'] = true;
|
||||
$bb_cfg['show_poster_posts'] = true;
|
||||
$bb_cfg['show_poster_from'] = true;
|
||||
$bb_cfg['show_bot_nick'] = false;
|
||||
$bb_cfg['text_buttons'] = false; // replace EDIT, QUOTE... images with text links
|
||||
$bb_cfg['parse_ed2k_links'] = true; // make ed2k links clickable
|
||||
$bb_cfg['post_date_format'] = 'd-M-Y H:i';
|
||||
$bb_cfg['ext_link_new_win'] = true; // open external links in new window
|
||||
|
||||
$bb_cfg['topic_moved_days_keep'] = 7; // remove topic moved links after xx days (or FALSE to disable)
|
||||
|
||||
$bb_cfg['allowed_posts_per_page'] = array(15, 30, 50, 100);
|
||||
$bb_cfg['user_signature_start'] = '<div class="signature"><br />_________________<br />';
|
||||
$bb_cfg['user_signature_end'] = '</div>'; // Это позволит использовать html теги, которые требуют закрытия. Например <table> или <font color>
|
||||
|
||||
// Posts
|
||||
$bb_cfg['use_posts_cache'] = true; // if you switch from ON to OFF, you need to TRUNCATE `bb_posts_html` table
|
||||
$bb_cfg['posts_cache_days_keep'] = 14;
|
||||
$bb_cfg['max_post_length'] = 120000; // bytes
|
||||
$bb_cfg['use_ajax_posts'] = true;
|
||||
|
||||
// Search
|
||||
$bb_cfg['search_engine_type'] = 'mysql'; // none, mysql, sphinx
|
||||
$bb_cfg['sphinx_topic_titles_host'] = '127.0.0.1';
|
||||
$bb_cfg['sphinx_topic_titles_port'] = 3312;
|
||||
$bb_cfg['sphinx_config_path'] = realpath("../install/sphinx/sphinx.conf");
|
||||
$bb_cfg['disable_ft_search_in_posts'] = false; // disable searching in post bodies
|
||||
$bb_cfg['disable_search_for_guest'] = true;
|
||||
$bb_cfg['allow_search_in_bool_mode'] = true;
|
||||
$bb_cfg['max_search_words_per_post'] = 200;
|
||||
$bb_cfg['search_min_word_len'] = 3;
|
||||
$bb_cfg['search_max_word_len'] = 35;
|
||||
$bb_cfg['limit_max_search_results'] = false;
|
||||
$bb_cfg['spam_filter_file_path'] = ''; // BB_PATH .'/misc/spam_filter_words.txt';
|
||||
|
||||
// Posting
|
||||
$bb_cfg['prevent_multiposting'] = true; // replace "reply" with "edit last msg" if user (not admin or mod) is last topic poster
|
||||
$bb_cfg['max_smilies'] = 10; // Максимальное число смайлов в посте (0 - без ограничения)
|
||||
|
||||
// PM
|
||||
$bb_cfg['privmsg_disable'] = false; // отключить систему личных сообщений на форуме
|
||||
$bb_cfg['max_outgoing_pm_cnt'] = 10; // ограничение на кол. одновременных исходящих лс (для замедления рассылки спама)
|
||||
$bb_cfg['max_inbox_privmsgs'] = 200; // максимальное число сообщений в папке входящие
|
||||
$bb_cfg['max_savebox_privmsgs'] = 25; // максимальное число сообщений в папке сохраненные
|
||||
$bb_cfg['max_sentbox_privmsgs'] = 50; // максимальное число сообщений в папке отправленные
|
||||
$bb_cfg['pm_days_keep'] = 180; // время хранения ЛС
|
||||
|
||||
// Actions log
|
||||
$bb_cfg['log_days_keep'] = 90;
|
||||
|
||||
// Users
|
||||
$bb_cfg['color_nick'] = true; // Окраска ников пользователей по user_rank
|
||||
$bb_cfg['user_not_activated_days_keep'] = 7; // "not activated" == "not finished registration"
|
||||
$bb_cfg['user_not_active_days_keep'] = 180; // inactive users but only with no posts
|
||||
|
||||
// Groups
|
||||
$bb_cfg['group_members_per_page'] = 50;
|
||||
|
||||
// Tidy
|
||||
$bb_cfg['tidy_post'] = (!in_array('tidy', get_loaded_extensions(), true)) ? false : true;
|
||||
|
||||
// Misc
|
||||
$bb_cfg['mem_on_start'] = MEM_USAGE ? memory_get_usage() : 0;
|
||||
|
||||
$bb_cfg['translate_dates'] = true; // in displaying time
|
||||
$bb_cfg['use_word_censor'] = true;
|
||||
|
||||
$bb_cfg['last_visit_date_format'] = 'd-M H:i';
|
||||
$bb_cfg['last_post_date_format'] = 'd-M-y H:i';
|
||||
$bb_cfg['poll_max_days'] = 180; // сколько дней с момента создания темы опрос будет активным
|
||||
|
||||
$bb_cfg['allow_change'] = array(
|
||||
'language' => true,
|
||||
'dateformat' => true,
|
||||
);
|
||||
|
||||
$banned_user_agents = array(
|
||||
// Download Master
|
||||
# 'download',
|
||||
# 'master',
|
||||
// Others
|
||||
# 'wget',
|
||||
);
|
||||
|
||||
$bb_cfg['trash_forum_id'] = 0; // (int) 7
|
||||
|
||||
$bb_cfg['first_logon_redirect_url'] = 'index.php';
|
||||
$bb_cfg['terms_and_conditions_url'] = 'terms.php';
|
||||
|
||||
$bb_cfg['user_agreement_url'] = 'info.php?show=user_agreement';
|
||||
$bb_cfg['copyright_holders_url'] = 'info.php?show=copyright_holders';
|
||||
$bb_cfg['advert_url'] = 'info.php?show=advert';
|
||||
|
||||
// Extensions
|
||||
$bb_cfg['file_id_ext'] = array(
|
||||
1 => 'gif',
|
||||
2 => 'gz',
|
||||
3 => 'jpg',
|
||||
4 => 'png',
|
||||
5 => 'rar',
|
||||
6 => 'tar',
|
||||
7 => 'tiff',
|
||||
8 => 'torrent',
|
||||
9 => 'zip',
|
||||
);
|
||||
|
||||
// Attachments
|
||||
$bb_cfg['attach'] = array(
|
||||
'upload_path' => DATA_DIR . '/torrent_files', // путь к директории с torrent файлами
|
||||
'max_size' => 250 * 1024, // размер аватары в байтах
|
||||
);
|
||||
|
||||
$bb_cfg['tor_forums_allowed_ext'] = array('torrent', 'zip', 'rar'); // для разделов с раздачами
|
||||
$bb_cfg['gen_forums_allowed_ext'] = array('zip', 'rar'); // для обычных разделов
|
||||
|
||||
// Avatars
|
||||
$bb_cfg['avatars'] = array(
|
||||
'allowed_ext' => array('gif', 'jpg', 'jpeg', 'png'), // разрешенные форматы файлов
|
||||
'bot_avatar' => '/gallery/bot.gif', // аватара бота
|
||||
'max_size' => 100 * 1024, // размер аватары в байтах
|
||||
'max_height' => 100, // высота аватара в px
|
||||
'max_width' => 100, // ширина аватара в px
|
||||
'no_avatar' => '/gallery/noavatar.png', // дефолтная аватара
|
||||
'upload_path' => BB_PATH . '/data/avatars', // путь к директории с аватарами
|
||||
'up_allowed' => true, // разрешить загрузку аватар
|
||||
);
|
||||
|
||||
// Group avatars
|
||||
$bb_cfg['group_avatars'] = array(
|
||||
'allowed_ext' => array('gif', 'jpg', 'jpeg', 'png'), // разрешенные форматы файлов
|
||||
'max_size' => 300 * 1024, // размер аватары в байтах
|
||||
'max_height' => 300, // высота аватара в px
|
||||
'max_width' => 300, // ширина аватара в px
|
||||
'no_avatar' => '/gallery/noavatar.png', // дефолтная аватара
|
||||
'upload_path' => BB_PATH . '/data/avatars', // путь к директории с аватарами
|
||||
'up_allowed' => true, // разрешить загрузку аватар
|
||||
);
|
||||
|
||||
// Captcha
|
||||
// Get a Google reCAPTCHA API Key: https://www.google.com/recaptcha/admin
|
||||
$bb_cfg['captcha'] = array(
|
||||
'disabled' => false,
|
||||
'public_key' => '', // your public key
|
||||
'secret_key' => '', // your secret key
|
||||
'theme' => 'light', // light or dark
|
||||
);
|
||||
|
||||
// Atom feed
|
||||
$bb_cfg['atom'] = array(
|
||||
'path' => INT_DATA_DIR . '/atom', // without ending slash
|
||||
'url' => './internal_data/atom', // without ending slash
|
||||
);
|
||||
|
||||
// Nofollow
|
||||
$bb_cfg['nofollow'] = array(
|
||||
'disabled' => false,
|
||||
'allowed_url' => array($domain_name), // 'allowed.site', 'www.allowed.site'
|
||||
);
|
||||
|
||||
// Local config
|
||||
if (file_exists(BB_PATH . '/library/config.local.php')) {
|
||||
include_once(BB_PATH . '/library/config.local.php');
|
||||
}
|
||||
|
||||
define('BB_CFG_LOADED', true);
|
||||
|
|
|
@ -113,3 +113,10 @@ define('TOR_DOUBTFUL', 8); // сомнительно
|
|||
define('TOR_CHECKING', 9); // проверяется
|
||||
define('TOR_TMP', 10); // временная
|
||||
define('TOR_PREMOD', 11); // премодерация
|
||||
|
||||
define('CRON_LOG_ENABLED', true); // global ON/OFF
|
||||
define('CRON_FORCE_LOG', false); // always log regardless of job settings
|
||||
define('CRON_DIR', INC_DIR . '/cron/');
|
||||
define('CRON_JOB_DIR', CRON_DIR . 'jobs/');
|
||||
define('CRON_LOG_DIR', 'cron'); // inside LOG_DIR
|
||||
define('CRON_LOG_FILE', 'cron'); // without ext
|
||||
|
|
|
@ -29,6 +29,7 @@ if (!defined('BB_ROOT')) {
|
|||
|
||||
$datastore->enqueue(array(
|
||||
'smile_replacements',
|
||||
'cat_forums',
|
||||
));
|
||||
|
||||
$page_cfg['include_bbcode_js'] = true;
|
||||
|
|
|
@ -1,2 +0,0 @@
|
|||
order allow,deny
|
||||
deny from all
|
|
@ -43,8 +43,7 @@ if ($cron_jobs) {
|
|||
|
||||
foreach ($cron_jobs as $job) {
|
||||
if ($job['disable_board']) {
|
||||
cron_disable_board();
|
||||
sleep(10);
|
||||
TorrentPier\Helpers\CronHelper::disableBoard();
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
@ -52,7 +51,7 @@ if ($cron_jobs) {
|
|||
require(CRON_DIR . 'cron_run.php');
|
||||
|
||||
// Update cron_last_check
|
||||
bb_update_config(array('cron_last_check' => (TIMENOW + 10)));
|
||||
bb_update_config(array('cron_last_check' => TIMENOW + 10));
|
||||
} else {
|
||||
bb_log(date('H:i:s - ') . getmypid() . ' --x- no active jobs found ----------------------------------------------' . LOG_LF, CRON_LOG_DIR . '/cron_check');
|
||||
}
|
||||
|
|
|
@ -1,82 +0,0 @@
|
|||
<?php
|
||||
/**
|
||||
* MIT License
|
||||
*
|
||||
* Copyright (c) 2005-2017 TorrentPier
|
||||
*
|
||||
* Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
* of this software and associated documentation files (the "Software"), to deal
|
||||
* in the Software without restriction, including without limitation the rights
|
||||
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
* copies of the Software, and to permit persons to whom the Software is
|
||||
* furnished to do so, subject to the following conditions:
|
||||
*
|
||||
* The above copyright notice and this permission notice shall be included in all
|
||||
* copies or substantial portions of the Software.
|
||||
*
|
||||
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||
* SOFTWARE.
|
||||
*/
|
||||
|
||||
if (!defined('BB_ROOT')) {
|
||||
die(basename(__FILE__));
|
||||
}
|
||||
|
||||
//
|
||||
// Functions
|
||||
//
|
||||
function cron_get_file_lock()
|
||||
{
|
||||
$lock_obtained = false;
|
||||
|
||||
if (file_exists(CRON_ALLOWED)) {
|
||||
# bb_log(date('H:i:s - ') . getmypid() .' -x-- FILE-LOCK try'. LOG_LF, CRON_LOG_DIR .'/cron_check');
|
||||
|
||||
$lock_obtained = @rename(CRON_ALLOWED, CRON_RUNNING);
|
||||
} elseif (file_exists(CRON_RUNNING)) {
|
||||
cron_release_deadlock();
|
||||
} elseif (!file_exists(CRON_ALLOWED) && !file_exists(CRON_RUNNING)) {
|
||||
file_write('', CRON_ALLOWED);
|
||||
$lock_obtained = @rename(CRON_ALLOWED, CRON_RUNNING);
|
||||
}
|
||||
|
||||
return $lock_obtained;
|
||||
}
|
||||
|
||||
function cron_track_running($mode)
|
||||
{
|
||||
@define('CRON_STARTMARK', TRIGGERS_DIR . '/cron_started_at_' . date('Y-m-d_H-i-s') . '_by_pid_' . getmypid());
|
||||
|
||||
if ($mode == 'start') {
|
||||
cron_touch_lock_file(CRON_RUNNING);
|
||||
file_write('', CRON_STARTMARK);
|
||||
} elseif ($mode == 'end') {
|
||||
@unlink(CRON_STARTMARK);
|
||||
}
|
||||
}
|
||||
|
||||
//
|
||||
// Run cron
|
||||
//
|
||||
if (cron_get_file_lock()) {
|
||||
ignore_user_abort(true);
|
||||
register_shutdown_function('cron_release_file_lock');
|
||||
register_shutdown_function('cron_enable_board');
|
||||
|
||||
# bb_log(date('H:i:s - ') . getmypid() .' --x- FILE-LOCK OBTAINED ###############'. LOG_LF, CRON_LOG_DIR .'/cron_check');
|
||||
|
||||
cron_track_running('start');
|
||||
|
||||
require(CRON_DIR . 'cron_check.php');
|
||||
|
||||
cron_track_running('end');
|
||||
}
|
||||
|
||||
if (defined('IN_CRON')) {
|
||||
bb_log(date('H:i:s - ') . getmypid() . ' --x- ALL jobs FINISHED *************************************************' . LOG_LF, CRON_LOG_DIR . '/cron_check');
|
||||
}
|
|
@ -132,8 +132,6 @@ foreach ($cron_jobs as $job) {
|
|||
LIMIT 1
|
||||
");
|
||||
|
||||
sleep(1);
|
||||
|
||||
if (utime() - TIMESTART > 600) {
|
||||
return; // чтобы daily скрипты не блокировали надолго interval'ные
|
||||
}
|
||||
|
|
|
@ -1,2 +0,0 @@
|
|||
order allow,deny
|
||||
deny from all
|
|
@ -50,12 +50,11 @@ if ($poll_max_days = (int)$bb_cfg['poll_max_days']) {
|
|||
WHERE topic_id BETWEEN $start_id AND $end_id
|
||||
AND vote_dt < DATE_SUB(NOW(), INTERVAL $poll_max_days DAY)
|
||||
");
|
||||
|
||||
if ($end_id > $finish_id) {
|
||||
break;
|
||||
}
|
||||
if (!($start_id % ($per_cycle * 10))) {
|
||||
sleep(1);
|
||||
}
|
||||
|
||||
$start_id += $per_cycle;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -70,6 +70,4 @@ while (true) {
|
|||
if (count($prune_users) < $users_per_cycle) {
|
||||
break;
|
||||
}
|
||||
|
||||
sleep(3);
|
||||
}
|
||||
|
|
|
@ -59,8 +59,6 @@ DB()->query("
|
|||
DB()->unlock();
|
||||
// ############################ Tables UNLOCKED ##############################
|
||||
|
||||
sleep(5);
|
||||
|
||||
// Delete staled sessions
|
||||
DB()->query("
|
||||
DELETE s
|
||||
|
|
|
@ -43,7 +43,7 @@ DB()->query("CREATE TABLE " . NEW_BB_BT_LAST_USERSTAT . " LIKE " . BB_BT_LAST_US
|
|||
DB()->expect_slow_query(600);
|
||||
|
||||
// Update dlstat (part 1)
|
||||
if ($tr_cfg['update_dlstat']) {
|
||||
if ($bb_cfg['tracker']['update_dlstat']) {
|
||||
// ############################ Tables LOCKED ################################
|
||||
DB()->lock(array(
|
||||
BB_BT_TRACKER,
|
||||
|
@ -80,16 +80,16 @@ DB()->query("
|
|||
");
|
||||
|
||||
// Clean peers table
|
||||
if ($tr_cfg['autoclean']) {
|
||||
if ($bb_cfg['tracker']['autoclean']) {
|
||||
$announce_interval = max((int)$bb_cfg['announce_interval'], 60);
|
||||
$expire_factor = max((float)$tr_cfg['expire_factor'], 1);
|
||||
$expire_factor = max((float)$bb_cfg['tracker']['expire_factor'], 1);
|
||||
$peer_expire_time = TIMENOW - floor($announce_interval * $expire_factor);
|
||||
|
||||
DB()->query("DELETE FROM " . BB_BT_TRACKER . " WHERE update_time < $peer_expire_time");
|
||||
}
|
||||
|
||||
// Update dlstat (part 2)
|
||||
if ($tr_cfg['update_dlstat']) {
|
||||
if ($bb_cfg['tracker']['update_dlstat']) {
|
||||
// Set "only 1 seeder" bonus
|
||||
DB()->query("
|
||||
UPDATE
|
||||
|
|
|
@ -97,10 +97,6 @@ while (true) {
|
|||
break;
|
||||
}
|
||||
|
||||
if (!($start_id % ($per_cycle * 10))) {
|
||||
sleep(1);
|
||||
}
|
||||
|
||||
$start_id += $per_cycle;
|
||||
}
|
||||
|
||||
|
|
|
@ -1,2 +0,0 @@
|
|||
order allow,deny
|
||||
deny from all
|
|
@ -1853,16 +1853,16 @@ function get_title_match_topics($title_match_sql, array $forum_ids = array())
|
|||
{
|
||||
global $bb_cfg, $sphinx, $userdata, $title_match, $lang;
|
||||
|
||||
$where_ids = array();
|
||||
$where_ids = [];
|
||||
if ($forum_ids) {
|
||||
$forum_ids = array_diff($forum_ids, array(0 => 0));
|
||||
$forum_ids = array_diff($forum_ids, [0 => 0]);
|
||||
}
|
||||
$title_match_sql = encode_text_match($title_match_sql);
|
||||
|
||||
if ($bb_cfg['search_engine_type'] == 'sphinx') {
|
||||
$sphinx = init_sphinx();
|
||||
|
||||
$where = ($title_match) ? 'topics' : 'posts';
|
||||
$where = $title_match ? 'topics' : 'posts';
|
||||
|
||||
$sphinx->setServer($bb_cfg['sphinx_topic_titles_host'], $bb_cfg['sphinx_topic_titles_port']);
|
||||
if ($forum_ids) {
|
||||
|
@ -1924,12 +1924,12 @@ function decode_text_match($txt)
|
|||
|
||||
function pad_with_space($str)
|
||||
{
|
||||
return ($str) ? " $str " : $str;
|
||||
return $str ? " $str " : $str;
|
||||
}
|
||||
|
||||
function create_magnet($infohash, $auth_key, $logged_in)
|
||||
{
|
||||
global $bb_cfg, $_GET, $userdata, $images;
|
||||
global $bb_cfg, $_GET, $images;
|
||||
|
||||
$passkey_url = ((!$logged_in || isset($_GET['no_passkey'])) && $bb_cfg['bt_tor_browse_only_reg']) ? '' : "?{$bb_cfg['passkey_key']}=$auth_key";
|
||||
return '<a href="magnet:?xt=urn:btih:' . bin2hex($infohash) . '&tr=' . urlencode($bb_cfg['bt_announce_url'] . $passkey_url) . '"><img src="' . $images['icon_magnet'] . '" width="12" height="12" border="0" /></a>';
|
||||
|
@ -1940,9 +1940,9 @@ function set_die_append_msg($forum_id = null, $topic_id = null, $group_id = null
|
|||
global $lang, $template;
|
||||
|
||||
$msg = '';
|
||||
$msg .= ($topic_id) ? '<p class="mrg_10"><a href="' . TOPIC_URL . $topic_id . '">' . $lang['TOPIC_RETURN'] . '</a></p>' : '';
|
||||
$msg .= ($forum_id) ? '<p class="mrg_10"><a href="' . FORUM_URL . $forum_id . '">' . $lang['FORUM_RETURN'] . '</a></p>' : '';
|
||||
$msg .= ($group_id) ? '<p class="mrg_10"><a href="' . GROUP_URL . $group_id . '">' . $lang['GROUP_RETURN'] . '</a></p>' : '';
|
||||
$msg .= $topic_id ? '<p class="mrg_10"><a href="' . TOPIC_URL . $topic_id . '">' . $lang['TOPIC_RETURN'] . '</a></p>' : '';
|
||||
$msg .= $forum_id ? '<p class="mrg_10"><a href="' . FORUM_URL . $forum_id . '">' . $lang['FORUM_RETURN'] . '</a></p>' : '';
|
||||
$msg .= $group_id ? '<p class="mrg_10"><a href="' . GROUP_URL . $group_id . '">' . $lang['GROUP_RETURN'] . '</a></p>' : '';
|
||||
$msg .= '<p class="mrg_10"><a href="index.php">' . $lang['INDEX_RETURN'] . '</a></p>';
|
||||
$template->assign_var('BB_DIE_APPEND_MSG', $msg);
|
||||
}
|
||||
|
@ -2052,18 +2052,18 @@ function gender_image($gender)
|
|||
if (!$bb_cfg['gender']) {
|
||||
$user_gender = '';
|
||||
return $user_gender;
|
||||
} else {
|
||||
switch ($gender) {
|
||||
case MALE:
|
||||
$user_gender = '<img src="' . $images['icon_male'] . '" alt="' . $lang['GENDER_SELECT'][MALE] . '" title="' . $lang['GENDER_SELECT'][MALE] . '" border="0" />';
|
||||
break;
|
||||
case FEMALE:
|
||||
$user_gender = '<img src="' . $images['icon_female'] . '" alt="' . $lang['GENDER_SELECT'][FEMALE] . '" title="' . $lang['GENDER_SELECT'][FEMALE] . '" border="0" />';
|
||||
break;
|
||||
default:
|
||||
$user_gender = '<img src="' . $images['icon_nogender'] . '" alt="' . $lang['GENDER_SELECT'][NOGENDER] . '" title="' . $lang['GENDER_SELECT'][NOGENDER] . '" border="0" />';
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
switch ($gender) {
|
||||
case MALE:
|
||||
$user_gender = '<img src="' . $images['icon_male'] . '" alt="' . $lang['GENDER_SELECT'][MALE] . '" title="' . $lang['GENDER_SELECT'][MALE] . '" border="0" />';
|
||||
break;
|
||||
case FEMALE:
|
||||
$user_gender = '<img src="' . $images['icon_female'] . '" alt="' . $lang['GENDER_SELECT'][FEMALE] . '" title="' . $lang['GENDER_SELECT'][FEMALE] . '" border="0" />';
|
||||
break;
|
||||
default:
|
||||
$user_gender = '<img src="' . $images['icon_nogender'] . '" alt="' . $lang['GENDER_SELECT'][NOGENDER] . '" title="' . $lang['GENDER_SELECT'][NOGENDER] . '" border="0" />';
|
||||
break;
|
||||
}
|
||||
|
||||
return $user_gender;
|
||||
|
@ -2071,23 +2071,23 @@ function gender_image($gender)
|
|||
|
||||
function is_gold($type)
|
||||
{
|
||||
global $lang, $tr_cfg;
|
||||
global $lang, $bb_cfg;
|
||||
|
||||
if (!$tr_cfg['gold_silver_enabled']) {
|
||||
if (!$bb_cfg['tracker']['gold_silver_enabled']) {
|
||||
$is_gold = '';
|
||||
return $is_gold;
|
||||
} else {
|
||||
switch ($type) {
|
||||
case TOR_TYPE_GOLD:
|
||||
$is_gold = '<img src="styles/images/tor_gold.gif" width="16" height="15" title="' . $lang['GOLD'] . '" /> ';
|
||||
break;
|
||||
case TOR_TYPE_SILVER:
|
||||
$is_gold = '<img src="styles/images/tor_silver.gif" width="16" height="15" title="' . $lang['SILVER'] . '" /> ';
|
||||
break;
|
||||
default:
|
||||
$is_gold = '';
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
switch ($type) {
|
||||
case TOR_TYPE_GOLD:
|
||||
$is_gold = '<img src="styles/images/tor_gold.gif" width="16" height="15" title="' . $lang['GOLD'] . '" /> ';
|
||||
break;
|
||||
case TOR_TYPE_SILVER:
|
||||
$is_gold = '<img src="styles/images/tor_silver.gif" width="16" height="15" title="' . $lang['SILVER'] . '" /> ';
|
||||
break;
|
||||
default:
|
||||
$is_gold = '';
|
||||
break;
|
||||
}
|
||||
|
||||
return $is_gold;
|
||||
|
|
|
@ -25,7 +25,7 @@
|
|||
|
||||
function run_jobs($jobs)
|
||||
{
|
||||
global $bb_cfg, $tr_cfg, $datastore;
|
||||
global $bb_cfg, $datastore;
|
||||
|
||||
define('IN_CRON', true);
|
||||
|
||||
|
@ -62,7 +62,7 @@ function run_jobs($jobs)
|
|||
END
|
||||
WHERE cron_id IN ($jobs)
|
||||
");
|
||||
sleep(3);
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
|
|
|
@ -239,7 +239,7 @@ function change_tor_type($attach_id, $tor_status_gold)
|
|||
|
||||
function tracker_register($attach_id, $mode = '', $tor_status = TOR_NOT_APPROVED, $reg_time = TIMENOW)
|
||||
{
|
||||
global $bb_cfg, $lang, $reg_mode, $tr_cfg;
|
||||
global $bb_cfg, $lang, $reg_mode;
|
||||
|
||||
$attach_id = (int)$attach_id;
|
||||
$reg_mode = $mode;
|
||||
|
@ -370,7 +370,7 @@ function tracker_register($attach_id, $mode = '', $tor_status = TOR_NOT_APPROVED
|
|||
}
|
||||
}
|
||||
|
||||
if ($tr_cfg['tor_topic_up']) {
|
||||
if ($bb_cfg['tracker']['tor_topic_up']) {
|
||||
DB()->query("UPDATE " . BB_TOPICS . " SET topic_last_post_time = GREATEST(topic_last_post_time, " . (TIMENOW - 3 * 86400) . ") WHERE topic_id = $topic_id LIMIT 1");
|
||||
}
|
||||
|
||||
|
@ -385,7 +385,7 @@ function tracker_register($attach_id, $mode = '', $tor_status = TOR_NOT_APPROVED
|
|||
|
||||
function send_torrent_with_passkey($filename)
|
||||
{
|
||||
global $attachment, $auth_pages, $userdata, $bb_cfg, $tr_cfg, $lang;
|
||||
global $attachment, $auth_pages, $userdata, $bb_cfg, $lang;
|
||||
|
||||
if (!$bb_cfg['bt_add_auth_key'] || $attachment['extension'] !== TORRENT_EXT || !$size = @filesize($filename)) {
|
||||
return;
|
||||
|
@ -477,15 +477,15 @@ function send_torrent_with_passkey($filename)
|
|||
}
|
||||
|
||||
// Add retracker
|
||||
if (isset($tr_cfg['retracker']) && $tr_cfg['retracker']) {
|
||||
if (isset($bb_cfg['tracker']['retracker']) && $bb_cfg['tracker']['retracker']) {
|
||||
if (bf($userdata['user_opt'], 'user_opt', 'user_retracker') || IS_GUEST) {
|
||||
if (!isset($tor['announce-list'])) {
|
||||
$tor['announce-list'] = array(
|
||||
array($announce),
|
||||
array($tr_cfg['retracker_host'])
|
||||
array($bb_cfg['tracker']['retracker_host'])
|
||||
);
|
||||
} else {
|
||||
$tor['announce-list'] = array_merge($tor['announce-list'], array(array($tr_cfg['retracker_host'])));
|
||||
$tor['announce-list'] = array_merge($tor['announce-list'], array(array($bb_cfg['tracker']['retracker_host'])));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -505,7 +505,7 @@ function send_torrent_with_passkey($filename)
|
|||
|
||||
// Send torrent
|
||||
$output = \Rych\Bencode\Bencode::encode($tor);
|
||||
$dl_fname = ($bb_cfg['torrent_name_style'] ? '[' . $bb_cfg['server_name'] . '].t' . $topic_id . '.torrent' : clean_filename(basename($attachment['real_filename'])));
|
||||
$dl_fname = '[' . $bb_cfg['server_name'] . '].t' . $topic_id . '.torrent';
|
||||
|
||||
if (!empty($_COOKIE['explain'])) {
|
||||
$out = "attach path: $filename<br /><br />";
|
||||
|
@ -632,25 +632,20 @@ function ocelot_send_request($get, $max_attempts = 1, &$err = false)
|
|||
global $bb_cfg;
|
||||
|
||||
$header = "GET /$get HTTP/1.1\r\nConnection: Close\r\n\r\n";
|
||||
$attempts = $sleep = $success = $response = 0;
|
||||
$attempts = $success = $response = 0;
|
||||
$start_time = microtime(true);
|
||||
|
||||
while (!$success && $attempts++ < $max_attempts) {
|
||||
if ($sleep) {
|
||||
sleep($sleep);
|
||||
}
|
||||
|
||||
// Send request
|
||||
$file = fsockopen($bb_cfg['ocelot']['host'], $bb_cfg['ocelot']['port'], $error_num, $error_string);
|
||||
if ($file) {
|
||||
if (fwrite($file, $header) === false) {
|
||||
$err = "Failed to fwrite()";
|
||||
$sleep = 3;
|
||||
continue;
|
||||
}
|
||||
} else {
|
||||
$err = "Failed to fsockopen() - $error_num - $error_string";
|
||||
$sleep = 6;
|
||||
continue;
|
||||
}
|
||||
|
||||
|
|
|
@ -26,17 +26,17 @@
|
|||
if (!defined('BB_ROOT')) {
|
||||
die(basename(__FILE__));
|
||||
}
|
||||
|
||||
/**
|
||||
* Check PHP version
|
||||
*/
|
||||
if (version_compare(PHP_VERSION, '5.5', '<')) {
|
||||
die('TorrentPier requires PHP version 5.5+. Your PHP version ' . PHP_VERSION);
|
||||
}
|
||||
if (!defined('BB_SCRIPT')) {
|
||||
define('BB_SCRIPT', 'undefined');
|
||||
}
|
||||
if (!defined('BB_CFG_LOADED')) {
|
||||
trigger_error('File config.php not loaded', E_USER_ERROR);
|
||||
}
|
||||
|
||||
// Define some basic configuration arrays
|
||||
/**
|
||||
* Define some basic configuration arrays
|
||||
*/
|
||||
unset($stopwords, $synonyms_match, $synonyms_replace);
|
||||
$userdata = $theme = $images = $lang = $nav_links = $bf = $attach_config = [];
|
||||
$gen_simple_header = false;
|
||||
|
@ -75,7 +75,9 @@ function compress_output($contents)
|
|||
return $contents;
|
||||
}
|
||||
|
||||
// Start output buffering
|
||||
/**
|
||||
* Start output buffering
|
||||
*/
|
||||
if (!defined('IN_AJAX')) {
|
||||
ob_start('send_page');
|
||||
}
|
||||
|
@ -108,7 +110,9 @@ function bb_setcookie($name, $val, $lifetime = COOKIE_PERSIST, $httponly = false
|
|||
return setcookie($name, $val, $lifetime, $bb_cfg['script_path'], $bb_cfg['cookie_domain'], $bb_cfg['cookie_secure'], $httponly);
|
||||
}
|
||||
|
||||
// Debug options
|
||||
/**
|
||||
* Debug options
|
||||
*/
|
||||
if (DBG_USER) {
|
||||
ini_set('error_reporting', E_ALL);
|
||||
ini_set('display_errors', 1);
|
||||
|
@ -213,62 +217,6 @@ define('POLL_FINISHED', 2);
|
|||
// Group avatars
|
||||
define('GROUP_AVATAR_MASK', 999000);
|
||||
|
||||
// Иконки статусов
|
||||
$bb_cfg['tor_icons'] = [
|
||||
TOR_NOT_APPROVED => '<span class="tor-icon tor-not-approved">*</span>',
|
||||
TOR_CLOSED => '<span class="tor-icon tor-closed">x</span>',
|
||||
TOR_APPROVED => '<span class="tor-icon tor-approved">√</span>',
|
||||
TOR_NEED_EDIT => '<span class="tor-icon tor-need-edit">?</span>',
|
||||
TOR_NO_DESC => '<span class="tor-icon tor-no-desc">!</span>',
|
||||
TOR_DUP => '<span class="tor-icon tor-dup">D</span>',
|
||||
TOR_CLOSED_CPHOLD => '<span class="tor-icon tor-closed-cp">©</span>',
|
||||
TOR_CONSUMED => '<span class="tor-icon tor-consumed">∑</span>',
|
||||
TOR_DOUBTFUL => '<span class="tor-icon tor-approved">#</span>',
|
||||
TOR_CHECKING => '<span class="tor-icon tor-checking">%</span>',
|
||||
TOR_TMP => '<span class="tor-icon tor-dup">T</span>',
|
||||
TOR_PREMOD => '<span class="tor-icon tor-dup">∏</span>',
|
||||
];
|
||||
|
||||
// Запрет на скачивание
|
||||
$bb_cfg['tor_frozen'] = [
|
||||
TOR_CHECKING => true,
|
||||
TOR_CLOSED => true,
|
||||
TOR_CLOSED_CPHOLD => true,
|
||||
TOR_CONSUMED => true,
|
||||
TOR_DUP => true,
|
||||
TOR_NO_DESC => true,
|
||||
TOR_PREMOD => true,
|
||||
];
|
||||
|
||||
// Разрешение на скачку автором, если закрыто на скачивание.
|
||||
$bb_cfg['tor_frozen_author_download'] = [
|
||||
TOR_CHECKING => true,
|
||||
TOR_NO_DESC => true,
|
||||
TOR_PREMOD => true,
|
||||
];
|
||||
|
||||
// Запрет на редактирование головного сообщения
|
||||
$bb_cfg['tor_cannot_edit'] = [
|
||||
TOR_CHECKING => true,
|
||||
TOR_CLOSED => true,
|
||||
TOR_CONSUMED => true,
|
||||
TOR_DUP => true,
|
||||
];
|
||||
|
||||
// Запрет на создание новых раздач если стоит статус недооформлено/неоформлено/сомнительно
|
||||
$bb_cfg['tor_cannot_new'] = [TOR_NEED_EDIT, TOR_NO_DESC, TOR_DOUBTFUL];
|
||||
|
||||
// Разрешение на ответ релизера, если раздача исправлена.
|
||||
$bb_cfg['tor_reply'] = [TOR_NEED_EDIT, TOR_NO_DESC, TOR_DOUBTFUL];
|
||||
|
||||
// Если такой статус у релиза, то статистика раздачи будет скрыта
|
||||
$bb_cfg['tor_no_tor_act'] = [
|
||||
TOR_CLOSED => true,
|
||||
TOR_DUP => true,
|
||||
TOR_CLOSED_CPHOLD => true,
|
||||
TOR_CONSUMED => true,
|
||||
];
|
||||
|
||||
$dl_link_css = [
|
||||
DL_STATUS_RELEASER => 'genmed',
|
||||
DL_STATUS_WILL => 'dlWill',
|
||||
|
@ -386,18 +334,6 @@ define('REQUEST', 4);
|
|||
define('CHBOX', 5);
|
||||
define('SELECT', 6);
|
||||
|
||||
if (!empty($banned_user_agents)) {
|
||||
foreach ($banned_user_agents as $agent) {
|
||||
if (false !== strpos(USER_AGENT, $agent)) {
|
||||
$filename = 'Download files by using browser';
|
||||
$output = '@';
|
||||
header('Content-Type: text/plain');
|
||||
header('Content-Disposition: attachment; filename="' . $filename . '"');
|
||||
die($output);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Functions
|
||||
function send_no_cache_headers()
|
||||
{
|
||||
|
@ -466,58 +402,68 @@ function make_url($path = '')
|
|||
return FULL_URL . preg_replace('#^\/?(.*?)\/?$#', '\1', $path);
|
||||
}
|
||||
|
||||
/**
|
||||
* Functions
|
||||
*/
|
||||
require INC_DIR . '/functions.php';
|
||||
require INC_DIR . '/sessions.php';
|
||||
|
||||
$bb_cfg = array_merge(bb_get_config(BB_CONFIG), $bb_cfg);
|
||||
|
||||
$user = new TorrentPier\Legacy\Common\User();
|
||||
$userdata =& $user->data;
|
||||
|
||||
if (DBG_USER) {
|
||||
require INC_DIR . '/functions_dev.php';
|
||||
}
|
||||
|
||||
$html = new TorrentPier\Legacy\Common\Html();
|
||||
$bb_cfg = array_merge(bb_get_config(BB_CONFIG), $bb_cfg);
|
||||
|
||||
$log_action = new TorrentPier\Legacy\LogAction();
|
||||
$html = new TorrentPier\Legacy\Common\Html();
|
||||
$user = new TorrentPier\Legacy\Common\User();
|
||||
|
||||
// TODO temporarily 'cat_forums' always enqueued
|
||||
$datastore->enqueue(array('cat_forums'));
|
||||
$userdata =& $user->data;
|
||||
|
||||
// Дата старта вашего проекта
|
||||
if (!$bb_cfg['board_startdate']) {
|
||||
bb_update_config(array('board_startdate' => TIMENOW));
|
||||
DB()->query("UPDATE " . BB_USERS . " SET user_regdate = " . TIMENOW . " WHERE user_id IN(2, " . EXCLUDED_USERS . ")");
|
||||
}
|
||||
|
||||
// Cron
|
||||
/**
|
||||
* Cron
|
||||
*/
|
||||
if ((empty($_POST) && !defined('IN_ADMIN') && !defined('IN_AJAX') && !file_exists(CRON_RUNNING) && ($bb_cfg['cron_enabled'] || defined('START_CRON'))) || defined('FORCE_CRON')) {
|
||||
if (TIMENOW - $bb_cfg['cron_last_check'] > $bb_cfg['cron_check_interval']) {
|
||||
// Update cron_last_check
|
||||
bb_update_config(array('cron_last_check' => (TIMENOW + 10)));
|
||||
|
||||
define('CRON_LOG_ENABLED', true); // global ON/OFF
|
||||
define('CRON_FORCE_LOG', false); // always log regardless of job settings
|
||||
|
||||
define('CRON_DIR', INC_DIR . '/cron/');
|
||||
define('CRON_JOB_DIR', CRON_DIR . 'jobs/');
|
||||
define('CRON_LOG_DIR', 'cron'); // inside LOG_DIR
|
||||
define('CRON_LOG_FILE', 'cron'); // without ext
|
||||
|
||||
/** Update cron_last_check */
|
||||
bb_update_config(['cron_last_check' => TIMENOW + 10]);
|
||||
bb_log(date('H:i:s - ') . getmypid() . ' -x-- DB-LOCK try' . LOG_LF, CRON_LOG_DIR . '/cron_check');
|
||||
|
||||
if (DB()->get_lock('cron', 1)) {
|
||||
bb_log(date('H:i:s - ') . getmypid() . ' --x- DB-LOCK OBTAINED !!!!!!!!!!!!!!!!!' . LOG_LF, CRON_LOG_DIR . '/cron_check');
|
||||
|
||||
sleep(2);
|
||||
require(CRON_DIR . 'cron_init.php');
|
||||
/** Run cron */
|
||||
if (TorrentPier\Helpers\CronHelper::hasFileLock()) {
|
||||
/** снятие файловой блокировки */
|
||||
register_shutdown_function(function () {
|
||||
TorrentPier\Helpers\CronHelper::releaseLockFile();
|
||||
});
|
||||
|
||||
/** разблокировка форума */
|
||||
register_shutdown_function(function () {
|
||||
TorrentPier\Helpers\CronHelper::enableBoard();
|
||||
});
|
||||
|
||||
TorrentPier\Helpers\CronHelper::trackRunning('start');
|
||||
|
||||
require(CRON_DIR . 'cron_check.php');
|
||||
|
||||
TorrentPier\Helpers\CronHelper::trackRunning('end');
|
||||
}
|
||||
|
||||
if (defined('IN_CRON')) {
|
||||
bb_log(date('H:i:s - ') . getmypid() . ' --x- ALL jobs FINISHED *************************************************' . LOG_LF, CRON_LOG_DIR . '/cron_check');
|
||||
}
|
||||
|
||||
DB()->release_lock('cron');
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Exit if board is disabled via ON/OFF trigger or by admin
|
||||
/**
|
||||
* Exit if board is disabled via trigger
|
||||
*/
|
||||
if (($bb_cfg['board_disable'] || file_exists(BB_DISABLED)) && !defined('IN_ADMIN') && !defined('IN_AJAX') && !defined('IN_LOGIN')) {
|
||||
header('HTTP/1.0 503 Service Unavailable');
|
||||
if ($bb_cfg['board_disable']) {
|
||||
|
@ -526,58 +472,8 @@ if (($bb_cfg['board_disable'] || file_exists(BB_DISABLED)) && !defined('IN_ADMIN
|
|||
bb_die('BOARD_DISABLE');
|
||||
} elseif (file_exists(BB_DISABLED)) {
|
||||
// trigger lock
|
||||
cron_release_deadlock();
|
||||
TorrentPier\Helpers\CronHelper::releaseDeadlock();
|
||||
send_no_cache_headers();
|
||||
bb_die('BOARD_DISABLE_CRON');
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Снятие блокировки крона
|
||||
*/
|
||||
function cron_release_deadlock()
|
||||
{
|
||||
if (file_exists(CRON_RUNNING)) {
|
||||
if (TIMENOW - filemtime(CRON_RUNNING) > 2400) {
|
||||
cron_enable_board();
|
||||
cron_release_file_lock();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Блокировка крона
|
||||
*/
|
||||
function cron_release_file_lock()
|
||||
{
|
||||
rename(CRON_RUNNING, CRON_ALLOWED);
|
||||
cron_touch_lock_file(CRON_ALLOWED);
|
||||
}
|
||||
|
||||
/**
|
||||
* @param $lock_file
|
||||
*/
|
||||
function cron_touch_lock_file($lock_file)
|
||||
{
|
||||
file_write(make_rand_str(20), $lock_file, 0, true, true);
|
||||
}
|
||||
|
||||
/**
|
||||
* Включение форума (при блокировке крона)
|
||||
*/
|
||||
function cron_enable_board()
|
||||
{
|
||||
if (file_exists(BB_DISABLED)) {
|
||||
rename(BB_DISABLED, BB_ENABLED);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Отключение форума (при блокировке крона)
|
||||
*/
|
||||
function cron_disable_board()
|
||||
{
|
||||
if (file_exists(BB_ENABLED)) {
|
||||
rename(BB_ENABLED, BB_DISABLED);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -183,8 +183,8 @@ $template->assign_vars(array(
|
|||
'U_TERMS' => $bb_cfg['terms_and_conditions_url'],
|
||||
'U_TRACKER' => "tracker.php",
|
||||
|
||||
'SHOW_SIDEBAR1' => (!empty($page_cfg['show_sidebar1'][BB_SCRIPT]) || $bb_cfg['show_sidebar1_on_every_page']),
|
||||
'SHOW_SIDEBAR2' => (!empty($page_cfg['show_sidebar2'][BB_SCRIPT]) || $bb_cfg['show_sidebar2_on_every_page']),
|
||||
'SHOW_SIDEBAR1' => !empty($bb_cfg['page']['show_sidebar1'][BB_SCRIPT]) || $bb_cfg['show_sidebar1_on_every_page'],
|
||||
'SHOW_SIDEBAR2' => !empty($bb_cfg['page']['show_sidebar2'][BB_SCRIPT]) || $bb_cfg['show_sidebar2_on_every_page'],
|
||||
|
||||
'HTML_AGREEMENT' => LANG_DIR . 'html/user_agreement.html',
|
||||
'HTML_COPYRIGHT' => LANG_DIR . 'html/copyright_holders.html',
|
||||
|
@ -226,7 +226,7 @@ $template->assign_vars(array(
|
|||
'U_WATCHED_TOPICS' => "profile.php?mode=watch",
|
||||
));
|
||||
|
||||
if (!empty($page_cfg['show_torhelp'][BB_SCRIPT]) && !empty($userdata['torhelp'])) {
|
||||
if (!empty($bb_cfg['page']['show_torhelp'][BB_SCRIPT]) && !empty($userdata['torhelp'])) {
|
||||
$ignore_time = !empty($_COOKIE['torhelp']) ? (int)$_COOKIE['torhelp'] : 0;
|
||||
|
||||
if (TIMENOW > $ignore_time) {
|
||||
|
|
|
@ -1,2 +0,0 @@
|
|||
order allow,deny
|
||||
deny from all
|
|
@ -31,6 +31,7 @@ require INC_DIR . '/bbcode.php';
|
|||
|
||||
$datastore->enqueue(array(
|
||||
'ranks',
|
||||
'cat_forums',
|
||||
));
|
||||
|
||||
if (empty($_GET[POST_USERS_URL]) || $_GET[POST_USERS_URL] == GUEST_UID) {
|
||||
|
|
|
@ -2278,7 +2278,7 @@ $lang['TRACKER_CFG_TITLE'] = 'Tracker';
|
|||
$lang['FORUM_CFG_TITLE'] = 'Forum instellings';
|
||||
$lang['TRACKER_SETTINGS'] = 'Tracker instellings';
|
||||
|
||||
$lang['CHANGES_DISABLED'] = 'Veranderinge gedeaktiveer (sien <b>$tr_cfg</b> in config.php)';
|
||||
$lang['CHANGES_DISABLED'] = 'Veranderinge gedeaktiveer (sien <b>$bb_cfg[\'tracker\']</b> in config.php)';
|
||||
|
||||
$lang['OFF_TRACKER'] = 'Deaktiveer spoorsnyer';
|
||||
$lang['OFF_REASON'] = 'Deaktiveer rede';
|
||||
|
|
|
@ -2278,7 +2278,7 @@ $lang['TRACKER_CFG_TITLE'] = 'تعقب';
|
|||
$lang['FORUM_CFG_TITLE'] = 'المنتدى إعدادات';
|
||||
$lang['TRACKER_SETTINGS'] = 'تعقب الإعدادات';
|
||||
|
||||
$lang['CHANGES_DISABLED'] = 'التغييرات المعوقين (انظر <b>$tr_cfg</b> في config.php)';
|
||||
$lang['CHANGES_DISABLED'] = 'التغييرات المعوقين (انظر <b>$bb_cfg[\'tracker\']</b> في config.php)';
|
||||
|
||||
$lang['OFF_TRACKER'] = 'تعطيل تعقب';
|
||||
$lang['OFF_REASON'] = 'تعطيل السبب';
|
||||
|
|
|
@ -2278,7 +2278,7 @@ $lang['TRACKER_CFG_TITLE'] = 'Tracker';
|
|||
$lang['FORUM_CFG_TITLE'] = 'Parametrlər forum';
|
||||
$lang['TRACKER_SETTINGS'] = 'Parametrlər tracker';
|
||||
|
||||
$lang['CHANGES_DISABLED'] = 'Dəyişikliklər əlil (bax <b>$tr_cfg</b> bu config.php)';
|
||||
$lang['CHANGES_DISABLED'] = 'Dəyişikliklər əlil (bax <b>$bb_cfg[\'tracker\']</b> bu config.php)';
|
||||
|
||||
$lang['OFF_TRACKER'] = 'Aradan tracker';
|
||||
$lang['OFF_REASON'] = 'Səbəbi kəsilməsi';
|
||||
|
|
|
@ -2278,7 +2278,7 @@ $lang['TRACKER_CFG_TITLE'] = 'Трэкер';
|
|||
$lang['FORUM_CFG_TITLE'] = 'Налады форуму';
|
||||
$lang['TRACKER_SETTINGS'] = 'Налады трэкера';
|
||||
|
||||
$lang['CHANGES_DISABLED'] = 'Змены адключаная (гл. <b>$tr_cfg</b> ў config.php)';
|
||||
$lang['CHANGES_DISABLED'] = 'Змены адключаная (гл. <b>$bb_cfg[\'tracker\']</b> ў config.php)';
|
||||
|
||||
$lang['OFF_TRACKER'] = 'Адключыць трэкер';
|
||||
$lang['OFF_REASON'] = 'Прычына адключэння';
|
||||
|
|
|
@ -2278,7 +2278,7 @@ $lang['TRACKER_CFG_TITLE'] = 'Следа';
|
|||
$lang['FORUM_CFG_TITLE'] = 'Настройки на форума';
|
||||
$lang['TRACKER_SETTINGS'] = 'Настройки на тракера';
|
||||
|
||||
$lang['CHANGES_DISABLED'] = 'Промяната е изключена (виж <b>$tr_cfg</b> в config.php)';
|
||||
$lang['CHANGES_DISABLED'] = 'Промяната е изключена (виж <b>$bb_cfg[\'tracker\']</b> в config.php)';
|
||||
|
||||
$lang['OFF_TRACKER'] = 'Да забраните на тракера';
|
||||
$lang['OFF_REASON'] = 'Причината за прекъсване на';
|
||||
|
|
|
@ -2278,7 +2278,7 @@ $lang['TRACKER_CFG_TITLE'] = 'Tragač';
|
|||
$lang['FORUM_CFG_TITLE'] = 'Forum postavke';
|
||||
$lang['TRACKER_SETTINGS'] = 'Tragač postavke';
|
||||
|
||||
$lang['CHANGES_DISABLED'] = 'Promjene invalid (vidim u <b>$tr_cfg</b> config.php)';
|
||||
$lang['CHANGES_DISABLED'] = 'Promjene invalid (vidim u <b>$bb_cfg[\'tracker\']</b> config.php)';
|
||||
|
||||
$lang['OFF_TRACKER'] = 'Onesposobiti tragaca';
|
||||
$lang['OFF_REASON'] = 'Onesposobite razloga';
|
||||
|
|
|
@ -2278,7 +2278,7 @@ $lang['TRACKER_CFG_TITLE'] = 'Seguidor';
|
|||
$lang['FORUM_CFG_TITLE'] = 'Preferències del fòrum';
|
||||
$lang['TRACKER_SETTINGS'] = 'Seguidor de configuració';
|
||||
|
||||
$lang['CHANGES_DISABLED'] = 'Els canvis de persones amb discapacitat (vegeu <b>$tr_cfg</b> en config.php)';
|
||||
$lang['CHANGES_DISABLED'] = 'Els canvis de persones amb discapacitat (vegeu <b>$bb_cfg[\'tracker\']</b> en config.php)';
|
||||
|
||||
$lang['OFF_TRACKER'] = 'Desactivar seguidor';
|
||||
$lang['OFF_REASON'] = 'Desactivar raó';
|
||||
|
|
|
@ -2278,7 +2278,7 @@ $lang['TRACKER_CFG_TITLE'] = 'Tracker';
|
|||
$lang['FORUM_CFG_TITLE'] = 'Nastavení fóra';
|
||||
$lang['TRACKER_SETTINGS'] = 'Tracker nastavení';
|
||||
|
||||
$lang['CHANGES_DISABLED'] = 'Změny zakázány (viz <b>$tr_cfg</b> v config.php)';
|
||||
$lang['CHANGES_DISABLED'] = 'Změny zakázány (viz <b>$bb_cfg[\'tracker\']</b> v config.php)';
|
||||
|
||||
$lang['OFF_TRACKER'] = 'Zakázat tracker';
|
||||
$lang['OFF_REASON'] = 'Zakázat důvod';
|
||||
|
|
|
@ -2278,7 +2278,7 @@ $lang['TRACKER_CFG_TITLE'] = 'Tracker';
|
|||
$lang['FORUM_CFG_TITLE'] = 'Forum-indstillinger';
|
||||
$lang['TRACKER_SETTINGS'] = 'Tracker-indstillinger';
|
||||
|
||||
$lang['CHANGES_DISABLED'] = 'Ændringer deaktiveret (se <b>$tr_cfg</b> i config.php)';
|
||||
$lang['CHANGES_DISABLED'] = 'Ændringer deaktiveret (se <b>$bb_cfg[\'tracker\']</b> i config.php)';
|
||||
|
||||
$lang['OFF_TRACKER'] = 'Deaktiver tracker';
|
||||
$lang['OFF_REASON'] = 'Deaktiver grund';
|
||||
|
|
|
@ -2278,7 +2278,7 @@ $lang['TRACKER_CFG_TITLE'] = 'Tracker';
|
|||
$lang['FORUM_CFG_TITLE'] = 'Forum-Einstellungen';
|
||||
$lang['TRACKER_SETTINGS'] = 'Tracker-Einstellungen';
|
||||
|
||||
$lang['CHANGES_DISABLED'] = 'Änderungen deaktiviert ist (siehe <b>$tr_cfg</b> in config.php)';
|
||||
$lang['CHANGES_DISABLED'] = 'Änderungen deaktiviert ist (siehe <b>$bb_cfg[\'tracker\']</b> in config.php)';
|
||||
|
||||
$lang['OFF_TRACKER'] = 'Deaktivieren tracker';
|
||||
$lang['OFF_REASON'] = 'Deaktivieren der Grund';
|
||||
|
|
|
@ -2278,7 +2278,7 @@ $lang['TRACKER_CFG_TITLE'] = 'Tracker';
|
|||
$lang['FORUM_CFG_TITLE'] = 'Φόρουμ ρυθμίσεις';
|
||||
$lang['TRACKER_SETTINGS'] = 'Tracker ρυθμίσεις';
|
||||
|
||||
$lang['CHANGES_DISABLED'] = 'Αλλαγές με αναπηρία (βλ. <b>$tr_cfg</b> σε config.php)';
|
||||
$lang['CHANGES_DISABLED'] = 'Αλλαγές με αναπηρία (βλ. <b>$bb_cfg[\'tracker\']</b> σε config.php)';
|
||||
|
||||
$lang['OFF_TRACKER'] = 'Απενεργοποίηση tracker';
|
||||
$lang['OFF_REASON'] = 'Απενεργοποίηση λόγο';
|
||||
|
|
|
@ -2278,7 +2278,7 @@ $lang['TRACKER_CFG_TITLE'] = 'Tracker';
|
|||
$lang['FORUM_CFG_TITLE'] = 'Forum settings';
|
||||
$lang['TRACKER_SETTINGS'] = 'Tracker settings';
|
||||
|
||||
$lang['CHANGES_DISABLED'] = 'Changes disabled (see <b>$tr_cfg</b> in config.php)';
|
||||
$lang['CHANGES_DISABLED'] = 'Changes disabled (see <b>$bb_cfg[\'tracker\']</b> in config.php)';
|
||||
|
||||
$lang['OFF_TRACKER'] = 'Disable tracker';
|
||||
$lang['OFF_REASON'] = 'Disable reason';
|
||||
|
|
|
@ -2278,7 +2278,7 @@ $lang['TRACKER_CFG_TITLE'] = 'Rastreador';
|
|||
$lang['FORUM_CFG_TITLE'] = 'En el foro de configuración';
|
||||
$lang['TRACKER_SETTINGS'] = 'Rastreador de configuración';
|
||||
|
||||
$lang['CHANGES_DISABLED'] = 'Cambios en la movilidad (ver <b>$tr_cfg</b> en config.php)';
|
||||
$lang['CHANGES_DISABLED'] = 'Cambios en la movilidad (ver <b>$bb_cfg[\'tracker\']</b> en config.php)';
|
||||
|
||||
$lang['OFF_TRACKER'] = 'Deshabilitar tracker';
|
||||
$lang['OFF_REASON'] = 'Deshabilitar la razón';
|
||||
|
|
|
@ -2278,7 +2278,7 @@ $lang['TRACKER_CFG_TITLE'] = 'Tracker';
|
|||
$lang['FORUM_CFG_TITLE'] = 'Foorumi seaded';
|
||||
$lang['TRACKER_SETTINGS'] = 'Tracker seaded';
|
||||
|
||||
$lang['CHANGES_DISABLED'] = 'Muudatused puudega (vt <b>$tr_cfg</b> aastal config.php)';
|
||||
$lang['CHANGES_DISABLED'] = 'Muudatused puudega (vt <b>$bb_cfg[\'tracker\']</b> aastal config.php)';
|
||||
|
||||
$lang['OFF_TRACKER'] = 'Keelata tracker';
|
||||
$lang['OFF_REASON'] = 'Keelata põhjus';
|
||||
|
|
|
@ -2278,7 +2278,7 @@ $lang['TRACKER_CFG_TITLE'] = 'Tracker';
|
|||
$lang['FORUM_CFG_TITLE'] = 'Foorumin asetuksia';
|
||||
$lang['TRACKER_SETTINGS'] = 'Tracker asetukset';
|
||||
|
||||
$lang['CHANGES_DISABLED'] = 'Muutokset käytöstä (ks. <b>$tr_cfg</b> vuonna config.php)';
|
||||
$lang['CHANGES_DISABLED'] = 'Muutokset käytöstä (ks. <b>$bb_cfg[\'tracker\']</b> vuonna config.php)';
|
||||
|
||||
$lang['OFF_TRACKER'] = 'Poistaa tracker';
|
||||
$lang['OFF_REASON'] = 'Poistaa syy';
|
||||
|
|
|
@ -2278,7 +2278,7 @@ $lang['TRACKER_CFG_TITLE'] = 'Traqueur';
|
|||
$lang['FORUM_CFG_TITLE'] = 'Les préférences du Forum';
|
||||
$lang['TRACKER_SETTINGS'] = 'Des paramètres d\'un suivi';
|
||||
|
||||
$lang['CHANGES_DISABLED'] = 'Les changements de personnes handicapées (voir <b>$tr_cfg</b> dans config.php)';
|
||||
$lang['CHANGES_DISABLED'] = 'Les changements de personnes handicapées (voir <b>$bb_cfg[\'tracker\']</b> dans config.php)';
|
||||
|
||||
$lang['OFF_TRACKER'] = 'Désactiver le tracker';
|
||||
$lang['OFF_REASON'] = 'Désactiver la raison';
|
||||
|
|
|
@ -2278,7 +2278,7 @@ $lang['TRACKER_CFG_TITLE'] = 'Tracker';
|
|||
$lang['FORUM_CFG_TITLE'] = 'פורום הגדרות';
|
||||
$lang['TRACKER_SETTINGS'] = 'גשש הגדרות';
|
||||
|
||||
$lang['CHANGES_DISABLED'] = 'שינויים נכים (לראות <b>$tr_cfg</b> ב config.php)';
|
||||
$lang['CHANGES_DISABLED'] = 'שינויים נכים (לראות <b>$bb_cfg[\'tracker\']</b> ב config.php)';
|
||||
|
||||
$lang['OFF_TRACKER'] = 'השבת tracker';
|
||||
$lang['OFF_REASON'] = 'השבת סיבה';
|
||||
|
|
|
@ -2278,7 +2278,7 @@ $lang['TRACKER_CFG_TITLE'] = 'ट्रैकर';
|
|||
$lang['FORUM_CFG_TITLE'] = 'फ़ोरम सेटिंग';
|
||||
$lang['TRACKER_SETTINGS'] = 'ट्रैकर सेटिंग्स';
|
||||
|
||||
$lang['CHANGES_DISABLED'] = 'परिवर्तन अक्षम (config.php में <b>$tr_cfg</b> देखें)';
|
||||
$lang['CHANGES_DISABLED'] = 'परिवर्तन अक्षम (config.php में <b>$bb_cfg[\'tracker\']</b> देखें)';
|
||||
|
||||
$lang['OFF_TRACKER'] = 'ट्रैकर अक्षम करें';
|
||||
$lang['OFF_REASON'] = 'कारण अक्षम करें';
|
||||
|
|
|
@ -2278,7 +2278,7 @@ $lang['TRACKER_CFG_TITLE'] = 'Tracker';
|
|||
$lang['FORUM_CFG_TITLE'] = 'Postavke foruma';
|
||||
$lang['TRACKER_SETTINGS'] = 'Postavke tracker';
|
||||
|
||||
$lang['CHANGES_DISABLED'] = 'Promjena je deaktivirana (pogledajte <b>$tr_cfg</b> u config.php)';
|
||||
$lang['CHANGES_DISABLED'] = 'Promjena je deaktivirana (pogledajte <b>$bb_cfg[\'tracker\']</b> u config.php)';
|
||||
|
||||
$lang['OFF_TRACKER'] = 'Isključiti tracker';
|
||||
$lang['OFF_REASON'] = 'Razlog za isključenje';
|
||||
|
|
|
@ -2278,7 +2278,7 @@ $lang['TRACKER_CFG_TITLE'] = 'Tracker';
|
|||
$lang['FORUM_CFG_TITLE'] = 'Fórum beállítások';
|
||||
$lang['TRACKER_SETTINGS'] = 'Tracker beállítások';
|
||||
|
||||
$lang['CHANGES_DISABLED'] = 'Változások a disabled (lásd a <b>$tr_cfg</b> config.php)';
|
||||
$lang['CHANGES_DISABLED'] = 'Változások a disabled (lásd a <b>$bb_cfg[\'tracker\']</b> config.php)';
|
||||
|
||||
$lang['OFF_TRACKER'] = 'Tiltsa le tracker';
|
||||
$lang['OFF_REASON'] = 'A letiltás oka';
|
||||
|
|
|
@ -2278,7 +2278,7 @@ $lang['TRACKER_CFG_TITLE'] = 'Ճանապարհները';
|
|||
$lang['FORUM_CFG_TITLE'] = 'Ֆորումի կառավարում';
|
||||
$lang['TRACKER_SETTINGS'] = 'Կառավարում ճանապարհները';
|
||||
|
||||
$lang['CHANGES_DISABLED'] = 'Փոփոխություններ անջատված է (տես <b>$tr_cfg</b> է config.php)';
|
||||
$lang['CHANGES_DISABLED'] = 'Փոփոխություններ անջատված է (տես <b>$bb_cfg[\'tracker\']</b> է config.php)';
|
||||
|
||||
$lang['OFF_TRACKER'] = 'Անջատել tracker';
|
||||
$lang['OFF_REASON'] = 'Պատճառը պարապուրդ';
|
||||
|
|
|
@ -2278,7 +2278,7 @@ $lang['TRACKER_CFG_TITLE'] = 'Tracker';
|
|||
$lang['FORUM_CFG_TITLE'] = 'Forum pengaturan';
|
||||
$lang['TRACKER_SETTINGS'] = 'Tracker pengaturan';
|
||||
|
||||
$lang['CHANGES_DISABLED'] = 'Perubahan dinonaktifkan (lihat <b>$tr_cfg</b> di config.php)';
|
||||
$lang['CHANGES_DISABLED'] = 'Perubahan dinonaktifkan (lihat <b>$bb_cfg[\'tracker\']</b> di config.php)';
|
||||
|
||||
$lang['OFF_TRACKER'] = 'Menonaktifkan tracker';
|
||||
$lang['OFF_REASON'] = 'Menonaktifkan alasan';
|
||||
|
|
|
@ -2278,7 +2278,7 @@ $lang['TRACKER_CFG_TITLE'] = 'Tracker';
|
|||
$lang['FORUM_CFG_TITLE'] = 'Le impostazioni del Forum';
|
||||
$lang['TRACKER_SETTINGS'] = 'Tracker impostazioni';
|
||||
|
||||
$lang['CHANGES_DISABLED'] = 'Modifiche per disabili (vedi <b>$tr_cfg</b> in config.php)';
|
||||
$lang['CHANGES_DISABLED'] = 'Modifiche per disabili (vedi <b>$bb_cfg[\'tracker\']</b> in config.php)';
|
||||
|
||||
$lang['OFF_TRACKER'] = 'Disattivare tracker';
|
||||
$lang['OFF_REASON'] = 'Disattivare ragione';
|
||||
|
|
|
@ -2278,7 +2278,7 @@ $lang['TRACKER_CFG_TITLE'] = 'トラッカー';
|
|||
$lang['FORUM_CFG_TITLE'] = 'フォーラムの設定';
|
||||
$lang['TRACKER_SETTINGS'] = 'トラッカーの設定';
|
||||
|
||||
$lang['CHANGES_DISABLED'] = 'の変更無効(<b>$tr_cfg</b>にconfig.php)';
|
||||
$lang['CHANGES_DISABLED'] = 'の変更無効(<b>$bb_cfg[\'tracker\']</b>にconfig.php)';
|
||||
|
||||
$lang['OFF_TRACKER'] = 'トラッカーを無効に';
|
||||
$lang['OFF_REASON'] = '無効理由';
|
||||
|
|
|
@ -2278,7 +2278,7 @@ $lang['TRACKER_CFG_TITLE'] = 'Tracker';
|
|||
$lang['FORUM_CFG_TITLE'] = 'ფორუმის პარამეტრები';
|
||||
$lang['TRACKER_SETTINGS'] = 'Tracker პარამეტრები';
|
||||
|
||||
$lang['CHANGES_DISABLED'] = 'ცვლილებები შეზღუდული შესაძლებლობის მქონე პირთა (იხილეთ <b>$tr_cfg</b> in config.php)';
|
||||
$lang['CHANGES_DISABLED'] = 'ცვლილებები შეზღუდული შესაძლებლობის მქონე პირთა (იხილეთ <b>$bb_cfg[\'tracker\']</b> in config.php)';
|
||||
|
||||
$lang['OFF_TRACKER'] = 'გამორთე tracker';
|
||||
$lang['OFF_REASON'] = 'გამორთე მიზეზი';
|
||||
|
|
|
@ -2278,7 +2278,7 @@ $lang['TRACKER_CFG_TITLE'] = 'Tracker';
|
|||
$lang['FORUM_CFG_TITLE'] = 'Форум параметрлері';
|
||||
$lang['TRACKER_SETTINGS'] = 'Tracker параметрлері';
|
||||
|
||||
$lang['CHANGES_DISABLED'] = 'өшірілген өзгерістер (config.php жылы <b>$tr_cfg</b> қараңыз)';
|
||||
$lang['CHANGES_DISABLED'] = 'Өшірілген өзгерістер (config.php жылы <b>$bb_cfg[\'tracker\']</b> қараңыз)';
|
||||
|
||||
$lang['OFF_TRACKER'] = 'трекер өшіру';
|
||||
$lang['OFF_REASON'] = 'өшіру себебі';
|
||||
|
|
|
@ -2278,7 +2278,7 @@ $lang['TRACKER_CFG_TITLE'] = '추적';
|
|||
$lang['FORUM_CFG_TITLE'] = '포럼 설정';
|
||||
$lang['TRACKER_SETTINGS'] = '추적 설정';
|
||||
|
||||
$lang['CHANGES_DISABLED'] = '변화(<b>$tr_cfg</b> 에 config.php 다)';
|
||||
$lang['CHANGES_DISABLED'] = '변화(<b>$bb_cfg[\'tracker\']</b> 에 config.php 다)';
|
||||
|
||||
$lang['OFF_TRACKER'] = '비활성화 추적자';
|
||||
$lang['OFF_REASON'] = '사는 이유';
|
||||
|
|
|
@ -2278,7 +2278,7 @@ $lang['TRACKER_CFG_TITLE'] = 'Tracker';
|
|||
$lang['FORUM_CFG_TITLE'] = 'Forumo nustatymai';
|
||||
$lang['TRACKER_SETTINGS'] = 'Tracker parametrai';
|
||||
|
||||
$lang['CHANGES_DISABLED'] = 'Pokyčiai išjungtas (žr. <b>$tr_cfg</b>, config.php)';
|
||||
$lang['CHANGES_DISABLED'] = 'Pokyčiai išjungtas (žr. <b>$bb_cfg[\'tracker\']</b>, config.php)';
|
||||
|
||||
$lang['OFF_TRACKER'] = 'Išjungti tracker';
|
||||
$lang['OFF_REASON'] = 'Išjungti priežastis';
|
||||
|
|
|
@ -2278,7 +2278,7 @@ $lang['TRACKER_CFG_TITLE'] = 'Tracker';
|
|||
$lang['FORUM_CFG_TITLE'] = 'Foruma uzstādījumi';
|
||||
$lang['TRACKER_SETTINGS'] = 'Tracker uzstādījumi';
|
||||
|
||||
$lang['CHANGES_DISABLED'] = 'Izmaiņas invalīdiem (skatīt <b>$tr_cfg</b>, config.php)';
|
||||
$lang['CHANGES_DISABLED'] = 'Izmaiņas invalīdiem (skatīt <b>$bb_cfg[\'tracker\']</b>, config.php)';
|
||||
|
||||
$lang['OFF_TRACKER'] = 'Atspējot tracker';
|
||||
$lang['OFF_REASON'] = 'Atspējot iemesls';
|
||||
|
|
|
@ -2278,7 +2278,7 @@ $lang['TRACKER_CFG_TITLE'] = 'Tracker';
|
|||
$lang['FORUM_CFG_TITLE'] = 'Forum instellingen';
|
||||
$lang['TRACKER_SETTINGS'] = 'Tracker instellingen';
|
||||
|
||||
$lang['CHANGES_DISABLED'] = 'Wijzigingen uitgeschakeld (zie <b>$tr_cfg</b> in config.php)';
|
||||
$lang['CHANGES_DISABLED'] = 'Wijzigingen uitgeschakeld (zie <b>$bb_cfg[\'tracker\']</b> in config.php)';
|
||||
|
||||
$lang['OFF_TRACKER'] = 'Uitschakelen tracker';
|
||||
$lang['OFF_REASON'] = 'Uitschakelen reden';
|
||||
|
|
|
@ -2278,7 +2278,7 @@ $lang['TRACKER_CFG_TITLE'] = 'Tracker';
|
|||
$lang['FORUM_CFG_TITLE'] = 'Forum innstillinger';
|
||||
$lang['TRACKER_SETTINGS'] = 'Tracker-innstillinger';
|
||||
|
||||
$lang['CHANGES_DISABLED'] = 'Endringer deaktivert (se <b>$tr_cfg</b> i config.php)';
|
||||
$lang['CHANGES_DISABLED'] = 'Endringer deaktivert (se <b>$bb_cfg[\'tracker\']</b> i config.php)';
|
||||
|
||||
$lang['OFF_TRACKER'] = 'Deaktiver tracker';
|
||||
$lang['OFF_REASON'] = 'Deaktiver grunn';
|
||||
|
|
|
@ -2278,7 +2278,7 @@ $lang['TRACKER_CFG_TITLE'] = 'Tracker';
|
|||
$lang['FORUM_CFG_TITLE'] = 'Ustawienia forum';
|
||||
$lang['TRACKER_SETTINGS'] = 'Ustawienia tracker';
|
||||
|
||||
$lang['CHANGES_DISABLED'] = 'Zmiany wyłączona (patrz <b>$tr_cfg</b> w config.php)';
|
||||
$lang['CHANGES_DISABLED'] = 'Zmiany wyłączona (patrz <b>$bb_cfg[\'tracker\']</b> w config.php)';
|
||||
|
||||
$lang['OFF_TRACKER'] = 'Wyłączyć tracker';
|
||||
$lang['OFF_REASON'] = 'Powodem wyłączenia';
|
||||
|
|
|
@ -2278,7 +2278,7 @@ $lang['TRACKER_CFG_TITLE'] = 'Perseguidor';
|
|||
$lang['FORUM_CFG_TITLE'] = 'Fórum de configurações';
|
||||
$lang['TRACKER_SETTINGS'] = 'Tracker definições';
|
||||
|
||||
$lang['CHANGES_DISABLED'] = 'Alterações desativada (consulte <b>$tr_cfg</b> em config.php)';
|
||||
$lang['CHANGES_DISABLED'] = 'Alterações desativada (consulte <b>$bb_cfg[\'tracker\']</b> em config.php)';
|
||||
|
||||
$lang['OFF_TRACKER'] = 'Desativar o rastreador';
|
||||
$lang['OFF_REASON'] = 'Desactivar a razão';
|
||||
|
|
|
@ -2278,7 +2278,7 @@ $lang['TRACKER_CFG_TITLE'] = 'Tracker';
|
|||
$lang['FORUM_CFG_TITLE'] = 'Setări Forum';
|
||||
$lang['TRACKER_SETTINGS'] = 'Tracker setări';
|
||||
|
||||
$lang['CHANGES_DISABLED'] = 'Modificări cu handicap (a se vedea <b>$tr_cfg</b> în config.php)';
|
||||
$lang['CHANGES_DISABLED'] = 'Modificări cu handicap (a se vedea <b>$bb_cfg[\'tracker\']</b> în config.php)';
|
||||
|
||||
$lang['OFF_TRACKER'] = 'Dezactivați tracker';
|
||||
$lang['OFF_REASON'] = 'Dezactivare motiv';
|
||||
|
|
|
@ -2278,7 +2278,7 @@ $lang['TRACKER_CFG_TITLE'] = 'Трекер';
|
|||
$lang['FORUM_CFG_TITLE'] = 'Настройки форумов';
|
||||
$lang['TRACKER_SETTINGS'] = 'Настройки трекера';
|
||||
|
||||
$lang['CHANGES_DISABLED'] = 'Изменения недоступны (редактируйте <b>$tr_cfg</b> в файле config.php)';
|
||||
$lang['CHANGES_DISABLED'] = 'Изменения недоступны (редактируйте <b>$bb_cfg[\'tracker\']</b> в файле config.php)';
|
||||
|
||||
$lang['OFF_TRACKER'] = 'Отключить трекер';
|
||||
$lang['OFF_REASON'] = 'Причина отключения';
|
||||
|
|
|
@ -2278,7 +2278,7 @@ $lang['TRACKER_CFG_TITLE'] = 'Tracker';
|
|||
$lang['FORUM_CFG_TITLE'] = 'Fórum nastavenia';
|
||||
$lang['TRACKER_SETTINGS'] = 'Tracker nastavenia';
|
||||
|
||||
$lang['CHANGES_DISABLED'] = 'Zmeny zakázané (pozri <b>$tr_cfg</b> v config.php)';
|
||||
$lang['CHANGES_DISABLED'] = 'Zmeny zakázané (pozri <b>$bb_cfg[\'tracker\']</b> v config.php)';
|
||||
|
||||
$lang['OFF_TRACKER'] = 'Vypnúť tracker';
|
||||
$lang['OFF_REASON'] = 'Vypnúť dôvod';
|
||||
|
|
|
@ -2278,7 +2278,7 @@ $lang['TRACKER_CFG_TITLE'] = 'Tracker';
|
|||
$lang['FORUM_CFG_TITLE'] = 'Forum nastavitve';
|
||||
$lang['TRACKER_SETTINGS'] = 'Tracker nastavitve';
|
||||
|
||||
$lang['CHANGES_DISABLED'] = 'Spremembe invalide (glej <b>$tr_cfg</b> v config.php)';
|
||||
$lang['CHANGES_DISABLED'] = 'Spremembe invalide (glej <b>$bb_cfg[\'tracker\']</b> v config.php)';
|
||||
|
||||
$lang['OFF_TRACKER'] = 'Onemogočite tracker';
|
||||
$lang['OFF_REASON'] = 'Onemogočite razlog';
|
||||
|
|
|
@ -7,5 +7,5 @@
|
|||
<li>style/templates/default/page_footer.tpl</li>
|
||||
</ul>
|
||||
<br />
|
||||
To disable this sidebar, set the variable $page_cfg['show_sidebar2'] in file config.php to false.
|
||||
To disable this sidebar, set the variable $bb_cfg['page']['show_sidebar2'] in file config.php to false.
|
||||
</div>
|
||||
|
|
|
@ -2278,7 +2278,7 @@ $lang['TRACKER_CFG_TITLE'] = 'Tracker';
|
|||
$lang['FORUM_CFG_TITLE'] = 'Forum settings';
|
||||
$lang['TRACKER_SETTINGS'] = 'Tracker settings';
|
||||
|
||||
$lang['CHANGES_DISABLED'] = 'Changes disabled (see <b>$tr_cfg</b> in config.php)';
|
||||
$lang['CHANGES_DISABLED'] = 'Changes disabled (see <b>$bb_cfg[\'tracker\']</b> in config.php)';
|
||||
|
||||
$lang['OFF_TRACKER'] = 'Disable tracker';
|
||||
$lang['OFF_REASON'] = 'Disable reason';
|
||||
|
|
|
@ -2278,7 +2278,7 @@ $lang['TRACKER_CFG_TITLE'] = 'Tracker';
|
|||
$lang['FORUM_CFG_TITLE'] = 'Forumi cilësimet';
|
||||
$lang['TRACKER_SETTINGS'] = 'Tracker cilësimet';
|
||||
|
||||
$lang['CHANGES_DISABLED'] = 'Ndryshimet me aftësi të kufizuara (shih <b>$tr_cfg</b> në config.php)';
|
||||
$lang['CHANGES_DISABLED'] = 'Ndryshimet me aftësi të kufizuara (shih <b>$bb_cfg[\'tracker\']</b> në config.php)';
|
||||
|
||||
$lang['OFF_TRACKER'] = 'Çaktivizoni tracker';
|
||||
$lang['OFF_REASON'] = 'Çaktivizoni arsye';
|
||||
|
|
|
@ -2278,7 +2278,7 @@ $lang['TRACKER_CFG_TITLE'] = 'Трацкер';
|
|||
$lang['FORUM_CFG_TITLE'] = 'Подешавања форума';
|
||||
$lang['TRACKER_SETTINGS'] = 'Подешавања трацкер';
|
||||
|
||||
$lang['CHANGES_DISABLED'] = 'Промене искључена (видети <b>$tr_cfg</b> у config.php)';
|
||||
$lang['CHANGES_DISABLED'] = 'Промене искључена (видети <b>$bb_cfg[\'tracker\']</b> у config.php)';
|
||||
|
||||
$lang['OFF_TRACKER'] = 'Искључите трацкер';
|
||||
$lang['OFF_REASON'] = 'Разлог искључења';
|
||||
|
|
|
@ -2278,7 +2278,7 @@ $lang['TRACKER_CFG_TITLE'] = 'Tracker';
|
|||
$lang['FORUM_CFG_TITLE'] = 'Forum inställningar';
|
||||
$lang['TRACKER_SETTINGS'] = 'Tracker-inställningar';
|
||||
|
||||
$lang['CHANGES_DISABLED'] = 'Förändringar funktionshindrade (se <b>$tr_cfg</b> i config.php)';
|
||||
$lang['CHANGES_DISABLED'] = 'Förändringar funktionshindrade (se <b>$bb_cfg[\'tracker\']</b> i config.php)';
|
||||
|
||||
$lang['OFF_TRACKER'] = 'Inaktivera tracker';
|
||||
$lang['OFF_REASON'] = 'Inaktivera anledning';
|
||||
|
|
|
@ -2278,7 +2278,7 @@ $lang['TRACKER_CFG_TITLE'] = 'Назоратчии';
|
|||
$lang['FORUM_CFG_TITLE'] = 'танзимоти Озодӣ';
|
||||
$lang['TRACKER_SETTINGS'] = 'танзимоти Назоратчии';
|
||||
|
||||
$lang['CHANGES_DISABLED'] = 'Тағйирҳои маъюбон (<b>$tr_cfg</b> дар config.php нигаред)';
|
||||
$lang['CHANGES_DISABLED'] = 'Тағйирҳои маъюбон (<b>$bb_cfg[\'tracker\']</b> дар config.php нигаред)';
|
||||
|
||||
$lang['OFF_TRACKER'] = 'Назоратчии хомӯш';
|
||||
$lang['OFF_REASON'] = 'сабаби хомӯш';
|
||||
|
|
|
@ -2278,7 +2278,7 @@ $lang['TRACKER_CFG_TITLE'] = 'แทร็กเกอร์';
|
|||
$lang['FORUM_CFG_TITLE'] = 'อภิปราการตั้งค่า';
|
||||
$lang['TRACKER_SETTINGS'] = 'ตัวติดตามการตั้งค่า';
|
||||
|
||||
$lang['CHANGES_DISABLED'] = 'เปลี่ยนแปลงปิดการใช้งาน(ดู <b>$tr_cfg</b> ใน config.php)';
|
||||
$lang['CHANGES_DISABLED'] = 'เปลี่ยนแปลงปิดการใช้งาน(ดู <b>$bb_cfg[\'tracker\']</b> ใน config.php)';
|
||||
|
||||
$lang['OFF_TRACKER'] = 'ปิดการใช้งานแทร็กเกอร์';
|
||||
$lang['OFF_REASON'] = 'ปิดการใช้เหตุผล';
|
||||
|
|
|
@ -2278,7 +2278,7 @@ $lang['TRACKER_CFG_TITLE'] = 'İzci';
|
|||
$lang['FORUM_CFG_TITLE'] = 'Forum Ayarları';
|
||||
$lang['TRACKER_SETTINGS'] = 'İzleyici ayarları';
|
||||
|
||||
$lang['CHANGES_DISABLED'] = 'Config.php engelli değişiklikler (bkz <b>$tr_cfg</b>)';
|
||||
$lang['CHANGES_DISABLED'] = 'Config.php engelli değişiklikler (bkz <b>$bb_cfg[\'tracker\']</b>)';
|
||||
|
||||
$lang['OFF_TRACKER'] = 'Devre dışı bırakmak tracker';
|
||||
$lang['OFF_REASON'] = 'Devre dışı bırakma nedeni';
|
||||
|
|
|
@ -2278,7 +2278,7 @@ $lang['TRACKER_CFG_TITLE'] = 'Трекер';
|
|||
$lang['FORUM_CFG_TITLE'] = 'Налаштування форумів';
|
||||
$lang['TRACKER_SETTINGS'] = 'Налаштування трекера';
|
||||
|
||||
$lang['CHANGES_DISABLED'] = 'Зміни недоступні (редагуйте <b>$tr_cfg</b> у файлі config.php)';
|
||||
$lang['CHANGES_DISABLED'] = 'Зміни відключена (див. в <b>$bb_cfg[\'tracker\']</b> config.php)';
|
||||
|
||||
$lang['OFF_TRACKER'] = 'Відключити трекер';
|
||||
$lang['OFF_REASON'] = 'Причина відключення';
|
||||
|
|
|
@ -2278,7 +2278,7 @@ $lang['TRACKER_CFG_TITLE'] = 'Kuzatishdan';
|
|||
$lang['FORUM_CFG_TITLE'] = 'Forum ri';
|
||||
$lang['TRACKER_SETTINGS'] = 'Kuzatishdan sozlamalari';
|
||||
|
||||
$lang['CHANGES_DISABLED'] = 'O\'zgarishlar o\'chirib (config.php yilda <b>$tr_cfg</b> qarang)';
|
||||
$lang['CHANGES_DISABLED'] = 'O\'zgarishlar o\'chirib (config.php yilda <b>$bb_cfg[\'tracker\']</b> qarang)';
|
||||
|
||||
$lang['OFF_TRACKER'] = 'O\'chirish Kuzatishdan';
|
||||
$lang['OFF_REASON'] = 'O\'chirish sababi';
|
||||
|
|
|
@ -2278,7 +2278,7 @@ $lang['TRACKER_CFG_TITLE'] = 'Theo dõi';
|
|||
$lang['FORUM_CFG_TITLE'] = 'Diễn đàn cài đặt';
|
||||
$lang['TRACKER_SETTINGS'] = 'Thiết lập theo dõi';
|
||||
|
||||
$lang['CHANGES_DISABLED'] = 'Thay đổi vô hiệu hóa (thấy trong <b>$tr_cfg</b> config.php)';
|
||||
$lang['CHANGES_DISABLED'] = 'Thay đổi vô hiệu hóa (thấy trong <b>$bb_cfg[\'tracker\']</b> config.php)';
|
||||
|
||||
$lang['OFF_TRACKER'] = 'Vô hiệu hóa theo dõi';
|
||||
$lang['OFF_REASON'] = 'Vô hiệu hóa lý do';
|
||||
|
|
|
@ -2278,7 +2278,7 @@ $lang['TRACKER_CFG_TITLE'] = '跟踪器';
|
|||
$lang['FORUM_CFG_TITLE'] = '论坛设置';
|
||||
$lang['TRACKER_SETTINGS'] = '跟踪设置';
|
||||
|
||||
$lang['CHANGES_DISABLED'] = '变化无障碍(见<b>$tr_cfg</b>在config.php)';
|
||||
$lang['CHANGES_DISABLED'] = '变化无障碍(见<b>$bb_cfg[\'tracker\']</b>在config.php)';
|
||||
|
||||
$lang['OFF_TRACKER'] = '禁止跟踪器';
|
||||
$lang['OFF_REASON'] = '禁止的原因';
|
||||
|
|
135
src/Helpers/CronHelper.php
Normal file
135
src/Helpers/CronHelper.php
Normal file
|
@ -0,0 +1,135 @@
|
|||
<?php
|
||||
/**
|
||||
* MIT License
|
||||
*
|
||||
* Copyright (c) 2005-2017 TorrentPier
|
||||
*
|
||||
* Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
* of this software and associated documentation files (the "Software"), to deal
|
||||
* in the Software without restriction, including without limitation the rights
|
||||
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
* copies of the Software, and to permit persons to whom the Software is
|
||||
* furnished to do so, subject to the following conditions:
|
||||
*
|
||||
* The above copyright notice and this permission notice shall be included in all
|
||||
* copies or substantial portions of the Software.
|
||||
*
|
||||
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||
* SOFTWARE.
|
||||
*/
|
||||
|
||||
namespace TorrentPier\Helpers;
|
||||
|
||||
/**
|
||||
* Class CronHelper
|
||||
* @package TorrentPier\Helpers
|
||||
*/
|
||||
class CronHelper
|
||||
{
|
||||
/**
|
||||
* Снятие блокировки крона (по времени)
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public static function releaseDeadlock()
|
||||
{
|
||||
if (file_exists(CRON_RUNNING)) {
|
||||
if (TIMENOW - filemtime(CRON_RUNNING) > 2400) {
|
||||
self::enableBoard();
|
||||
self::releaseLockFile();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Снятие блокировки крона (по файлу)
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public static function releaseLockFile()
|
||||
{
|
||||
rename(CRON_RUNNING, CRON_ALLOWED);
|
||||
self::touchLockFile(CRON_ALLOWED);
|
||||
}
|
||||
|
||||
/**
|
||||
* Создание файла блокировки
|
||||
*
|
||||
* @param $lock_file
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public static function touchLockFile($lock_file)
|
||||
{
|
||||
file_write(make_rand_str(20), $lock_file, 0, true, true);
|
||||
}
|
||||
|
||||
/**
|
||||
* Включение форума (при разблокировке крона)
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public static function enableBoard()
|
||||
{
|
||||
if (file_exists(BB_DISABLED)) {
|
||||
rename(BB_DISABLED, BB_ENABLED);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Отключение форума (при блокировке крона)
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public static function disableBoard()
|
||||
{
|
||||
if (file_exists(BB_ENABLED)) {
|
||||
rename(BB_ENABLED, BB_DISABLED);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Проверка наличия файла блокировки
|
||||
*
|
||||
* @return bool
|
||||
*/
|
||||
public static function hasFileLock()
|
||||
{
|
||||
$lock_obtained = false;
|
||||
|
||||
if (file_exists(CRON_ALLOWED)) {
|
||||
$lock_obtained = rename(CRON_ALLOWED, CRON_RUNNING);
|
||||
} elseif (file_exists(CRON_RUNNING)) {
|
||||
self::releaseDeadlock();
|
||||
} elseif (!file_exists(CRON_ALLOWED) && !file_exists(CRON_RUNNING)) {
|
||||
file_write('', CRON_ALLOWED);
|
||||
$lock_obtained = rename(CRON_ALLOWED, CRON_RUNNING);
|
||||
}
|
||||
|
||||
return $lock_obtained;
|
||||
}
|
||||
|
||||
/**
|
||||
* Отслеживание запуска задач
|
||||
*
|
||||
* @param $mode
|
||||
*/
|
||||
public static function trackRunning($mode)
|
||||
{
|
||||
if (!defined('START_MARK')) {
|
||||
define('START_MARK', TRIGGERS_DIR . '/cron_started_at_' . date('Y-m-d_H-i-s') . '_by_pid_' . getmypid());
|
||||
}
|
||||
|
||||
if ($mode === 'start') {
|
||||
self::touchLockFile(CRON_RUNNING);
|
||||
file_write('', START_MARK);
|
||||
} elseif ($mode === 'end') {
|
||||
unlink(START_MARK);
|
||||
}
|
||||
}
|
||||
}
|
|
@ -111,7 +111,7 @@ class SqlDb
|
|||
*/
|
||||
public function connect()
|
||||
{
|
||||
$this->cur_query = ($this->dbg_enabled) ? "connect to: {$this->cfg['dbhost']}" : 'connect';
|
||||
$this->cur_query = $this->dbg_enabled ? "connect to: {$this->cfg['dbhost']}" : 'connect';
|
||||
$this->debug('start');
|
||||
|
||||
$p = ((bool)$this->cfg['persist']) ? 'p:' : '';
|
||||
|
@ -119,7 +119,7 @@ class SqlDb
|
|||
$this->selected_db = $this->cfg['dbname'];
|
||||
|
||||
if (mysqli_connect_error()) {
|
||||
$server = (DBG_USER) ? $this->cfg['dbhost'] : '';
|
||||
$server = DBG_USER ? $this->cfg['dbhost'] : '';
|
||||
header('HTTP/1.0 503 Service Unavailable');
|
||||
bb_log(' ', "db_err/connect_failed_{$this->cfg['dbhost']}");
|
||||
die("Could not connect to mysql server $server");
|
||||
|
@ -242,9 +242,9 @@ class SqlDb
|
|||
}
|
||||
}
|
||||
return $result;
|
||||
} else {
|
||||
return false;
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -275,9 +275,9 @@ class SqlDb
|
|||
|
||||
if ($field_name) {
|
||||
return isset($row[$field_name]) ? $row[$field_name] : false;
|
||||
} else {
|
||||
return $row;
|
||||
}
|
||||
|
||||
return $row;
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -571,9 +571,9 @@ class SqlDb
|
|||
{
|
||||
if ($this->link) {
|
||||
return ['code' => mysqli_errno($this->link), 'message' => mysqli_error($this->link)];
|
||||
} else {
|
||||
return ['code' => '', 'message' => 'not connected'];
|
||||
}
|
||||
|
||||
return ['code' => '', 'message' => 'not connected'];
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -783,7 +783,10 @@ class SqlDb
|
|||
}
|
||||
}
|
||||
|
||||
@define('IN_FIRST_SLOW_QUERY', true);
|
||||
if (!defined('IN_FIRST_SLOW_QUERY')) {
|
||||
define('IN_FIRST_SLOW_QUERY', true);
|
||||
}
|
||||
|
||||
CACHE('bb_cache')->set('dont_log_slow_query', $new_priority, $ignoring_time);
|
||||
}
|
||||
|
||||
|
@ -856,7 +859,7 @@ class SqlDb
|
|||
$err = $this->sql_error();
|
||||
$msg .= "\n" . trim(sprintf('#%06d %s', $err['code'], $err['message']));
|
||||
} else {
|
||||
$msg .= " [" . $this->debug_find_source() . "]";
|
||||
$msg .= ' [' . $this->debug_find_source() . ']';
|
||||
}
|
||||
|
||||
trigger_error($msg, E_USER_ERROR);
|
||||
|
|
|
@ -239,7 +239,7 @@ class Template
|
|||
{
|
||||
$this->cur_tpl = $filename;
|
||||
|
||||
global $lang, $bb_cfg, $user, $tr_cfg;
|
||||
global $lang, $bb_cfg, $user;
|
||||
|
||||
$L =& $lang;
|
||||
$V =& $this->vars;
|
||||
|
|
|
@ -128,15 +128,6 @@ $images['voting_graphic'][4] = $_main . 'voting_bar.gif';
|
|||
$images['progress_bar'] = $_main . 'progress_bar.gif';
|
||||
$images['progress_bar_full'] = $_main . 'progress_bar_full.gif';
|
||||
|
||||
// Vote graphic length defines the maximum length of a vote result graphic, ie. 100% = this length
|
||||
$bb_cfg['vote_graphic_length'] = 205;
|
||||
$bb_cfg['privmsg_graphic_length'] = 175;
|
||||
|
||||
$bb_cfg['topic_left_column_witdh'] = 150;
|
||||
// Images auto-resize
|
||||
$bb_cfg['post_img_width_decr'] = 52; // decrement for posted images width (px)
|
||||
$bb_cfg['attach_img_width_decr'] = 130; // decrement for attach images width (px)
|
||||
|
||||
$template->assign_vars(array(
|
||||
'IMG' => $_main,
|
||||
'TEXT_BUTTONS' => $bb_cfg['text_buttons'],
|
||||
|
|
|
@ -238,7 +238,7 @@ $(function(){
|
|||
/> {L_HIDE_CONTENTS}
|
||||
</label>
|
||||
</p>
|
||||
<!-- IF $tr_cfg['gold_silver_enabled'] --><p class="chbox">{TOR_TYPE_CHBOX}</p><!-- ENDIF -->
|
||||
<!-- IF $bb_cfg['tracker']['gold_silver_enabled'] --><p class="chbox">{TOR_TYPE_CHBOX}</p><!-- ENDIF -->
|
||||
</div>
|
||||
</fieldset>
|
||||
<fieldset>
|
||||
|
@ -522,4 +522,4 @@ function get_fs_link ()
|
|||
}
|
||||
return false;
|
||||
}
|
||||
</script>
|
||||
</script>
|
||||
|
|
|
@ -146,11 +146,11 @@
|
|||
<tr class="row3">
|
||||
<th colspan="3" class="{postrow.attach.tor_reged.DL_LINK_CLASS}">{postrow.attach.tor_reged.DOWNLOAD_NAME}<!-- IF postrow.attach.tor_reged.TOR_FROZEN == 0 --><!-- IF MAGNET_LINKS --> {postrow.attach.tor_reged.MAGNET}<!-- ENDIF --><!-- ENDIF --></th>
|
||||
</tr>
|
||||
<!-- IF postrow.attach.tor_reged.TOR_SILVER_GOLD == 2 && $tr_cfg['gold_silver_enabled'] -->
|
||||
<!-- IF postrow.attach.tor_reged.TOR_SILVER_GOLD == 2 && $bb_cfg['tracker']['gold_silver_enabled'] -->
|
||||
<tr class="row4">
|
||||
<th colspan="3" class="row7"><img src="styles/images/tor_silver.gif" width="16" height="15" title="{L_SILVER}" /> {L_SILVER_STATUS} <img src="styles/images/tor_silver.gif" width="16" height="15" title="{L_SILVER}" /></th>
|
||||
</tr>
|
||||
<!-- ELSEIF postrow.attach.tor_reged.TOR_SILVER_GOLD == 1 && $tr_cfg['gold_silver_enabled'] -->
|
||||
<!-- ELSEIF postrow.attach.tor_reged.TOR_SILVER_GOLD == 1 && $bb_cfg['tracker']['gold_silver_enabled'] -->
|
||||
<tr class="row4">
|
||||
<th colspan="3" class="row7"><img src="styles/images/tor_gold.gif" width="16" height="15" title="{L_GOLD}" /> {L_GOLD_STATUS} <img src="styles/images/tor_gold.gif" width="16" height="15" title="{L_GOLD}" /></th>
|
||||
</tr>
|
||||
|
@ -252,7 +252,7 @@
|
|||
<option value="del_torrent">{L_DELETE_TORRENT}</option>
|
||||
<option value="del_torrent_move_topic">{L_DELETE_MOVE_TORRENT}</option>
|
||||
<!-- IF AUTH_MOD -->
|
||||
<!-- IF $tr_cfg['gold_silver_enabled'] -->
|
||||
<!-- IF $bb_cfg['tracker']['gold_silver_enabled'] -->
|
||||
<!-- IF postrow.attach.tor_reged.TOR_SILVER_GOLD == 1 -->
|
||||
<option value="unset_silver_gold">{L_UNSET_GOLD_TORRENT} / {L_UNSET_SILVER_TORRENT}</option>
|
||||
<option value="set_silver">{L_SET_SILVER_TORRENT}</option>
|
||||
|
@ -366,4 +366,4 @@ $('#tor-filelist-btn').click(function(){
|
|||
<!-- ENDIF -->
|
||||
<!-- END tor_reged -->
|
||||
|
||||
<!-- END attach -->
|
||||
<!-- END attach -->
|
||||
|
|
|
@ -30,6 +30,7 @@ require INC_DIR . '/bbcode.php';
|
|||
|
||||
$datastore->enqueue(array(
|
||||
'ranks',
|
||||
'cat_forums',
|
||||
));
|
||||
|
||||
$page_cfg['load_tpl_vars'] = array(
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue