hasLogin() || !$user->pass('administrator', true)) { header('Content-Type: application/json'); echo json_encode(['success' => false, 'message' => '无权限操作']); exit; } // 设置响应头为JSON header('Content-Type: application/json; charset=utf-8'); if ($_POST['action'] == 'save_rss' && isset($_POST['uid'], $_POST['user_feed'])) { $uid = intval($_POST['uid']); $user_feed = trim($_POST['user_feed']); $user_url = isset($_POST['user_url']) ? trim($_POST['user_url']) : ''; try { $db = Typecho_Db::get(); $db->query($db->update('table.users')->rows(array( 'user_feed' => $user_feed, 'url' => $user_url ))->where('uid = ?', $uid)); // 清除该用户的RSS缓存 $cacheKey = 'usercard_rss_' . md5($user_feed); $cacheFile = dirname(__FILE__) . '/cache/' . $cacheKey . '.json'; if (file_exists($cacheFile)) { @unlink($cacheFile); } echo json_encode(['success' => true, 'message' => '用户信息已保存!']); exit; } catch (Exception $e) { echo json_encode(['success' => false, 'message' => '保存失败:' . $e->getMessage()]); exit; } } elseif ($_POST['action'] == 'batch_save') { // 批量保存 try { $db = Typecho_Db::get(); foreach ($_POST['user_feed'] as $uid => $user_feed) { $uid = intval($uid); $user_feed = trim($user_feed); $user_url = isset($_POST['user_url'][$uid]) ? trim($_POST['user_url'][$uid]) : ''; $db->query($db->update('table.users')->rows(array( 'user_feed' => $user_feed, 'url' => $user_url ))->where('uid = ?', $uid)); // 清除该用户的RSS缓存 if (!empty($user_feed)) { $cacheKey = 'usercard_rss_' . md5($user_feed); $cacheFile = dirname(__FILE__) . '/cache/' . $cacheKey . '.json'; if (file_exists($cacheFile)) { @unlink($cacheFile); } } } echo json_encode(['success' => true, 'message' => '批量保存成功!']); exit; } catch (Exception $e) { echo json_encode(['success' => false, 'message' => '批量保存失败:' . $e->getMessage()]); exit; } } // 如果不是上述两种action,返回错误 echo json_encode(['success' => false, 'message' => '无效的操作']); exit; } // 正常页面加载(非AJAX请求) include 'common.php'; include 'header.php'; include 'menu.php'; if (!defined('__TYPECHO_ROOT_DIR__')) exit; // 检查权限 $user = Typecho_Widget::widget('Widget_User'); if (!$user->hasLogin() || !$user->pass('administrator', true)) { exit; } // 获取所有用户 $db = Typecho_Db::get(); $users = $db->fetchAll($db->select('uid', 'name', 'screenName', 'url', 'user_feed') ->from('table.users') ->order('uid', Typecho_Db::SORT_ASC)); // 统计信息 $totalUsers = count($users); $withRss = 0; $withoutRss = 0; $withWebsite = 0; foreach ($users as $user) { if (!empty($user['user_feed'])) { $withRss++; } else { $withoutRss++; } if (!empty($user['url'])) { $withWebsite++; } } // 获取用户头像首字母函数 function getUserInitial($name) { if (empty($name)) { return 'U'; } // 去除首尾空格 $name = trim($name); // 如果是中文,获取第一个汉字 if (preg_match('/^[\x{4e00}-\x{9fa5}]/u', $name)) { // 获取第一个字符(支持中文字符) return mb_substr($name, 0, 1, 'UTF-8'); } else { // 非中文,获取第一个字母或数字 $firstChar = substr($name, 0, 1); // 如果是字母,转换为大写 if (ctype_alpha($firstChar)) { return strtoupper($firstChar); } // 如果是数字,直接返回 if (ctype_digit($firstChar)) { return $firstChar; } // 其他字符,返回第一个字符的大写形式 return strtoupper($firstChar); } } ?>