diff --git a/admin/admin_ranks.php b/admin/admin_ranks.php
index d5e31a485..398f63a10 100644
--- a/admin/admin_ranks.php
+++ b/admin/admin_ranks.php
@@ -83,7 +83,7 @@ if ($mode != '') {
// The rank image has to be a jpg, gif or png
//
if ($rank_image != '') {
- if (!preg_match('/(\.gif|\.png|\.jpg|\.jpeg|\.bmp|\.webp)$/is', $rank_image)) {
+ if (!preg_match('/(\.gif|\.png|\.jpg|\.jpeg|\.bmp|\.webp|\.ico)$/is', $rank_image)) {
$rank_image = '';
}
}
diff --git a/admin/admin_ug_auth.php b/admin/admin_ug_auth.php
index f027a6542..a279bea11 100644
--- a/admin/admin_ug_auth.php
+++ b/admin/admin_ug_auth.php
@@ -82,7 +82,7 @@ if ($submit && $mode == 'user') {
\TorrentPier\Legacy\Group::delete_permissions($group_id, $user_id);
$message = $lang['AUTH_UPDATED'] . '
';
- $message .= sprintf($lang['CLICK_RETURN_USERAUTH'], '', '') . '
';
+ $message .= sprintf($lang['CLICK_RETURN_USERAUTH'], '', '') . '
';
$message .= sprintf($lang['CLICK_RETURN_ADMIN_INDEX'], '', '');
bb_die($message);
@@ -98,7 +98,7 @@ if ($submit && $mode == 'user') {
\TorrentPier\Legacy\Group::delete_permissions($group_id, $user_id);
$message = $lang['AUTH_UPDATED'] . '
';
- $message .= sprintf($lang['CLICK_RETURN_USERAUTH'], '', '') . '
';
+ $message .= sprintf($lang['CLICK_RETURN_USERAUTH'], '', '') . '
';
$message .= sprintf($lang['CLICK_RETURN_ADMIN_INDEX'], '', '');
bb_die($message);
@@ -126,7 +126,7 @@ if ($submit && $mode == 'user') {
$l_auth_return = ($mode == 'user') ? $lang['CLICK_RETURN_USERAUTH'] : $lang['CLICK_RETURN_GROUPAUTH'];
$message = $lang['AUTH_UPDATED'] . '
';
- $message .= sprintf($l_auth_return, '', '') . '
';
+ $message .= sprintf($l_auth_return, '', '') . '
';
$message .= sprintf($lang['CLICK_RETURN_ADMIN_INDEX'], '', '');
bb_die($message);
@@ -154,7 +154,7 @@ elseif ($submit && $mode == 'group' && (!empty($_POST['auth']) && is_array($_POS
$l_auth_return = $lang['CLICK_RETURN_GROUPAUTH'];
$message = $lang['AUTH_UPDATED'] . '
';
- $message .= sprintf($l_auth_return, '', '') . '
';
+ $message .= sprintf($l_auth_return, '', '') . '
';
$message .= sprintf($lang['CLICK_RETURN_ADMIN_INDEX'], '', '');
bb_die($message);
diff --git a/install/sql/mysql.sql b/install/sql/mysql.sql
index 5527a23ea..53bf2f68d 100644
--- a/install/sql/mysql.sql
+++ b/install/sql/mysql.sql
@@ -284,7 +284,7 @@ CREATE TABLE IF NOT EXISTS `bb_bt_torrents`
`reg_time` INT(11) NOT NULL DEFAULT '0',
`call_seed_time` INT(11) NOT NULL DEFAULT '0',
`complete_count` MEDIUMINT(8) UNSIGNED NOT NULL DEFAULT '0',
- `seeder_last_seen` MEDIUMINT(10) NOT NULL DEFAULT '0',
+ `seeder_last_seen` MEDIUMINT(10) NOT NULL DEFAULT '0',
`tor_status` TINYINT(4) NOT NULL DEFAULT '0',
`checked_user_id` MEDIUMINT(8) NOT NULL DEFAULT '0',
`checked_time` INT(11) NOT NULL DEFAULT '0',
@@ -1457,7 +1457,7 @@ CREATE TABLE IF NOT EXISTS `buf_last_seeder`
(
`topic_id` MEDIUMINT(8) UNSIGNED NOT NULL DEFAULT '0',
`seeder_last_seen` INT(11) NOT NULL DEFAULT '0',
- `user_id` MEDIUMINT(10) NOT NULL DEFAULT '0',
+ `user_id` MEDIUMINT(10) NOT NULL DEFAULT '0',
PRIMARY KEY (`topic_id`)
)
ENGINE = MyISAM
diff --git a/library/defines.php b/library/defines.php
index 1c0643b4e..7ebb95591 100644
--- a/library/defines.php
+++ b/library/defines.php
@@ -73,7 +73,7 @@ define('SQL_TR_LOG_NAME', 'sql_error_tr'); // mysql log filename (Tracker)
define('SQL_CALC_QUERY_TIME', true); // for stats
define('SQL_LOG_SLOW_QUERIES', true); // log sql slow queries
define('SQL_SLOW_QUERY_TIME', 10); // slow query in seconds
-define('SQL_PREPEND_SRC_COMM', false); // prepend source file comment to sql query
+define('SQL_PREPEND_SRC', true); // prepend source file to sql query
// Log options
define('LOG_EXT', 'log'); // log file extension
diff --git a/library/includes/functions.php b/library/includes/functions.php
index 37bd848df..3486bdd27 100644
--- a/library/includes/functions.php
+++ b/library/includes/functions.php
@@ -1176,17 +1176,17 @@ function bb_date($gmepoch, $format = false, $friendly_date = true)
/**
* Get user's torrent client string
*
- * @param string $peer_id
+ * @param string $peerId
* @return mixed|string
*/
-function get_user_torrent_client(string $peer_id): mixed
+function get_user_torrent_client(string $peerId): mixed
{
static $clients = [
'-AG' => 'Ares', '-AZ' => 'Vuze', '-A~' => 'Ares', '-BC' => 'BitComet',
'-BE' => 'BitTorrent SDK', '-BI' => 'BiglyBT', '-BL' => 'BitLord', '-BT' => 'BitTorrent',
'-CT' => 'CTorrent', '-DE' => 'Deluge', '-FD' => 'Free Download Manager', 'FD6' => 'Free Download Manager',
'-FG' => 'FlashGet', '-FL' => 'Folx', '-HL' => 'Halite', '-KG' => 'KGet',
- '-KT' => 'KTorrent', '-LT' => 'libTorrent', '-Lr' => 'LibreTorrent', '-MG' => 'MediaGet',
+ '-KT' => 'KTorrent', '-LT' => 'libTorrent', '-Lr' => 'LibreTorrent',
'-TR' => 'Transmission', '-tT' => 'tTorrent', '-UM' => "uTorrent Mac", '-UT' => 'uTorrent',
'-UW' => 'uTorrent Web', '-WW' => 'WebTorrent', '-WD' => 'WebTorrent', '-XL' => 'Xunlei',
'-PI' => 'PicoTorrent', '-qB' => 'qBittorrent', 'M' => 'BitTorrent', 'MG' => 'MediaGet',
@@ -1220,21 +1220,28 @@ function get_user_torrent_client(string $peer_id): mixed
* =======================================================================
**/
];
+ static $iconExtension = '.png';
+ $bestMatch = null;
$bestMatchLength = 0;
foreach ($clients as $key => $clientName) {
- if (str_starts_with($peer_id, $key) !== false && strlen($key) > $bestMatchLength) {
+ if (str_starts_with($peerId, $key) !== false && strlen($key) > $bestMatchLength) {
$bestMatch = $clientName;
$bestMatchLength = strlen($key);
}
}
- if (!empty($bestMatchLength)) {
- return '';
+ if (!empty($bestMatchLength) && !empty($bestMatch)) {
+ $clientIconPath = 'styles/images/clients/' . $bestMatch . $iconExtension;
+ if (is_file($clientIconPath)) {
+ return '
';
+ } else {
+ return $bestMatch;
+ }
}
- return $peer_id;
+ return $peerId;
}
function birthday_age($date)
diff --git a/library/includes/page_footer.php b/library/includes/page_footer.php
index 9a5eb9759..c775ac664 100644
--- a/library/includes/page_footer.php
+++ b/library/includes/page_footer.php
@@ -63,9 +63,9 @@ if ($show_dbg_info) {
$stat .= ' ] |';
$stat .= !empty($_COOKIE['sql_log']) ? ' [ wrap · max ] |' : '';
- $stat .= ' |
- |
- ';
+ $stat .= ' |
+ |
+ ';
echo '
{L_SITEMAP_ADD_EXP_1} {L_SITEMAP_ADD_EXP_2}
+{L_SITEMAP_ADD_EXP_1}
{L_SITEMAP_ADD_EXP_2}
# | -{L_USERNAME} | -{L_PM} | -{L_EMAIL} | -{L_LOCATION} | -{L_JOINED} | -{L_POSTS_SHORT} | -{L_WEBSITE} | - -|
---|---|---|---|---|---|---|---|---|
{no_username.NO_USER_ID_SPECIFIED} | -||||||||
{memberrow.ROW_NUMBER} | -{memberrow.AVATAR} {memberrow.USER} |
- {memberrow.PM} | -{memberrow.EMAIL} | -{memberrow.FROM} | -- {memberrow.JOINED_RAW} - {memberrow.JOINED} - | -{memberrow.POSTS} | -{memberrow.WWW} | -|
- | ||||||||
# | +{L_USERNAME} | +{L_PM} | +{L_EMAIL} | +{L_LOCATION} | +{L_JOINED} | +{L_POSTS_SHORT} | +{L_WEBSITE} | +|
{memberrow.ROW_NUMBER} | +
+ {memberrow.AVATAR}
+ {memberrow.USER}
+ |
+ {memberrow.PM} | +{memberrow.EMAIL} | +{memberrow.FROM} | ++ {memberrow.JOINED_RAW} + {memberrow.JOINED} + | +{memberrow.POSTS} | +{memberrow.WWW} | +|
{no_username.NO_USER_ID_SPECIFIED} | +||||||||
+ |
{CURRENT_TIME}
-{S_TIMEZONE}
-{CURRENT_TIME}
+{S_TIMEZONE}
+