解决织梦后台生成文档不是所有文档都更新BUG

admin 2024-08-28 16:48:25 81

最近发现一个 DedeCMS 做的网站,在后台执行 更新文档HTML 功能时,生成的html文档不全,有一部分页面没有生成或者更新。

在生成的时候,没有任何错误提示,生成是执行完毕了,但是查看出问题的部分文档发现文件生成时间没有变化,对模板做出的修改也没有更新。

解决织梦后台生成文档不是所有文档都更新BUG

经过检查发现是 DedeCMS 的一处 bug ,在 /dede/makehtml_archives_action.php 里面的86行的代码:

//如果生成数量大于500,并且没选栏目,按栏目排序生成 if($totalnum > 500 && empty($typeid)) {     $dsql->Execute('out',"SELECT id FROM `dede_arctiny` $idsql ORDER BY typeid ASC $limitSql"); } else {     $dsql->Execute('out',"SELECT id FROM `dede_arctiny` $idsql $limitSql"); }

这里如果生成数量如果大于500的话,会根据栏目进行排序同时再结合 limitsql 限制就会导致更新不到全部的文档,有部分文档会被略过。

解决办法就是注销这个判断,直接使用下面的语句。

//直接使用else内的语句 $dsql->Execute('out',"SELECT id FROM `dede_arctiny` $idsql $limitSql"); //注销下面的语句 /*if($totalnum > 500 && empty($typeid)) {     $dsql->Execute('out',"SELECT id FROM `dede_arctiny` $idsql ORDER BY typeid ASC $limitSql"); } else {     $dsql->Execute('out',"SELECT id FROM `dede_arctiny` $idsql $limitSql"); }*/

保存文件后,再次重新生成,所有的文档都已经完美生成,原来出问题的文档已经被更新。


最新回复 (0)
返回
发新帖