with($medalType)->findOrFail($user['id']); $userRep = new \App\Repositories\UserRepository(); if ($user['added'] == "0000-00-00 00:00:00" || $user['added'] == null) { $joindate = $lang_userdetails['text_not_available']; } else { $weeks = abs(number_format($userInfo->added->diffInWeeks(), 1)) . nexus_trans('nexus.time_units.week'); $joindate = $user['added']." (" . gettime($user["added"], true, false, true).", $weeks)"; } $lastseen = $user["last_access"]; if ($lastseen == "0000-00-00 00:00:00" || $lastseen == null) $lastseen = $lang_userdetails['text_not_available']; else { $lastseen .= " (" . gettime($lastseen, true, false, true).")"; } $res = sql_query("SELECT COUNT(*) FROM comments WHERE user=" . $user['id']) or sqlerr(); $arr3 = mysql_fetch_row($res); $torrentcomments = $arr3[0]; $res = sql_query("SELECT COUNT(*) FROM posts WHERE userid=" . $user['id']) or sqlerr(); $arr3 = mysql_fetch_row($res); $forumposts = $arr3[0]; $arr = get_country_row($user['country']); $country = "\"".$arr['name']."\""; $arr = (array)get_downloadspeed_row($user['download']); $name = $arr['name'] ?? ''; $download = "\"Downstream ".$name; $arr = (array)get_uploadspeed_row($user['upload']); $name = $arr['name'] ?? ''; $upload = "\"Upstream ".$name; $arr = get_isp_row($user['isp']); $name = $arr['name'] ?? ''; $isp = $name; if ($user["gender"] == "Male") $gender = "Male"; elseif ($user["gender"] == "Female") $gender = "Female"; elseif ($user["gender"] == "N/A") $gender = "N/A"; stdhead($lang_userdetails['head_details_for']. $user["username"]); $enabled = $user["enabled"] == 'yes'; $moviepicker = $user["picker"] == 'yes'; print("

" . get_username($user['id'], true,false) . $country."

"); if ($userInfo->valid_medals->isNotEmpty()) { print build_medal_image($userInfo->{$medalType}, 120, $CURUSER['id'] == $user['id']); $warnMedalJs = <<".$lang_userdetails['text_account_disabled_note']."

"); elseif ($CURUSER["id"] <> $user["id"]) { $r = sql_query("SELECT id FROM friends WHERE userid={$CURUSER['id']} AND friendid=$id") or sqlerr(__FILE__, __LINE__); $friend = mysql_num_rows($r); $r = sql_query("SELECT id FROM blocks WHERE userid={$CURUSER['id']} AND blockid=$id") or sqlerr(__FILE__, __LINE__); $block = mysql_num_rows($r); if ($friend) print("

(".$lang_userdetails['text_remove_from_friends'].")

\n"); elseif($block) print("

(".$lang_userdetails['text_remove_from_blocks'].")

\n"); else { print("

(".$lang_userdetails['text_add_to_friends'].")"); print(" - (".$lang_userdetails['text_add_to_blocks'].")

"); } } begin_main_frame(); if ($CURUSER['id'] == $user['id'] || user_can('cruprfmanage')) print("

".$lang_userdetails['text_flush_ghost_torrents']."".$lang_userdetails['text_here']."

\n"); ?> %s', $userManageSystemUrl, $lang_functions['text_management_system']); $migratedHelp = "  ".sprintf($lang_userdetails['change_field_value_migrated'], $userManageSystemText); if (user_can('prfmanage') && $user["class"] < get_user_class()) { $userIdDisplay .= " [$userManageSystemText]"; } if (($user["privacy"] != "strong") OR (user_can('prfmanage')) || $CURUSER['id'] == $user['id']){ //Xia Zuojie: Taste compatibility is extremely slow. It can takes thounsands of datebase queries. It is disabled until someone makes it fast. /* if (isset($CURUSER) && $CURUSER['id'] != $user['id']) { $user_snatched = sql_query("SELECT * FROM snatched WHERE userid = $CURUSER['id']") or sqlerr(__FILE__, __LINE__); if(mysql_num_rows($user_snatched) == 0) $compatibility_info = $lang_userdetails['text_unknown']; else { while ($user_snatched_arr = mysql_fetch_array($user_snatched)) { $torrent_2_user_value = get_torrent_2_user_value($user_snatched_arr); $user_snatched_res_target = sql_query("SELECT * FROM snatched WHERE torrentid = " . $user_snatched_arr['torrentid'] . " AND userid = " . $user['id']) or sqlerr(__FILE__, __LINE__); // if(mysql_num_rows($user_snatched_res_target) == 1) // have other peole snatched this torrent { $user_snatched_arr_target = mysql_fetch_array($user_snatched_res_target) or sqlerr(__FILE__, __LINE__); // find target user's current analyzing torrent's snatch info $torrent_2_user_value_target = get_torrent_2_user_value($user_snatched_arr_target); //get this torrent to target user's value if(!isset($other_user_2_curuser_value[$user_snatched_arr_target['userid']])) // first, set to 0 $other_user_2_curuser_value[$user_snatched_arr_target['userid']] = 0.0; $other_user_2_curuser_value[$user_snatched_arr_target['userid']] += $torrent_2_user_value_target * $torrent_2_user_value; } } $val = $other_user_2_curuser_value[$user['id']]; if ($val > 1) { $val = 1; $compatibility_info = $lang_userdetails['text_super']; $bar_url = "pic/loadbargreen.gif"; } elseif ($val > 0.7 && $val<=1) { $compatibility_info = $lang_userdetails['text_very_high']; $bar_url = "pic/loadbargreen.gif"; } elseif ($val > 0.45 && $val<=0.7) { $compatibility_info = $lang_userdetails['text_high']; $bar_url = "pic/loadbargreen.gif"; } elseif ($val > 0.2 && $val<=0.45) { $compatibility_info = $lang_userdetails['text_medium']; $bar_url = "pic/loadbaryellow.gif"; } elseif ($val > 0.05 && $val<=0.2) { $compatibility_info = $lang_userdetails['text_low']; $bar_url = "pic/loadbarred.gif"; } else { $val = 0; $compatibility_info = $lang_userdetails['text_very_low']; $bar_url = "pic/loadbarred.gif"; } $width = $val * 400; $compatibility_info = "
" . number_format($val * 100, 2) . "%   " . $compatibility_info . "
"; //die("ss" . htmlspecialchars($compatibility_info)); } print("".$lang_userdetails['row_compatibility']."". $compatibility_info ."\n"); } */ tr_small($lang_userdetails['text_user_id'], $userIdDisplay, 1); $tmpInviteCount = $userInfo->temporary_invites()->count(); if ($CURUSER['id'] == $user['id'] || user_can('viewinvite')){ if ($user["invites"] <= 0 && $tmpInviteCount <= 0) tr_small($lang_userdetails['row_invitation'], $lang_userdetails['text_no_invitation'], 1); else tr_small($lang_userdetails['row_invitation'], "".sprintf('%s(%s)', $user['invites'], $tmpInviteCount)."", 1);} else{ if ($CURUSER['id'] != $user['id'] || get_user_class() != $viewinvite_class){ if ($user["invites"] <= 0) tr_small($lang_userdetails['row_invitation'], $lang_userdetails['text_no_invitation'], 1); else tr($lang_userdetails['row_invitation'], $user['invites'], 1);} } if ($user["invited_by"] > 0) { tr_small($lang_userdetails['row_invited_by'], get_username($user['invited_by']), 1); } tr_small($lang_userdetails['row_join_date'], $joindate, 1); tr_small($lang_userdetails['row_last_seen'], $lastseen, 1); if ($where_tweak == "yes") { tr_small($lang_userdetails['row_last_seen_location'], $user['page'], 1); } if (user_can('userprofile') OR $user["privacy"] == "low" || $user["id"] == $CURUSER["id"]) { tr_small($lang_userdetails['row_email'], "".$user['email']."", 1); } if (user_can('userprofile')) { $resip = sql_query("SELECT ip FROM iplog WHERE userid =$id GROUP BY ip") or sqlerr(__FILE__, __LINE__); $iphistory = mysql_num_rows($resip); if ($iphistory > 0) tr_small($lang_userdetails['row_ip_history'], $lang_userdetails['text_user_earlier_used']."" . $iphistory. $lang_userdetails['text_different_ips'].add_s($iphistory, true)."", 1); } $seedBoxRep = new \App\Repositories\SeedBoxRepository(); if (user_can('userprofile') || $user["id"] == $CURUSER["id"]) { $seedBoxIcon = $seedBoxRep->renderIcon($CURUSER['ip'], $CURUSER['id']); if ($enablelocation_tweak == 'yes'){ list($loc_pub, $loc_mod) = get_ip_location($user['ip']); $locationinfo = "[" . $loc_pub . "]"; } else $locationinfo = ""; // $ip = $user["id"] == $CURUSER["id"] ? hide_text($user['ip']) : $user['ip']; $ip = $user["ip"]; tr_small($lang_userdetails['row_ip_address'], hide_text($ip.$locationinfo.$seedBoxIcon), 1); } $clientselect = ''; $res = sql_query("SELECT peer_id, agent, ipv4, ipv6, port FROM peers WHERE userid = {$user['id']} GROUP BY agent, ipv4, ipv6, port") or sqlerr(); if (mysql_num_rows($res) > 0) { $clientselect .= ""; while($arr = mysql_fetch_assoc($res)) { $clientselect .= ""; $clientselect .= sprintf('', get_agent($arr['peer_id'], $arr['agent'])); if (user_can('userprofile') || $user["id"] == $CURUSER["id"]) { $v4 = $user["id"] == $CURUSER["id"] ? hide_text($arr['ipv4']) : $arr['ipv4']; $v6 = $user["id"] == $CURUSER["id"] ? hide_text($arr['ipv6']) : $arr['ipv6']; $clientselect .= sprintf('', $v4.$seedBoxRep->renderIcon($arr['ipv4'], $user['id']), $v6.$seedBoxRep->renderIcon($arr['ipv6'], $user['id']), $arr['port']); } else { $clientselect .= sprintf('', '---', '---', '---'); } $clientselect .= ""; } $clientselect .= '
AgentIPV4IPV6Port
%s%s%s%s%s%s%s
'; } if ($clientselect) tr_small($lang_userdetails['row_bt_client'], $clientselect, 1); //真实分享、上传、下载率显示 $rs_true_trans = sql_query("SELECT SUM(uploaded), SUM(downloaded) FROM snatched WHERE userid = $user[id]") or sqlerr(__FILE__, __LINE__); $true_download = 0; $true_upload = 0; if(mysql_num_rows($rs_true_trans) > 0) { $row_true_trans = mysql_fetch_assoc($rs_true_trans); $true_upload = $row_true_trans['SUM(uploaded)']; $true_download = $row_true_trans['SUM(downloaded)']; } if ($user["downloaded"] > 0 && $true_download > 0) { $sr = floor($user["uploaded"] / $user["downloaded"] * 1000) / 1000; $true_ratio = floor($true_upload / $true_download * 1000) / 1000; $sr = "" . $lang_userdetails['row_share_ratio'] . ": " . number_format($sr, 3) . "".$lang_userdetails['row_real_share_ratio'].":".number_format($true_ratio, 3).")  " . get_ratio_img($sr) . ""; } //end $xfer = "" . $lang_userdetails['row_uploaded'] . ": ". mksize($user["uploaded"]) . "  " . $lang_userdetails['row_downloaded'] . ": " . mksize($user["downloaded"]) . ""; $true_xfer = "" . $lang_userdetails['row_real_uploaded'] . ": ". mksize($true_upload) . "  " . $lang_userdetails['row_real_downloaded'] . ": " . mksize($true_download) . "  " . $lang_userdetails['row_real_ps'] . ""; tr_small($lang_userdetails['row_transfer'], "" . ($sr ?? '') . $xfer . $true_xfer . "
", 1); if ($user["leechtime"] > 0) { $slr = floor($user["seedtime"] / $user["leechtime"] * 1000) / 1000; $slr = "" . $lang_userdetails['text_seeding_leeching_time_ratio'] . ": " . number_format($slr, 3) . "  " . get_ratio_img($slr) . ""; } $slt = "" . $lang_userdetails['text_seeding_time'] . ": ". mkprettytime($user["seedtime"]) . "  " . $lang_userdetails['text_leeching_time'] . ": " . mkprettytime($user["leechtime"]) . "  (" . nexus_trans('label.updated_at') . ": " . $user['seed_time_updated_at'] . ")"; tr_small($lang_userdetails['row_sltime'], "" . ($slr ?? '') . $slt . "
", 1); if ($user["download"] && $user["upload"]) tr_small($lang_userdetails['row_internet_speed'], $download."    ".$upload."    ".$isp, 1); tr_small($lang_userdetails['row_gender'], $gender, 1); if (($user['donated'] > 0 || $user['donated_cny'] > 0 )&& (user_can('userprofile') || $CURUSER["id"] == $user["id"])) tr_small($lang_userdetails['row_donated'], "$".htmlspecialchars($user['donated'])."      ".htmlspecialchars($user['donated_cny']), 1); if ($user["avatar"]) tr_small($lang_userdetails['row_avatar'], return_avatar_image(htmlspecialchars(trim($user["avatar"]))), 1); $uclass = get_user_class_image($user["class"]); $utitle = get_user_class_name($user["class"],false,false,true); $uclassImg = "\"".get_user_class_name($user["class"],false,false,true)."\" ".($user['title']!=="" ? " ".htmlspecialchars(trim($user["title"]))."" : ""); if ($user['class'] == UC_VIP && !empty($user['vip_until']) && strtotime($user['vip_until'])) { $uclassImg .= sprintf('%s: %s', $lang_userdetails['row_vip_until'], $user['vip_until']); } tr_small($lang_userdetails['row_class'], $uclassImg, 1); //User meta $metas = $userRep->listMetas($user['id']); $props = []; $metaKey = \App\Models\UserMeta::META_KEY_CHANGE_USERNAME; if ($metas->has($metaKey)) { $triggerId = "consume-$metaKey"; $changeUsernameCards = $metas->get($metaKey); $cardName = $changeUsernameCards->first()->meta_key_text; $useInput = ''; if ($CURUSER['id'] == $user['id']) { $useInput = sprintf('', $lang_userdetails['consume'], $triggerId); } $props[] = sprintf( '
[%s](%s)
%s', $cardName, $changeUsernameCards->count(), $useInput ); if ($useInput) { $consumeChangeUsernameForm = <<
{$lang_userdetails['meta_key_change_username_username']}
HTML; $consumeChangeUsernameJs = <<has($metaKey)) { $rainbowID = $metas->get($metaKey)->first(); if ($rainbowID->isValid()) { $props[] = sprintf( '
[%s](%s)
', $rainbowID->metaKeyText, $rainbowID->getDeadlineText() ); } } if (!empty($props)) { tr_small($lang_userdetails['row_user_props'], sprintf('
%s
', implode(' | ', $props)), 1); } do_action('user_detail_rows', $user['id'], 'web'); tr_small($lang_userdetails['row_torrent_comment'], ($torrentcomments && ($user["id"] == $CURUSER["id"] || user_can('viewhistory')) ? "".$torrentcomments."" : $torrentcomments), 1); tr_small($lang_userdetails['row_forum_posts'], ($forumposts && ($user["id"] == $CURUSER["id"] || user_can('viewhistory')) ? "".$forumposts."" : $forumposts), 1); if ($user["id"] == $CURUSER["id"] || user_can('viewhistory')) { if (\App\Models\HitAndRun::getIsEnabled()) { $hrStatus = (new \App\Repositories\HitAndRunRepository())->getStatusStats($user['id']); tr_small('H&R', sprintf('%s', $user['id'], $hrStatus), 1); } if (\App\Models\Claim::getConfigIsEnabled()) { $states = (new \App\Repositories\ClaimRepository())->getStats($user['id']); tr_small($lang_functions['menu_claim'], sprintf('%s', $user['id'], $states), 1); } $bonusLogText = sprintf('  [%s]', $user['id'], nexus_trans("bonus-log.view_detail")); tr_small($lang_userdetails['row_karma_points'], number_format($user['seedbonus'], 1) . $bonusLogText, 1); tr_small($lang_functions['text_seed_points'], number_format($user['seed_points'], 1) . "  (" . nexus_trans('label.updated_at') . ": " . $user['seed_points_updated_at'] . ")", 1); } if (user_can('prfmanage') && $user["class"] < get_user_class()) { $bonusTable = build_bonus_table($user); tr_small($lang_userdetails['text_bonus_table'], $bonusTable['table'], 1); } if ($user["ip"] && (user_can('torrenthistory') || $user["id"] == $CURUSER["id"])){ tr_small($lang_userdetails['row_uploaded_torrents'], "\"Show/Hide\" ".$lang_userdetails['text_show_or_hide']."
", 1); tr_small($lang_userdetails['row_current_seeding'], "\"Show/Hide\" ".$lang_userdetails['text_show_or_hide']."
", 1); tr_small($lang_userdetails['row_current_leeching'], "\"Show/Hide\" ".$lang_userdetails['text_show_or_hide']."
", 1); tr_small($lang_userdetails['row_completed_torrents'], "\"Show/Hide\" ".$lang_userdetails['text_show_or_hide']."
", 1); tr_small($lang_userdetails['row_incomplete_torrents'], "\"Show/Hide\" ".$lang_userdetails['text_show_or_hide']."
", 1); } if ($user["info"]) print("" . format_comment($user["info"],false) . "\n"); } else { print("".$lang_userdetails['text_public_access_denied'].$user['username'].$lang_userdetails['text_user_wants_privacy']."\n"); } $showpmbutton = 0; if ($CURUSER["id"] != $user["id"]) if (user_can('staffmem')) $showpmbutton = 1; elseif ($user["acceptpms"] == "yes") { $r = sql_query("SELECT id FROM blocks WHERE userid={$user['id']} AND blockid={$CURUSER['id']}") or sqlerr(__FILE__,__LINE__); $showpmbutton = (mysql_num_rows($r) == 1 ? 0 : 1); } elseif ($user["acceptpms"] == "friends") { $r = sql_query("SELECT id FROM friends WHERE userid={$user['id']} AND friendid={$CURUSER['id']}") or sqlerr(__FILE__,__LINE__); $showpmbutton = (mysql_num_rows($r) == 1 ? 1 : 0); } if ($CURUSER["id"] != $user["id"]){ print(""); if ($showpmbutton) print("\"PM\""); print("\"Report\""); print(""); } print("\n"); if (user_can('prfmanage') && $user["class"] < get_user_class()) { begin_frame($lang_userdetails['text_edit_user'], true); print("
"); print(""); print(""); print(""); print("\n"); tr($lang_userdetails['row_title'], "", 1); $avatar = htmlspecialchars(trim($user["avatar"])); tr($lang_userdetails['row_privacy_level'], "".$lang_userdetails['radio_low']."".$lang_userdetails['radio_normal']."".$lang_userdetails['radio_strong'], 1); tr($lang_userdetails['row_avatar_url'], "", 1); $signature = trim($user["signature"]); tr($lang_userdetails['row_signature'], "", 1); if (get_user_class() == UC_STAFFLEADER) { tr($lang_userdetails['row_donor_status'], "".$lang_userdetails['radio_yes']." ".$lang_userdetails['radio_no'], 1); tr($lang_userdetails['row_donated'], "USD:     CNY: " . $lang_userdetails['text_transaction_memo'] . "", 1); tr($lang_userdetails['row_donoruntil'], " ".$lang_userdetails['text_donoruntil_note'], 1); } if (user_can('user-change-class')) { $maxclass = get_user_class() - 1; $classselect=classlist('class', $maxclass, $user["class"], 0, false, true); tr($lang_userdetails['row_class'], $classselect . $migratedHelp, 1); } tr($lang_userdetails['row_vip_by_bonus'], "".$lang_userdetails['radio_yes']." ".$lang_userdetails['radio_no'].$migratedHelp, 1); tr($lang_userdetails['row_vip_until'], " ".$lang_userdetails['text_vip_until_note']. $migratedHelp, 1); $supportlang = htmlspecialchars($user["supportlang"]); $supportfor = htmlspecialchars($user["supportfor"]); $pickfor = htmlspecialchars($user["pickfor"]); $staffduties = htmlspecialchars($user["stafffor"]); tr($lang_userdetails['row_staff_duties'], "", 1); tr($lang_userdetails['row_support_language'], "", 1); tr($lang_userdetails['row_support'], "".$lang_userdetails['radio_yes']." ".$lang_userdetails['radio_no'], 1); tr($lang_userdetails['row_support_for'], "", 1); tr($lang_userdetails['row_movie_picker'], "".$lang_userdetails['radio_yes']."".$lang_userdetails['radio_no'], 1); tr($lang_userdetails['row_pick_for'], "", 1); if (user_can('cruprfmanage')) { $modcomment = \App\Models\UserModifyLog::query() ->where("user_id", $user["id"]) ->orderBy("id", "desc") ->limit(20) ->get() ->map(fn ($item) => sprintf("[%s] %s", $item->created_at->format("Y-m-d"), $item->content)) ->implode("\n") ; tr($lang_userdetails['row_comment'], "", 1); $bonuscomment = \App\Models\BonusLogs::query() ->where("uid", $user["id"]) ->whereNotIn("business_type", \App\Models\BonusLogs::$businessTypeSeeding) ->orderBy("id", "desc") ->limit(20) ->get() ->map(fn ($item) => sprintf("[%s] %s", $item->created_at->format("Y-m-d"), $item->comment)) ->implode("\n") ; tr($lang_userdetails['row_seeding_karma'], "", 1); } $warned = $user["warned"] == "yes"; print(""); tr($lang_userdetails['row_enabled'], $migratedHelp, 1); tr($lang_userdetails['row_forum_post_possible'], "".$lang_userdetails['radio_yes']."".$lang_userdetails['radio_no'], 1); tr($lang_userdetails['row_upload_possible'], "".$lang_userdetails['radio_yes']."".$lang_userdetails['radio_no'], 1); tr($lang_userdetails['row_download_possible'], "".$lang_userdetails['radio_yes']."".$lang_userdetails['radio_no'], 1); tr($lang_userdetails['row_show_ad'], "".$lang_userdetails['radio_yes']."".$lang_userdetails['radio_no'], 1); tr($lang_userdetails['row_no_ad_until'], " ".$lang_userdetails['text_no_ad_until_note'], 1); if (user_can('cruprfmanage')) { tr($lang_userdetails['row_change_username'], "", 1); tr($lang_userdetails['row_change_email'], "", 1); } tr($lang_userdetails['row_change_password'], "".$migratedHelp, 1); tr($lang_userdetails['row_repeat_password'], "".$migratedHelp, 1); if (user_can('cruprfmanage')) { tr($lang_userdetails['row_amount_uploaded'], "".$migratedHelp, 1); tr($lang_userdetails['row_amount_downloaded'], "".$migratedHelp, 1); tr($lang_userdetails['row_seeding_karma'], "".$migratedHelp, 1); tr($lang_userdetails['row_invites'], "".$migratedHelp, 1); } tr($lang_userdetails['row_passkey'], "".$lang_userdetails['checkbox_reset_passkey'], 1); print("\n"); print("
".$lang_userdetails['row_warning_system'].""); if ($warned) { $warneduntil = $user['warneduntil']; if ($warneduntil == '0000-00-00 00:00:00' || $warneduntil == null) print("\n"); else { print("\n"); } print(""); }else{ print("\n"); print(""); } $elapsedlw = get_elapsed_time(strtotime($user["lastwarned"])); print("\n"); if ($user["timeswarned"] == 0) { print("\n"); }else{ if ($user["warnedby"] != "System") { $res = sql_query("SELECT id, username, warnedby FROM users WHERE id = " . $user['warnedby']) or sqlerr(__FILE__,__LINE__); $arr = mysql_fetch_assoc($res); $warnedby = "
[".$lang_userdetails['text_by']."" . get_username($arr['id']) . "]"; }else{ $warnedby = "
[".$lang_userdetails['text_by_system']."]"; print("\n"); } print("\n"); } $leechwarn = $user["leechwarn"] == "yes"; print(""); if ($leechwarn) { print(""); }else{ print("\n"); } print("
" . ($warned ? "".$lang_userdetails['radio_yes']."".$lang_userdetails['radio_no'] : $lang_userdetails['text_not_warned'] ) ."".$lang_userdetails['text_arbitrary_duration']."".$lang_userdetails['text_until'].$warneduntil); print("
(" . mkprettytime(strtotime($warneduntil) - strtotime(date("Y-m-d H:i:s"))) .$lang_userdetails['text_to_go'] .")
".$lang_userdetails['text_warn_for']."
".$lang_userdetails['text_reason_of_warning']."
".$lang_userdetails['text_times_warned']."".$user['timeswarned']."
".$lang_userdetails['text_last_warning']."".$lang_userdetails['text_not_warned_note']."
".$lang_userdetails['text_last_warning']." {$user['lastwarned']} .(".$lang_userdetails['text_until'] ."$elapsedlw) $warnedby
".$lang_userdetails['text_last_warning']." {$user['lastwarned']} ($elapsedlw".$lang_userdetails['text_ago'].") ".$warnedby."
".$lang_userdetails['row_auto_warning']."
(".$lang_userdetails['text_low_ratio'].")
".$lang_userdetails['text_leech_warned']." "); $leechwarnuntil = $user['leechwarnuntil']; if ($leechwarnuntil != '0000-00-00 00:00:00' || $leechwarnuntil != null) { print($lang_userdetails['text_until'].$leechwarnuntil); print("
(" . mkprettytime(strtotime($leechwarnuntil) - strtotime(date("Y-m-d H:i:s"))) .$lang_userdetails['text_to_go'].")"); printf(' ', $user['id']); $removeLeechWarnJs = <<".$lang_userdetails['text_for_unlimited_time'].""); } print("
".$lang_userdetails['text_no_warned']."
\n"); print("
\n"); end_frame(); if (user_can('user-delete')) { begin_frame($lang_userdetails['text_delete_user'], true); print("
"); end_frame(); } } end_main_frame(); $claimAllSeedingConfirmation = nexus_trans('claim.claim_all_seeding_confirmation'); $claimJs = ''; if ($userInfo->id == $CURUSER['id'] && has_role_work_seeding($userInfo->id)) { $claimJs = <<