dedecms实现仿downkr的sitemap效果代码

 更新时间:2008年03月23日 17:40:47   作者:  
dedecms实现仿downkr的sitemap效果代码,本人对php不是很懂,只是慢慢摸索的,希望大家有好的东西一起交流,实现仿sitemap
修改的是dedecms目录下的/include/inc_sitemap.php文件
复制代码 代码如下:

<?php 
//class SiteMap
//--------------------------------
require_once(dirname(__FILE__)."/config_base.php");
require_once(dirname(__FILE__)."/inc_channel_unit_functions.php");
class SiteMap
{
    var $dsql;
    var $artDir;
    var $baseDir;
    //-------------
    //php5构造函数
    //-------------
    function __construct()
     {
        $this->idCounter = 0;
        $this->artDir = $GLOBALS['cfg_arcdir'];
        $this->baseDir = $GLOBALS['cfg_cmspath'].$GLOBALS['cfg_basedir'];
        $this->idArrary = "";
        $this->dsql = new DedeSql(false);
  }
    function SiteMap()
    {
        $this->__construct();
    }
    //------------------
    //清理类
    //------------------
    function Close()
    {
        $this->dsql->Close();
    }
    //---------------------------
    //获取网站地图
    //$maptype = "site" 或 "rss"
    //---------------------------
    function GetSiteMap($maptype="site")
    {
        $mapString = "<DL>";
        if($maptype=="rss") $this->dsql->SetQuery("Select ID,typedir,isdefault,defaultname,typename,ispart,namerule2 From #@__arctype where ishidden<>1 And reID=0 And ispart<>2 order by sortrank");
        else $this->dsql->SetQuery("Select ID,typedir,isdefault,defaultname,typename,ispart,namerule2 From #@__arctype where reID=0 And ishidden<>1 order by sortrank");
        $this->dsql->Execute(0);
        while($row=$this->dsql->GetObject(0))
        {     
            if($maptype=="site") $typelink = GetTypeUrl($row->ID,MfTypedir($row->typedir),$row->isdefault,$row->defaultname,$row->ispart,$row->namerule2);
            else $typelink = $GLOBALS['cfg_plus_dir']."/rss/".$row->ID.".xml";
      $mapString .= "<DL><DT><SPAN><a href='$typelink'>".$row->typename."</a></span><A href='http://www.yuanma51.com/plus/rssmap.html'><img src='/templets/downkr/rss.gif'>"."</a></dt>\r\n";
            $mapString .= $this->LogicListAllSunType($row->ID,$maptype,0);
        }
        $mapString .= "";
        return $mapString;
    }
    //获得子类目的递归调用
    function LogicListAllSunType($ID,$maptype,$pd)
    {
        $fid = $ID;
        $mapString = "";
        $pd = $pd + 15;
        if($maptype=="rss") $this->dsql->SetQuery("Select ID,typedir,isdefault,defaultname,typename,ispart,namerule2 From #@__arctype where reID='".$ID."' And ishidden<>1 And ispart<>2 order by sortrank");
        else $this->dsql->SetQuery("Select ID,typedir,isdefault,defaultname,typename,ispart,namerule2 From #@__arctype where reID='".$ID."' And ishidden<>1 order by sortrank");
        $this->dsql->Execute($fid);
        $mapString .= "";
        while($row=$this->dsql->GetObject($fid))
        {
             if($maptype=="site") $typelink = GetTypeUrl($row->ID,MfTypedir($row->typedir),$row->isdefault,$row->defaultname,$row->ispart,$row->namerule2);
             else $typelink = $GLOBALS['cfg_plus_dir']."/rss/".$row->ID.".xml";

             $lastLink = "<DD><a href='$typelink'>".$row->typename."</a></DD>";
             $mapString .= $lastLink;
             $mok = $this->LogicListAllSunType($row->ID,$maptype,$pd);
             if(ereg("<a",$mok)){
                   //$mapString = str_replace($lastLink,"<div style='margin-left:{$pd}px'>$lastLink",$mapString);
                   $mapString .= $mok;
             }
        }
        $mapString .= "</DL>\r\n";
        return $mapString;
    }
}
?>

相关文章

  • DEDE 24小时内发布的信息日期为红色

    DEDE 24小时内发布的信息日期为红色

    主要是学习他的思路,以后我们就能很方便的增加功能了
    2008-08-08
  • dedecms织梦模板引擎标签工作原理

    dedecms织梦模板引擎标签工作原理

    织梦模板引擎是一种使用XML名字空间形式的模板解析器,使用织梦解析器解析模板的最大好处是可以轻松的制定标记的属性,感觉上就像在用HTML一样,使模板代码十分直观灵活,新版的织梦模板引擎不单能实现模板的解析还能分析模板里错误的标记。
    2022-12-12
  • DEDE最简方式教你缩短软件列表的方法

    DEDE最简方式教你缩短软件列表的方法

    相信不少朋友用DEDE在做下载站吧,DEDE确实是广大站长 朋友的建站利器啊,偶也在用。可用着发现当中后台添加软件 时,软件的列表过长,导致页面打开比较慢,而且软件也不容易 找,好了,废话不多说,自己看吧。
    2008-03-03
  • dedecms负载性能优化实例,三招让你的dedecms快10倍以上

    dedecms负载性能优化实例,三招让你的dedecms快10倍以上

    对dedecms表现出来的相对较差的性能也感觉比较迷惑,到底是什么在制约其负载效率?难道真的是某些脑残的dede论坛版主说的是因为mysql不堪重负的原因吗?
    2008-09-09
  • DeDecms实现更漂亮整齐的缩略图

    DeDecms实现更漂亮整齐的缩略图

    dede的缩略图被很多人投诉过,其原因是直接将原有的大图限制块宽度直接缩小或放大,如此一来自然缩略图的效果非常差。
    2008-06-06
  • DEDECMS 重置管理员admin的密码的php文件

    DEDECMS 重置管理员admin的密码的php文件

    有时候会忘记dedecms的后台密码,不得不每次都比较麻烦的手工修改dedecms用户表的密码,有人给写成了php文件,这样就更方便了,注意了,是dedecms v5
    2008-07-07
  • DEDECMS TAG伪静态 IIS_rewrite配置方法附rewrite下载

    DEDECMS TAG伪静态 IIS_rewrite配置方法附rewrite下载

    使dedecms出现的伪静态效果实现代码
    2008-10-10
  • dedecms tags keywords问题修正方法

    dedecms tags keywords问题修正方法

    由于在经常的使用过程中,我们添加信息一般都是不填写keywords的,我们只填写了tags,而这两者我们一般情况下是一样的。所以我给修改了下。
    2008-11-11
  • dedecms列表中显示文章完整标题的解决办法

    dedecms列表中显示文章完整标题的解决办法

    dedecms通过标签arclist输出文章列表的时候,文章的标题会被titlelen属性截取为指定长度的字符串, 但是我们在实际使用的过程中,经常会用到文章标题的完整内容,在dedecms中如何实现呢,方法很多,这里推荐通过小小的修改程序,达到目的。
    2008-03-03
  • dedecms下仿chinaz二级下拉动态读取代码

    dedecms下仿chinaz二级下拉动态读取代码

    最近用dedecms模仿chinaz的模板,发现每次都用静态以后的文件特麻烦,没想到网上已经有高手给解决了,大家看代码
    2008-05-05

最新评论