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;
    }
}
?>

相关文章

  • DeDecms中利用关键词实现简单tag功能的php代码

    DeDecms中利用关键词实现简单tag功能的php代码

    此方法的思路是直接调用dedecms每篇文章的关键词,以此作为tag标签,在通过模板的编程为每个关键词增加搜索链接,好处即为无需修改程序即可实现简单的tag标签功能,实现方法参考如下:
    2008-03-03
  • dedecms织梦系统数据库表结构详细说明-附表名与字段名

    dedecms织梦系统数据库表结构详细说明-附表名与字段名

    dedecms织梦系统是一个自由和开放源码的内容管理系统,简单易用,功能丰富,原生php程序,二开简单,曾经流行了好多年,就是现在还有人再使用。本文囊括了dedecms数据库所有的86张数据表结构和字段详细说明,需要的朋友可以参考下。
    2023-04-04
  • DEDECMS实用漂亮的翻页效果修改方法

    DEDECMS实用漂亮的翻页效果修改方法

    有时候大家感觉dedecms的内容分页不太好看,下面的方法你就可以做出更好的分页效果代码
    2008-10-10
  • DEDE 24小时内发布的信息日期为红色

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

    主要是学习他的思路,以后我们就能很方便的增加功能了
    2008-08-08
  • dedecms实现仿downkr的sitemap效果代码

    dedecms实现仿downkr的sitemap效果代码

    dedecms实现仿downkr的sitemap效果代码,本人对php不是很懂,只是慢慢摸索的,希望大家有好的东西一起交流,实现仿sitemap
    2008-03-03
  • dedecms采集过滤常用代码集合

    dedecms采集过滤常用代码集合

    dede采集过程中最麻烦的莫过于采集的正则过滤函数的编写。说实在的,dede在这点上和很多ASP CMS系统比如说动易等,采集的时候直接选择几个选项就可以了,简单的完成想过滤的东西。不过他们只局限于对文章内容的过滤不是很好。而DEDE却能对所有采集的字段进行过滤,功能上弥补了易用性的缺陷,期待柏拉图在后续版本中加上选择性过滤功能。
    2008-03-03
  • 为dedecms增加栏目文章统计功能代码

    为dedecms增加栏目文章统计功能代码

    有些网友希望为dedecms增加栏目文章统计的功能,这个功能并不复杂,但是dedecms本身并没有此功能,以下是实现的方法:
    2008-03-03
  • dedecms中如何在栏目列表和文章页面中获得当前栏目标题

    dedecms中如何在栏目列表和文章页面中获得当前栏目标题

    我们在使用dedecms中会发现,当我们打开栏目的列表页和文章页的时候,无论我们使用什么标签,都无法获得当前栏目的标题信息。究其原因是因为这两个页面所读取的信息主要来源于dedecms的dede_archives表及其附加表,仅通过传递栏目的id编号来区别不同栏目,因此我们通过类似{dede:field name=’typename’/}这样的方法是无法直接获得栏目名称的。但是我们依然可以通过程序的改造,利用栏目的唯一id编号,获得栏目名称。以下是实现方法:
    2008-03-03
  • DEDECMS TAG伪静态 IIS_rewrite配置方法附rewrite下载

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

    使dedecms出现的伪静态效果实现代码
    2008-10-10
  • 实现让DeDecms的上下文章链接限制在当前栏目内

    实现让DeDecms的上下文章链接限制在当前栏目内

    使用dedecms的时候,当打开某篇文章的时候,底部会有“上一篇”“下一篇”的链接信息,默认情况下,上下链接信息并没有区分栏目的属性,那么需要实现本栏目内的上下篇,如何实现呢? 基本思路:实现上下文章链接的函数位于GetPreNext(),我们在这个函数中获得栏目ID,然后修改SQL语句,在查询数据库的时候加上栏目ID的限制。
    2008-03-03

最新评论