Exemple #1
0
 public function run()
 {
     //过滤并转义
     $replyinfo = keyword_replace_text($_POST['replyinfo']);
     //回复类型判断
     $data['response_reply'] = !empty($_POST['replytype']) ? $_POST['replytype'] : $this->ajaxReturn(array('status' => 0, 'errmsg' => '用户请求标识非法'), 'JSON');
     //回复体标识
     //$data['response_name']  = msubstr($replyinfo,0, 10, $charset="utf-8", $suffix=true);
     $data['response_name'] = empty($_POST['response_name']) ? msubstr($replyinfo, 0, 10, $charset = "utf-8", $suffix = true) : $_POST['response_name'];
     //结构组合体
     $neiron = array('type' => 'text', 'num' => 1, 'neiron' => $replyinfo, 'replace' => '');
     $data['response_compos'] = serialize($neiron);
     //生成XML
     $data['response_xml'] = Factory('Text')->load($replyinfo)->select();
     //数据静态化
     $data['response_static'] = 1;
     $data['status'] = 1;
     return empty($data['response_xml']) ? false : $data;
 }
 /**
  * 编辑配置
  * @author yangweijie <*****@*****.**>
  */
 public function edit_posts($id = 0)
 {
     if (IS_POST) {
         $res['status'] = 0;
         //关键词头部信息初始化
         if (!empty($_POST['keyword_post']) && !empty($_POST['id'])) {
             //请求类型判断
             $date['keyword_post'] = $_POST['keyword_post'];
             //下文关键词是否开启
             $date['keyword_down'] = !empty($_POST['keyword_down']) ? $_POST['keyword_down'] : '';
             //上文继承关键词
             $date['keyword_top'] = is_numeric($_POST['keyword_top']) ? $_POST['keyword_top'] : 0;
             //关键词所属分组
             $date['keyword_group'] = empty($_POST['keyword_group']) ? 1 : $_POST['keyword_group'];
             //关键词缓存
             $date['keyword_cache'] = is_numeric($_POST['keyword_cache']) ? $_POST['keyword_cache'] : 0;
             //关键词有效期判断
             $date['keyword_start'] = strtotime($_POST['keyword_start']);
             $date['keyword_end'] = strtotime($_POST['keyword_end']);
             if (!empty($date['keyword_end']) && !empty($date['keyword_start'])) {
                 if ($date['keyword_end'] < $date['keyword_start']) {
                     $date['keyword_end'] = $date['keyword_start'] + 31536000;
                 }
             }
             //关键词后置行为初始化
             //标签隐藏 显示 关闭
             $date['denytag_keyword'] = serialize(parse_config($_POST['denytag_keyword'], $type = 3));
             //后续行为初始化
             $date['after_keyword'] = serialize(parse_config($_POST['after_keyword'], $type = 3));
             //菜单模式初始化
             $date['click_model'] = is_numeric($_POST['click_model']) ? $_POST['click_model'] : '';
             //模式锁定初始化
             if (empty($_POST['lock_model1'])) {
                 //直接  第一个 选择模块
                 if (is_numeric($_POST['lock_model'])) {
                     $modelinfo = M('Addons')->where(array('status' => 1, 'weixin' => 1, 'id' => $_POST['lock_model']))->field('id,name')->find();
                     $date['lock_model'] = ucfirst($modelinfo['name']) . '/index';
                 } else {
                     $date['lock_model'] = '';
                 }
             } else {
                 $date['lock_model'] = empty($_POST['lock_model']) ? '' : $_POST['lock_model1'];
             }
             $date['status'] = 1;
             $date['keyword_reply'] = $_POST['keyword_reply'];
             //关键词正则替代
             //正则标识
             if (empty($_POST['keyword_reply'])) {
                 $this->error('匹配规则不能为空');
             }
             $rule = M('Rules')->where(array('rules_title' => $_POST['keyword_reply'], 'status' => 1))->getField('rules_content');
             //判断匹配正则是否可用
             if (empty($rule)) {
                 $this->error('该匹配规则为空');
             }
             $date['keyword_content'] = keyword_replace_text($_POST['keyword']);
             $date['keyword_content'] = str_replace('/', '\\/', $date['keyword_content']);
             //强制性  1文本请求  关键词必填   2菜单请求  关键词必填
             if (strtolower($date['keyword_post']) == 'text' && empty($date['keyword_content'])) {
                 $this->error('文本请求中,关键词不能为空');
             }
             if (!empty($date['keyword_content']) && !empty($rule)) {
                 //判断是否携带【参数1】【参数2】【参数3】【参数4】
                 if (strstr($rule, "参数")) {
                     $newkey = $rule;
                     $replacekey = explode(';', $date['keyword_content']);
                     foreach ($replacekey as $key => $value) {
                         $newkey = str_ireplace("参数" . $key, $value, $newkey);
                     }
                     $newrule = "/" . $newkey . "/";
                     //循环替代参数
                 }
                 //判断是否携带单规则替代
                 if (strstr($rule, "芒果")) {
                     $newrule = str_ireplace("芒果", $date['keyword_content'], $rule);
                     //芒果基本关键词
                 }
                 //全无则原规则
                 if (!strstr($rule, "参数") && !strstr($rule, "芒果")) {
                     $newrule = $rule;
                 }
                 $date['keyword_rules'] = $newrule;
             }
             $datanum = M('Keyword')->where(array('id' => $_POST['id']))->save($date);
             $this->success('编辑用户请求成功', U('Keywordview/lists'));
         } else {
             $this->error('用户请求标识非法');
         }
     } else {
         $info = array();
         /* 获取数据 */
         $info = D('KeywordView')->where(array('id' => intval($_REQUEST['id'])))->find();
         $info['response_reply'] = strtolower($info['response_reply']);
         $string = '';
         foreach (unserialize($info['after_keyword']) as $key => $value) {
             if (!empty($value)) {
                 $string .= $value . "\n";
             }
         }
         $info['after_keyword'] = $string;
         $clickmenu = M('Clickmenu')->field('id,title')->select();
         $this->assign('clickmenu', $clickmenu);
         $locallist = M('Addons')->where(array('status' => 1, 'weixin' => 1))->field('id,title,name')->select();
         $info['lock_model1'] = is_numeric($info['lock_model']) ? '' : $info['lock_model'];
         $this->assign('localapi', $locallist);
         $info['click_model'] = str_replace(' ', '', $info['click_model']);
         $this->assign('meta_title', '关键词管理');
         $this->assign('info', $info);
         $this->display();
     }
 }