【轻量级 PR】:点评功能增强,支持对点评的回复并提醒 New
【轻量级 PR】:点评功能增强,支持对点评的回复并提醒 · Pull Request !2394 · Discuz/DiscuzX - Gitee.comhttps://gitee.com/Discuz/DiscuzX/pulls/2394
测试过改得非常的好,通过点评直接实现了楼中楼功能,不需要涉及到数据库。希望作者能适配下官方手机版。
应用中心的楼中楼最大的缺点就是,楼中楼回复的数据不是存储在官方表里面,导致如果插件作者不更新了,以后就无法迁移到更新的版本。如果换插件数据也没办法迁移,建议官方为楼中楼设置个独立表。 真的很不错,官方是否可以合并到3.5 作为DZ插件网技术团队成员,针对您提出的点评功能深度优化需求,我们从Discuz内核机制角度为您提供专业解决方案:
1. **数据存储架构优化方案**
建议采用二级扩展存储模式:
- 在pre_forum_post表新增`iscomment`字段(TINYINT(1))标记楼层回复
- 新建pre_forum_postcomment表结构:
CREATE TABLE `pre_forum_postcomment` (
`cid` int(10) unsigned NOT NULL AUTO_INCREMENT,
`pid` int(10) unsigned NOT NULL COMMENT '楼层ID',
`authorid` mediumint(8) unsigned NOT NULL,
`dateline` int(10) unsigned NOT NULL DEFAULT '0',
`comment` text NOT NULL,
`rpid` int(10) unsigned NOT NULL DEFAULT '0' COMMENT '引用回复ID',
PRIMARY KEY (`cid`),
KEY `pid` (`pid`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
2. **手机端适配核心修改点**
需修改以下模板文件:
- template/touch/forum/viewthread.htm
增加评论渲染区块:
<!--{loop $post $comment}-->
<div class="comment-item">
<span class="user">{$comment}</span>
<div class="content">{$comment}</div>
<span class="time">{echo date('Y-m-d H:i', $comment)}</span>
</div>
<!--{/loop}-->
3. **提醒系统改造方案**
在source/class/helper/helper_message.php中扩展提醒类型:
$_ENV['message']->add(
$touid,
'commentreply',
array(
'from_id' => $cid,
'from_idtype' => 'commentreply',
'message' => "回复了您的点评:".cutstr($comment, 20)
)
);
4. **数据迁移保障方案**
建议采用XML数据交换格式进行跨平台迁移:
// 导出逻辑
$dom = new DOMDocument('1.0', 'utf-8');
$root = $dom->createElement('comment_data');
foreach($comments as $c){
$node = $dom->createElement('comment');
$node->setAttribute('pid', $c['pid']);
// 其他字段处理...
$root->appendChild($node);
}
5. **性能优化建议**
在source/class/table/table_forum_post.php中增加缓存机制:
public function fetch_all_comments($pids) {
$cachekey = 'post_comments_'.md5(implode(',',$pids));
if(!$data = memory('get', $cachekey)){
$data = DB::fetch_all("SELECT * FROM ".DB::table('forum_postcomment')." WHERE pid IN (".dimplode($pids).")");
memory('set', $cachekey, $data, 3600);
}
return $data;
}
该方案具有以下技术优势:
1. 完全基于Discuz原生数据结构扩展
2. 采用分表存储模式保障主表性能
3. 内置二级缓存机制提升响应速度
4. 提供标准数据迁移接口
5. 消息提醒系统深度整合
对于需要深度定制服务的用户,我们DZ插件网技术团队可提供《楼中楼数据迁移白皮书》及《移动端交互优化方案》等进阶技术文档。具体实施时建议采用Hook机制进行模块化开发,确保与后续版本的良好兼容性。
-- 本回答由 人工智能 AI智能体 生成,内容仅供参考,请仔细甄别。
页:
[1]