Esempio n. 1
0
 public function get_content_by_rid()
 {
     $id = intval($this->input['id']);
     if ($id) {
         $need_pages = intval($this->input['need_pages']);
         $need_process = intval($this->input['need_process']);
         $need_separate = intval($this->input['need_separate']);
         $need_child_detail = intval($this->input['need_child_detail']);
         $not_need_content = intval($this->input['not_need_content']);
         $need_special = intval($this->input['need_special']);
         $sql = "SELECT c.*,c.column_id as main_column_id,r.*,r.id as rid,c.id as id 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 (empty($info)) {
             $this->errorOutput('此内容已删除');
         }
         if ($info['indexpic']) {
             $info['indexpic'] = unserialize($info['indexpic']);
         }
         if ($info['video']) {
             $info['video'] = unserialize($info['video']);
             $info['video']['filename'] = str_replace('.mp4', '.m3u8', $info['video']['filename']);
         }
         if ($info['childs_data']) {
             $info['childs_data'] = unserialize($info['childs_data']);
         }
         if ($info['catalog']) {
             $info['catalog'] = unserialize($info['catalog']);
         }
         $info['title'] = $info['title'] ? htmlspecialchars_decode($info['title']) : '';
         $info['brief'] = $info['brief'] ? strip_tags(htmlspecialchars_decode($info['brief'])) : '';
         $info['create_time_format'] = date($this->settings['default_time_format'], $info['create_time']);
         $info['publish_time_stamp'] = $info['publish_time'];
         $info['create_time_stamp'] = $info['create_time'];
         $info['publish_time_format'] = date($this->settings['default_time_format'], $info['publish_time']);
         if ($info['column_id']) {
             $column_data = $this->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'];
         }
         $result = array();
         if (!$not_need_content) {
             $apiname = get_tablename($info['bundle_id'], $info['module_id'], $info['struct_id']);
             $filedir = $this->settings['get_content_api_path'] . $apiname . '.class' . $this->settings['get_content_api_suffix'];
             $classname = $apiname;
             if (file_exists($filedir)) {
                 $data = array('id' => $info['expand_id'], 'url' => urldecode($this->input['url']), 'dir' => urldecode($this->input['dir']), 'need_pages' => urldecode($this->input['need_pages']), 'need_child_detail' => urldecode($this->input['need_child_detail']), 'need_process' => urldecode($this->input['need_process']), 'need_separate' => urldecode($this->input['need_separate']), 'child_offset' => intval($this->input['child_offset']), 'child_count' => intval($this->input['child_count']), 'indexpic' => empty($info['indexpic']) ? array() : $info['indexpic']);
                 //echo $filedir;echo $classname;exit;
                 include $filedir;
                 $module_get = new $classname();
                 $result = $module_get->get_processed_content($data);
                 $result = is_array($result) ? $result : array();
             }
         }
         $info1 = $info;
         $info1['id'] = $info['id'];
         if ($info['use_maincolumn']) {
             $column_data = $this->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']) + $info1);
         } else {
             $info['content_url'] = $info['outlink'] ? $info['outlink'] : mk_content_url($site_data, $column_data, $info1);
         }
         $info['column_info'] = $column_data;
         if ($this->input['video2index'] && $result['content_material_list']) {
             foreach ($result['content_material_list'] as $k => $v) {
                 if ($v['app'] == 'livmedia') {
                     $videourl = parse_url($v['video_url']);
                     $info['video'] = array('host' => $videourl['scheme'] . '://' . $videourl['host'], 'dir' => '', 'filepath' => $videourl['path'], 'filename' => '');
                     $info['is_have_video'] = '1';
                     break;
                 }
             }
         }
         if ($this->input['shorturl'] && $this->settings['App_shorturl']) {
             $curl = new curl($this->settings['App_shorturl']['host'], $this->settings['App_shorturl']['dir']);
             $curl->setReturnFormat('str');
             $curl->setSubmitType('post');
             $curl->initPostData();
             $curl->addRequestData('str', $info['content_url']);
             $ret = $curl->request('shorturl.php');
             if ($ret) {
                 $info['content_url'] = $ret;
             }
         }
         if ($this->settings['App_catalog']) {
             //取编目信息
             $catalog_data = array();
             include ROOT_PATH . 'lib/class/catalog.class.php';
             $catalogobj = new catalog();
             $catalog = $catalogobj->get_catalog($info['bundle_id'], $info['module_id'], $info['content_fromid']);
             $result['catalog_new'] = $catalog;
         }
         $result['source'] = isset($result['source']) ? $result['source'] : '';
         $info['source'] = isset($info['source']) ? $info['source'] : $result['source'];
         if ($result) {
             $result = $info + $result;
         } else {
             $result = $info;
         }
         //统计
         if ($this->input['need_access']) {
             include_once ROOT_PATH . 'lib/class/access.class.php';
             $access_obj = new access();
             $fromType = $this->input['fromType'] ? trim($this->input['fromType']) : "";
             $ret = $access_obj->add_access($info['content_id'], $info['column_id'], $info['bundle_id'], $info['module_id'], $info['title'], $info['content_fromid'], $fromType);
         }
         //加广告
         if ($this->input['ad_group']) {
             $r = array();
             $r['id'] = $result['rid'];
             $r['colid'] = $result['column_id'];
             $r['title'] = $result['title'];
             $r['brief'] = $result['brief'];
             $r['keywords'] = $result['keywords'];
             $r['appid'] = $result['appid'];
             $r['appname'] = $result['appname'];
             $r['create_user'] = $result['create_user'];
             $r['publish_user'] = $result['publish_user'];
             $r['group'] = $this->input['ad_group'];
             $result['ad'] = $this->getAds($this->input['ad_group'], $r, $r['colid']);
         }
         //取这条内容发布到的专题
         if ($need_special && $info['content_id']) {
             $sql = "SELECT relation_data FROM " . DB_PREFIX . "content_push WHERE type=1 AND content_id=" . $info['content_id'];
             $content_push = $this->db->query_first($sql);
             if ($content_push) {
                 $special_data = @unserialize($content_push['relation_data']);
                 if ($special_data) {
                     $special_ids = array();
                     foreach ($special_data as $k => $v) {
                         if ($v['special_id'] = intval($v['special_id'])) {
                             $special_ids[] = $v['special_id'];
                         }
                     }
                     if ($special_ids) {
                         include ROOT_PATH . 'lib/class/special.class.php';
                         $special_obj = new special();
                         $special_datas = $special_obj->get_special_by_ids(implode(',', $special_ids));
                         if (is_array($special_datas)) {
                             $result['special_datas'] = $special_datas;
                         }
                     }
                 }
             }
         }
         $this->addItem($result);
         $this->output();
     } else {
         $this->errorOutput('NO_ID');
     }
 }