我們的名單是在 index.php 中的 list_signup() 函數中產生的,所以,從源頭動手腳(從樣板其實也可以,但麻煩了些)。
//已報名名單
function list_signup($action_id)
{
global $db, $smarty;
$sql = "SELECT a.*, b.* FROM `signups` AS a
JOIN `users` as b ON a.`uid` = b.`uid`
WHERE a.`action_id` = '{$action_id}'";
if (!$result = $db->query($sql)) {
throw new Exception($db->error);
}
$signups = [];
while ($signup = $result->fetch_assoc()) {
if (!isset($_SESSION['group']) or $_SESSION['group'] != 'admin') {
//姓名中字取代
$len = strlen($signup['name']);
if ($len > 6) {
$target = substr($signup['name'], 3, 3);
$signup['name'] = str_replace($target, '○', $signup['name']);
}
//email取代
preg_match("/(.+?)\@(.+?)\.(.+?)$/", $signup['email'], $em);
$signup['email'] = "{$em[1]}@" . str_repeat("x", strlen($em[2])) . ".{$em[3]}";
}
$signups[] = $signup;
}
$smarty->assign('signups', $signups);
}