最近开发dz的时候涉及到使用dz的分类信息,但是我发现dz的分类信息机制很不完善,
首先,存储分类信息变量值的有两张表:forum_typeoptionvar和forum_optionvalue
发布分类信息的时候两个表同时储存,但是读取数据的时候是从 forum_typeoptionvar 表里取出,而这张表集合了所有分类信息的变量值,如果分类信息的数据量很大,那肯定会影响性能(关于怎么修改,我之后再发布)
现在我先说下 关于 forum_typeoptionvar和forum_optionvalue两张表在编辑帖子发布后 分类信息不能同步更新问题!
已经发布的分类信息,从新编辑修改后发布 数据只会更新到 forum_typeoptionvar 而forum_optionvalue表的数据不会更新,依然是最开始发布的内容
关于这个问题就不过多阐述:discuz.dismall.com/thread-3544369-1-1.html,https://discuz.dismall.com/thread-3474267-1-1.html
下面说下解决办法:首先找到以下文件
source/class/extend/extend_thread_sort.php
大约在121 行代码处- C::t('forum_typeoptionvar')->update_by_tid($this->thread['tid'], array('value' => $value, 'sortid' => $parameters['sortid']), false, false, $optionid);
- }
- if($typeexpiration) {
- C::t('forum_typeoptionvar')->update_by_tid($this->thread['tid'], array('expiration' => (TIMESTAMP + $typeexpiration)), false, false, null, $parameters['sortid']);
- }
复制代码 将此处代码修改为:[code] |