站长论坛

20z站长论坛

 找回密码
 立即注册
查看: 820|回复: 1

[站长百科] dede织梦程序使用火车头采集自动更新栏目和首页

[复制链接]
GMT+8, 2019-9-24 03:33 | 显示全部楼层 |阅读模式
dede织梦全称DedeCMS织梦,对于老站长来讲并不陌生,但用起来经常会遇到一些很难解决的问题,就拿今天来20z论坛要讲的关于dede织梦程序使用火车头采集后无法自动生成首页和栏目的问题,在网上找了很多相关解决方案都解决不了,自己研究了一整天才得已解决,来20z论坛分享一下经验。

织梦使用火车头采集器采集数据,发布文档后是不会自动生成首页、栏目列表页的,我们可以给织梦添加自动生成代码来实现。

火车头采集自动更新栏目列表页和首页实现教程
打开 /dede/inc/inc_archives_functions.php 最下面加入3个函数

  1. /*火车头采集自动更新主页*/
  2.     function MakeIndex(){   global $dsql,$cfg_basedir,$cfg_templets_dir,$cfg_df_style;
  3.     require_once(DEDEINC.'/arc.partview.class.php');
  4.     $envs = $_sys_globals = array();
  5.     $envs['aid'] = 0;
  6.     $pv = new PartView();
  7.     $row = $pv->dsql->GetOne('SELECT * FROM `dede_homepageset`');
  8.     $templet = str_replace("{style}", $cfg_df_style, $row['templet']);
  9.     $homeFile = dirname(__FILE__).'/../'.$row['position'];
  10.     $homeFile = str_replace("//", "/", str_replace("\\", "/", $homeFile));
  11.     $fp = fopen($homeFile, 'w') or die("无法更新网站主页到:$homeFile 位置");
  12.     fclose($fp);
  13.     $tpl = $cfg_basedir.$cfg_templets_dir.'/'.$templet;    if(!file_exists($tpl))
  14.     {
  15.         $tpl = $cfg_basedir.$cfg_templets_dir.'/default/index.htm';        if(!file_exists($tpl)) exit("无法找到主页模板:$tpl ");
  16.     }
  17.     $GLOBALS['_arclistEnv'] = 'index';
  18.     $pv->SetTemplet($tpl);
  19.     $pv->SaveToHtml($homeFile);
  20.     $pv->Close();
  21. }/*火车头采集自动更新栏目*/function MakeParentType($typeid){  global $dsql;
  22.     $typediarr = array();
  23.     array_push($typediarr,$typeid);
  24.     $row3 = $dsql->GetOne("Select reid,topid From `dede_arctype` where id=".$typeid); if(!in_array($row3['reid'],$typediarr) and $row3['reid']!=0) array_push($typediarr,$row3['reid']);   if(!in_array($row3['topid'],$typediarr) and $row3['topid']!=0) array_push($typediarr,$row3['topid']);    require_once(DEDEDATA."/cache/inc_catalog_base.inc");   require_once(DEDEINC."/channelunit.func.php");  require_once(DEDEINC."/arc.listview.class.php");    foreach($typediarr as $typeid)
  25.     {
  26.         $lv = new ListView($typeid);
  27.         $lv->MakeHtml(1,$maxpagesize);
  28.     }
  29. }/*火车头采集自动更新上下篇*/function MakePreNext($aid,$typeid){   global $dsql;    require_once(DEDEINC.'/arc.archives.class.php');
  30.     $aid = intval($aid);
  31.     $preRow =  $dsql->GetOne("SELECT id FROM `dede_arctiny` WHERE id<$aid AND arcrank>-1 AND typeid='$typeid' ORDER BY id DESC");
  32.     $nextRow = $dsql->GetOne("SELECT id FROM `dede_arctiny` WHERE id>$aid AND arcrank>-1 AND typeid='$typeid' ORDER BY id ASC");    if(is_array($preRow))
  33.     {
  34.         $envs['aid'] = $preRow['id'];
  35.         $arc = new Archives($preRow['id']);
  36.         $arc->MakeHtml();
  37.     }    if(is_array($nextRow))
  38.     {
  39.         $envs['aid'] = $nextRow['id'];
  40.         $arc = new Archives($nextRow['id']);
  41.         $arc->MakeHtml();
  42.     }
  43. }
复制代码


继续在这个文件中找到

return $revalue;
在它的下面加入

MakePreNext($arcID,$typeid);
MakeIndex();
MakeParentType($typeid);
添加完后是这样的

火车头采集自动更新dede织梦栏目列表页教程

火车头采集自动更新dede织梦栏目列表页教程


这样添加好后,无论你用火车头免登录接口还是WEB发布模块,无论是普通文章模型还是图集模型还是软件模型,都可以自动生成相关静态文件了。
通过以上教程就可以完美解决dede织梦使用火车头采集后自动更新生成首页和栏目列表页了,如果对你有帮助请给我点赞,谢谢。

相关帖子

GMT+8, 2019-9-24 03:33 | 显示全部楼层
一直在找这问题 终于在20z论坛解决了
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

二十站网

关于20站| 联系我们| 小黑屋| 20Z网址导航| 手机版| 20z站长论坛 ( 闽ICP备13002936号 )

GMT+8, 2019-9-24 03:33 , Processed in 0.125736 second(s), 24 queries .

Powered by Discuz! X3.1

© 2012-2019 bbs.20z.com

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