Exemplo n.º 1
0
 public function content()
 {
     $data = $this->input['data'];
     $content_client_relation = $data['content_client_relation'];
     $content_relation = $data['content_relation'];
     $content = $data['content'];
     if (!$content_client_relation || !$content_relation || !$content) {
         $this->errorOutput('NO_DATA');
     }
     $bundle_id = $content['bundle_id'];
     $module_id = $content['module_id'];
     $struct_id = $content['struct_id'];
     //content process
     $syn_content = $this->syn_obj->get_content_in_site($content['id'], $content['site_id']);
     $update_contentarr = $content;
     unset($update_contentarr['id']);
     if ($syn_content) {
         //struct_table update process
         $this->struct($bundle_id, $module_id, $struct_id, $data, 'update', $syn_content['expand_id']);
         unset($update_contentarr['syn_cid'], $update_contentarr['expand_id'], $update_contentarr['plan_set_id'], $update_contentarr['bundle_id'], $update_contentarr['module_id'], $update_contentarr['struct_id'], $update_contentarr['content_fromid']);
         $this->obj->update('content', ' id=' . $syn_content['id'], $update_contentarr);
         $content_id = $syn_content['id'];
     } else {
         //struct_table insert process
         $update_contentarr['expand_id'] = $this->struct($bundle_id, $module_id, $struct_id, $data);
         $update_contentarr['syn_cid'] = $content['id'];
         $content_id = $this->obj->insert('content', $update_contentarr);
     }
     //content_relation process
     $syn_content_relation = $this->syn_obj->get_content_relation_by_columnid($content_id, $content_relation['column_id']);
     $update_content_relationarr = $content_relation;
     unset($update_content_relationarr['id']);
     if ($syn_content_relation) {
         unset($update_content_relationarr['syn_rid'], $update_content_relationarr['content_id'], $update_content_relationarr['order_id'], $update_contentarr['bundle_id'], $update_contentarr['module_id'], $update_contentarr['struct_id']);
         $this->obj->update('content_relation', ' id=' . $syn_content_relation['id'], $update_content_relationarr);
         $content_relation_id = $syn_content_relation['id'];
     } else {
         $update_content_relationarr['syn_rid'] = $content_relation['id'];
         $update_content_relationarr['content_id'] = $content_id;
         $content_relation_id = $this->obj->insert('content_relation', $update_content_relationarr);
         $this->obj->update('content_relation', ' id=' . $content_relation_id, array('order_id' => $content_relation_id));
         //add content_client_relation
         //get client
         include CUR_CONF_PATH . 'lib/client.class.php';
         $client_obj = new client();
         $client_typearr = $client_obj->get_all_client();
         foreach ($client_typearr as $kct => $vct) {
             $content_client_data['client_type'] = $vct['id'];
             $content_client_data['relation_id'] = $content_relation_id;
             $this->obj->insert('content_client_relation', $content_client_data);
         }
     }
 }
Exemplo n.º 2
0
 /**
  * @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 show()
 {
     $site_id = $column_id = '';
     $content_data = array();
     $id = urldecode($this->input['_id']);
     $app = urldecode($this->input['con_app']) == 'all' ? '' : urldecode($this->input['con_app']);
     //查询出站点下模块的内容
     //$offset       = $this->input['offset'] ? intval(urldecode($this->input['offset'])) : 0;
     $page = $this->input['page'] ? intval(urldecode($this->input['page'])) : 1;
     $count = $this->input['offset'] ? intval(urldecode($this->input['offset'])) : 20;
     $offset = $count * ($page - 1);
     $content_data = $this->obj->get_content_allinfo($this->get_condition(), $offset, $count, $this->other_field);
     if ($content_data['col_id_str']) {
         $col_parent = $this->column->get_col_parents($content_data['col_id_str']);
         $column_datas = $this->column->get_column_by_id(' id,name,site_id,column_dir,relate_dir,fid,childdomain,father_domain,custom_content_dir,col_con_maketype ', $content_data['col_id_str'], 'id');
     }
     if ($content_data['site_id_arr']) {
         $site_datas = $this->column->get_site(' id,site_name,weburl,sub_weburl,custom_content_dir ', ' AND id in(' . implode(',', $content_data['site_id_arr']) . ')', 'id');
     }
     unset($content_data['col_id_str']);
     unset($content_data['site_id_arr']);
     foreach ($content_data as $k => $v) {
         $content_data[$k]['state'] = $v['status'];
         if ($v['outlink']) {
             $content_data[$k]['content_url'] = stripos($v['outlink'], 'http') === 0 ? $v['outlink'] : 'http://' . $v['outlink'];
         } else {
             $v['column_id'] = $v['use_maincolumn'] ? $v['main_column_id'] : $v['column_id'];
             $content_data[$k]['content_url'] = mk_content_url($site_datas[$v['site_id']], $column_datas[$v['column_id']], $v);
         }
     }
     //取出应用模块
     $appdata = $this->obj->get_app();
     $appchilddata = $this->obj->get_app_child($app);
     //取出所有客户端
     include_once CUR_CONF_PATH . 'lib/client.class.php';
     $client_obj = new client();
     $client = $client_obj->get_all_client('*', '', 'id');
     $sql = "SELECT COUNT(*) AS total" . $this->other_field . " FROM " . DB_PREFIX . "content_client_relation cr LEFT JOIN " . DB_PREFIX . "content_relation r ON cr.relation_id=r.id WHERE 1 " . $this->get_condition();
     $pagearr = $this->db->query_first($sql);
     $pagearr['offset'] = $count;
     $pagearr['count'] = $count;
     $pagearr['total_page'] = ceil($pagearr['total'] / $count);
     $pagearr['current_page'] = floor($offset / $count) + 1;
     $alldata['content_data'] = $content_data;
     $alldata['col_parent'] = $col_parent;
     $alldata['app_data'] = $appdata;
     $alldata['appchild_data'] = $appchilddata;
     $alldata['client'] = $client;
     $alldata['page'] = $pagearr;
     $this->addItem($alldata);
     $this->output();
 }