• 您的位置: 紫荷精灵 >> 软件网络 >> kingcms批量替换Url目录格式思路
  • kingcms批量替换Url目录格式思路

  • 作者:admin  来源:原创  日期:2011-7-2 12:58:25
  •  

    网站紫荷精灵http://www.zihe.net 采用kingcms 系统,以前没有用过kingcms文章系统,最近看了看用起来还算比较爽手,感谢kingcms以Since 为首的团队的努力,做出这么好的作品,而且代码开源。网站上线后,起初网站的Url目录比较深,我也没太注意,后来一位朋友提醒了我。url路径对优化相当不利,改吧。
    起初的URL目录为:http://www.zihe.net/shimian/2009/07/12/181/index.htm 
    需要修改成的URL目录为:http://www.zihe.net/shimian/20090712181.htm  

    现在要做的就是如何批量快速的把网站中所有的目录URL改过来。
    首先排除一个个文章修改,这不是程序员的思维。虽然对程序没有研究过,还是看看代码看有没有什么发现吧。一边看代码一边通过搜索手段也获取到一些信息,如下这篇文章:kingcms文章默认路径的修改一篇文章总结的不错。
    打开admin/article/index.asp 
    搜索:
    data(5,0)=1
    data(11,0)=art.lang("common/pinyin")
    ID 文件格式
       data(11,0)=king.neworder("kingart","artid")&"."&split(king_ext,".")(1)
    日期+id 文件格式   
    data(11,0)=year(now)&month(now)&day(now)&king.neworder("kingart","artid")&"."&split(king_ext,".")(1)  
    小注:这样生成的格式是:200931210.htm,个人感觉2009031210.htm好些,日期前补个0吧 代码改动一下搞定:
    data(11,0)=year(now)&king.doublee(month(now))&king.doublee (day(now))&king.neworder("kingart","artid")&"."&split(king_ext,".")(1)
    用日期+ID 文件夹方式
    data(11,0)=formatdate(now,2)&"/"&king.neworder("kingart","artid")
    拼音方式
    data(11,0)=art.lang("common/pinyin")

    按照(日期+id 文件格式)改了之后,发现新添加文章默认的是日期格式,首先解决了新加文章的路径问题。全部生成目当和文章后发展没有变化。说明改的地方肯定不对,其实这篇文章的思路和现在要处理的问题,并不是一回事儿,只是自己没有看清而已。

    后来想到这些Url格式应该存到数据库中了,所有的操作应该调用数据库的内容。打开数据库再打开存放文章的表kingart,果不其实,发现了artpath 字段存放着目录路径。如下图所示。在网站后台中按日期格式新添加一篇文章后,打开数据库发现由原来的2009/06/29/10 变成了 2009062910.htm 。这样问题就简单了,数据库中,artpath 内容都改一下不就OK了。
          

    说干就干,批量改动数据库还是小case 一件,代码如下,运行,替换,很流畅,完毕。

    以下是代码片段:
    <%Server.ScriptTimeOut=500000000%>
    <%response.buffer=true%>
    <% 
    Dim objconn,conn 
    Dim RsTemp,sTContent 
    Dim t1,t2 
    const db = "/db/King#Content#Management#System.mdb" ’数据库路径 
    objconn="Provider=Microsoft.Jet.OLEDB.4.0;Data Source="&server.mapPath(db) 
    set conn=server.createobject("adodb.connection") 
    conn.open objconn 
    set RsTemp=server.CreateObject("Adodb.recordset") 
    RsTemp.open "select * from kingart",conn,1,3  ’连接数据库 
      
    Do while not RsTemp.eof 
    t1="" 
    t2="" 
    sTContent=RsTemp("artpath") 
       t2=split(sTContent,"/") 
       for i=0 to ubound(t2) 
        t1=t1&t2(i)  
       next  
         sTContent=t1 
      RsTemp("artpath")=sTContent 
      RsTemp.UpDate 
      RsTemp.movenext 
      response.clear 
      response.write "数据更新中......" 
    Loop 
      
    RsTemp.Close : Set RsTemp=Nothing 
    Response.Write "更新成功!" 
    %>

    用法:把上述代码另存一个名字如 r.asp 把这个文件放到网站目录中,注意改动数据库的名字和路径啊,然后在地址栏敲下代码 http://www.zihe.net 接着敲入r.asp 运行。

    数据库替换内容字段替换完毕,上传到空间中,在后台把所有目录和文章重新生成一下,看到这些可爱的Url路径的网页在生成,挺高兴。

  • 上一篇:KINGCMS5友情链接制作教程
    下一篇:如何找回Windows 7中隐藏的Mail邮件客户端