几个dedecms的使用技巧

dedecms应该是国内最受欢迎的开源系统了,单从使用CMS建设网站的角度来说,dedecms的市场份额应该是最大的。简单、易勇、功能全面、全部开源、免费等等成为了dedecms占领市场的法宝;正是这样才使得很多个人站长和中小企业的网站迅速发展。但也正是这些断了织梦的财路,不得不在dedecms5.7后台加上了广告,我想这个也能够理解!dedecms的每一次更新似乎都有些草率,几乎每次推出一个新版本之后的几天内就有补丁推出!但dedecms还是值得信赖的!因为织梦已经把CMS做的足够完美了;

之前也用过帝国,相比dedecms来说,帝国的模块化是一大特点;但更多的站似乎用不上。它允许管理员自定义内容模型,也就是说可以自定义数据库字段;但对于大多数网站来说,集成的几种模型就够用了!我是从dedecms5.1开始使用的,就默认的模板来说,还是比较喜欢dede5.3的;感觉5.3的模板也是最好看的;直到现在我的TXT小说下载网还在使用,而且各个浏览器都兼容,不得不让我佩服这个模版的作者。 最近的项目一直在使用dede5.6,虽然dede已经升级到5.7了,但增加的更能也不是很多,很多一些通过修改实现的功能,在修改相同文件后也还是能够实现的。下面说的这个通过tag标签实现相关文章是应用在5.5上的,但5.6也还是可以使用的;相信应用在dede5.7上也应该没问题。

第一个技巧dedecms5.6和5.7通过tag实现相关文章

这个功能一直是很多站长对dedecms不满的地方,因为很多程序中都有这个功能,为什么dedecms这么强大,居然没有这样简单的功能,让很多人不解。通过前端关注的观察,其实dedecms是有这个功能的,站长们每次发文章的时候都应该知道,dedecms的tag标签和关键词是相关的,即你使用了tag标签,没有使用关键词,也就是说:在发文章的时候将自动关联的关键词去掉了,但数据库中还会有关键词这样一个记录,这个是和你的tag标签一样的,当再次修改文章的时候就能看到,如果再次将这些关键词去掉就真的去掉了,就是说再次修改后的文章就没有关键词了。不知道这个是不是dede的一个BUG,但dedecms5.6确实是这样的。 再回来,正是TAG和关键词关联才使得通过关键词实现的文章关联实际上和通过TAG实现的没有区别;但很多人就喜欢叫这个劲,也有很多人喜欢干脱裤子放屁这样的事,于是就有了下面这个这段内容: 下面是要修改的文件名和路径:include\common.inc.php 一定要注意的是:不能使用记事本打开这个文件,即使是在线的编辑也不行。最好的办法是将这个文件下载到本地,通过DW等编辑完成后再上传覆盖。这个是编码的问题! 在文件的末尾,当然是PHP结束符之前加入如下代码:

function ShowTagLikeArc_by_id($titleLen,$rowCount,$typeid,$aid){
$dsql = new DedeSql(false);
if ($typeid!="0") $sql = TypeGetSunID($typeid,$dsql);
else $sql =" 1=1 ";
//找到所有的tag id
$query="Select tid from dede_taglist where aid=$aid";
$dsql->SetQuery($query);
$dsql->Execute();
while($row=$dsql->GetObject()){
$kwsqlarr[] = " (tl.tid='".$row->tid."') ";
}
$where = implode(' OR ',$kwsqlarr);
if (trim($where)=="") $where=" 1 ";
$sql="Select DISTINCT tp.namerule,tp.typedir,dede_archives.* From dede_taglist tl left join dede_archives on tl.aid=dede_archives.ID left join dede_arctype tp on dede_archives.typeid=tp.ID where {$sql} and ( $where) and dede_archives.ID<>$aid order by dede_archives.litpic desc,dede_archives.click desc"; //排序按有缩略图、点击率高的排名靠前
$dsql->SetQuery($sql);
$dsql->Execute();
$ss="";
$i=0;
while($row=$dsql->GetObject()){
$url=GetFileUrl($row->id,$row->typeid,$row->senddate,$row->title,$row->ismake,$row->arcrank,$row->namerule,$row->typedir,$row->money);
$ss=$ss."<li><a href='".$url."' title='".$row->title."'>";
if ($titleLen!=0) $ss=$ss.cn_substr($row->title,$titleLen);
else $ss=$ss.$row->title;
$ss=$ss."</A></LI>";
$i++;
if (($rowCount!=0)&&($i>=$rowCount)) return $ss;
}
if ($ss=="") $ss="暂无相关文章";
return $ss;
}

 虽然整段代码在BLOG中不是很容易阅读,全部复制粘贴上就OK了! 在再你需要通过tag标签显示相关文章的地方使用:

{dede:field name='id' function='ShowTagLikeArc_by_id(20,10,0,@me)' /}
其中10代表查找的条数,20代表标题的最长字符数;提到DEDE的字符数,要插一下,dede5.6UFT-8中并不是两个字符对应一个汉字,这个直到现在我还很迷糊,不知道具体的问题出在那里。一般情况下,要显示10个字,要设置30左右的字符长度;

第二个技巧是dedecms5.6和5.7tag标签静态化

我想这个技巧对dedecms是最有用的。很长一段时间百度蜘蛛对dede的tag标签是很在意的,收录很好,于是乎就产生了tag标签静态化这么个插件。下面免费提供dedecms5.6-GBK的下载。看到很多人拿着这个插件在网上80、100的卖,真的很不仗义;说实话我不是这个插件的作者,我也是借用别人的;其实这里还有一个UFT-8版的,我们现在的项目上就用了!如果需要就自己动手将GBK的改一下吧!

点击这里下载吧:http://u.115.com/file/f0231ecb8c 另外还有几个技巧,修改关键词的长度了,修改标题长度了等等,相信很多网站是用不到的。网上也有很多这方面的说明,百度一下你就知道! 暂时就弄露两个吧;以后想起来在发上来!

原文来自:http://www.13019.com/529

posted @ 2011-04-11 12:52  狗狗创想  阅读(561)  评论(0)    收藏  举报