人才社区

 找回密码
 免费入驻

QQ登录

只需一步,快速开始

搜索
查看: 76|回复: 0

[已解决] 织梦dede5.7火车头采集让它自动生成首页、上下篇、栏目页

[复制链接]

46

主题

46

帖子

353

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
353
发表于 2019-12-12 21:46:47 | 显示全部楼层 |阅读模式
织梦使用火车头采集器采集数据,发布文档后是不会自动生成首页、上下篇、栏目页的,我们可以给织梦添加自动生成代码来实现


实现方法:


第一步:打开 /dede/inc/inc_archives_functions.php 最下面加入3个函数:
  1. /*火车头采集自动更新主页*/
  2. function MakeIndex()
  3. {
  4.         global $dsql,$cfg_basedir,$cfg_templets_dir,$cfg_df_style;
  5.     require_once(DEDEINC.'/arc.partview.class.php');
  6.     $envs = $_sys_globals = array();
  7.     $envs['aid'] = 0;
  8.     $pv = new PartView();
  9.     $row = $pv->dsql->GetOne('SELECT * FROM `#@__homepageset`');
  10.     $templet = str_replace("{style}", $cfg_df_style, $row['templet']);
  11.     $homeFile = dirname(__FILE__).'/../'.$row['position'];
  12.     $homeFile = str_replace("//", "/", str_replace("\", "/", $homeFile));
  13.     $fp = fopen($homeFile, 'w') or die("无法更新网站主页到:$homeFile 位置");
  14.     fclose($fp);
  15.     $tpl = $cfg_basedir.$cfg_templets_dir.'/'.$templet;
  16.     if(!file_exists($tpl))
  17.     {
  18.         $tpl = $cfg_basedir.$cfg_templets_dir.'/default/index.htm';
  19.         if(!file_exists($tpl)) exit("无法找到主页模板:$tpl ");
  20.     }
  21.     $GLOBALS['_arclistEnv'] = 'index';
  22.     $pv->SetTemplet($tpl);
  23.     $pv->SaveToHtml($homeFile);
  24.     $pv->Close();
  25. }
  26. /*火车头采集自动更新栏目*/
  27. function MakeParentType($typeid)
  28. {
  29.         global $dsql;
  30.         $typediarr = array();
  31.         array_push($typediarr,$typeid);
  32.         $row3 = $dsql->GetOne("Select reid,topid From `#@__arctype` where id=".$typeid);
  33.         if(!in_array($row3['reid'],$typediarr) and $row3['reid']!=0) array_push($typediarr,$row3['reid']);
  34.         if(!in_array($row3['topid'],$typediarr) and $row3['topid']!=0) array_push($typediarr,$row3['topid']);
  35.         require_once(DEDEDATA."/cache/inc_catalog_base.inc");
  36.         require_once(DEDEINC."/channelunit.func.php");
  37.         require_once(DEDEINC."/arc.listview.class.php");
  38.         foreach($typediarr as $typeid)
  39.         {
  40.                 $lv = new ListView($typeid);
  41.                 $lv->MakeHtml(1,$maxpagesize);
  42.         }
  43. }
  44. /*火车头采集自动更新上下篇*/
  45. function MakePreNext($aid,$typeid)
  46. {
  47.         global $dsql;
  48.     require_once(DEDEINC.'/arc.archives.class.php');
  49.     $aid = intval($aid);
  50.     $preRow =  $dsql->GetOne("SELECT id FROM `#@__arctiny` WHERE id<$aid AND arcrank>-1 AND typeid='$typeid' ORDER BY id DESC");
  51.     $nextRow = $dsql->GetOne("SELECT id FROM `#@__arctiny` WHERE id>$aid AND arcrank>-1 AND typeid='$typeid' ORDER BY id ASC");
  52.     if(is_array($preRow))
  53.     {
  54.         $envs['aid'] = $preRow['id'];
  55.         $arc = new Archives($preRow['id']);
  56.         $arc->MakeHtml();
  57.     }
  58.     if(is_array($nextRow))
  59.     {
  60.         $envs['aid'] = $nextRow['id'];
  61.         $arc = new Archives($nextRow['id']);
  62.         $arc->MakeHtml();
  63.     }
  64. }
复制代码
第二步继续在上面第一步中所说的这个文件中大概第933行找到return $revalue;在它的上面加入:
  1. MakePreNext($arcID,$typeid);
  2. MakeIndex();
  3. MakeParentType($typeid);
复制代码


添加完后效果是这样的:

这样添加好后,无论你用火车头免登录接口还是WEB发布模块,无论是普通文章模型还是图集模型还是软件模型,都可以自动生成相关静态文件了。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?免费入驻

x
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 免费入驻

本版积分规则

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