DEDE自带网站地图如何调用文章列表

admin11年前分享1334

分析了一下/dede/makehtml_map.php这个文件,发现生成视图用的是dedetag.class.php文件,有点简单。不能使用织梦的很多标签,例如: {dede:arclist titlelen=25 row='25'}<li target='_blank'><a href="[field:arcurl/]">[field:title/]</a></li>{/dede:arclist} 就不能解析出列表。 现在仿照首页的方法,使用arc.partview.class.php,这是一个视图类,可以解析这些标签。 修改makehtml_map.php(在dede目录下)如下:

1、把

require_once(DEDEINC."/dedetag.class.php");

改成

require_once(DEDEINC."/arc.partview.class.php");

2、把

$dtp = new DedeTagParse();

$dtp->LoadTemplet($tmpfile);

$dtp->SaveTo($cfg_basedir.$murl);

改成

$dtp = new PartView();

$GLOBALS['_arclistEnv'] = 'index';

$dtp->SetTemplet($tmpfile);

$dtp->SaveToHtml($cfg_basedir.$murl);

3、把

$dtp->Clear();注释掉。

4、把

$murl = $cfg_cmspath."/data/sitemap.html";

$tmpfile = $cfg_basedir.$cfg_templets_dir."/plus/sitemap.htm";

改成

$murl = $cfg_cmspath."/sitemap.html";

$tmpfile = $cfg_basedir.$cfg_templets_dir."/plus/sitemap.htm";

第四步的作用是把sitemap.html生成到网站根目录下,因为data目录默认禁止蜘蛛爬取的。

要解释的是最后:

$cfg_basedir.$cfg_templets_dir."/plus/sitemap.htm"; 改成$cfg_basedir.$cfg_templets_dir."/".$cfg_df_style."/sitemap.htm";

注意原来的路径是固定在/plus/目录中的,也就是网站地图的风格,现在我们用的是调用标签,将网站地图的模板放到网站风格中这样更方便管理。

现在就可以解析dedecms所有的标签了,包括文章列表标签。

aaaaaaaa

发表评论    

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。