public function push_special($data, $content_id, $content_relation_id, $check) { $content_push = array('content_id' => $content_id, 'content_relation_id' => $content_relation_id, 'type' => 1, 'relation_data' => serialize($data['special'])); include_once ROOT_PATH . 'lib/class/special.class.php'; $special_obj = new special(); $content_data = $data; $sql = "SELECT * FROM " . DB_PREFIX . "content_push WHERE type=1 AND content_id={$content_id}"; $info = $this->db->query_first($sql); if ($info && !$content_relation_id) { $content_push['content_id'] = $info['content_id']; $content_push['content_relation_id'] = $info['content_relation_id']; } $sql = "SELECT * FROM " . DB_PREFIX . "content_columns WHERE content_id={$content_id}"; $content_columns = $this->db->query_first($sql); $content_columnsarr = $content_columns['column_datas'] ? unserialize($content_columns['column_datas']) : array(); foreach ($content_columnsarr as $k => $v) { $cc[$k] = $v['name']; } $content_data['publish_content_columns'] = $cc; if ($check && !empty($info)) { //先判断content_push有没有记录 $relation_data = unserialize($info['relation_data']); $data_special_keys = array_keys($data['special']); $relation_special_keys = array_keys($relation_data); $insert_relation_idarr = array_diff($data_special_keys, $relation_special_keys); $delete_relation_idarr = array_diff($relation_special_keys, $data_special_keys); if (!$insert_relation_idarr && !$delete_relation_idarr) { //只更新专题内容 $content_data['content_id'] = $content_push['content_relation_id']; $content_data['cid'] = $content_push['content_id']; $special_obj->update_special_content($content_data); return true; } else { if ($insert_relation_idarr) { //插入专题内容 $content_data['special_id'] = implode(',', $insert_relation_idarr); $content_data['content_id'] = $content_push['content_relation_id']; $content_data['cid'] = $content_push['content_id']; $special_obj->insert_special_content($content_data); } else { if ($delete_relation_idarr) { //通知专题删除内容 $special_obj->delete_special_content(implode(',', $delete_relation_idarr), $content_push['content_id'], $data); } } } //更新content_push if ($data['special']) { if (!$content_push['content_relation_id']) { unset($content_push['content_relation_id']); } self::update('content_push', ' id=' . $info['id'], $content_push); } else { self::delete_expand('content_push', $info['id']); } } else { if ($data['special']) { //插入content_push self::insert('content_push', $content_push); //插入专题内容 $content_data['special_id'] = implode(',', array_keys($data['special'])); $content_data['content_id'] = $content_push['content_relation_id']; $content_data['cid'] = $content_push['content_id']; $special_obj->insert_special_content($content_data); } } }