"); } end_main_frame(); } $res = sql_query("SELECT * FROM users WHERE id = ".mysql_real_escape_string($id)) or sqlerr(); $user = mysql_fetch_assoc($res); if (!$user) { stderr($lang_invite['std_sorry'], 'Invalid id'); } stdhead($lang_invite['head_invites']); print("
"); print("

".$user['username'].$lang_invite['text_invite_system']."

"); $sent = htmlspecialchars($_GET['sent'] ?? ''); if ($sent == 1){ $msg = $lang_invite['text_invite_code_sent']; print("

".$msg."

"); } $inv = $user; //for one or more. "invite"/"invites" if ($inv["invites"] != 1){ $_s = $lang_invite['text_s']; } else { $_s = ""; } if ($type == 'new'){ if ($CURUSER['id'] != $id) { stderr($lang_invite['std_sorry'],$lang_invite['std_permission_denied'], true, false); } try { $sendBtnText = $userRep->getInviteBtnText($CURUSER['id']); } catch (\Exception $exception) { stdmsg($lang_invite['std_sorry'],$exception->getMessage(). " ".$lang_invite['here_to_go_back'],false); print("
"); stdfoot(); die; } registration_check('invitesystem',true,false); $temporaryInvites = \App\Models\Invite::query()->where('inviter', $CURUSER['id']) ->where('invitee', '') ->where('expired_at', '>', now()) ->orderBy('expired_at', 'asc') ->get() ; $invitation_body = sprintf($lang_invite['text_invitation_body'], \App\Models\Setting::getSiteName()).$CURUSER['username']; //$invitation_body_insite = str_replace("
","\n",$invitation_body); $inviteSelectOptions = ''; if ($inv['invites'] > 0) { $inviteSelectOptions = ''; } foreach ($temporaryInvites as $tmp) { $inviteSelectOptions .= sprintf('', $tmp->hash, $tmp->hash, $lang_invite['text_expired_at'], $tmp->expired_at); } $preUsernameTr = ""; if (get_setting("system.is_invite_pre_email_and_username") == "yes") { $preUsernameTr = "".nexus_trans("invite.pre_register_username")."
".nexus_trans("invite.pre_register_username_help").""; } print("
". "". "". "".$preUsernameTr. "". "". "". "
".$lang_invite['text_invite_someone']."$SITENAME ({$inv['invites']}".$lang_invite['text_invitation'].$_s.$lang_invite['text_left'] .' + '.sprintf($lang_invite['text_temporary_left'], $temporaryInvites->count()).")
".$lang_invite['text_email_address']."
".$lang_invite['text_email_address_note']."".($restrictemaildomain == 'yes' ? "
".$lang_invite['text_email_restriction_note'].allowedemails() : "")."
".$lang_invite['text_consume_invite']."
".$lang_invite['text_message']."
"); } else { inviteMenu($menuSelected); if ($menuSelected == 'invitee') { $whereStr = "invited_by = " . sqlesc($id); if (!empty($_GET['status'])) { $whereStr .= " and status = " . sqlesc($_GET['status']); } if (!empty($_GET['enabled'])) { $whereStr .= " and enabled = " . sqlesc($_GET['enabled']); } $rel = sql_query("SELECT COUNT(*) FROM users WHERE $whereStr") or sqlerr(__FILE__, __LINE__); $arro = mysql_fetch_row($rel); $number = $arro[0]; $textSelectOnePlease = nexus_trans('nexus.select_one_please'); $enabledOptions = $statusOptions = ''; foreach (['yes', 'no'] as $item) { $enabledOptions .= sprintf( '', $item, $_GET['enabled'] == $item ? ' selected' : '', strtoupper($item) ); } foreach (['pending' => $lang_invite['text_pending'], 'confirmed' => $lang_invite['text_confirmed']] as $name => $text) { $statusOptions .= sprintf( '', $name, $_GET['status'] == $name ? ' selected' : '', $text ); } $resetText = nexus_trans('label.reset'); $submitText = nexus_trans('label.submit'); $filterForm = <<
{$lang_invite['text_enabled']}:    {$lang_invite['text_status']}:   
FORM; $resetJs = <<". "
"); if(!$number){ print("".$lang_invite['text_no_invites'].""); } else { list($pagertop, $pagerbottom, $limit) = pager($pageSize, $number, "?id=$id&menu=$menuSelected&"); $haremAdditionFactor = get_setting('bonus.harem_addition'); $ret = sql_query("SELECT id, username, email, uploaded, downloaded, status, warned, enabled, donor, email FROM users WHERE $whereStr $limit") or sqlerr(); $num = mysql_num_rows($ret); print(" ".$lang_invite['text_username']." ".$lang_invite['text_email']." ".$lang_invite['text_enabled']." ".$lang_invite['text_uploaded']." ".$lang_invite['text_downloaded']." ".$lang_invite['text_ratio']." ".$lang_invite['text_seed_torrent_count']." ".$lang_invite['text_seed_torrent_size']." ".$lang_invite['text_seed_torrent_bonus_per_hour']." " ); if ($haremAdditionFactor > 0) { print(''.$lang_invite['harem_addition'].''); } print("".$lang_invite['text_seed_torrent_last_announce_at'].""); print("".$lang_invite['text_status'].""); if ($CURUSER['id'] == $id || get_user_class() >= UC_SYSOP) { print("".$lang_invite['text_confirm'].""); } print(""); for ($i = 0; $i < $num; ++$i) { $arr = mysql_fetch_assoc($ret); if ($arr["downloaded"] > 0) { $ratio = number_format($arr["uploaded"] / $arr["downloaded"], 3); $ratio = "$ratio"; } else { if ($arr["uploaded"] > 0) { $ratio = "Inf."; } else { $ratio = "---"; } } if ($arr["status"] == 'confirmed') $status = "".$lang_invite['text_confirmed'].""; else $status = "".$lang_invite['text_pending'].""; $seedBonusResult = calculate_seed_bonus($arr['id']); print(" ".get_username($arr['id'])." {$arr['email']} ".$arr['enabled']." " . mksize($arr['uploaded']) . " " . mksize($arr['downloaded']) . " $ratio {$seedBonusResult['count']} ".mksize($seedBonusResult['size'])." ".number_format($seedBonusResult['seed_points'], 3)." "); if ($haremAdditionFactor > 0) { print ("".number_format($seedBonusResult['seed_points'] * $haremAdditionFactor, 3).""); } print("{$seedBonusResult['last_action']}"); print("$status"); if ($CURUSER['id'] == $id || get_user_class() >= UC_SYSOP){ print(""); if ($arr['status'] == 'pending') print(""); print(""); } print(""); } } if ($CURUSER['id'] == $id || get_user_class() >= UC_SYSOP) { $pendingcount = number_format(get_row_count("users", "WHERE status='pending' AND invited_by={$CURUSER['id']}")); $colSpan = 7; if (isset($haremAdditionFactor) && $haremAdditionFactor > 0) { $colSpan += 1; } if ($pendingcount){ print(""); print(""); } print("
"); } print(""); print("$pagertop"); } elseif (in_array($menuSelected, ['sent', 'tmp'])) { $whereStr = "inviter = " . sqlesc($id); if ($menuSelected == 'sent') { $whereStr .= " and invitee != ''"; } elseif ($menuSelected == 'tmp') { $whereStr .= " and invitee = '' and expired_at is not null"; } $rul = sql_query("SELECT COUNT(*) FROM invites WHERE $whereStr"); $arre = mysql_fetch_row($rul); $number1 = $arre[0]; print(""); if(!$number1){ print(""); } else { list($pagertop, $pagerbottom, $limit) = pager($pageSize, $number1, "?id=$id&menu=$menuSelected&"); $rer = sql_query("SELECT * FROM invites WHERE $whereStr $limit") or sqlerr(); $num1 = mysql_num_rows($rer); print(""); if ($menuSelected == 'sent') { print(""); } print ""; if ($menuSelected == 'tmp') { print(""); print(""); } print(""); for ($i = 0; $i < $num1; ++$i) { $arr1 = mysql_fetch_assoc($rer); $isHashValid = $arr1['valid'] == \App\Models\Invite::VALID_YES; $registerLink = ''; if ($isHashValid) { $registerLink = sprintf(' [%s]', $arr1['hash'], $lang_invite['signup_link_help'], $lang_invite['signup_link']); } $tr = ""; $tr .= ""; $tr .= sprintf('', $arr1['hash'], $registerLink); $tr .= ""; if ($menuSelected == 'sent') { $tr .= ""; } if (!$isHashValid) { $tr .= ""; } else { $tr .= ""; } if ($menuSelected == 'tmp') { $tr .= ""; $tr .= ""; } $tr .= ""; print($tr); } } print("
".$lang_functions['text_none']."
".$lang_invite['text_email']."".$lang_invite['text_hash']."".$lang_invite['text_send_date']."".$lang_invite['text_hash_status']."".$lang_invite['text_invitee_user']."".$lang_invite['text_expired_at']."".nexus_trans('label.created_at')."
{$arr1['invitee']}%s%s{$arr1['time_invited']}".\App\Models\Invite::$validInfo[$arr1['valid']]['text']."".$arr1['invitee_register_username']."{$arr1['expired_at']}{$arr1['created_at']}
"); print("$pagertop"); } } stdfoot(); die; ?>