]*)>(.*)
[|]"=>'', "]*)>(.*)[|]"=>'',"[|]"=>'', '?m=collection&c=node&a=col_content&page='.($page+1).'&nodeid='.$nodeid.'&total='.$total); } else { $this->db->update(array('lastdate'=>SYS_TIME), array('nodeid'=>$nodeid)); showmessage(L('collection_success'), '?m=collection&c=node&a=manage'); } } } //文章列表 public function publist() { $nodeid = isset($_GET['nodeid']) ? intval($_GET['nodeid']) : showmessage(L('illegal_parameters'), HTTP_REFERER); $node = $this->db->get_one(array('nodeid'=>$nodeid), 'name'); $content_db = pc_base::load_model('collection_content_model'); $status = isset($_GET['status']) ? intval($_GET['status']) : ''; $page = isset($_GET['page']) ? intval($_GET['page']) : 1; $sql = array('nodeid'=>$nodeid, 'siteid'=>$this->get_siteid()); if ($status) { $sql['status'] = $status - 1; } $data = $content_db->listinfo($sql, 'id desc', $page); $pages = $content_db->pages; $show_header = true; include $this->admin_tpl('publist'); } //导入文章 public function import() { $nodeid = isset($_GET['nodeid']) ? intval($_GET['nodeid']) : showmessage(L('illegal_parameters'), HTTP_REFERER); $id = isset($_GET['id']) ? $_GET['id'] : ''; $type = isset($_GET['type']) ? trim($_GET['type']) : ''; if ($type == 'all') { } else { $ids = implode(',', $id); } $program_db = pc_base::load_model('collection_program_model'); $program_list = $program_db->select(array('nodeid'=>$nodeid, 'siteid'=>$this->get_siteid()), 'id, catid'); $cat = getcache('category_content_'.$this->siteid, 'commons'); include $this->admin_tpl('import_program'); } //删除文章 public function content_del() { $id = isset($_GET['id']) ? $_GET['id'] : ''; $history = isset($_GET['history']) ? $_GET['history'] : ''; if (is_array($id)) { $collection_content_db = pc_base::load_model('collection_content_model'); $history_db = pc_base::load_model('collection_history_model'); $del_array = $id; $ids = implode('\',\'', $id); if ($history) { $data = $collection_content_db->select("id in ('$ids')", 'url'); foreach ($data as $v) { $list[] = md5($v['url']); } $md5 = implode('\',\'', $list); $history_db->delete("md5 in ('$md5')"); } $collection_content_db->delete("id in ('$ids')"); //同时删除关联附件 if(!empty($del_array)) { $attachment = pc_base::load_model('attachment_model'); foreach ($del_array as $id) { $attachment->api_delete('cj-'.$id); } } showmessage(L('operation_success'), HTTP_REFERER); } } //添加导入方案 public function import_program_add() { $nodeid = isset($_GET['nodeid']) ? intval($_GET['nodeid']) : showmessage(L('illegal_parameters'), HTTP_REFERER); $ids = isset($_GET['ids']) ? $_GET['ids'] : ''; $catid = isset($_GET['catid']) && intval($_GET['catid']) ? intval($_GET['catid']) : showmessage(L('please_select_cat'), HTTP_REFERER); $type = isset($_GET['type']) ? trim($_GET['type']) : ''; include dirname(__FILE__).DIRECTORY_SEPARATOR.'spider_funs'.DIRECTORY_SEPARATOR.'config.php'; //读取栏目缓存 $catlist = getcache('category_content_'.$this->siteid, 'commons'); $cat = $catlist[$catid]; $cat['setting'] = string2array($cat['setting']); if ($cat['siteid'] != $this->get_siteid() || $cat['type'] != 0) showmessage(L('illegal_section_parameter'), HTTP_REFERER); if (isset($_POST['dosubmit'])) { $config = array(); $model_field = isset($_POST['model_field']) ? $_POST['model_field'] : showmessage(L('illegal_parameters'), HTTP_REFERER); $node_field = isset($_POST['node_field']) ? $_POST['node_field'] : showmessage(L('illegal_parameters'), HTTP_REFERER); $funcs = isset($_POST['funcs']) ? $_POST['funcs'] : array(); $config['add_introduce'] = isset($_POST['add_introduce']) && intval($_POST['add_introduce']) ? intval($_POST['add_introduce']) : 0; $config['auto_thumb'] = isset($_POST['auto_thumb']) && intval($_POST['auto_thumb']) ? intval($_POST['auto_thumb']) : 0; $config['introcude_length'] = isset($_POST['introcude_length']) && intval($_POST['introcude_length']) ? intval($_POST['introcude_length']) : 0; $config['auto_thumb_no'] = isset($_POST['auto_thumb_no']) && intval($_POST['auto_thumb_no']) ? intval($_POST['auto_thumb_no']) : 0; $config['content_status'] = isset($_POST['content_status']) && intval($_POST['content_status']) ? intval($_POST['content_status']) : 1; foreach ($node_field as $k => $v) { if (empty($v)) continue; $config['map'][$model_field[$k]] = $v; } foreach ($funcs as $k=>$v) { if (empty($v)) continue; $config['funcs'][$model_field[$k]] = $v; } $data = array('config'=>array2string($config), 'siteid'=>$this->get_siteid(), 'nodeid'=>$nodeid, 'modelid'=>$cat['modelid'], 'catid'=>$catid); $program_db = pc_base::load_model('collection_program_model'); if ($id = $program_db->insert($data, true)) { showmessage(L('program_add_operation_success'), '?m=collection&c=node&a=import_content&programid='.$id.'&nodeid='.$nodeid.'&ids='.$ids.'&type='.$type); } else { showmessage(L('illegal_parameters')); } } //读取数据模型缓存 $model = getcache('model_field_'.$cat['modelid'], 'model'); if (empty($model)) showmessage(L('model_does_not_exist_please_update_the_cache_model')); $node_data = $this->db->get_one(array('nodeid'=>$nodeid), "customize_config"); $node_data['customize_config'] = string2array($node_data['customize_config']); $node_field = array(''=>L('please_choose'),'title'=>L('title'), 'author'=>L('author'), 'comeform'=>L('comeform'), 'time'=>L('time'), 'content'=>L('content')); if (is_array($node_data['customize_config'])) foreach ($node_data['customize_config'] as $k=>$v) { if (empty($v['en_name']) || empty($v['name'])) continue; $node_field[$v['en_name']] = $v['name']; } $show_header = true; include $this->admin_tpl('import_program_add'); } public function import_program_del() { $id = isset($_GET['id']) ? intval($_GET['id']) : showmessage(L('illegal_parameters'), HTTP_REFERER); $program_db = pc_base::load_model('collection_program_model'); if ($program_db->delete(array('id'=>$id))) { showmessage(L('operation_success'), HTTP_REFERER); } else { showmessage(L('illegal_parameters')); } } //导入文章到模型 public function import_content() { $nodeid = isset($_GET['nodeid']) ? intval($_GET['nodeid']) : showmessage(L('illegal_parameters'), HTTP_REFERER); $programid = isset($_GET['programid']) ? intval($_GET['programid']) : showmessage(L('illegal_parameters'), HTTP_REFERER); $ids = isset($_GET['ids']) ? $_GET['ids'] : ''; $type = isset($_GET['type']) ? trim($_GET['type']) : ''; if (!$node = $this->db->get_one(array('nodeid'=>$nodeid), 'coll_order,content_page')) { showmessage(L('node_not_found'), '?m=collection&c=node&a=manage'); } $program_db = pc_base::load_model('collection_program_model'); $collection_content_db = pc_base::load_model('collection_content_model'); $content_db = pc_base::load_model('content_model'); //更新附件状态 $attach_status = false; if(pc_base::load_config('system','attachment_stat')) { $attachment_db = pc_base::load_model('attachment_model'); $att_index_db = pc_base::load_model('attachment_index_model'); $attach_status = true; } $order = $node['coll_order'] == 1 ? 'id desc' : ''; $str = L('operation_success'); $url = '?m=collection&c=node&a=publist&nodeid='.$nodeid.'&status=2&pc_hash='.$_SESSION['pc_hash']; if ($type == 'all') { $total = isset($_GET['total']) && intval($_GET['total']) ? intval($_GET['total']) : ''; if (empty($total)) $total = $collection_content_db->count(array('siteid'=>$this->get_siteid(), 'nodeid'=>$nodeid, 'status'=>1)); $total_page = ceil($total/20); $page = isset($_GET['page']) && intval($_GET['page']) ? intval($_GET['page']) : 1; $total_page = ceil($total/20); $data = $collection_content_db->select(array('siteid'=>$this->get_siteid(), 'nodeid'=>$nodeid, 'status'=>1), 'id, data', '20', $order); } else { $ids = explode(',', $ids); $ids = implode('\',\'', $ids); $data = $collection_content_db->select("siteid='".$this->get_siteid()."' AND id in ('$ids') AND nodeid = '$nodeid' AND status = '1'", 'id, data', '', $order); $total = count($data); $str = L('operation_success').$total.L('article_was_imported'); } $program = $program_db->get_one(array('id'=>$programid)); $program['config'] = string2array($program['config']); $_POST['add_introduce'] = $program['config']['add_introduce']; $_POST['introcude_length'] = $program['config']['introcude_length']; $_POST['auto_thumb'] = $program['config']['auto_thumb']; $_POST['auto_thumb_no'] = $program['config']['auto_thumb_no']; $_POST['spider_img'] = 0; $i = 0; $content_db->set_model($program['modelid']); $coll_contentid = array(); //加载所有的处理函数 $funcs_file_list = glob(dirname(__FILE__).DIRECTORY_SEPARATOR.'spider_funs'.DIRECTORY_SEPARATOR.'*.php'); foreach ($funcs_file_list as $v) { include $v; } foreach ($data as $k=>$v) { $sql = array('catid'=>$program['catid'], 'status'=>$program['config']['content_status']); $v['data'] = string2array($v['data']); foreach ($program['config']['map'] as $a=>$b) { if (isset($program['config']['funcs'][$a]) && function_exists($program['config']['funcs'][$a])) { $GLOBALS['field'] = $a; $sql[$a] = $program['config']['funcs'][$a]($v['data'][$b]); } else { $sql[$a] = $v['data'][$b]; } } if ($node['content_page'] == 1) $sql['paginationtype'] = 2; $contentid = $content_db->add_content($sql, 1); if ($contentid) { $coll_contentid[] = $v['id']; $i++; //更新附件状态,将采集关联重置到内容关联 if($attach_status) { $datas = $att_index_db->select(array('keyid'=>'cj-'.$v['id']),'*',100,'','','aid'); if(!empty($datas)) { $datas = array_keys($datas); $datas = implode(',',$datas); $att_index_db->update(array('keyid'=>'c-'.$program['catid'].'-'.$contentid),array('keyid'=>'cj-'.$v['id'])); $attachment_db->update(array('module'=>'content')," aid IN ($datas)"); } } } else { $collection_content_db->delete(array('id'=>$v['id'])); } } $sql_id = implode('\',\'', $coll_contentid); $collection_content_db->update(array('status'=>2), " id IN ('$sql_id')"); if ($type == 'all' && $total_page > $page) { $str = L('are_imported_the_import_process').(($page-1)*20+$i).'/'.$total.''; $url = ''; } showmessage($str, $url); } } ?>