/** * 取栏目的路径 */ public function get_column_path() { $column_id = $this->input['column_id']; if (!$column_id) { $this->ReportError('ID为空'); } if (!class_exists('column')) { include ROOT_DIR . 'lib/class/column.class.php'; } $column = new column(); $ret['selected_ids'] = $column_id ? $column_id : ''; $ret['selected_items'] = $column->get_selected_column_path($ret['selected_ids']); if (is_array($ret['selected_items'])) { foreach ($ret['selected_items'] as $index => $item) { $hg_print_selected[$index] = array(); $current =& $hg_print_selected[$index]; $current['showName'] = ''; foreach ($item as $sub_item) { if ($sub_item['is_auth']) { $current['is_auth'] = 1; } $current['id'] = $sub_item['id']; $current['name'] = $sub_item['name']; if ($sub_item['fid'] == 0) { $current['showName'] .= $sub_item['name'] . ' > '; } else { $current['showName'] .= $sub_item['name'] . ' > '; } } $current['showName'] = substr($current['showName'], 0, -3); $selected_names[] = $current['name']; } } $ret['selected_items'] = $hg_print_selected; $ret['selected_names'] = isset($selected_names) ? implode(',', $selected_names) : ''; echo json_encode($ret); exit; }
public function show() { $column_id = $this->input['column_id']; $column = new column(); $publish = array(); $publish['sites'] = $column->getallsites(); list($default_site, $default_name) = each($publish['sites']); reset($publish['sites']); $publish['items'] = $column->getAuthoredColumns($default_site); $publish['selected_ids'] = $column_id ? $column_id : ''; $publish['selected_items'] = $column->get_selected_column_path($publish['selected_ids']); $publish['default_site'] = each($publish['sites']); $publish['pub_time'] = $this->input['pub_time']; $hg_print_selected = array(); foreach ($publish['selected_items'] as $index => $item) { $hg_print_selected[$index] = array(); $current =& $hg_print_selected[$index]; $current['showName'] = ''; foreach ($item as $sub_item) { if ($sub_item['is_auth']) { $current['is_auth'] = 1; } $current['id'] = $sub_item['id']; $current['name'] = $sub_item['name']; $current['showName'] .= $sub_item['name'] . ' > '; } if (!$current['is_auth']) { $current['is_auth'] = 0; } $current['showName'] = $publish['default_site']['value'] . ' > ' . substr($current['showName'], 0, -3); $selected_names[] = $current['name']; } $publish['selected_items'] = $hg_print_selected; $publish['selected_names'] = isset($selected_names) ? implode(',', $selected_names) : ''; echo json_encode($publish); }
echo $node_iframe_attr['attr']; ?> ></iframe> </div> </td> </tr> </table> </div> <?php define('FORMDATA', 0); if ((!isset($formdata) || !is_array($formdata)) && (defined('FORMDATA') && FORMDATA)) { } else { $item = $formdata; if (!class_exists('column')) { include_once ROOT_DIR . 'lib/class/column.class.php'; } $column = new column(); $publish = array(); $publish['sites'] = $column->getallsites(); list($default_site, $default_name) = each($publish['sites']); reset($publish['sites']); $publish['items'] = $column->getAuthoredColumns($default_site); $publish['selected_ids'] = $item['column_id'] ? $item['column_id'] : ''; $publish['selected_items'] = $column->get_selected_column_path($publish['selected_ids']); $publish['default_site'] = each($publish['sites']); $publish['pub_time'] = $item['pub_time']; $hg_print_selected = array(); foreach ($publish['selected_items'] as $index => $item) { $hg_print_selected[$index] = array(); $current =& $hg_print_selected[$index]; $current['showName'] = '';
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(); }
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(); }
public function get_all_content_by_relationid($id, $need_process = false) { include_once CUR_CONF_PATH . 'lib/column.class.php'; $column = new column(); $sql = "SELECT c.*,r.*,c.id as cid,c.column_id as main_column_id,r.site_id,r.column_id,r.column_name,r.id as id,r.order_id,r.weight,r.file_name,r.file_domain,r.file_dir,r.file_custom_filename,r.publish_time,r.status FROM " . DB_PREFIX . "content_relation r LEFT JOIN " . DB_PREFIX . "content c ON r.content_id=c.id WHERE r.id =" . $id; $info = $this->db->query_first($sql); if ($info['indexpic']) { $info['indexpic'] = unserialize($info['indexpic']); } if ($info['video']) { $info['video'] = unserialize($info['video']); } if ($info['childs_data']) { $info['childs_data'] = unserialize($info['childs_data']); } if ($info['catalog']) { $info['catalog'] = unserialize($info['catalog']); } if ($need_process) { if ($info) { $column_data = $column->get_site_column_first(' id,name,site_id,fid,childdomain,father_domain,column_dir,relate_dir,col_con_maketype ', $info['column_id']); $site_data = $column_data['site_data']; unset($column_data['site_data']); $info['column_info'] = $column_data; if ($info['use_maincolumn']) { $column_data = $column->get_site_column_first(' id,name,site_id,fid,childdomain,father_domain,column_dir,relate_dir,col_con_maketype ', $info['main_column_id']); $site_data = $column_data['site_data']; $info['content_url'] = $info['outlink'] ? $info['outlink'] : mk_content_url($site_data, $column_data, array('column_id' => $info['main_column_id']) + $info); unset($column_data['site_data']); $info['main_column_info'] = $column_data; } else { $info['content_url'] = $info['outlink'] ? $info['outlink'] : mk_content_url($site_data, $column_data, $info); } } } unset($info['keywords_unicode'], $info['title_unicode'], $info['title_pinyin']); return $info; }
/** * tests some Config Functions */ public function testConfigFunctions() { // Create new schema $column = new column(); // Check return types $this->assertTrue(is_array($column->attributeLabels())); $this->assertTrue(is_array($column->rules())); $this->assertTrue(is_array($column->relations())); $this->assertTrue(is_array($column->getDataTypes())); }
public function update_column() { $id = intval($this->input['id']); if (!$id) { $this->errorOutput('NO_ID'); } if (isset($this->input['name'])) { $data['name'] = $this->input['name']; } if (isset($this->input['shortname'])) { $data['shortname'] = $this->input['shortname']; } if (isset($this->input['linkurl'])) { $data['linkurl'] = $this->input['linkurl']; } if (isset($this->input['keywords'])) { $data['keywords'] = $this->input['keywords']; } if (isset($this->input['content'])) { $data['content'] = $this->input['content']; } include CUR_CONF_PATH . 'lib/column.class.php'; $column_obj = new column(); $column_obj->update_column($id, $data); $detail = $column_obj->get_column_first(' id,name,keywords,content,linkurl ', $id); $this->addItem($detail); $this->output(); }