首页 >> SEO优化, 网站技术 >> 内容批量加入DedeCMS

内容批量加入DedeCMS

Catagory:SEO优化, 网站技术, Date:2011年12月20日,Author: 工业品营销-贾定强

最近采集了不好的内容,数据库都上G了。以前一直用的方式是自己写个网站,通过自己的程序来调用自己采集的内容。这样一个好处就是自己了解全部的数据结构,调用起来非常方便。但缺点也很明显,最大的问题就是界面的美工问题,程序出生的我对于美工实在是没什么研究,一个网站界面已经用在了N多网站上,看的我自己都烦了。还有个问题就是自己写的程序难免会出这样那样的问题,自己处理起来浪费了不少时间。所以,灵机一动,想到了DedeCMS。如果把我采集的内容添加到Dede的数据库中,岂不是两全其美,数据也有了,网站也有了。

不过把数据添加到Dede中还真不少件容易的事,Dede后台的数据表非常多。其中跟文章相关的表有两个,addonarticle和archives,和tags相关的表有两个tagindex和taglist。这四个表就是Dede存储文章和文章对应的tags信息的表。只要这四个表修改对了,就能达到和在dede后台添加文章一样的效果。所以的研究这几个表中每个字段都代表什么意思,其他三个都比较简单,最复杂的就是archives这个表了,字段数非常多,有三十多个。一看这么多字段,我头都大了。所以又冒出来一个思路,用python或php写一个脚本,直接将数据post到dede的article_add.php上,借用article_add.php完成数据的添加。结果自己用php的curl搞了半天,可怎么也post不进去数据,也不知道什么原因。难度太大,只能放弃了。

现在只有一条路了,分析Dede的数据库结构,自己写一段php程序,把数据加进去。这时候又想到了火车头的那个Dede文章发布模块,打开研究了一下,突然发现了有一段说明挺有用的,如下:

默认参数:
notpost=1      允许评论,0为不允许.
channelid=1    为频道ID,1为文章频道
remote=0       下载远程图片和资源,1为下载
dellink=1      删除非站内链接,1为删除
autolitpic=0   提取第一个图片为缩略图,1为提取
autokey=1      自动获取关键词,1为自动获取
sptype=auto    自动分页,手动为hand
spsize=3       自动分页大小,3千字
money=0        消费点数,值为数字
ishtml=1       为静态发布,改为0为动态浏览
sortup=0       文档置顶天数,可选0,7,30,90,180,360,单位是天
arcrank=0      阅读权限,0为开放浏览
—————————————————————-
可选参数:
—————————————————————-
redirecturl    跳转网址,
tags           TAG,用空格或’,’分开
litpic         缩略图
picname        图片名
dede_addonfields 附加表的字段
shorttitle     简略标题
color          标题颜色,默认为空
description    文档摘要
keywords       关键字
source         出处
writer         作者
filename       自定义文件名
—————————-
其它说明:
—————————-
模块里的时间取的是系统时间戳,如果不添加时间,取的是当前时间.如果你弄的时间格式出错,发布后发布时间就会变成1970年的.对于可选参数,你可以选择添加,根据自己需要,修改相关参数.

对照上面的说明,基本上就可以看明白archives表中各个字段的含义了。然后分析了一下前面提到的article_add.php,看看Dede是怎么把数据加入数据库的,然后依葫芦画瓢,就写出了自己能用的php代码。代码如下,供参考学习。php文件位置在Dede的根目录下。

<?php
set_time_limit(0);
require_once(‘dede/config.php’);
require_once(“include/common.func.php”);
require_once(“include/archives.func.php”);
require_once(“dede/inc/inc_archives_functions.php”);

$con = mysql_connect(“localhost”,”root”,””);
if (!$con){
die(‘Could not connect: ‘ . mysql_error());
}
mysql_query(‘set names UTF8’);
mysql_select_db(“database”, $con);

$results = mysql_query(“SELECT * FROM 我的数据表 where title like ‘%目录名称%'”);
while($rows = mysql_fetch_array($results)){
$id = $rows[‘id’];
$title = $rows[‘title’];
$body = $rows[‘content’];
$kid = $rows[‘kid’];

$result = mysql_query(“SELECT * FROM 数据表对应的tags表 where id = “.$kid);
while($row = mysql_fetch_array($result)){
$tags = $row[‘skey’];
}

echo $title;

$notpost = 0;
$typeid = 1; //目录Id,文章将被提取到这个目录下
$channelid =1;

if(empty($typeid2)) $typeid2 = ”;
if(!isset($autokey)) $autokey = 0;
if(!isset($remote)) $remote = 0;
if(!isset($dellink)) $dellink = 0;
if(!isset($autolitpic)) $autolitpic = 0;
if(empty($click)) $click = ($cfg_arc_click==’-1′ ? mt_rand(50, 200) : $cfg_arc_click);

if(empty($typeid)){
ShowMsg(“请指定文档的栏目!”,”-1″);
exit();
}
if(empty($channelid)){
ShowMsg(“文档为非指定的类型,请检查你发布内容的表单是否合法!”,”-1″);
exit();
}

//对保存的内容进行处理
if(empty($writer))$writer=’admin’;
if(empty($source))$source=’未知’;
$pubdate = GetMkTime($pubdate);
$senddate = time();
$sortrank = AddDay($pubdate,$sortup);
$ismake = 1;//静态化html
$title = ereg_replace(‘”‘, ‘"’, $title);
$title = htmlspecialchars(cn_substrR($title,200));
$shorttitle = cn_substrR($shorttitle,36);
$color =  cn_substrR($color,7);
$writer =  cn_substrR($writer,20);
$source = cn_substrR($source,30);
$description = cn_substrR($description,$cfg_auot_description);
$keywords = cn_substrR($keywords,60);
$filename = trim(cn_substrR($filename,40));
$userip = GetIP();
$isremote  = (empty($isremote)? 0  : $isremote);
$serviterm=empty($serviterm)? “” : $serviterm;
$arcrank = 0;//开发阅读,不是0,文章就在前台看不见
$adminid = 1;

//处理上传的缩略图
if(empty($ddisremote)){
$ddisremote = 0;
}

$litpic = GetDDImage(‘none’, $picname, $ddisremote);

//生成文档ID
$arcID = GetIndexKey($arcrank,$typeid,$sortrank,$channelid,$senddate,$adminid);
echo $arcID ;

if(empty($arcID)){
ShowMsg(“无法获得主键,因此无法进行后续操作!”,”-1″);
exit();
}
if(trim($title) == ”){
ShowMsg(‘标题不能为空’, ‘-1′);
exit();
}

//处理body字段自动摘要、自动提取缩略图等
$body = AnalyseHtmlBody($body,$description,$litpic,$keywords,’htmltext’);

//数据插入到数据库中
$query = “INSERT INTO de_archives(id,typeid,typeid2,sortrank,flag,ismake,channel,arcrank,click,money,title,shorttitle,
color,writer,source,litpic,pubdate,senddate,mid,notpost,description,keywords,filename,dutyadmin,weight)
VALUES (‘$arcID’,’$typeid’,’$typeid2′,’$sortrank’,’$flag’,’$ismake’,’$channelid’,’$arcrank’,’$click’,’$money’,
‘$title’,’$shorttitle’,’$color’,’$writer’,’$source’,’$litpic’,’$pubdate’,’$senddate’,
‘$adminid’,’$notpost’,’$description’,’$keywords’,’$filename’,’$adminid’,’$weight’);”;

$result = mysql_query($query);
if($result) echo “archives ok “;

$query = “INSERT INTO de_addonarticle(aid,typeid,body,userip) VALUES (‘$arcID’, ‘$typeid’, ‘$body’, ‘$userip’)”;
$result = mysql_query($query);
if($result) echo “addonarticle ok<br />”;

InsertTags($tags,$arcID); // 插入tag标签
}
mysql_close($con);
?>яхты в хорватииbridal comb headpieces

来源:工业品营销,原文地址:http://www.jiadingqiang.com/2336.html,欢迎分享本文,转载请保留出处!

Comments: 17 Responses to “ 内容批量加入DedeCMS ”
六月 30th, 2012
plc splitter 说 Said:

文章里有我想要了解的东西,不错,多建几个网站正是我正在给公司划分的事,

[回复]

六月 3rd, 2012
老牛 说 Said:

不错. 如果加入定时 定量控制function就完美了.

[回复]

三月 20th, 2012

内容很精彩 学习了

[回复]

二月 3rd, 2012
女包品牌 说 Said:

对于很多玩CMS的人真有用

[回复]

一月 13th, 2012
武汉橱柜 说 Said:

年后也想弄个织梦的玩玩

[回复]

一月 10th, 2012
金属拉链 说 Said:

这些我者年示懂呀

[回复]

十二月 30th, 2011
牛奶减肥 说 Said:

是什么。。内容是什么格式的啊。

[回复]

十二月 30th, 2011

呵呵,博主是个对数据库很有研究的人啊,我看着SQL语句看多了就有点难受

[回复]

十二月 29th, 2011
礼品 说 Said:

代码太多。 我表示看不懂。

[回复]

十二月 26th, 2011
1.85狂雷版本 说 Said:

楼主厉害,技术性的东西

[回复]

十二月 26th, 2011
针织服装 说 Said:

这篇文章写的不错,很实用

[回复]

十二月 24th, 2011
蜂蜜的作用 说 Said:

强大的文章啊! 干货。

[回复]

十二月 23rd, 2011
白色连衣裙 说 Said:

这是什么程序调用

[回复]

十二月 22nd, 2011
激光打标机 说 Said:

很不错的东西,博主真行

[回复]

十二月 22nd, 2011

自己会写网站那就很多事情好办了

[回复]

十二月 20th, 2011

确实有帮助啊。

[回复]

十二月 20th, 2011
宝庆堂 说 Said:

这篇文章太实用了。

[回复]

你也来说几句:

名字*必填
邮箱*必填,不会被公开
网站
QQ群交流
最近文章
文章归档
  • 2017 (16)
  • 2016 (31)
  • 2015 (63)
  • 2014 (21)
  • 2013 (38)
  • 2012 (25)
  • 2011 (67)
  • 2010 (268)
  • 2009 (19)