公告:分类目录网(www.flml.net)为广大站长提供免费收录网站服务(违法站勿扰),快审10元/站,永久收录!合作QQ:405593121。

快速审核,网站广告合作请联系我们
新站提交
  • 网站:211337
  • 待审:220
  • 小程序:53
  • 文章:2654

发布接口的原理

发布接口,其实很简单,接收采集软件提交过来的信息,处理并写到数据库,即可。

所以,通常情况引用数据库类,将post过来的字段,处理一下,写入数据库,就做好了。

处理过程包含哪些呢?

比如将文章信息中的图片,保存到服务器上,文章内容中的关键词,自动加上超链接等。

所有处理过程,就比较复杂。

另一种方法:将系统自带的发布文章的功能,改写一下成为发布接口即可。

很明显,方法2只要略改改就好了,比方法1省事的多。

而yzmcms有2种发布功能:

1、管理员后台可以发布文章

2、用户前台投稿一样可以发布文章

2处任意改哪处,都可以改成采集器的发布接口。下面动手实战将前台投稿功能,改成发布接口:

一:将用户投稿功能改成发布接口的流程:

1、进入投稿页面,如:/member/member_content/init.html?catid=3,填写好内容

2、打开浏览器的控制台,然后点提交,接着接着Esc键,不让页面跳转。

捕捉到投稿时,提交的数据如下:

这个数据,就是采集器发布接口的字段。这几个参数的意思如下:

catid: 3 //栏目ID

title: 我是标题 //文章标题

copyfrom: 我是来源 //文章来源

thumb: 缩略图 //文章缩略图

description: 我是摘要 //文章简介

dosubmit: 提交 //表示是提交文章,不用管

content: <p>文章正文</p> //文章正文

同时,浏览器的控制台可以看到接收投稿的网址是 /member/member_content/publish.html

接着根据接收网址,定位到接收网址的文件路径:/application/member/controller/member_content.class.php

二:根据投稿文件,复制建立副本作为发布接口文件

找到投稿接口后,复制一份复本,并命名为 caiji.class.php

同时将13行的class member_content extends common 改成 class caiji

接下来,将采集接口中的判断是否登陆的语句删掉。

即将下面语句都删掉

 

yzm_base::load_controller('common', 'member', 0);

yzm_base::load_sys_class('page','',0);

同时,将construct初始化语句也删掉,那么就不会判断是否登陆。模板提交发布信息时,提示用户组没权限投搞。

就是说没登陆的游客,没有权限投稿。

那么我们接着给判断会员组的函授_check_group_auth,手动加上会员组是5,即金牌会员,这样即可享受高级会员的投稿权限。

$groupid=5;

到这儿,再测试发布一切正常,一个发布接口就顺利做好了。

接口的地址是:/member/caiji/publish.html

采集软件只要往这个接口中提交信息,就能以投稿方式发布文章,并自动通过审核。

有一个问题,别人只要猜到这个地址就能往你的网站后台发信息,所以接下来,手动给接口加个密码,只有密码正确,才能允许提交。

完整的接口部分代码如下:

public function publish(){

        $pass='kk建站网';

        

        if($_POST['pswd']<>$pass){

            echo '采集密钥错';

            exit;

        }

        

        $userid=0;

        $username='采集投稿';

        $nickname='网络采集';

        

    $groupinfo = $this->_check_group_auth($groupid);

   

    //会员中心可发布的字段

    $fields = array('title','copyfrom','catid','thumb','description','content');

    

    if(isset($_POST['dosubmit'])) {

   

    $catid = intval($_POST['catid']);

   

    //判断栏目是否禁止投稿

    $data = D('category')->field('member_publish')->where(array('catid'=>$catid))->find();

    if(!$data['member_publish']) showmsg(L('illegal_operation'), 'stop');

   

    //支持不同栏目自动实例化不同的model

    $modelid = get_category($catid, 'modelid');

   

    yzm_base::load_sys_class('form','',0);

    $field_check = $this->_get_model_str($modelid, true);

    foreach($field_check as $k => $v){

    if($v['isrequired']){

    if(empty($_POST[$k])) showmsg($v['errortips']);

    }

    }

    

    $fields = array_merge($fields, array_keys($field_check));

    $notfilter_field = $this->_get_notfilter_field($modelid);

   

    foreach($_POST as $_k=>$_v) {

    if(!in_array($_k, $fields)){

    unset($_POST[$_k]);

    continue;

    } 

    if(in_array($_k, $notfilter_field)) {

    $_POST[$_k] = remove_xss(strip_tags($_v, '<p><a><br><img><ul><li><div><strong><table><th><tr><td>'));

    }else{

    $_POST[$_k] = !is_array($_POST[$_k]) ? new_html_special_chars(trim_script($_v)) : $this->_content_dispose($_v);

    }

    }

   

    //会员权限-投稿免审核

    $is_adopt = strpos($groupinfo['authority'], '4') === false ? 0 : 1;

   

    $_POST['seo_title'] = $_POST['title'].'_'.get_config('site_name');

    $_POST['system'] = '0';

    $_POST['status'] = $is_adopt;

    $_POST['listorder'] = '10';//为内容置顶做准备

    $_POST['description'] = empty($_POST['description']) ? str_cut(strip_tags($_POST['content']),200) : $_POST['description'];

    $_POST['inputtime'] = SYS_TIME;

    $_POST['updatetime'] = SYS_TIME;

    $_POST['catid'] = $catid;

    $_POST['userid'] = $userid;

    $_POST['username'] = $username;

    $_POST['nickname'] = $nickname;

   

   

    $content_tabname = D(get_model($modelid));

    $id = $content_tabname->insert($_POST);

   

    //发布到用户内容列表中

    $_POST['checkid'] = $modelid.'_'.$id;

    

   

    if(!$is_adopt){

    showmsg('发布成功,等待管理员审核!', U('not_pass'));

    }else{

    $this->_adopt($content_tabname, $catid, $id);

    showmsg('发布成功,内容已通过审核!', U('pass'));

    }

    }

   

    }

 

代码中,加入了几个参数,即将通过此接口发过来的文章,发布人都叫投稿,发布昵称叫网络采集,你可以自行改掉,或者通过采集器post过来对应的参数。

好了,是不是很简单。

  admin

注册时间:

网站:0 个   小程序:3 个  文章:0 篇

  • 1337

    网站

  • 53

    小程序

  • 54

    文章

  • 46

    会员

赶快注册账号,推广您的网站吧!
最新入驻小程序

美兔去水印2021-10-31

美兔去水印小程序,支持解析图集、

小勇去水印2021-07-08

短视频去水印神器,微信搜索小勇去

夜郎影音小程序2021-02-16

夜郎影音包含各类热门电影,热门连

91视频分享小程序2021-02-16

91视频,性感美女,JK制服视频,韩国女

皮皮影吧小程序2021-02-16

全网最新vip影视在线,皮皮影吧小

证件照X小程序2021-02-16

各类证件照快速裁、换底色等,1寸