帝国CMS自身带有文章采集功能,但跟火车头比起来,还是差太多了,而且自己已经习惯了用火车头了,所以还是想通过火车头来采集文章然后写入帝国CMS中.
火车头的自带的web在线发布模块只有帝国商品和软件模块的,没有新闻模块的,所以,要插入新闻,还是自己想办法,我用的方法是自己把采集到的数据直接写入帝国数据库中。
首先要了解帝国的数据库结构,网上关于这个的文章很多,了解之后会发现,帝国存在新闻内容在两个表ph_ecms_news和 ph_ecms_news_data_1中,帝国的ph_ecms_news存储新闻除文章正文外的所有信息,ph_ecms_news_data_1存储新闻正文,然后通过id进行关联,文章的URL地址由ph_ecms_news的两个字段newspath和filename构成,所以这两个字段不能完全一样.
现在要做的就是用sql语句按照帝国的要求把数据正确的插入到数据库中就行了.
新建数据发布模块,内容如下:
INSERTINTO`xianti360`.`ph_ecms_news`(`id`,`classid`,`onclick`,`newspath`,`keyboard`,`keyid`,`userid`,`username`,`ztid`,`checked`,`istop`,`truetime`,`ismember`,`dokey`,`userfen`,`isgood`,`titlefont`,`titleurl`,`filename`,`groupid`,`newstempid`,`plnum`,`firsttitle`,`isqf`,`totaldown`,`title`,`newstime`,`titlepic`,`closepl`,`havehtml`,`lastdotime`,`haveaddfen`,`infopfen`,`infopfennum`,`votenum`,`ftitle`,`smalltext`,`diggtop`,`stb`,`copyids`,`ttid`,`infotags`,`ispic`)VALUES(NULL,’1′,’0′,’-2-26′,‘把php放入火车头采集,火车头采集文章并导入帝国CMS‘,”,’1′,‘admin’,”,’1′,’0′,’0′,’0′,’0′,’0′,’0′,”,”,’1′,’0′,’0′,’0′,’0′,’0′,’0′,‘把php放入火车头采集,火车头采集文章并导入帝国CMS‘,’0′,”,’0′,’0′,’0′,’0′,’0′,’0′,’0′,”,‘‘,’0′,’1′,”,’0′,”,’0′)--
update`xianti360`.`ph_ecms_news`setfilename=@@IDENTITYwhereid=@@IDENTITY
INSERTINTO`xianti360`.`ph_ecms_news_data_1`(`id`,`classid`,`writer`,`befrom`,`newstext`)VALUES(@@IDENTITY,’1′,”,”,‘[标签:内容]‘);
其中@@IDENTITY是获得最新插入的数据库的记录的ID号,通过@@IDENTITY可以实现ph_ecms_news和 ph_ecms_news_data_1的关联,同时利用@@IDENTITY的唯一性,实现了文章的URL地址,由ph_ecms_news的两个字段 newspath和filename构成,的唯一性.