mirror of
https://github.com/lkddi/nexusphp.git
synced 2026-04-26 21:37:22 +08:00
index page add top uploader
This commit is contained in:
@@ -188,6 +188,64 @@ if ($showlastxtorrents_main == "yes") {
|
||||
}
|
||||
}
|
||||
// ------------- end: latest torrents ------------------//
|
||||
|
||||
// ------------- start: top uploader ------------------//
|
||||
|
||||
if (get_setting('main.show_top_uploader') == "yes") {
|
||||
$topUploaderBaseQuery = \App\Models\Torrent::query()
|
||||
->selectRaw("owner, count(*) as counts")
|
||||
->groupBy('owner')
|
||||
->orderBy("counts", "desc")
|
||||
->take(10);
|
||||
$userStatResult = \Nexus\Database\NexusDB::remember("index_top_uploader_all", 60, function () use ($topUploaderBaseQuery) {
|
||||
return (clone $topUploaderBaseQuery)->get();
|
||||
});
|
||||
if($userStatResult->isNotEmpty())
|
||||
{
|
||||
\Nexus\Nexus::css('.tr-top-uploader-tab>td {cursor: pointer}', 'footer', false);
|
||||
$toggleTimeRangeJs = <<<JS
|
||||
jQuery(".tr-top-uploader-tab").on("click", "td", function () {
|
||||
let _this = jQuery(this)
|
||||
if (_this.hasClass("colhead")) {
|
||||
return
|
||||
}
|
||||
_this.parent().children().removeClass("colhead")
|
||||
_this.addClass("colhead")
|
||||
jQuery(".top-uploader").hide()
|
||||
jQuery("." + _this.attr("data-table")).fadeIn()
|
||||
|
||||
})
|
||||
JS;
|
||||
\Nexus\Nexus::js($toggleTimeRangeJs, "footer", false);
|
||||
print ("<h2>".$lang_index['top_uploader_title']."</h2>");
|
||||
print("<table width='100%'><tr class='tr-top-uploader-tab' title='{$lang_index['top_uploader_toggle_time_range_tab']}'><td class='colhead' align='center' data-table='top-uploader-recently'>{$lang_index['top_uploader_toggle_time_range_recently']}</td><td align='center' data-table='top-uploader-all'>{$lang_index['top_uploader_toggle_time_range_all']}</td></tr></table>");
|
||||
|
||||
$userTorrentCounts = $userStatResult->pluck('counts', 'owner');
|
||||
$uidArr = $userStatResult->pluck('owner')->toArray();
|
||||
$result = \App\Models\User::query()->whereIn('id', $uidArr)->orderByRaw(sprintf("field(id,%s)", implode(',', $uidArr)))->get(['id', 'username']);
|
||||
print ("<table class='top-uploader top-uploader-all' width=\"100%\" border=\"1\" cellspacing=\"0\" cellpadding=\"5\" style='display: none'><tr><td class=\"colhead\" width=\"\">".$lang_index['col_author']."</td><td class=\"colhead\" align=\"center\">".$lang_index['col_counts']."</td><td class=\"colhead\" align=\"center\">".$lang_index['col_ranking']."</td></tr>");
|
||||
foreach ($result as $ranking => $row)
|
||||
{
|
||||
print ("<tr><td>" . get_username($row->id) . "</td><td align=\"center\">" . $userTorrentCounts->get($row->id, 0) . "</td><td align=\"center\">" . ($ranking + 1) . "</td></tr>");
|
||||
}
|
||||
print ("</table>");
|
||||
|
||||
$userStatResult = \Nexus\Database\NexusDB::remember("index_top_uploader_recently", 60, function () use ($topUploaderBaseQuery) {
|
||||
return (clone $topUploaderBaseQuery)->where('added', '>=', \Carbon\Carbon::today()->subDays(30))->get();
|
||||
});
|
||||
$userTorrentCounts = $userStatResult->pluck('counts', 'owner');
|
||||
$uidArr = $userStatResult->pluck('owner')->toArray();
|
||||
$result = \App\Models\User::query()->whereIn('id', $uidArr)->orderByRaw(sprintf("field(id,%s)", implode(',', $uidArr)))->get(['id', 'username']);
|
||||
print ("<table class='top-uploader top-uploader-recently' width=\"100%\" border=\"1\" cellspacing=\"0\" cellpadding=\"5\"><tr><td class=\"colhead\" width=\"\">".$lang_index['col_author']."</td><td class=\"colhead\" align=\"center\">".$lang_index['col_counts']."</td><td class=\"colhead\" align=\"center\">".$lang_index['col_ranking']."</td></tr>");
|
||||
foreach ($result as $ranking => $row)
|
||||
{
|
||||
print ("<tr><td>" . get_username($row->id) . "</td><td align=\"center\">" . $userTorrentCounts->get($row->id, 0) . "</td><td align=\"center\">" . ($ranking + 1) . "</td></tr>");
|
||||
}
|
||||
print ("</table>");
|
||||
}
|
||||
}
|
||||
// ------------- end: top uploader ------------------//
|
||||
|
||||
// ------------- start: polls ------------------//
|
||||
if ($CURUSER && $showpolls_main == "yes")
|
||||
{
|
||||
|
||||
+2
-1
@@ -43,7 +43,7 @@ if ($action == 'savesettings_main') // save main
|
||||
'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', 'showlastxforumposts', 'enable_technical_info', 'site_language_enabled'
|
||||
'startsubid', 'logo', 'showlastxforumposts', 'enable_technical_info', 'site_language_enabled', 'show_top_uploader',
|
||||
);
|
||||
GetVar($validConfig);
|
||||
$MAIN = [];
|
||||
@@ -694,6 +694,7 @@ elseif ($action == 'mainsettings') // main settings
|
||||
yesorno($lang_settings['row_show_forum_stats'],'showforumstats', $MAIN['showforumstats'], $lang_settings['text_show_forum_stats_note']);
|
||||
yesorno($lang_settings['row_show_hot'],'showhotmovies', $MAIN['showhotmovies'], $lang_settings['text_show_hot_note']);
|
||||
yesorno($lang_settings['row_show_classic'],'showclassicmovies', $MAIN['showclassicmovies'], $lang_settings['text_show_classic_note']);
|
||||
yesorno($lang_settings['row_show_top_uploader'],'show_top_uploader', $MAIN['show_top_uploader'], $lang_settings['text_show_top_uploader_note']);
|
||||
yesorno($lang_settings['row_enable_imdb_system'],'showimdbinfo', $MAIN['showimdbinfo'], $lang_settings['text_imdb_system_note']);
|
||||
yesorno($lang_settings['row_enable_pt_gen_system'],'enable_pt_gen_system', $MAIN['enable_pt_gen_system'], $lang_settings['text_enable_pt_gen_system_note']);
|
||||
tr($lang_settings['row_pt_gen_api_point'],"<input type='text' name=\"pt_gen_api_point\" style=\"width: 300px\" value={$MAIN['pt_gen_api_point']}> ".$lang_settings['text_pt_gen_api_point_note'], 1);
|
||||
|
||||
+12
-9
@@ -210,20 +210,23 @@ if (get_user_class() >= $userprofile_class || $user["id"] == $CURUSER["id"])
|
||||
else $locationinfo = "";
|
||||
tr_small($lang_userdetails['row_ip_address'], $user['ip'].$locationinfo, 1);
|
||||
}
|
||||
|
||||
$res = sql_query("SELECT agent, peer_id, ip, port FROM peers WHERE userid = {$user['id']} GROUP BY agent,ip") or sqlerr();
|
||||
$clientselect = "";
|
||||
$clientselect = '';
|
||||
$res = sql_query("SELECT peer_id, agent, ipv4, ipv6, port FROM peers WHERE userid = {$user['id']} GROUP BY agent") or sqlerr();
|
||||
if (mysql_num_rows($res) > 0)
|
||||
{
|
||||
$first = true;
|
||||
$clientselect .= "<table border='1' cellspacing='0' cellpadding='5'><tr><td class='colhead'>Agent</td><td class='colhead'>IPV4</td><td class='colhead'>IPV6</td><td class='colhead'>Port</td></tr>";
|
||||
while($arr = mysql_fetch_assoc($res))
|
||||
{
|
||||
$clientselect .= ($first == true ? "" : " ; ") . get_agent($arr["peer_id"], $arr["agent"]);
|
||||
$first = false;
|
||||
|
||||
if (get_user_class() >= $userprofile_class || $user["id"] == $CURUSER["id"])
|
||||
$clientselect .= " (" . $arr["ip"] . ":" . $arr["port"] . ")";
|
||||
$clientselect .= "<tr>";
|
||||
$clientselect .= sprintf('<td>%s</td>', get_agent($arr['peer_id'], $arr['agent']));
|
||||
if (get_user_class() >= $userprofile_class || $user["id"] == $CURUSER["id"]) {
|
||||
$clientselect .= sprintf('<td>%s</td><td>%s</td><td>%s</td>', $arr['ipv4'], $arr['ipv6'], $arr['port']);
|
||||
} else {
|
||||
$clientselect .= sprintf('<td>%s</td><td>%s</td><td>%s</td>', '---', '---', '---');
|
||||
}
|
||||
$clientselect .= "</tr>";
|
||||
}
|
||||
$clientselect .= '</table>';
|
||||
}
|
||||
if ($clientselect)
|
||||
tr_small($lang_userdetails['row_bt_client'], $clientselect, 1);
|
||||
|
||||
Reference in New Issue
Block a user