菜鸟学习 14小时前
有没有大佬优化一下这个移动端主题呢?演示地址,www.luya.wang。 # 功能修改与问题分析文档 ## 一、匿名发布功能 ### 功能说明 - 动态所有人可见 - 显示发布者为"匿名用户" - 其他用户**无法查看个人主页** - 后台管理可查看真实用户信息 第一步先进行### 数据库变更 不然就会出现不能发布动态的情况 ```sql ALTER TABLE `husns_posts` ADD `is_anonymous` TINYINT(1) NOT NULL DEFAULT 0 COMMENT '是否匿名发布:0否 1是' 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 '发送者ID', `receiver_id` int(11) NOT NULL COMMENT '接收者ID', `content` text NOT NULL COMMENT '私信内容', `created_at` int(11) NOT NULL COMMENT '创建时间', `is_read` tinyint(1) NOT NULL DEFAULT 0 COMMENT '是否已读', `status` tinyint(1) NOT NULL DEFAULT 1 COMMENT '状态', PRIMARY KEY (`id`), KEY `idx_sender` (`sender_id`), KEY `idx_receiver` (`receiver_id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='私信表'; ``` > **注意**:将 `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_` 前缀需要替换为实际的数据库前缀 - 如遇到问题,建议检查服务器错误日志获取具
📎 附件
📄 mobile.zip 220.9 KB
转发(0) 评论(0) 收藏