织梦DEDECMS5.6升级到5.7后后台的类目和发布人为空的解决办法[转]]

By | 2012/03/26

话说纷纭最近在忙着搞tipask的接口和相关的配套程序,花费了1天多的时间搞定了,具体情况晚会和大家分享,今天说说织梦DEDECMS5.6升级到5.7后,后台的类目和发布人为空的事情。

原因起自我们的编辑同志嫌弃5.6的后台编辑器不够给力,经常容易出错,所以我觉得把后台给升级了,到DEDECMS5.7把。由于比较自信,也比较相信DEDECMS的官方团队,程序数据都没备份直接复制升级文件进去了。升级完毕,到后台升级补丁最最新。然后升级过程中就发现有2个SQL语句没有执行,按照官方说明,找到目录下uperr.txt 文件,手工执行了一次还不行,于是就放弃了。天知道是哪里出错了。

alter table `#@__addoninfos` CHANGE `infotype`  `infotype` char(20)  NOT NULL    default ’0′  COMMENT ”  AFTER `nativeplace`;

alter table `#@__member` ADD `checkmail` smallint(6)  NOT NULL    default ’-1′  COMMENT ”  AFTER `loginip`;

出错的原因是貌似是表结构有问题,手工修改了才勉强通过。

这个时候编辑开始吵着说不能添加文档了,一添加就出错。说不能保存到数据表里面,更新下后台的缓存,问题顺利的解决。返回后台的时候发现了一个大问题。

 

如上图所示,DEDECMS后台中的类目和发布人居然成空了?先是怀疑模型有问题检查一遍没事,编辑等其他操作都正常。又是怀疑升级不完全,重新升级覆盖了一次,检查了下文件等。也在官方网站查找了,发现此类问题遇到的人还不少。官方没有说辞,就有几个版主回复说可能是缓存的问题,清理下就OK,清理了N编后就失望了。托熟悉的官方朋友问,也没结果。于是就放弃了。纠结了几天,上午的时候,再次想到这个问题。参考网上各色人等的办法,几乎就要学某网友,从5.6升级到5.7,再备份,再恢复啥的。悲催的是我5.6的数据库都没有备份。偶然就翻到了2010年08月的一个帖子说的是DEDECMS5.5不显示发布人的名字。有点类似的案例。下面有人偶然的提到了{dede:field.adminname/} 这个标签,想到了织梦的后台模板其实也是跟我们做的一样的。都可以执行和调用织梦自己的模板,于是乎想起去修改下后台模板,用{dede:field.adminname/} 这个标记替换原来的看看怎么样。

在后台模板/dede/templets/content_list.htm目录栏查找到第81行 ;在<td>{dede:field.arcrank function=”GetRankName(@me)”/}</td>这个标记中加入了,{dede:field.adminname/}。然后随手试了试,刷新下后台后发现居然显示作者名字了。而且连带的类目也显示了。如下图所示:

以为是{dede:field.adminname/}这个标签起作用了。后来一想不对,类目哪里我可没改。后来删除了 {dede:field.adminname/}这个标记,等于原模板都没改动,再刷新后台,依旧正常了,很诡异的事件发生了。不管怎么样,算是解决问题 了。

思索再三,没空去看代码找原因,想到的可能还是那个问题,缓存,修改文件后,DEDECMS后台模板的缓存就变了。于是缓存更新后就正常了。但是奇迹的是后台的更新缓存的功能却不行。让人迷惑不解。

自此问题解决,鉴于官方有不少遇到这个问题,所以写下这个小经历,仅供各位参考。

 

转载自纷纭(张欢)-郑州SEO/SEM网站优化

 

直接把根目录下\data\tplcache下的所有文件手动删除之后,正常了。还是缓存的事儿。而后台的清除缓存功能只是清除前台模板的缓存的。