is_data = 0; // 表单显示名称 $this->name = dr_lang('内容库'); // 字段划分 $j = 0; $field = []; for ($i = 1; $i<=9; $i++) { $field['title_'.$i] = array( 'ismain' => 0, 'displayorder' => $j, 'name' => dr_lang('标题'), 'fieldname' => 'title_'.$i, 'fieldtype' => 'Text', 'setting' => array( 'option' => array( 'width' => '100%', ), 'validate' => array( 'formattr' => ' onblur="dr_wx_show_title('.$i.');"', ) ) ); $j++; $field['author_'.$i] = array( 'ismain' => 0, 'displayorder' => $j, 'name' => dr_lang('作者'), 'fieldname' => 'author_'.$i, 'fieldtype' => 'Text', 'setting' => array( 'option' => array( 'width' => 200, ) ) ); $j++; $field['thumb_'.$i] = array( 'ismain' => 0, 'displayorder' => $j, 'name' => dr_lang('封面'), 'fieldtype' => 'File', 'fieldname' => 'thumb_'.$i, 'setting' => array( 'option' => array( 'ext' => 'jpg,png,jpeg,gif', 'size' => 20, ), ) ); $j++; $field['description_'.$i] = array( 'ismain' => 0, 'displayorder' => $j, 'name' => dr_lang('描述'), 'fieldname' => 'description_'.$i, 'fieldtype' => 'Textarea', 'setting' => array( 'option' => array( 'width' => '90%', 'height' => 70, ), 'validate' => array( 'xss' => 1, ), ) ); $j++; $field['content_'.$i] = array( 'ismain' => 0, 'displayorder' => $j, 'name' => dr_lang('内容'), 'fieldtype' => 'Ueditor', 'fieldname' => 'content_'.$i, 'setting' => array( 'option' => array( 'mode' => 1, 'height' => 300, 'width' => '100%', 'mini' => 1, ), 'validate' => [ 'tips' => '内容中的图片一定不要太大,否则无法同步到微信服务器' ] ) ); $j++; $field['url_'.$i] = array( 'ismain' => 0, 'displayorder' => $j, 'name' => dr_lang('原文地址'), 'fieldname' => 'url_'.$i, 'fieldtype' => 'Text', 'setting' => array( 'option' => array( 'width' => '100%', ) ) ); } // 初始化数据表 $this->_init([ 'table' => weixin_wxtable('content'), 'field' => $field, 'order_by' => 'inputtime desc', 'date_field' => 'inputtime', ]); \Phpcmf\Service::V()->assign([ 'menu' => \Phpcmf\Service::M('auth')->_admin_menu( [ WEIXIN_MORE_NAME.'内容库' => [APP_DIR.'/'.\Phpcmf\Service::L('Router')->class.'/index', 'fa fa-th-list'], '添加' => [''.APP_DIR.'/'.\Phpcmf\Service::L('Router')->class.'/add', 'fa fa-plus'], '修改' => ['hide:'.APP_DIR.'/'.\Phpcmf\Service::L('Router')->class.'/edit', 'fa fa-plus'], '清空附件media_id' => ['ajax:'.APP_DIR.'/'.\Phpcmf\Service::L('Router')->class.'/clear_del', 'fa fa-file'], ] ), 'myfieldinfo' => $field, 'zt' => [ 0 => '发布成功', 1 => '发布中', 2 => '原创失败', 3 => '常规失败', 4 => '平台审核不通过', 5 => '成功后用户删除所有文章', 6 => '成功后系统封禁所有文章', ] ]); } public function clear_del() { \Phpcmf\Service::M()->table(weixin_wxtable('media_id'))->clear_all(); $this->_json(1, '全部附件media_id记录被清空'); } public function index() { $where = (string)$_GET['keyword'] ? '`title` LIKE "%'.$_GET['keyword'].'%"' : ''; \Phpcmf\Service::M()->set_where_list($where); list($tpl) = $this->_list(); \Phpcmf\Service::V()->display($tpl); } public function add() { list($tpl) = $this->_Post(); \Phpcmf\Service::V()->display($tpl); } public function edit() { list($tpl) = $this->_Post(intval(\Phpcmf\Service::L('Input')->get('id'))); \Phpcmf\Service::V()->display($tpl); } // 转存素材库 public function module_add() { $mid = dr_safe_filename($_GET['mid']); $row = \Phpcmf\Service::M('Module')->table('module')->where('dirname', $mid)->getRow(); if (!$row) { $this->_json(0, dr_lang('此模块[%s]未安装', $mid)); } $this->_module_init($mid); $ids = \Phpcmf\Service::L('input')->get('ids'); if (!$ids) { $this->_json(0, dr_lang('所选内容不存在')); } elseif (dr_count($ids) > 9) { $this->_json(0, dr_lang('微信素材超过9条数据')); } $n = 1; $save = [ 'tid' => 'index', 'title' => 'index', 'content' => [], 'media_id' => '', 'inputtime' => SYS_TIME, ]; $save['media_id'] = ''; $save['publish_id'] = ''; $save['article_id'] = ''; $save['status'] = 1; foreach ($ids as $id) { $data = $this->content_model->get_data($id); if ($data) { $save['content']['title_'.$n] = $data['title']; $save['content']['thumb_'.$n] = $data['thumb']; $save['content']['author_'.$n] = $data['author']; $save['content']['content_'.$n] = $data['content']; $save['content']['description_'.$n] = $data['description']; $save['content']['url_'.$n] = dr_url_prefix($data['url'], $mid); $n++; } } $save['nums'] = $n; $save['title'] = $save['content']['title_1']; $save['content'] = dr_array2string($save['content']); \Phpcmf\Service::M()->table(weixin_wxtable('content'))->insert($save); $this->_json(1, '存储成功,请到微信草稿中编辑发布'); } /** * 获取内容 * */ protected function _Data($id = 0) { $data = parent::_Data($id); if (!$data) { return []; } $value = dr_string2array($data['content']); return $value; } // 格式化保存数据 protected function _Format_Data($id, $data, $old) { !$data[0]['title_1'] && $this->_json(0, '第一个标题不能为空', ['field' => 'title_1']); !$data[0]['content_1'] && $this->_json(0, '第一个内容不能为空', ['field' => 'content_1']); $nums = 0; for ($i = 1; $i<=9; $i++) { if ($data[0]['title_'.$i]) { $nums++; } else { break; } } $save = [ 'tid' => '', 'nums' => $nums, 'title' => $data[0]['title_1'], 'content' => dr_array2string($data[0]), 'inputtime' => SYS_TIME, ]; // 每次修改媒体id重置 $save['media_id'] = ''; $save['publish_id'] = ''; $save['article_id'] = ''; $save['status'] = 1; return $save; } // 保存后 protected function _Save($id = 0, $data = [], $old = [], $before = null, $after = null) { return parent::_Save($id, $data, $old, $before, function($id, $data, $old) { $content = dr_string2array($data['content']); for ($i = 1; $i <=9; $i++) { if (!$content['url_'.$i]) { $content['url_'.$i] = SITE_URL.'index.php?s=weixin&c=show&id='.$id.'&p='.$i; } } \Phpcmf\Service::M()->table(weixin_wxtable('content'))->update($id, [ 'content' => dr_array2string($content), ]); }); } // public function del() { $this->_Del( \Phpcmf\Service::L('Input')->get_post_ids(), null, null, \Phpcmf\Service::M()->dbprefix($this->init['table']) ); } // public function sync_add() { $ids = \Phpcmf\Service::L('Input')->get_post_ids(); if (!$ids) { $this->_json(0, dr_lang('所选数据不存在')); } $rt = weixin_get_access_token(); if (!$rt['code']) { $this->_json(0, $rt['msg']); } $access_token = $rt['msg']; $rows = \Phpcmf\Service::M()->init($this->init)->where_in('id', $ids)->getAll(); if (!$rows) { $this->_json(0, dr_lang('所选数据不存在')); } foreach ($rows as $t) { if (!$t['article_id']) { $rt = \Phpcmf\Service::M('Weixin', 'Weixin')->sync_content($access_token, $t); if (!$rt['code']) { $this->_json(0, $rt['msg']); } } } $this->_json(1, '提交成功,等待平台审核'); } }