找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 1224|回复: 0

[分享] dede网站地图获取所有分页列表的分页网址

[复制链接]
发表于 2018-7-9 21:28:11 | 显示全部楼层 |阅读模式 来自 中国–河南–新乡
本人用于sitemap.xml,但不局限于此

新建 sitelink.lib.php[名字可任意命名,按规则即可],内容如下

  1. <?php
  2. /*
  3. 获取所有分页列表的分页网址
  4. 如--->
  5. http://www.abc.com/abc/list_145_2.html
  6. http://www.abc.com/abc/list_145_3.html
  7. http://www.abc.com/abc/list_145_x.html
  8. ...
  9. */
  10. if(!defined('DEDEINC')) exit('Request Error!');

  11. function lib_sitelink(&$ctag,&$refObj)
  12. {
  13.     global $dsql,$envs;

  14.     $attlist='typeid|0,pagesize|0';
  15.     FillAttsDefault($ctag->CAttribute->Items,$attlist);
  16.     extract($ctag->CAttribute->Items, EXTR_SKIP);
  17.     $innertext = trim($ctag->GetInnerText());

  18.     if($typeid==0) {
  19.         $typeid = ( isset($refObj->TypeLink->TypeInfos['id']) ? $refObj->TypeLink->TypeInfos['id'] : $envs

  20. ['typeid'] );
  21.     }
  22.     //如果没有指定每页显示多少条--->pagesize,则默认为10
  23.     if(empty($pagesize)) $pagesize=10;
  24.      
  25.     $dsql->Execute('me','select id,typedir from dede_arctype where ispart=0');
  26.     while($rs = $dsql->GetArray('me')){
  27.     //loop begin   
  28.          
  29.         $typedir = str_replace('{cmspath}',$GLOBALS['cfg_basehost'],$rs['typedir']);
  30.         $num=$dsql->GetOne('select count(*) as page from dede_archives where typeid='.$rs['id']);
  31.          
  32.         $page=$dsql->GetOne('select ceil('.$num['page'].'/'.$pagesize.') as a');

  33.         for($i=2;$i<=$page['a'];$i++){
  34.             $sitelink = '<url><loc>'.$typedir.'/list_'.$rs['id'].'_'.$i.'.html'.'</loc></url>';
  35.             $row['sitelink'] = $row['sitelink'].$sitelink;
  36.         }
  37.     //loop end
  38.     }
  39.      
  40.     if(!is_array($row)) return '';
  41.      
  42.     if(trim($innertext)=='') $innertext = GetSysTemplets("part_type_list.htm");
  43.      
  44.     $dtp = new DedeTagParse();
  45.     $dtp->SetNameSpace('field','[',']');
  46.     $dtp->LoadSource($innertext);
  47.     if(!is_array($dtp->CTags))
  48.     {
  49.         unset($dtp);
  50.         return '';
  51.     }
  52.     else
  53.     {
  54.         foreach($dtp->CTags as $tagid=>$ctag)
  55.         {
  56.             if(isset($row[$ctag->GetName()])) $dtp->Assign($tagid,$row[$ctag->GetName()]);
  57.         }
  58.         $revalue = $dtp->GetResult();
  59.         unset($dtp);
  60.         return $revalue;
  61.     }
  62. }
  63. ?>
复制代码

模版调用---->如果没有指定每页显示多少条--->pagesize,则默认为10

注---->上面--->line--->37--->$sitelink = '<url><loc>'.$typedir.'/list_'.$id.'_'.$i.'.html'.'</loc></url>\n'; 可根据具体情况自定义

{dede:sitelink pagesize='20'}
[field:sitelink/]
{/dede:sitelink}

上传至 \include\taglib\ 下即可

发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;

如何回报帮助你解决问题的坛友,好办法就是点击帖子下方的评分按钮给对方加【金币】不会扣除自己的积分,做一个热心并受欢迎的人!

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则 需要先绑定手机号

关闭

站长推荐上一条 /1 下一条

QQ|侵权投诉|广告报价|手机版|小黑屋|西部数码代理|飘仙建站论坛 ( 豫ICP备2022021143号-1 )

GMT+8, 2024-11-23 16:27 , Processed in 0.038898 second(s), 8 queries , Redis On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表