示例#1
0
 public function video_record()
 {
     $site = $this->input['site'];
     if (!$site || !is_array($site)) {
         $this->errorOutput('NO_SITE_IDS');
     }
     $video_record = $content_id = $content_data = array();
     foreach ($site as $k => $v) {
         $sql = "SELECT * FROM " . DB_PREFIX . "content_video_record WHERE site_id=" . $v['site_id'] . " ORDER BY id DESC LIMIT " . $v['video_record_count'];
         $info = $this->db->query($sql);
         while ($row = $this->db->fetch_array($info)) {
             $video_record[$row['site_id']][] = $row;
             $content_data_detail = $row['content_data'] ? unserialize($row['content_data']) : array();
             $content_data_detail['site_id'] = $row['site_id'];
             $content_data_detail['column_id'] = $row['column_id'];
             $content_data_detail['struct_id'] = $row['struct_id'];
             $content_data_detail['id'] = $row['relation_id'];
             $content_data_detail['op'] = $row['opration'];
             $content_data[$row['relation_id']] = $content_data_detail;
             $column_ids[$row['column_id']] = $row['column_id'];
             $site_ids[$row['site_id']] = $row['site_id'];
         }
     }
     if ($content_data) {
         include_once CUR_CONF_PATH . 'lib/column.class.php';
         $column_obj = new column();
         if ($column_ids) {
             $column_datas = $column_obj->get_column_by_id(' id,name,childdomain,column_dir,site_id,relate_dir,father_domain ', implode(',', $column_ids), 'id');
         }
         if ($site_ids) {
             $site_datas = $column_obj->get_site(' id,site_name,weburl,sub_weburl ', ' AND id in(' . implode(',', $site_ids) . ')', 'id');
         }
         foreach ($content_data as $k => $v) {
             $content_data[$k]['content_url'] = mk_content_url($site_datas[$v['site_id']], $column_datas[$v['column_id']], $v);
         }
     }
     $result['video_record'] = $video_record;
     $result['content_data'] = $content_data;
     $this->addItem($result);
     $this->output();
 }
示例#2
0
文件: content.php 项目: h3len/Project
 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();
 }