dedecms5.1升5.31需要注意的小地方

zidon  2009/04/19, 05:58

dedecms是一款很不错的开源的cms,但在使用中出现小问题,到官网论坛去交流互动很差。不过,很难得的是很多用dedecms的朋友会把自己应用的一些心得公之于blog或bbs。这样通过搜索引擎就可以找到自己想要的东西了。

我在dedecms5.1升5.31的时候也碰到了两个怪异的小问题:

1. dede5.31数据表中litpic字段数值比5.1时要小,这样升级就会有损失,只要在升级前修改u.createtable.sql文件中litpic的值大一些,我改成了120。

2. 升级完成之后,不知为什么会自动写入一篇ID为11111111的文章,你再发文章ID就会累计为11111112,而不是从你原来的文章ID上累积。这时只要在数据库中删掉ID为11111111的文章数据,在dede_arctiny表中将Autoindex的数值改为你的最大文章ID+1就可以了。

3. 文章页边栏的推荐内容、热点内容不显示内容,需要在dedecms管理后台-系统基本参数-性能选项的“id 文档ID,content 标签最终内容”,改为id(原为content ),执行完该操作重新生成文章页即可。

4. dedecms5.31的文章副栏目功能是默认关闭的,需要到dede后台-系统设置-系统基本参数-性能选项页面,选上"是否启用副栏目"即可。但副栏目的文章不会在父栏目或者频道页显示。解决这个问题,需要修改dedecms安装目录下的/include/taglib/arclist.lib.php的文件第178行的内容为(该修改由网友georgegodman提供):

//if($CrossID=='') $orwheres[] = ' arc.typeid in ('.GetSonIds($typeid).')';
//else $orwheres[] = ' arc.typeid in ('.GetSonIds($typeid).','.$CrossID.')';
if($CrossID=='') $orwheres[] = ' (typeid in ('.GetSonIds($typeid).') or typeid2 in ('.GetSonIds($typeid).'))';
else $orwheres[] = ' (typeid in ('.GetSonIds($typeid).','.$CrossID.') or typeid2 in ('.GetSonIds($typeid).','.$CrossID.'))';

5. dede5.31发布文章时的来源、作者方式和5.1已经不一样了,如果不想用默认的方式,可以修改dedecms安装目录下的/dede/article_add.php文件的第95行处:
//对保存的内容进行处理
if(empty($writer))$writer=$cuserLogin->getUserName();
if(empty($source))$source='未知';
改为
//对保存的内容进行处理
if(empty($writer))$writer='佚名';
if(empty($source))$source='网络';

6. 将频道、栏目的链接改为目录,而不是目录下的index.html。可以修改include/channelunit.func.php文件内容:

//$reurl = $typedir.'/'.$defaultname;
注释掉上面一行,改为:
$reurl = $typedir.'/';

7. 通过dede管理后台-核心-频道模型-自由列表管理生成Google Sitemap,添加内容如下图(该方法由网友kig提供):

alt

每页记录数:5000,此处可以修改为一个比你的网站文章数大一些的数值。
循环内的单行记录样式(InnerText)内容为:

<url>
<loc>[field:arcurl function="Gmapurl(@me)"/]</loc>
<lastmod>[field:senddate function="strftime('%Y-%m-%d',@me)"/]</lastmod>
<changefreq>weekly</changefreq>
<priority>0.5</priority>
</url>
其中<changefreq>为更新频率,可以根据自己的实际情况修改。