feat: 实现应用标签管理功能
- 新增标签管理页面,支持标签的增删改查 - 在应用添加/编辑页面增加标签选择功能 - 在首页和应用详情页展示标签信息 - 新增标签筛选功能,支持按标签搜索应用 - 新增标签展示页面,展示所有标签及相关应用
This commit is contained in:
32
api.php
32
api.php
@@ -42,6 +42,14 @@ if (isset($_GET['action'])) {
|
||||
$stmtParams[] = &$ageRating;
|
||||
$paramTypes .= 's';
|
||||
}
|
||||
|
||||
// 标签过滤
|
||||
if (isset($_GET['tag'])) {
|
||||
$tag = $_GET['tag'];
|
||||
$conditions[] = "apps.id IN (SELECT app_id FROM app_tags JOIN tags ON app_tags.tag_id = tags.id WHERE tags.name = ?)";
|
||||
$stmtParams[] = &$tag;
|
||||
$paramTypes .= 's';
|
||||
}
|
||||
|
||||
// 分页参数处理
|
||||
$page = isset($_GET['page']) ? max(1, intval($_GET['page'])) : 1;
|
||||
@@ -155,6 +163,18 @@ if (isset($_GET['action'])) {
|
||||
}
|
||||
$app['reviews'] = $reviews;
|
||||
|
||||
// 获取应用标签
|
||||
$sqlTags = "SELECT tags.id, tags.name FROM app_tags JOIN tags ON app_tags.tag_id = tags.id WHERE app_tags.app_id = ?";
|
||||
$stmtTags = $conn->prepare($sqlTags);
|
||||
$stmtTags->bind_param("i", $appId);
|
||||
$stmtTags->execute();
|
||||
$resultTags = $stmtTags->get_result();
|
||||
$tags = [];
|
||||
while ($tag = $resultTags->fetch_assoc()) {
|
||||
$tags[] = $tag;
|
||||
}
|
||||
$app['tags'] = $tags;
|
||||
|
||||
echo json_encode($app);
|
||||
} else {
|
||||
http_response_code(404);
|
||||
@@ -198,6 +218,18 @@ if (isset($_GET['action'])) {
|
||||
echo json_encode($favorites);
|
||||
exit;
|
||||
}
|
||||
|
||||
// 获取所有标签
|
||||
elseif ($action === 'tags' && $requestMethod === 'GET') {
|
||||
$sql = "SELECT id, name FROM tags ORDER BY name";
|
||||
$result = $conn->query($sql);
|
||||
$tags = [];
|
||||
while ($row = $result->fetch_assoc()) {
|
||||
$tags[] = $row;
|
||||
}
|
||||
echo json_encode($tags);
|
||||
exit;
|
||||
}
|
||||
|
||||
// 获取应用推荐列表
|
||||
elseif ($action === 'recommendations' && $requestMethod === 'GET') {
|
||||
|
||||
Reference in New Issue
Block a user