diff --git a/i18n.php b/i18n.php index 9e1bb1ec..99048a81 100644 --- a/i18n.php +++ b/i18n.php @@ -1,20 +1,17 @@ ".$lang_settings['std_here']."".$lang_settings['std_to_go_back']); + global $lang_i18n; + stdmsg($lang_i18n['std_message'], $lang_i18n['std_click']."".$lang_i18n['std_here']."".$lang_i18n['std_to_go_back']); } function yesorno($title, $name, $value, $note="") @@ -34,14 +31,14 @@ function searchtable($title, $action, $opts = array()){ print("
\n"); } -$action = isset($_POST['action']) ? $_POST['action'] : 'i18n'; -$allowed_actions = array('saveI18n', 'basicsettings','mainsettings','smtpsettings','securitysettings','authoritysettings','tweaksettings', 'botsettings','codesettings','bonussettings','accountsettings','torrentsettings', 'attachmentsettings', 'advertisementsettings', 'savesettings_basic', 'savesettings_main','savesettings_smtp','savesettings_security','savesettings_authority','savesettings_tweak','savesettings_bot','savesettings_code','savesettings_bonus', 'savesettings_account','savesettings_torrent', 'savesettings_attachment', 'savesettings_advertisement', 'showmenu'); +$action = isset($_REQUEST['action']) ? $_REQUEST['action'] : 'i18n'; +$allowed_actions = array('saveI18n', 'import','mainsettings','smtpsettings','securitysettings','authoritysettings','tweaksettings', 'botsettings','codesettings','bonussettings','accountsettings','torrentsettings', 'attachmentsettings', 'advertisementsettings', 'savesettings_basic', 'savesettings_main','savesettings_smtp','savesettings_security','savesettings_authority','savesettings_tweak','savesettings_bot','savesettings_code','savesettings_bonus', 'savesettings_account','savesettings_torrent', 'savesettings_attachment', 'savesettings_advertisement', 'showmenu'); if (!in_array($action, $allowed_actions)) { $action = 'i18n'; } -$notice = "

".$lang_settings['text_website_settings']."

-".$lang_settings['text_configuration_file_saving_note']." +$notice = ""; if ($action == 'savesettings_main') // save main @@ -638,8 +635,8 @@ elseif ($action == 'showmenu') // settings main page } elseif ($action == 'i18n') { - stdhead('国际化'); - searchtable('搜索国际化翻译', 'i18n'); + stdhead(__('internationalization')); + searchtable(__('query_internationalization'), 'i18n'); print ($notice); if (!empty($_GET['action']) && $_GET['action'] == 'i18n' && !empty($_GET['query'])) { $result = sql_query(sprintf("select * from i18n where name = %s", sqlesc($_GET['query']))); @@ -650,19 +647,19 @@ elseif ($action == 'i18n') } print (""); - tr('键名','' . ' 翻译内容标识', 1); + tr(__('internationalization_name'),'', 1); $result = sql_query(sprintf("select * from language where site_lang_folder in ('en', 'chs', 'cht')")); while ($row = mysql_fetch_assoc($result)) { - tr($row['lang_name'],'' . " {$row['lang_name']}的翻译结果", 1); + tr($row['lang_name'],'' . " {$row['lang_name']} - " . __('internationalization_translation'), 1); } - tr('保存','', 1); + tr(__('internationalization_form_save_btn'),'', 1); print (""); } elseif ($action == 'saveI18n') { - stdhead('保存国际化支持'); + stdhead(__('internationalization_form_submit')); foreach ($_POST['translation'] as $locale => $translation) { $sql = sprintf( "insert into i18n (name, locale, translation) values (%s, %s, %s) on duplicate key update translation = values(translation)", diff --git a/include/bittorrent.php b/include/bittorrent.php index abf90ea0..ce1393de 100644 --- a/include/bittorrent.php +++ b/include/bittorrent.php @@ -1,4 +1,5 @@ diff --git a/include/config.php b/include/config.php index cfeb4460..60aba428 100644 --- a/include/config.php +++ b/include/config.php @@ -5,6 +5,15 @@ die('Hacking attempt!'); $CONFIGURATIONS = array('ACCOUNT', 'ADVERTISEMENT', 'ATTACHMENT', 'AUTHORITY', 'BASIC', 'BONUS', 'CODE', 'MAIN', 'SECURITY', 'SMTP', 'TORRENT', 'TWEAK'); function ReadConfig ($configname = NULL) { +// static $allConfig; +// if (is_null($allConfig)) { +// $configs = config(); +// foreach ($configs as $name => $value) { +// $prefix = strtoupper(strstr($name, '.', true)); +// $pureName = substr($name, strpos($name, '.') + 1); +// $GLOBALS[$prefix][$pureName] = $value; +// } +// } global $CONFIGURATIONS; if ($configname) { $configname = basename($configname); diff --git a/include/database/class_db.php b/include/database/class_db.php index 9cee849a..5fe38444 100644 --- a/include/database/class_db.php +++ b/include/database/class_db.php @@ -47,6 +47,7 @@ class DB try { return $this->driver->query($sql); } catch (\Exception $e) { + do_log(sprintf("%s [%s] %s", $e->getMessage(), $sql, $e->getTraceAsString())); throw new \DatabaseException($sql, $e->getMessage()); } diff --git a/include/functions.php b/include/functions.php index e3e1d85b..c5534a7b 100644 --- a/include/functions.php +++ b/include/functions.php @@ -1392,7 +1392,7 @@ function sent_mail($to,$fromname,$fromemail,$subject,$body,$type = "confirmation elseif ($smtptype == 'external') { require_once ($rootpath . 'include/smtp/smtp.lib.php'); $mail = new smtp($hdr_encoding,'eYou'); - $mail->debug(false); + $mail->debug(true); $mail->open($smtpaddress, $smtpport); $mail->auth($accountname, $accountpassword); // $mail->bcc($multiplemail); @@ -1841,7 +1841,7 @@ function userlogin() { $oldip = $row['ip']; $row['ip'] = $ip; $GLOBALS["CURUSER"] = $row; - if ($_GET['clearcache'] && get_user_class() >= UC_MODERATOR) { + if (isset($_GET['clearcache']) && $_GET['clearcache'] && get_user_class() >= UC_MODERATOR) { $Cache->setClearCache(1); } if ($enablesqldebug_tweak == 'yes' && get_user_class() >= $sqldebug_tweak) { @@ -2553,12 +2553,12 @@ function stdfoot() { sql_query("UPDATE users SET " . join(",", $USERUPDATESET) . " WHERE id = ".$CURUSER['id']); } // Variables for End Time - $tend = getmicrotime(); - $totaltime = ($tend - $tstart); + $tend = microtime(true); + $totaltime = ($tend - NEXUS_START); $year = substr($datefounded, 0, 4); $yearfounded = ($year ? $year : 2007); print(" (c) "." ".$SITENAME." ".($icplicense_main ? " ".$icplicense_main." " : "").(date("Y") != $yearfounded ? $yearfounded."-" : "").date("Y")." ".VERSION."

"); - printf ("[page created in %s ms", sprintf("%.1f", $totaltime * 1000)); + printf ("[page created in %s sec", sprintf("%.3f", $totaltime)); print (" with ".count($query_name)." db queries, ".$Cache->getCacheReadTimes()." reads and ".$Cache->getCacheWriteTimes()." writes of Redis and ".mksize(memory_get_usage())." ram]"); print ("\n"); if ($enablesqldebug_tweak == 'yes' && get_user_class() >= $sqldebug_tweak) { @@ -2588,8 +2588,7 @@ function stdfoot() { print(""); //echo replacePngTags(ob_get_clean()); - - unset($_SESSION['queries']); +// unset($_SESSION['queries']); } function genbark($x,$y) { @@ -4423,4 +4422,91 @@ function do_log($log) } } +/** + * get translation for given name + * + * @author xiaomlove + * @date 2021/1/11 + * @time 10:42 + * @param null $name + * @param null $prefix + * @return mixed|string + */ +function __($name = null, $prefix = null) +{ + static $i18n; + static $i18nWithoutPrefix; + $userLocale = get_langfolder_cookie(); + $defaultLocale = 'en'; + if (is_null($prefix)) { + //get prefix from scripe name + $prefix = basename($_SERVER['SCRIPT_NAME']); + $prefix = strstr($prefix, '.php', true); + } + if (is_null($i18n)) { + //get all in18 may be used, incldue user locale and default locale, and name = _target(because it is common) or prefixed with given prefix + $sql = "select locale, name, translation from i18n where locale in (" . sqlesc($userLocale) . ", " . sqlesc($defaultLocale) . ") and (name = '_target' or name like '{$prefix}%')"; + $result = sql_query($sql); + while ($row = mysql_fetch_assoc($result)) { + $i18n[$row['locale']][$row['name']] = $row['translation']; + $i18nWithoutPrefix[$row['locale']][substr($row['name'], strpos($row['name'], '.') + 1)] = $row['translation']; + } + } + if (is_null($name)) { + return $i18nWithoutPrefix[$userLocale] ?? $i18nWithoutPrefix[$defaultLocale] ?? []; + } + $name = "$prefix.$name"; + return $i18n[$userLocale][$name] ?? $i18n[$defaultLocale][$name] ?? ''; + +} + +/** + * get configuation for given name and prefix + * + * $name == null and $prefix == null, return all + * $name == null and $prefix != null, return with specified prefix, but the result's prefix will be stripped + * + * @author xiaomlove + * @date 2021/1/11 + * @time 16:37 + * @param null $name + * @param null $prefix + * @return array|mixed|string + */ +function config($name = null, $prefix = null) +{ + static $config; + if (is_null($config)) { + //get all configuations + $sql = "select config_name, config_value from configs"; + $result = sql_query($sql); + while ($row = mysql_fetch_assoc($result)) { + $value = $row['config_value']; + $arr = json_decode($value, true); + if (is_array($arr)) { + $value = $arr; + } + $config[$row['config_name']] = $value; + } + } + if (!is_null($name)) { + if (!is_null($prefix)) { + $name = "$prefix.$name"; + } + return $config[$name] ?? ''; + } + if (is_null($prefix)) { + return $config; + } + $filtered = []; + foreach ($config as $name => $value) { + if (preg_match("/^$prefix/", $name)) { + $nameWithoutPrefix = substr($name, strpos($name, '.') + 1); + $filtered[$nameWithoutPrefix] = $value; + } + } + return $filtered; + +} + ?> diff --git a/include/globalfunctions.php b/include/globalfunctions.php index 84b4bfba..664f320e 100644 --- a/include/globalfunctions.php +++ b/include/globalfunctions.php @@ -78,7 +78,10 @@ function sql_query($query) } function sqlesc($value) { - $value = "'" . mysql_real_escape_string($value) . "'"; + if (is_null($value)) { + return 'null'; + } + $value = "'" . mysql_real_escape_string($value) . "'"; return $value; } diff --git a/lang/cht/lang_mybonus.php b/lang/cht/lang_mybonus.php index 6f097a8b..cced6b06 100644 --- a/lang/cht/lang_mybonus.php +++ b/lang/cht/lang_mybonus.php @@ -10,7 +10,7 @@ $lang_mybonus = array 'text_success_vip' => "祝賀你,你獲得了一個月的", 'text_success_vip_two' => "資格!", 'text_no_permission' => "錯誤!你沒有該許可權。", - 'text_success_custom_title' => "祝賀你,你獲得了".$CURUSER[title]."頭銜!", + 'text_success_custom_title' => "祝賀你,你獲得了".$CURUSER['title']."頭銜!", 'text_success_gift' => "你成功贈送了魔力值。", 'head_karma_page' => "的魔力值", 'text_karma_system' => "魔力值系統", diff --git a/lang/en/lang_mybonus.php b/lang/en/lang_mybonus.php index b96182f7..2155fc8f 100644 --- a/lang/en/lang_mybonus.php +++ b/lang/en/lang_mybonus.php @@ -10,7 +10,7 @@ $lang_mybonus = array 'text_success_vip' => "Congratulations! You have got yourself ", 'text_success_vip_two' => " status for one month!", 'text_no_permission' => "ERROR! You have no permission.", - 'text_success_custom_title' => "Congradulations! You are now known as ".$CURUSER[title]."!", + 'text_success_custom_title' => "Congradulations! You are now known as ".$CURUSER['title']."!", 'text_success_gift' => " You have spread the Karma well.", 'head_karma_page' => "'s Karma Bonus Page", 'text_karma_system' => " Karma Bonus Point System", diff --git a/settings.php b/settings.php index 702574e7..4b141c52 100644 --- a/settings.php +++ b/settings.php @@ -1,7 +1,8 @@
".$note, 1); } +function saveConfig($prefix, $nameAndValue) +{ + $sql = "insert into configs (config_name, config_value) values "; + $data = []; + foreach ($nameAndValue as $name => $value) { + if (is_array($value)) { + $value = json_encode($value); + } + $data[] = sprintf("(%s, %s)", sqlesc("$prefix.$name"), sqlesc($value)); + } + $sql .= implode(",", $data) . " on duplicate key update config_value = values(config_value)"; + sql_query($sql) or sqlerr(__FILE__, __LINE__); +} + $action = isset($_POST['action']) ? $_POST['action'] : 'showmenu'; $allowed_actions = array('basicsettings','mainsettings','smtpsettings','securitysettings','authoritysettings','tweaksettings', 'botsettings','codesettings','bonussettings','accountsettings','torrentsettings', 'attachmentsettings', 'advertisementsettings', 'savesettings_basic', 'savesettings_main','savesettings_smtp','savesettings_security','savesettings_authority','savesettings_tweak','savesettings_bot','savesettings_code','savesettings_bonus', 'savesettings_account','savesettings_torrent', 'savesettings_attachment', 'savesettings_advertisement', 'showmenu'); if (!in_array($action, $allowed_actions)) @@ -35,14 +50,15 @@ $notice = "

".$la if ($action == 'savesettings_main') // save main { stdhead($lang_settings['head_save_main_settings']); - $validConfig = array('site_online','max_torrent_size','announce_interval', 'annintertwoage', 'annintertwo', 'anninterthreeage', 'anninterthree', 'signup_timeout','minoffervotes','offervotetimeout','offeruptimeout','maxsubsize','postsperpage', 'topicsperpage', 'torrentsperpage', 'maxnewsnum','max_dead_torrent_time','maxusers','torrent_dir', 'iniupload','SITEEMAIL', 'ACCOUNTANTID', 'ALIPAYACCOUNT', 'PAYPALACCOUNT', 'SLOGAN', 'icplicense', 'autoclean_interval_one', 'autoclean_interval_two', 'autoclean_interval_three','autoclean_interval_four', 'autoclean_interval_five','reportemail','invitesystem','registration','showhotmovies','showclassicmovies','showimdbinfo', 'enablenfo', 'enableschool','restrictemail','showpolls','showstats','showlastxtorrents', 'showtrackerload','showshoutbox','showfunbox','showoffer','sptime','showhelpbox','enablebitbucket', 'smalldescription','altname','extforum','extforumurl','defaultlang','defstylesheet', 'donation','spsct','browsecat','specialcat','waitsystem','maxdlsystem','bitbucket','torrentnameprefix', 'showforumstats','verification','invite_count','invite_timeout', 'seeding_leeching_time_calc_start','startsubid', 'logo'); + $validConfig = array('site_online','max_torrent_size','announce_interval', 'annintertwoage', 'annintertwo', 'anninterthreeage', 'anninterthree', 'signup_timeout','minoffervotes','offervotetimeout','offeruptimeout','maxsubsize','postsperpage', 'topicsperpage', 'torrentsperpage', 'maxnewsnum','max_dead_torrent_time','maxusers','torrent_dir', 'iniupload','SITEEMAIL', 'ACCOUNTANTID', 'ALIPAYACCOUNT', 'PAYPALACCOUNT', 'SLOGAN', 'icplicense', 'autoclean_interval_one', 'autoclean_interval_two', 'autoclean_interval_three','autoclean_interval_four', 'autoclean_interval_five','reportemail','invitesystem','registration','showhotmovies','showclassicmovies','showimdbinfo', 'enablenfo', 'enableschool','restrictemail','showpolls','showstats','showlastxtorrents', 'showtrackerload','showshoutbox','showfunbox','showoffer','sptime','showhelpbox','enablebitbucket', 'smalldescription','altname','extforum','extforumurl','defaultlang','defstylesheet', 'donation','spsct','browsecat','specialcat','waitsystem','maxdlsystem','bitbucket','torrentnameprefix', 'showforumstats','verification','invite_count','invite_timeout', 'seeding_leeching_time_calc_start','startsubid', 'logo', 'use_cron_trigger_cleanup', 'showlastxforumposts'); GetVar($validConfig); - unset($MAIN); + $MAIN = []; foreach($validConfig as $config) { - $MAIN[$config] = $$config; + $MAIN[$config] = $$config ?? null; } - WriteConfig('MAIN', $MAIN); +// WriteConfig('MAIN', $MAIN); + saveConfig('main', $MAIN); $Cache->delete_value('recent_news', true); $Cache->delete_value('stats_users', true); $Cache->delete_value('stats_torrents', true); @@ -54,17 +70,22 @@ if ($action == 'savesettings_main') // save main elseif ($action == 'savesettings_basic') // save basic { stdhead($lang_settings['head_save_basic_settings']); - $validConfig = array('SITENAME', 'BASEURL', 'announce_url', 'mysql_host', 'mysql_user', 'mysql_pass', 'mysql_db'); + $validConfig = array( + 'SITENAME', 'BASEURL', 'announce_url', + 'mysql_host', 'mysql_user', 'mysql_pass', 'mysql_db', 'mysql_port', + 'redis_host', 'redis_port', 'redis_database' + ); GetVar($validConfig); - if (!mysql_connect($mysql_host, $mysql_user, $mysql_pass)) { + if (!mysql_connect($mysql_host, $mysql_user, $mysql_pass, $mysql_db, $mysql_port)) { stdmsg($lang_settings['std_error'], $lang_settings['std_mysql_connect_error'].$lang_settings['std_click']."".$lang_settings['std_here']."".$lang_settings['std_to_go_back']); } else { dbconn(); - unset($BASIC); + $BASIC = []; foreach($validConfig as $config) { $BASIC[$config] = $$config; } - WriteConfig('BASIC', $BASIC); +// WriteConfig('BASIC', $BASIC); + saveConfig('basic', $BASIC); $actiontime = date("F j, Y, g:i a"); write_log("Tracker basic settings updated by $CURUSER[username]. $actiontime",'mod'); go_back(); @@ -75,11 +96,12 @@ elseif ($action == 'savesettings_code') // save database stdhead($lang_settings['head_save_code_settings']); $validConfig = array('mainversion','subversion','releasedate','website'); GetVar($validConfig); - unset($CODE); + $CODE = []; foreach($validConfig as $config) { - $CODE[$config] = $$config; + $CODE[$config] = $$config ?? null; } - WriteConfig('CODE', $CODE); +// WriteConfig('CODE', $CODE); + saveConfig('code', $CODE); $actiontime = date("F j, Y, g:i a"); write_log("Tracker code settings updated by $CURUSER[username]. $actiontime",'mod'); go_back(); @@ -89,11 +111,12 @@ elseif ($action == 'savesettings_bonus') // save bonus stdhead($lang_settings['head_save_bonus_settings']); $validConfig = array('donortimes','perseeding','maxseeding','tzero','nzero','bzero','l', 'uploadtorrent','uploadsubtitle','starttopic','makepost','addcomment','pollvote','offervote', 'funboxvote','saythanks','receivethanks','funboxreward','onegbupload','fivegbupload','tengbupload', 'ratiolimit','dlamountlimit','oneinvite','customtitle','vipstatus','bonusgift', 'basictax', 'taxpercentage', 'prolinkpoint', 'prolinktime'); GetVar($validConfig); - unset($BONUS); + $BONUS = []; foreach($validConfig as $config) { - $BONUS[$config] = $$config; + $BONUS[$config] = $$config ?? null; } - WriteConfig('BONUS', $BONUS); +// WriteConfig('BONUS', $BONUS); + saveConfig('bonus', $BONUS); $actiontime = date("F j, Y, g:i a"); write_log("Tracker bonus settings updated by $CURUSER[username]. $actiontime",'mod'); go_back(); @@ -104,12 +127,12 @@ elseif ($action == 'savesettings_account') // save account $validConfig = array('neverdelete', 'neverdeletepacked', 'deletepacked', 'deleteunpacked', 'deletenotransfer', 'deletenotransfertwo', 'deletepeasant', 'psdlone', 'psratioone', 'psdltwo', 'psratiotwo', 'psdlthree', 'psratiothree', 'psdlfour', 'psratiofour', 'psdlfive', 'psratiofive', 'putime', 'pudl', 'puprratio', 'puderatio', 'eutime', 'eudl', 'euprratio', 'euderatio', 'cutime', 'cudl', 'cuprratio', 'cuderatio', 'iutime', 'iudl', 'iuprratio', 'iuderatio', 'vutime', 'vudl', 'vuprratio', 'vuderatio', 'exutime', 'exudl', 'exuprratio', 'exuderatio', 'uutime', 'uudl', 'uuprratio', 'uuderatio', 'nmtime', 'nmdl', 'nmprratio', 'nmderatio', 'getInvitesByPromotion'); GetVar($validConfig); - unset($ACCOUNT); + $ACCOUNT = []; foreach($validConfig as $config) { - $ACCOUNT[$config] = $$config; + $ACCOUNT[$config] = $$config ?? null; } - - WriteConfig('ACCOUNT', $ACCOUNT); +// WriteConfig('ACCOUNT', $ACCOUNT); + saveConfig('account', $ACCOUNT); $actiontime = date("F j, Y, g:i a"); write_log("Tracker account settings updated by $CURUSER[username]. $actiontime",'mod'); go_back(); @@ -119,12 +142,13 @@ elseif($action == 'savesettings_torrent') // save account stdhead($lang_settings['head_save_torrent_settings']); $validConfig = array('prorules', 'randomhalfleech','randomfree','randomtwoup','randomtwoupfree','randomtwouphalfdown','largesize', 'largepro','expirehalfleech','expirefree','expiretwoup','expiretwoupfree','expiretwouphalfleech', 'expirenormal','hotdays','hotseeder','halfleechbecome','freebecome','twoupbecome','twoupfreebecome', 'twouphalfleechbecome','normalbecome','uploaderdouble','deldeadtorrent', 'randomthirtypercentdown', 'thirtypercentleechbecome', 'expirethirtypercentleech'); GetVar($validConfig); - unset($TORRENT); + $TORRENT = []; foreach($validConfig as $config) { - $TORRENT[$config] = $$config; + $TORRENT[$config] = $$config ?? null; } - WriteConfig('TORRENT', $TORRENT); +// WriteConfig('TORRENT', $TORRENT); + saveConfig('torrent', $TORRENT); $actiontime = date("F j, Y, g:i a"); write_log("Tracker torrent settings updated by $CURUSER[username]. $actiontime",'mod'); go_back(); @@ -134,18 +158,19 @@ elseif ($action == 'savesettings_smtp') // save smtp stdhead($lang_settings['head_save_smtp_settings']); $validConfig = array('smtptype', 'emailnotify'); GetVar($validConfig); - if ($smtptype == 'advanced') { + if (isset($smtptype) && $smtptype == 'advanced') { $validConfig = array_merge($validConfig, array('smtp_host','smtp_port','smtp_from')); } elseif ($smtptype == 'external') { $validConfig = array_merge($validConfig, array('smtpaddress','smtpport','accountname','accountpassword')); } GetVar($validConfig); - unset($SMTP); + $SMTP = []; foreach($validConfig as $config) { - $SMTP[$config] = $$config; + $SMTP[$config] = $$config ?? null; } - WriteConfig('SMTP', $SMTP); +// WriteConfig('SMTP', $SMTP); + saveConfig('smtp', $SMTP); $actiontime = date("F j, Y, g:i a"); write_log("Tracker SMTP settings updated by $CURUSER[username]. $actiontime",'mod'); go_back(); @@ -155,11 +180,12 @@ elseif ($action == 'savesettings_security') // save security stdhead($lang_settings['head_save_security_settings']); $validConfig = array('securelogin', 'securetracker', 'https_announce_url','iv','maxip','maxloginattempts','changeemail','cheaterdet','nodetect'); GetVar($validConfig); - unset($SECURITY); + $SECURITY = []; foreach($validConfig as $config) { $SECURITY[$config] = $$config; } - WriteConfig('SECURITY', $SECURITY); +// WriteConfig('SECURITY', $SECURITY); + saveConfig('security', $SECURITY); $actiontime = date("F j, Y, g:i a"); write_log("Tracker SECURITY settings updated by $CURUSER[username]. $actiontime",'mod'); go_back(); @@ -169,12 +195,13 @@ elseif ($action == 'savesettings_authority') // save user authority stdhead($lang_settings['head_save_authority_settings']); $validConfig = array('defaultclass','staffmem','newsmanage','newfunitem','funmanage','sbmanage','pollmanage','applylink', 'linkmanage', 'postmanage','commanage','forummanage','viewuserlist','torrentmanage','torrentsticky', 'torrentonpromotion', 'askreseed', 'viewnfo', 'torrentstructure','sendinvite','viewhistory','topten','log','confilog','userprofile', 'torrenthistory','prfmanage', 'cruprfmanage','uploadsub','delownsub','submanage','updateextinfo', 'viewanonymous','beanonymous','addoffer','offermanage', 'upload','uploadspecial','movetorrent','chrmanage','viewinvite', 'buyinvite','seebanned','againstoffer','userbar'); GetVar($validConfig); - unset($AUTHORITY); + $AUTHORITY = []; foreach($validConfig as $config) { - $AUTHORITY[$config] = $$config; + $AUTHORITY[$config] = $$config ?? null; } - WriteConfig('AUTHORITY', $AUTHORITY); +// WriteConfig('AUTHORITY', $AUTHORITY); + saveConfig('authority', $AUTHORITY); $actiontime = date("F j, Y, g:i a"); write_log("Tracker USER AUTHORITY settings updated by $CURUSER[username]. $actiontime",'mod'); go_back(); @@ -182,13 +209,14 @@ elseif ($action == 'savesettings_authority') // save user authority elseif ($action == 'savesettings_tweak') // save tweak { stdhead($lang_settings['head_save_tweak_settings']); - $validConfig = array('where','iplog1','bonus','datefounded', 'enablelocation', 'titlekeywords', 'metakeywords', 'metadescription', 'enablesqldebug', 'sqldebug', 'cssdate', 'enabletooltip', 'prolinkimg', 'analyticscode'); + $validConfig = array('where','iplog1','bonus','datefounded', 'enablelocation', 'titlekeywords', 'metakeywords', 'metadescription', 'enablesqldebug', 'sqldebug', 'cssdate', 'enabletooltip', 'prolinkimg', 'analyticscode', 'display_errors', 'logging'); GetVar($validConfig); - unset($TWEAK); + $TWEAK = []; foreach($validConfig as $config) { - $TWEAK[$config] = $$config; + $TWEAK[$config] = $$config ?? null; } - WriteConfig('TWEAK', $TWEAK); +// WriteConfig('TWEAK', $TWEAK); + saveConfig('tweak', $TWEAK); $actiontime = date("F j, Y, g:i a"); write_log("Tracker TWEAK settings updated by $CURUSER[username]. $actiontime",'mod'); go_back(); @@ -198,12 +226,13 @@ elseif ($action == 'savesettings_attachment') // save attachment stdhead($lang_settings['head_save_attachment_settings']); $validConfig = array('enableattach','classone','countone','sizeone', 'extone', 'classtwo','counttwo','sizetwo', 'exttwo', 'classthree','countthree','sizethree', 'extthree', 'classfour','countfour','sizefour', 'extfour', 'savedirectory', 'httpdirectory', 'savedirectorytype', 'thumbnailtype', 'thumbquality', 'thumbwidth', 'thumbheight', 'watermarkpos', 'watermarkwidth', 'watermarkheight', 'watermarkquality', 'altthumbwidth', 'altthumbheight'); GetVar($validConfig); - unset($ATTACHMENT); + $ATTACHMENT = []; foreach($validConfig as $config) { - $ATTACHMENT[$config] = $$config; + $ATTACHMENT[$config] = $$config ?? null; } - WriteConfig('ATTACHMENT', $ATTACHMENT); +// WriteConfig('ATTACHMENT', $ATTACHMENT); + saveConfig('attachment', $ATTACHMENT); $actiontime = date("F j, Y, g:i a"); write_log("Tracker ATTACHMENT settings updated by $CURUSER[username]. $actiontime",'mod'); go_back(); @@ -213,18 +242,20 @@ elseif ($action == 'savesettings_advertisement') // save advertisement stdhead($lang_settings['head_save_advertisement_settings']); $validConfig = array('enablead', 'enablenoad', 'noad', 'enablebonusnoad', 'bonusnoad', 'bonusnoadpoint', 'bonusnoadtime', 'adclickbonus'); GetVar($validConfig); - unset($ADVERTISEMENT); + $ADVERTISEMENT = []; foreach($validConfig as $config) { - $ADVERTISEMENT[$config] = $$config; + $ADVERTISEMENT[$config] = $$config ?? null; } - WriteConfig('ADVERTISEMENT', $ADVERTISEMENT); +// WriteConfig('ADVERTISEMENT', $ADVERTISEMENT); + saveConfig('advertisement', $ADVERTISEMENT); $actiontime = date("F j, Y, g:i a"); write_log("Tracker ADVERTISEMENT settings updated by $CURUSER[username]. $actiontime",'mod'); go_back(); } elseif ($action == 'tweaksettings') // tweak settings { + $TWEAK = config(null, 'tweak'); stdhead($lang_settings['head_tweak_settings']); print ($notice); print ("
"); @@ -241,12 +272,15 @@ elseif ($action == 'tweaksettings') // tweak settings tr($lang_settings['row_see_sql_debug'], "".$lang_settings['text_allow'].classlist('sqldebug',UC_STAFFLEADER,$TWEAK['sqldebug'], UC_MODERATOR).$lang_settings['text_see_sql_list'].get_user_class_name(UC_SYSOP,false,true,true),1); tr($lang_settings['row_tracker_founded_date'],"
".$lang_settings['text_tracker_founded_date_note'], 1); tr($lang_settings['row_css_date'],"
".$lang_settings['text_css_date'], 1); + yesorno($lang_settings['row_display_errors'], 'display_errors', $TWEAK["display_errors"], $lang_settings['text_display_errors_note']); + tr($lang_settings['row_logging'],"
".$lang_settings['text_logging_note'], 1); tr($lang_settings['row_save_settings'],"", 1); print (""); } elseif ($action == 'smtpsettings') // stmp settings { + $SMTP = config(null, 'smtp'); stdhead($lang_settings['head_smtp_settings']); print ($notice); print("

"); @@ -276,6 +310,7 @@ print(""); } elseif ($action == 'securitysettings') //security settings { + $SECURITY = config(null, 'security'); stdhead($lang_settings['head_security_settings']); print ($notice); print (""); @@ -293,6 +328,7 @@ elseif ($action == 'securitysettings') //security settings } elseif ($action == 'authoritysettings') //Authority settings { + $AUTHORITY = config(null, 'authority'); stdhead($lang_settings['head_authority_settings']); print ($notice); $maxclass = UC_SYSOP; @@ -351,21 +387,26 @@ elseif ($action == 'basicsettings') // basic settings { stdhead($lang_settings['head_basic_settings']); print ($notice); + $config = config(null, 'basic'); print (""); - tr($lang_settings['row_site_name']," ".$lang_settings['text_site_name_note'], 1); - tr($lang_settings['row_base_url']," ".$lang_settings['text_it_should_be'] . $_SERVER["HTTP_HOST"] . $lang_settings['text_base_url_note'], 1); - tr($lang_settings['row_announce_url']," ".$lang_settings['text_it_should_be'] . $_SERVER["HTTP_HOST"]."/announce.php", 1); - tr($lang_settings['row_mysql_host']," ".$lang_settings['text_mysql_host_note'], 1); - tr($lang_settings['row_mysql_user']," ".$lang_settings['text_mysql_user_note'], 1); + tr($lang_settings['row_site_name']," ".$lang_settings['text_site_name_note'], 1); + tr($lang_settings['row_base_url']," ".$lang_settings['text_it_should_be'] . $_SERVER["HTTP_HOST"] . $lang_settings['text_base_url_note'], 1); + tr($lang_settings['row_announce_url']," ".$lang_settings['text_it_should_be'] . $_SERVER["HTTP_HOST"]."/announce.php", 1); + tr($lang_settings['row_mysql_host']," ".$lang_settings['text_mysql_host_note'], 1); + tr($lang_settings['row_mysql_user']," ".$lang_settings['text_mysql_user_note'], 1); tr($lang_settings['row_mysql_password']," ".$lang_settings['text_mysql_password_note'], 1); - tr($lang_settings['row_mysql_database_name']," ".$lang_settings['text_mysql_database_name_note'], 1); - tr($lang_settings['row_mysql_database_port']," ".$lang_settings['text_mysql_database_port_note'], 1); + tr($lang_settings['row_mysql_database_name']," ".$lang_settings['text_mysql_database_name_note'], 1); + tr($lang_settings['row_mysql_database_port']," ".$lang_settings['text_mysql_database_port_note'], 1); + tr($lang_settings['row_redis_host']," ".$lang_settings['text_row_redis_host_note'], 1); + tr($lang_settings['row_redis_port']," ".$lang_settings['text_row_redis_port_note'], 1); + tr($lang_settings['row_redis_database']," ".$lang_settings['text_row_redis_database'], 1); tr($lang_settings['row_save_settings'],"", 1); print (""); } elseif ($action == 'attachmentsettings') // basic settings { + $ATTACHMENT = config(null, 'attachment'); stdhead($lang_settings['head_attachment_settings']); print ($notice); print (""); @@ -387,6 +428,7 @@ elseif ($action == 'attachmentsettings') // basic settings } elseif ($action == 'advertisementsettings') { + $ADVERTISEMENT = config(null, 'advertisement'); stdhead($lang_settings['head_advertisement_settings']); print ($notice); print (""); @@ -400,6 +442,7 @@ elseif ($action == 'advertisementsettings') } elseif ($action == 'codesettings') // code settings { + $CODE = config(null, 'code'); stdhead($lang_settings['head_code_settings']); print ($notice); print (""); @@ -411,6 +454,7 @@ elseif ($action == 'codesettings') // code settings print (""); } elseif ($action == 'bonussettings'){ + $BONUS = config(null, 'bonus'); stdhead($lang_settings['head_bonus_settings']); print ($notice); print (""); @@ -444,6 +488,7 @@ elseif ($action == 'bonussettings'){ print (""); } elseif ($action == 'accountsettings'){ + $ACCOUNT = config(null, 'account'); stdhead($lang_settings['head_account_settings']); print ($notice); $maxclass = UC_VIP; @@ -487,6 +532,7 @@ elseif ($action == 'accountsettings'){ } elseif ($action == 'torrentsettings') { + $TORRENT = config(null, 'torrent'); stdhead($lang_settings['head_torrent_settings']); print ($notice); print (""); @@ -518,6 +564,7 @@ elseif ($action == 'torrentsettings') } elseif ($action == 'mainsettings') // main settings { + $MAIN = config(null, 'main'); stdhead($lang_settings['head_main_settings']); print ($notice); print (""); @@ -525,16 +572,16 @@ elseif ($action == 'mainsettings') // main settings yesorno($lang_settings['row_site_online'], 'site_online', $MAIN['site_online'], $lang_settings['text_site_online_note']); yesorno($lang_settings['row_enable_invite_system'], 'invitesystem', $MAIN['invitesystem'], $lang_settings['text_invite_system_note']); - tr($lang_settings['row_initial_uploading_amount']," ".$lang_settings['text_initial_uploading_amount_note'], 1); - tr($lang_settings['row_initial_invites']," ".$lang_settings['text_initial_invites_note'], 1); - tr($lang_settings['row_invite_timeout']," ".$lang_settings['text_invite_timeout_note'], 1); + tr($lang_settings['row_initial_uploading_amount']," ".$lang_settings['text_initial_uploading_amount_note'], 1); + tr($lang_settings['row_initial_invites']," ".$lang_settings['text_initial_invites_note'], 1); + tr($lang_settings['row_invite_timeout']," ".$lang_settings['text_invite_timeout_note'], 1); yesorno($lang_settings['row_enable_registration_system'], 'registration', $MAIN['registration'], $lang_settings['row_allow_registrations']); tr($lang_settings['row_verification_type']," ".$lang_settings['text_email'] ." ".$lang_settings['text_admin']." ".$lang_settings['text_automatically']."
".$lang_settings['text_verification_type_note'], 1); yesorno($lang_settings['row_enable_wait_system'],'waitsystem', $MAIN['waitsystem'], $lang_settings['text_wait_system_note']); yesorno($lang_settings['row_enable_max_slots_system'],'maxdlsystem', $MAIN['maxdlsystem'], $lang_settings['text_max_slots_system_note']); yesorno($lang_settings['row_show_polls'], 'showpolls', $MAIN['showpolls'], $lang_settings['text_show_polls_note']); yesorno($lang_settings['row_show_stats'],'showstats', $MAIN['showstats'], $lang_settings['text_show_stats_note']); - //yesorno($lang_settings['row_show_last_posts'],'showlastxforumposts', $MAIN['showlastxforumposts'], $lang_settings['text_show_last_posts_note']); + yesorno($lang_settings['row_show_last_posts'],'showlastxforumposts', $MAIN['showlastxforumposts'], $lang_settings['text_show_last_posts_note']); yesorno($lang_settings['row_show_last_torrents'],'showlastxtorrents', $MAIN['showlastxtorrents'], $lang_settings['text_show_last_torrents_note']); yesorno($lang_settings['row_show_server_load'],'showtrackerload', $MAIN['showtrackerload'], $lang_settings['text_show_server_load_note']); yesorno($lang_settings['row_show_forum_stats'],'showforumstats', $MAIN['showforumstats'], $lang_settings['text_show_forum_stats_note']); @@ -555,7 +602,7 @@ elseif ($action == 'mainsettings') // main settings yesorno($lang_settings['row_enable_bitbucket'],'enablebitbucket', $MAIN['enablebitbucket'], $lang_settings['text_bitbucket_note']); yesorno($lang_settings['row_enable_small_description'],'smalldescription', $MAIN['smalldescription'], $lang_settings['text_small_description_note']); if (THISTRACKER == "PTShow") - yesorno($lang_settings['row_ptshow_naming_style'],' altname', $MAIN['altname'], $lang_settings['text_ptshow_naming_style_note']); + yesorno($lang_settings['row_ptshow_naming_style'],'altname', $MAIN['altname'], $lang_settings['text_ptshow_naming_style_note']); yesorno($lang_settings['row_use_external_forum'],'extforum', $MAIN['extforum'], $lang_settings['text_use_external_forum_note']); tr($lang_settings['row_external_forum_url']," ".$lang_settings['text_external_forum_url_note'], 1); $res = sql_query("SELECT id, name FROM searchbox") or sqlerr(__FILE__, __LINE__); @@ -604,6 +651,8 @@ elseif ($action == 'mainsettings') // main settings tr($lang_settings['row_torrent_directory'], " ".$lang_settings['text_torrent_directory'], 1); tr($lang_settings['row_bitbucket_directory']," ".$lang_settings['text_bitbucket_directory_note'], 1); tr($lang_settings['row_torrent_name_prefix'], " ".$lang_settings['text_torrent_name_prefix_note'], 1); + yesorno($lang_settings['row_use_cron_trigger_cleanup'],'use_cron_trigger_cleanup', $MAIN['use_cron_trigger_cleanup'], $lang_settings['text_use_cron_trigger_cleanup_note']); + tr($lang_settings['row_save_settings'],"", 1); print (""); }
+". __('internationalization_form') ."