2.1 版本文件
This commit is contained in:
+109
@@ -0,0 +1,109 @@
|
||||
<?php
|
||||
// 邀请好友:展示我的邀请码 / 邀请链接 / 邀请记录
|
||||
require __DIR__ . '/includes/init.php';
|
||||
requireLogin('invite.php');
|
||||
$pageTitle = '邀请好友';
|
||||
$user = currentUser();
|
||||
|
||||
$enabled = getSetting('points_enabled', '1') === '1';
|
||||
$invPts = max(0, (int) getSetting('points_invite', '20'));
|
||||
|
||||
// 老用户(注册时尚未有邀请码)补一个
|
||||
$myInviteCode = $user['invite_code'] ?? '';
|
||||
if ($myInviteCode === '') {
|
||||
$myInviteCode = genInviteCode();
|
||||
db()->prepare('UPDATE ' . tn('users') . ' SET invite_code = ? WHERE id = ?')
|
||||
->execute([$myInviteCode, $user['id']]);
|
||||
}
|
||||
$link = siteBaseUrl() . '/login.php?mode=register&inv=' . rawurlencode($myInviteCode);
|
||||
|
||||
// 邀请记录:谁通过我的邀请码注册
|
||||
$stmt = db()->prepare(
|
||||
'SELECT username, nickname, created_at FROM ' . tn('users') . ' WHERE invited_by = ? ORDER BY created_at DESC'
|
||||
);
|
||||
$stmt->execute([$user['id']]);
|
||||
$invited = $stmt->fetchAll();
|
||||
$earned = $invPts * count($invited);
|
||||
?>
|
||||
<?php require 'includes/header.php'; ?>
|
||||
<section class="section">
|
||||
<h2 class="sec-title"><i class="fas fa-gift"></i> 邀请好友</h2>
|
||||
|
||||
<?php if (!$enabled): ?>
|
||||
<p class="form-err">积分系统当前已关闭,邀请功能暂不可用。</p>
|
||||
<?php else: ?>
|
||||
<div class="invite-card">
|
||||
<div class="invite-head">
|
||||
<div class="invite-reward">每成功邀请 1 位好友注册,你可得 <strong><?= $invPts ?></strong> 积分</div>
|
||||
<div class="invite-earned">已成功邀请 <strong><?= count($invited) ?></strong> 人,累计获得 <strong><?= $earned ?></strong> 积分</div>
|
||||
</div>
|
||||
|
||||
<div class="invite-code-box">
|
||||
<div class="ic-label">我的邀请码</div>
|
||||
<div class="ic-code" id="invCode"><?= h($myInviteCode) ?></div>
|
||||
<button type="button" class="mini-btn" id="copyCode">复制邀请码</button>
|
||||
</div>
|
||||
|
||||
<div class="invite-link-box">
|
||||
<div class="ic-label">邀请链接(发给好友,通过它注册你和好友都算)</div>
|
||||
<div class="invite-link-row">
|
||||
<input type="text" id="invLink" value="<?= h($link) ?>" readonly>
|
||||
<button type="button" class="mini-btn" id="copyLink">复制链接</button>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="invite-tip muted">
|
||||
<i class="fas fa-info-circle"></i> 好友通过你的邀请链接注册成功,系统会自动给你的账号加上积分,无需手动操作。
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="panel">
|
||||
<h3>邀请记录(<?= count($invited) ?> 人)</h3>
|
||||
<?php if (empty($invited)): ?>
|
||||
<p class="empty">还没有好友通过你的邀请注册,快分享链接试试吧~</p>
|
||||
<?php else: ?>
|
||||
<table class="data-table">
|
||||
<thead><tr><th>用户名</th><th>昵称</th><th>注册时间</th><th>奖励</th></tr></thead>
|
||||
<tbody>
|
||||
<?php foreach ($invited as $f): ?>
|
||||
<tr>
|
||||
<td><?= h($f['username']) ?></td>
|
||||
<td><?= h($f['nickname'] ?: '—') ?></td>
|
||||
<td><?= date('Y-m-d H:i', strtotime($f['created_at'])) ?></td>
|
||||
<td><span class="badge-on">+<?= $invPts ?> 积分</span></td>
|
||||
</tr>
|
||||
<?php endforeach; ?>
|
||||
</tbody>
|
||||
</table>
|
||||
<?php endif; ?>
|
||||
</div>
|
||||
<?php endif; ?>
|
||||
</section>
|
||||
|
||||
<script>
|
||||
(function () {
|
||||
function copy(text, btn) {
|
||||
if (navigator.clipboard && navigator.clipboard.writeText) {
|
||||
navigator.clipboard.writeText(text).then(function () {
|
||||
var old = btn.textContent;
|
||||
btn.textContent = '已复制';
|
||||
setTimeout(function () { btn.textContent = old; }, 1500);
|
||||
});
|
||||
} else {
|
||||
var ta = document.createElement('textarea');
|
||||
ta.value = text; document.body.appendChild(ta); ta.select();
|
||||
try { document.execCommand('copy'); } catch (e) {}
|
||||
document.body.removeChild(ta);
|
||||
}
|
||||
}
|
||||
var code = document.getElementById('copyCode');
|
||||
if (code) code.addEventListener('click', function () {
|
||||
copy(document.getElementById('invCode').textContent.trim(), code);
|
||||
});
|
||||
var link = document.getElementById('copyLink');
|
||||
if (link) link.addEventListener('click', function () {
|
||||
copy(document.getElementById('invLink').value, link);
|
||||
});
|
||||
})();
|
||||
</script>
|
||||
<?php require 'includes/footer.php'; ?>
|
||||
Reference in New Issue
Block a user