示例#1
0
文件: content.php 项目: h3len/Project
 /**
  * @Description    :    获取发布库内容列表
  * @Author         :    dong(dong@hoge.cn)
  * @Category       :    publishcontent
  * @Date           :    2014-2-14
  * @LastUpdateDate :    2014-2-14
  * @Copyright      :    hogesoft
  * @Param          :    site_id(站点id);column_id(栏目id,多个逗号隔开);client_type(终端id)
  * @Return         :    json
  */
 public function get_content()
 {
     if ($this->input['is_count']) {
         $this->get_content_count();
     }
     //content_id是内容关联表id
     $need_video = urldecode($this->input['need_video']);
     $need_subtitle = urldecode($this->input['need_subtitle']);
     $weight_cssid = intval($this->input['weight_cssid']);
     $need_catalog = intval($this->input['need_catalog']);
     if ($content_id = intval($this->input['content_id'])) {
         $content_data = $this->obj->get_all_content_by_relationid($content_id);
         if ($content_data) {
             $column_data = $this->column->get_site_column_first(' id,name,site_id,fid,childdomain,father_domain,column_dir,relate_dir,col_con_maketype ', $content_data['column_id']);
             $site_data = $column_data['site_data'];
             unset($column_data['site_data']);
             $content_data['column_info'] = $column_data;
             if ($content_data['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 ', $content_data['main_column_id']);
                 $site_data = $column_data['site_data'];
                 $content_data['content_url'] = $content_data['outlink'] ? $content_data['outlink'] : mk_content_url($site_data, $column_data, array('column_id' => $content_data['main_column_id']) + $content_data);
                 unset($column_data['site_data']);
                 $content_data['main_column_info'] = $column_data;
             } else {
                 $content_data['content_url'] = $content_data['outlink'] ? $content_data['outlink'] : mk_content_url($site_data, $column_data, $content_data);
             }
             if ($this->settings['App_catalog']) {
                 //取编目信息
                 $catalog_data = array();
                 include ROOT_PATH . 'lib/class/catalog.class.php';
                 $catalogobj = new catalog();
                 $catalog = $catalogobj->get_catalog($content_data['bundle_id'], $content_data['module_id'], $content_data['content_fromid']);
                 $content_data['catalog_new'] = $catalog;
             }
         }
         $this->addItem($content_data);
         $this->output();
     }
     $offset = $this->input['offset'] ? intval(urldecode($this->input['offset'])) : 0;
     if (!$this->input['from_mkpublish']) {
         //$offset = $offset > 1000 ? 0 : $offset;
     }
     $count = $this->input['count'] ? intval(urldecode($this->input['count'])) : 15;
     if ($this->input['id'] || $this->input['cid']) {
         $count = 0;
     }
     $result = $this->get_content_condition();
     $content_sql = $this->obj->get_content_sql($result['condition'], $offset, $count, $result['other_field'], $need_video, '', $need_subtitle, $this->is_useindex, $this->index_field, $need_catalog);
     if ($this->input['need_count']) {
         $totalcount = $this->return_content_count();
     }
     //memcache处理
     $memcache_result = $this->op_memcache($content_sql, $need_video, $need_subtitle, $offset, $count, 'get');
     if (!$memcache_result) {
         $content_data = $this->obj->get_content($result['condition'], $offset, $count, $result['other_field'], $need_video, '', $need_subtitle, $this->is_useindex, $this->index_field, $need_catalog);
         $this->op_memcache($content_sql, $need_video, $need_subtitle, $offset, $count, 'set', $content_data);
     } else {
         $content_data = $memcache_result;
     }
     if ($content_data['column_ids_arr']) {
         $column_datas = $this->column->get_column_site_by_ids(' id,name,fid,childdomain,father_domain,column_dir,relate_dir,col_con_maketype,cssid,is_outlink,linkurl ', implode(',', $content_data['column_ids_arr']));
     }
     if ($content_data['catalogs_arr'] && $this->settings['App_catalog']) {
         //取编目信息
         $catalog_data = array();
         include ROOT_PATH . 'lib/class/catalog.class.php';
         $catalogobj = new catalog();
         $catalog_result = $catalogobj->getAllcontent($content_data['catalogs_arr']);
         if ($catalog_result && is_array($catalog_result)) {
             foreach ($catalog_result as $k => $v) {
                 foreach ($content_data as $ko => $vo) {
                     if ($k == $vo['content_id']) {
                         $content_data[$ko]['catalog_new'] = $v;
                     }
                 }
             }
         }
     }
     unset($content_data['column_ids_arr']);
     unset($content_data['site_ids_arr']);
     unset($content_data['catalogs_arr']);
     foreach ($content_data as $k => $v) {
         //在这个里面配置内容url
         $content_data[$k]['column_info'] = empty($column_datas[$v['column_id']]) ? array() : $column_datas[$v['column_id']];
         $v['column_id'] = $v['use_maincolumn'] ? $v['main_column_id'] : $v['column_id'];
         $content_data[$k]['content_url'] = $v['outlink'] ? $v['outlink'] : (empty($column_datas[$v['column_id']]) ? '' : mk_content_url($column_datas[$v['column_id']], $column_datas[$v['column_id']], $v));
         if (!empty($content_data[$k]['column_info']['cssid'])) {
             $content_data[$k]['cssid'] = $content_data[$k]['column_info']['cssid'];
         }
         if ($weight_cssid !== 0) {
             if ($weight_cssid > 0) {
                 $content_data[$k]['cssid'] = $weight_cssid;
             } else {
                 if ($v['weight']) {
                     $content_data[$k]['cssid'] = $v['weight'];
                 }
             }
         }
         if (!$this->input['need_count']) {
             $this->addItem($content_data[$k]);
         }
         if ($v['bundle_id'] == 'special' && $this->input['id_to_fromid']) {
             $content_data[$k]['id'] = $v['content_fromid'];
         }
         $content_data[$k] = $content_data[$k] + (is_array($catalog_result[$v['cid']]) ? $catalog_result[$v['cid']] : array());
     }
     if ($this->input['need_count']) {
         $this->addItem_withkey('total', $totalcount['total']);
         $this->addItem_withkey('data', $content_data);
     } else {
         //$this->addItem_withkey('',$content_data );
     }
     $this->output();
 }