mirror of
https://github.com/lkddi/nexusphp.git
synced 2026-04-24 12:07:23 +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")
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user