菜鸟学习
14小时前
有没有大佬优化一下这个移动端主题呢?演示地址,www.luya.wang。
# 功能修改与问题分析文档
## 一、匿名发布功能
### 功能说明
- 动态所有人可见
- 显示发布者为"匿名用户"
- 其他用户**无法查看个人主页**
- 后台管理可查看真实用户信息
第一步先进行### 数据库变更
不然就会出现不能发布动态的情况
```sql
ALTER TABLE `husns_posts` ADD `is_anonymous` TINYINT(1) NOT NULL DEFAULT 0 COMMENT '是否匿名发布:0否 1是039; AFTER `user_id`;
```
> **注意**:将 `husns_` 替换为你实际的数据库前缀
### 功能流程
```
前端发布 → is_anonymous=1 → API接收 → Model保存 → 返回数据时隐藏用户信息
```
### 使用方法
1. 执行上述 SQL 语句
2. 用户登录后点击发布按钮
3. 点击"隐私"按钮(盾牌图标)开启匿名发布
4. 发布成功后,动态显示为"匿名用户"
## 二、功能修复与改进
### 1. 收藏功能修复
#### 问题
- 收藏页面显示的是用户自己发布的动态,而不是用户收藏的动态
#### 修复内容
- 修改 `content/api/MobileApiController.php` 中的 `userPosts` 方法,添加 `type` 参数支持
- 修改 `content/favorite/FavoriteModel.php` 中的 `getUserFavorites` 方法,调整返回格式与 `getUserPosts` 保持一致
- 确保收藏页面正确显示用户收藏的其他用户的动态
### 2. 私信功能实现
#### 功能说明
- 用户可以通过用户页面发送私信
- 私信通过弹窗形式发送
- 支持未登录用户显示登录弹窗
#### 实现细节
1. **前端**:添加私信弹窗和相关JavaScript函数
2. **后端**:添加 sendMessage API 端点和模型方法
3. **数据库**:需要创建 private_messages 表存储私信数据
#### 数据库变更
```sql
CREATE TABLE IF NOT EXISTS `husns_private_messages` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`sender_id` int(11) NOT NULL COMMENT '发送者ID039;,
`receiver_id` int(11) NOT NULL COMMENT '接收者ID039;,
`content` text NOT NULL COMMENT '私信内容039;,
`created_at` int(11) NOT NULL COMMENT '创建时间039;,
`is_read` tinyint(1) NOT NULL DEFAULT 0 COMMENT '是否已读039;,
`status` tinyint(1) NOT NULL DEFAULT 1 COMMENT '状态039;,
PRIMARY KEY (`id`),
KEY `idx_sender` (`sender_id`),
KEY `idx_receiver` (`receiver_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='私信表039;;
```
> **注意**:将 `husns_` 替换为你实际的数据库前缀
### 3. 其他功能修复
#### 涉及主题文件夹以外的文件修改
| 文件路径 | 修改内容 |
|---------|---------|
| `content/api/MobileApiController.php` | 修复点赞功能;修复置顶和加精功能;添加 sendMessage() 方法处理私信发送;添加IP地址转省份功能 |
| `content/favorite/FavoriteModel.php` | 修改 getUserFavorites() 方法返回格式,与 getUserPosts() 保持一致 |
| `content/post/PostModel.php` | publish() 方法保存 `is_anonymous` 字段到数据库 |
| `content/user/UserModel.php` | 添加 sendMessage() 方法用于发送私信 |
#### 主题文件夹内的文件修改
| 文件路径 | 修改内容 |
|---------|---------|
| `templates/mobile/app/index.php` | 添加 IS_ADMIN 全局变量,修复管理员下拉菜单;修复点赞功能API调用;优化用户信息布局,添加IP地址显示 |
| `templates/mobile/layouts/app.php` | 表情选择器修改,与默认主题保持一致;修复表情显示大小;添加私信弹窗和相关JavaScript函数 |
| `templates/mobile/FavoriteModel.php` | 辅助模型文件,处理收藏相关逻辑 |
| `templates/mobile/app/user.php` | 修复私信功能,调用弹窗而不是Toast;添加表情图片大小限制样式;优化用户信息布局,添加IP地址显示 |
## 三、通知页面分类筛选功能修复
### 问题描述
- 通知页面中,"赞"、"评论"和"@我的"三个标签显示的内容完全相同,无法正确筛选不同类型的通知
### 修复内容
#### 1. 修改 `content/mobile/MobileController.php`
在 `notification()` 方法中添加从 URL 获取 `type` 参数并传递给模板。
#### 2. 修改 `content/notification/NotificationModel.php`
**修改 `getUserNotifications()` 方法**:添加 `$type` 参数并根据类型构建 SQL 过滤条件。
**修改 `getUnreadCount()` 方法**:添加 `$type` 参数支持按类型统计未读数量。
## 四、移动端关注功能与通知完善
### 1. 移动端关注后发送通知
修复 `follow()` 方法添加发送关注通知功能。
### 2. 修复取消关注功能
修改 `handleFollow()` JS 函数,根据当前状态调用关注/取消关注接口。
### 3. 通知列表添加回关按钮
在关注类型的通知中显示"回关"按钮,支持直接关注/取消关注。
## 五、问题分析
### 用户页面问题分析
#### 涉及文件
- `content/mobile/MobileController.php` - 控制器
- `templates/mobile/app/user.php` - 用户页面视图
- `content/api/MobileApiController.php` - 用户资料 API
- `content/user/UserModel.php` - 用户模型
#### 解决方案
1. 检查用户是否存在
2. 确保参数传递正确
3. 检查 API 调用
4. 确认权限设置
### 注意事项
- 所有 SQL 语句中的 `husns_` 前缀需要替换为实际的数据库前缀
- 如遇到问题,建议检查服务器错误日志获取具
转发(0)
评论(0)
点赞(0)
收藏
评论 (0)
请 登录 后发表评论