public function audit() { if (!$this->settings['is_need_audit']) { $this->errorOutput('NO_SUPPORT'); } $status = intval($this->input['audit']); $rid = intval($this->input['rid']); if (!$rid) { $this->errorOutput('NO_RID'); } include_once CUR_CONF_PATH . 'lib/column.class.php'; $column_obj = new column(); if ($status == 1) { //审核 $data = $this->obj->get_all_content_by_relationid($rid, true); $crd_id = $rid; $check_result = $data['cid']; $sql = "select * from " . DB_PREFIX . "content_relation where content_id=" . $data['cid'] . " and status=1 and id!=" . $rid; $info = $this->db->query($sql); while ($row = $this->db->fetch_array($info)) { $other_relate[] = $row; $column_ids[] = $row['column_id']; } $column_ids[] = $data['column_id']; //整理内容栏目的信息,插入到xunsearch中;先查出现有的content_columns $column_detail_datas = $column_obj->get_column_by_id(' id,site_id,name,support_client,column_url,folderformat,fileformat ', implode(',', $column_ids), 'id'); $firstcolumn = $column_detail_datas[$data['column_id']]; if ($other_relate) { $content_columns = $this->obj->get_content_columns(' * ', array('content_id' => $data['cid'])); $column_datas = @unserialize($content_columns['column_datas']); if (!$column_datas[$data['column_id']]) { $column_datas[$firstcolumn['id']] = array('id' => $firstcolumn['id'], 'column_url' => $firstcolumn['column_url'], 'name' => $firstcolumn['name'], 'relation_id' => $data['id']); $new_content_columns = array('column_ids' => $content_columns['column_ids'] . ',' . $data['column_id'], 'column_datas' => serialize($column_datas)); $this->obj->update_content_columns($data['cid'], $new_content_columns); } } else { $column_datas = array($data['column_id'] => array('id' => $data['column_id'], 'column_url' => $firstcolumn['column_url'], 'name' => $firstcolumn['name'], 'relation_id' => $data['id'])); $content_columns = array('content_id' => $data['cid'], 'column_ids' => $data['column_id'], 'column_datas' => serialize($column_datas)); $content_column_exist = $this->obj->get_content_columns(' * ', array('content_id' => $data['cid'])); if (!$content_column_exist) { $this->obj->insert('content_columns', $content_columns); } } if (!empty($data['video'])) { //更新百度视频收录 $this->obj->update_video_record($data + array('rid' => $rid)); } //插入到xunsearch中 if ($other_relate) { $this->opration_xunsearch($data, $new_content_columns, 'update', $column_detail_datas); } else { //插入到xunsearch中 $this->opration_xunsearch($data, $content_columns, 'add', $column_detail_datas); } //插入到content_publish_time表中 if (!$data['use_maincolumn']) { $this->obj->insert('content_publish_time', array('content_id' => $crd_id, 'publish_time' => empty($data['publish_time']) ? TIMENOW : $data['publish_time'])); } //判断有无推送,有则插入到content_push表中,到各自系统里取出对应推送的栏目 if (!$other_relate) { include_once ROOT_PATH . 'lib/class/publishplan.class.php'; $pub_plan = new publishplan(); $search_data_con = array('from_id' => $data['content_fromid'], 'bundle_id' => $data['bundle_id'], 'module_id' => $data['module_id'], 'struct_id' => $data['struct_id']); $content_fromdata = $pub_plan->get_content_by_fromid($search_data_con); if (is_array($content_fromdata[0]) && $content_fromdata[0]) { $data['special'] = $content_fromdata[0]['special']; $data['block'] = $content_fromdata[0]['block']; } $this->obj->content_push($data, $check_result, $crd_id, true); } $this->obj->update('content_relation', ' id=' . $rid, array('status' => 1)); } else { //打回 $this->obj->update('content_relation', ' id=' . $rid, array('status' => 2)); $data = $this->obj->get_all_content_by_relationid($rid, true); $column_id = $data['column_id']; $rids[] = $rid; $rids_str = @implode(',', $rids); $cid = $data['cid']; //删除百度视频收录 $this->obj->update_video_record(array('rid' => $rids_str), 'del'); //content_columns处理 $content_column_detail = $this->obj->get_content_columns(' * ', array('content_id' => $cid)); $content_column_data = @unserialize($content_column_detail['column_datas']); $content_column_ids_arr = explode(',', $content_column_detail['column_ids']); $column_idarr[] = $data['column_id']; foreach ($column_idarr as $col_id) { $flkey = array_search($col_id, $content_column_ids_arr); if ($flkey !== false) { unset($content_column_ids_arr[array_search($col_id, $content_column_ids_arr)]); unset($content_column_data[$column_id]); } } $new_content_columns = array('column_ids' => empty($content_column_ids_arr) ? '' : implode(',', $content_column_ids_arr), 'column_datas' => empty($content_column_data) ? '' : serialize($content_column_data)); if (!$new_content_columns['column_datas']) { $this->obj->delete_content_columns($cid); } else { $this->obj->update_content_columns($cid, $new_content_columns); } $del_columnarr = explode(',', $column_id); foreach ($rids as $v) { //插入到content_publish_time表中 $this->obj->insert('content_publish_time', array('content_id' => $v, 'publish_time' => TIMENOW)); } //查询映射表中还有没有关于此内容的关联,如果没有,则删除这个内容 $lastconrel = $this->obj->get_content_relation($cid, ' AND status=1'); if (!empty($lastconrel)) { //判断删除的栏目是不是主内容的主栏目id if (!in_array($content_detail['column_id'], $content_column_ids_arr)) { $this->obj->update_content_by_id($cid, array('column_id' => intval($new_content_columns['column_ids']))); if ($content_detail['use_maincolumn']) { $sql = "select id,column_id,file_custom_filename,file_name from " . DB_PREFIX . "content_relation where content_id=" . $data['cid']; $relate_info = $this->db->query($sql); while ($relate_row = $this->db->fetch_array($relate_info)) { if ($relate_row['id'] == intval($new_content_columns['column_ids'])) { $main_column = $relate_row; } else { $update_relate_column[] = $main_column; } } if ($update_relate_column) { foreach ($update_relate_column as $k => $v) { $this->obj->update('content_relation', ' id=' . $v['id'], array('file_name' => $main_column['file_name'])); } } } } } else { //删除推送的内容 $this->obj->content_push(array('special' => array(), 'block' => array(), 'content_fromid' => $data['content_fromid'], 'bundle_id' => $data['bundle_id'], 'module_id' => $data['module_id']), $cid, '', true, true); } //更改xunsearch上的数据 if (empty($new_content_columns['column_datas'])) { $this->opration_xunsearch($data, array('id' => $cid) + $data, 'del'); } else { $this->update_xunsearch($data, array('id' => $cid) + $data, $new_content_columns); } } $r = array('status' => $status == 1 ? 1 : 2, 'id' => array($rid)); $this->addItem($r); $this->output(); }