diff --git a/application/controllers/information.php b/application/controllers/information.php index 45dc50d0..f2e76747 100644 --- a/application/controllers/information.php +++ b/application/controllers/information.php @@ -1,694 +1,716 @@ -permission->is_admin(); - //$this->output->enable_profiler(TRUE); - $this->load->model('Area_model'); - $this->load->model('Information_model'); - $this->load->model('InfoContents_model'); - $this->load->model('InfoStructures_model'); - $this->load->model('Landscape_model'); - $this->load->model('Operator_model'); - $this->load->model('Logs_model'); - $this->load->model('InfoMetas_model'); - $this->load->model('Infoauthors_model'); - $this->load->model('InfoSMS_model'); - $this->load->library('Amplib'); //加载AMP处理类 - } - - public function index() { - echo '信息首页'; - } - - public function add($is_parent_id) { - //添加空内容. - $this->InfoContents_model->Add('', 'New Information', '', '', '', '', '', '', '', 0, 0, '', '', 0, 0, '', '', 0, '', 0, '', ''); - $infocontent = $this->InfoContents_model->get_ic_contents($this->InfoContents_model->insert_id); - if (!empty($infocontent) && $this->InfoStructures_model->Add($is_parent_id, $this->InfoContents_model->insert_id)) { - $is_id = $this->InfoStructures_model->insert_id; - $InfoStructures = $this->InfoStructures_model->Detail($is_id); - $InfoStructures->is_id = $is_id; - $data[] = array('name' => 'ok', 'value' => $InfoStructures); - $this->Logs_model->add($this->InfoStructures_model->insert_id); - } else { - $data[] = array('name' => 'no', 'value' => $this->lang->line('form_info_error')); - } - echo json_encode($data); - return TRUE; - } - - //移动结构顺序 - public function move() { - //网站会提交一个同级节点id列表字符串,按照这个去排序 - $parent_id = $this->input->post('pid'); - $idsStr = $this->input->post('ids'); - $idsArray = explode(',', $idsStr); - foreach ($idsArray as $key => $value) { - if ($value) { - //设置排序 - $this->InfoStructures_model->set_sort($value, $key); - //设置path - $this->InfoStructures_model->set_path($parent_id, $value); - } - } - $data[] = array('name' => 'ok', 'value' => $this->lang->line('structures_success_move')); - echo json_encode($data); - $this->Logs_model->move($idsStr); - return TRUE; - } - - //把文章移动到任意板块文章下 - //is_id 信息结构ID,is_parent_id即将转移到的信息结构id - public function move_by_is_id() { - $data = array(); - $is_id = $this->input->post('is_id'); - $is_parent_id = $this->input->post('is_parent_id'); - if ($is_id == $is_parent_id || empty($is_id) || empty($is_parent_id)) { - return false; - } - //即将移动到文章结构信息 - $Structure = $this->InfoStructures_model->Detail($is_id); - //目标文章结构信息 - $Structure_parent = $this->InfoStructures_model->Detail($is_parent_id); - //只能移动到本站点下 - if ($Structure->is_sitecode == $Structure_parent->is_sitecode) { - //不能搬迁到自己的子节点下 - if (strpos(',' . $Structure_parent->is_path, ',' . $is_id . ',') == false) { - $this->InfoStructures_model->set_path($is_parent_id, $is_id); - } - //信息的区域类型和id也要修改 todo - } - $data[] = array('name' => 'ok', 'value' => $this->lang->line('structures_success_move')); - echo json_encode($data); - $this->Logs_model->move($is_id); - return TRUE; - } - - public function delete($is_id) { - //查询结构信息 - $Structure = $this->InfoStructures_model->Detail($is_id); - if ($Structure == FALSE) { - $data[] = array('name' => 'no', 'value' => $this->lang->line('structures_error_notfound')); - echo json_encode($data); - return false; - } - if ($this->InfoStructures_model->HasChild($Structure->is_id)) { - $data[] = array('name' => 'no', 'value' => $this->lang->line('structures_error_haschild')); - echo json_encode($data); - return false; - } else { - $info_detail = $this->Information_model->Detail($is_id); - $this->Logs_model->delete($is_id, $info_detail->ic_content); - if (!empty($info_detail->ic_summary)) { - $this->Logs_model->backup_summary($is_id, $info_detail->ic_summary); - } - $this->InfoStructures_model->Delete($Structure->is_id); - $this->InfoContents_model->Delete($Structure->is_ic_id); - //如果是已经发布的页面,删除静态文件 - if ($info_detail->ic_status == 1) { - $this->update_cache($info_detail->ic_url, true); - } - //删除成功后返回一个上级链接给用户 - $drumpurl = site_url('information/edit/' . $Structure->is_parent_id); - if ($Structure->is_parent_id == 0) - $drumpurl = site_url('/'); - $data[] = array('name' => 'ok', 'value' => $drumpurl); - echo json_encode($data); - return true; - } - } - - public function edit($is_id) { - set_time_limit(30); - //$this->output->enable_profiler(true); - //查询结构信息 - $Structure = $this->InfoStructures_model->Detail($is_id); - if ($Structure == FALSE) { - show_404(); - } - //查询结构根节点 - $rootStructure = $this->InfoStructures_model->GetParent($Structure->is_path, 1); - //没有根节点就从它本身开始查询 - if ($rootStructure == false) { - $rootStructure_ID = $Structure->is_id; - } else { - $rootStructure_ID = $rootStructure->is_id; - } - - //查询结构列表信息 - $data['informationList'] = $this->Information_model->StructureList($rootStructure_ID); - - //增加一项,属于这个区域,但是结构数据层次不准确的也要列出来 - //todo: - //信息内容 - $data['information'] = $this->Information_model->Detail($is_id); - - //检查该信息是否已收录 - $data['embody'] = 1; - if (isset($data['information']->ic_id)) { - $embody = $this->InfoMetas_model->get($data['information']->ic_id, 'meta_embody'); - if ($embody && $embody != '1') { - $data['embody'] = 0; - } - //设置该信息所有未读消息为已读 - $this->InfoSMS_model->readed_for_info($data['information']->ic_id); - } - - //主节点信息 - $data['rootInformation'] = $this->Information_model->Detail($rootStructure_ID); - //获取未绑定的景点,只有城市有,无视其它区域类型 - $data['unlink_landscape_list'] = array(); - - //可选的展示模板 - if (in_array($this->config->item('site_code'), array('vac', 'vc', 'jp', 'ru', 'it'))) { - $this->config->set_item('templates', $this->config->item('templates_i')); - } - - if (in_array($this->config->item('site_code'), array('ah'))) { - $this->config->set_item('templates', $this->config->item('templates_ah')); - } - if (in_array($this->config->item('site_code'), array('pgr'))) { - $this->config->set_item('templates', $this->config->item('templates_pgr')); - } - if (in_array($this->config->item('site_code'), array('ts'))) { - $this->config->set_item('templates', $this->config->item('templates_ts')); - } - if (in_array($this->config->item('site_code'), array('cht'))) { - $this->config->set_item('templates', $this->config->item('templates_cht')); - } - if (in_array($this->config->item('site_code'), array('gm'))) { - $this->config->set_item('templates', $this->config->item('templates_gm')); - } - - - //信息区域类型 - switch ($data['rootInformation']->ic_ht_area_type) { - case 'c': //城市 - $data['infoTypeList'] = $this->config->item('InfoType_city'); - $data['unlink_landscape_list'] = $this->Information_model->get_unlink_landscape_list($data['rootInformation']->ic_ht_area_id); - break; - case 'p'://省份 - $data['infoTypeList'] = $this->config->item('InfoType_province'); - break; - case 'n'://国家 - $data['infoTypeList'] = $this->config->item('InfoType_country'); - break; - case 't'://特殊区域 - $data['infoTypeList'] = $this->config->item('InfoType_special'); - break; - case 'e'://大洲 - $data['infoTypeList'] = array(); - break; - case 'z'://公民游 - $data['infoTypeList'] = $this->config->item('InfoType_citizen'); - break; - case 'v'://视频 - $data['infoTypeList'] = $this->config->item('InfoType_video'); - break; - case 'f'://节庆 - $data['infoTypeList'] = $this->config->item('InfoType_festival'); - break; - case 'pd'://产品管理 - $data['infoTypeList'] = $this->config->item('InfoType_product'); - //LMR 2016-7-14 - if (in_array($this->config->item('site_code'), array('vac', 'vc', 'jp', 'ru', 'it'))) { - $this->config->set_item('templates', $this->config->item('templates_product_i')); - } else { - $this->config->set_item('templates', $this->config->item('templates_product')); - } - break; - default: - $data['infoTypeList'] = array(); - break; - } - - - - $data['templateList'] = $this->config->item('templates'); - //翰特产品类型 - $data['productTypeList'] = $this->config->item('ProductType_HT'); - //获取绑定的产品名称 - switch ($data['information']->ic_ht_product_type) { - case 't': - $data['product_title'] = $this->Landscape_model->get_landscape_title($data['information']->ic_ht_product_id); - break; - default: - $data['product_title'] = ''; - break; - } - //获取最后更新者信息 - $data['last_edit_info'] = $this->Logs_model->get_last_edit($is_id); - - //编辑列表 - $sites = $this->config->item('site'); - $data['editor_list'] = $this->Operator_model->get_site_user($this->config->item('site_code')); - //获取作者列表 - $data['author_list'] = $this->Infoauthors_model->get_site_user($this->config->item('site_code')); - - //获取备份信息记录 - $data['content_backup_list'] = $this->Logs_model->get_backup_list($is_id); - - //所属导航栏目 - $data['setting_website_nav'] = $this->InfoMetas_model->get_list(0, 'setting_website_nav_' . strtolower($this->config->item('site_code'))); - - $data['my_tags'] = array(); - $data['all_tags'] = array(); - if (is_series_site()) { - //信息标签 - //$this->InfoTags_model->ic_id = null; - //$data['all_tags'] = $this->InfoTags_model->list_tag(); - //$this->InfoTags_model->ic_id = $data['information']->ic_id; - //$data['my_tags'] = $this->InfoTags_model->list_tag(); - //差集 - foreach ($data['all_tags'] as &$it) { - foreach ($data['my_tags'] as $it2) { - if ($it->it_id == $it2->icit_it_id) { - $it = null; - break; - } - } - } - $data['all_tags'] = array_filter($data['all_tags']); - } - - $this->load->view('bootstrap3/header', $data); - $this->load->view('bootstrap3/information_edit'); - $this->load->view('bootstrap3/footer'); - } - - /** - public function redirect($jumpUrl){ - - header('HTTP/1.1 301 Moved Permanently'); - - header($jumpUrl);// 301 跳转到设置的 url - - exit(); - - } */ - public function test_proxy($url = false) { - $curl = curl_init(); - //curl_setopt($curl,CURLOPT_URL, "http://graph.facebook.com/?id=http://www.chinahighlights.com"); - //curl_setopt($curl,CURLOPT_URL, 'http://graph.facebook.com/?id=http://www.mybeijingchina.com/beijing-attractions/beihai-park/'); - curl_setopt($curl, CURLOPT_URL, $url); - curl_setopt($curl, CURLOPT_HEADER, 0); - curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1); - curl_setopt($curl, CURLOPT_HTTPPROXYTUNNEL, 1); - curl_setopt($curl, CURLOPT_PROXY, "120.24.227.23:33333"); - $request = curl_exec($curl); - curl_close($curl); - return $request; - //echo $request; - } - - // 分享数 lzq - public function statistical_sharing() { - - //$info_ic = $this->Information_model->get_ic_url_by_code('mbj'); - $info_ic = $this->Information_model->get_ic_url(); - $ic_id = $info_ic->ic_id; - $ic_url = $info_ic->ic_url; - $ic_sitecode = $info_ic->ic_sitecode; - $site = $this->config->item('site'); - - if (!empty($ic_url)) { - - $result = $this->Information_model->update_ic_date_by_code($ic_id); - //var_dump($site['mbj']['site_url']); - //$wz_url = 'http://graph.facebook.com/?id='.$site['mbj']['site_url'].$ic_url; - $complete_url = 'http://graph.facebook.com/?id=' . $site[$ic_sitecode]['site_url'] . $ic_url; - //echo $wz_url; - $api_return = $this->test_proxy($complete_url); - $api_return = json_decode($api_return); - if (empty($api_return->shares)) { - var_dump($api_return); - $shares = 0; - } else { - var_dump($api_return); - $shares = $api_return->shares; - } - - //echo $asd->shares; - $result2 = $this->Information_model->insert_url_to_csi($info_ic->ic_url, $ic_id, $info_ic->ic_sitecode, $shares); - } - - //$sstt = $this->config->item('site'); - //foreach($infolist as $k=>$v){ - // $aabb[] = $v->ic_sitecode; - //} - //$url_count = $this->Information_model->get_count_by_code('mbj'); - //$surl = site_url('/information/fengxiangshu'); - //redirect($surl,'refresh',301); - - $this->load->view('bootstrap3/header'); - $this->load->view('bootstrap3/statistical_sharing'); - } - - public function edit_save() { - header('Cache-Control: no-cache'); - $information = $this->Information_model->Detail($this->input->post('is_id')); - if ($information === false) { - $data[] = array('name' => 'no', 'value' => $this->lang->line('structures_error_notfound')); - echo json_encode($data); - return false; - } - - $this->form_validation->set_rules('ic_url_title', 'lang:ic_url_title', 'required'); - $this->form_validation->set_rules('ic_title', 'lang:ic_title', 'required'); - $this->form_validation->set_rules('ic_author', 'lang:ic_author', 'required'); - $this->form_validation->set_rules('ic_url', 'lang:ic_url', 'callback_ic_url_check'); - //这里比较特别,检测两次ic_url,ci会冲掉第一个ic_url的规则,所以需要在下面也加上callback_ic_url_check - $this->form_validation->set_rules('ic_url', 'lang:ic_url_format', 'callback_ic_url_check|callback_ic_url_format'); - - if ($this->input->post('ignore_seo_check') === false) { - $this->form_validation->set_rules('ic_seo_title', 'lang:ic_seo_title', 'required'); - $this->form_validation->set_rules('ic_seo_description', 'lang:ic_seo_description', 'required|max_length[250]'); - } - if ($this->form_validation->run() == FALSE) { - $data = array(); - foreach ($this->form_validation->_error_array as $key => $value) { - $data[] = array('name' => $key, 'value' => $value); - } - echo json_encode($data); - } else { - $this->InfoContents_model->Update($information->is_ic_id, $this->input->post('ic_url'), $this->input->post('ic_url_title'), $this->input->post('ic_type'), $this->input->post('ic_title'), $this->input->post('ic_content'), $this->input->post('ic_summary'), $this->input->post('ic_seo_title'), $this->input->post('ic_seo_description'), $this->input->post('ic_seo_keywords'), $this->input->post('ic_show_bread_crumbs'), $this->input->post('ic_status'), $this->input->post('ic_template'), $this->input->post('ic_photo'), $this->input->post('ic_photo_width'), $this->input->post('ic_photo_height'), $this->input->post('ic_recommend_tours'), $this->input->post('ic_recommend_packages'), $this->input->post('ic_ht_area_id'), $this->input->post('ic_ht_area_type'), $this->input->post('ic_ht_product_id'), $this->input->post('ic_ht_product_type'), $this->input->post('ic_author')); - - //AMP更新和生成 beign - $auto_update_amp = $this->input->get_post('auto_update_amp'); - if (!empty($auto_update_amp) && $auto_update_amp == 'true' && $this->input->post('ic_status') == 1) { - $amp_result=$this->amplib->auto_create($information->ic_id); - if (!empty($amp_result)) { - $amp_result = json_decode($amp_result); - if($amp_result->result=='ok'){ - $amp_save_result= $this->amplib->edit_save($information->ic_id,$amp_result->data->amp,'1'); - if(!empty($amp_save_result)){ - $amp_save_result = json_decode($amp_save_result); - if($amp_save_result->name=='no'){ - echo json_encode(array('name' => 'no', 'value' => 'AMP转换语法错误,请重新进入AMP编辑器检查')); - return; - } - } - } - } - } - //AMP更新和生成 end - //为新闻添加默认发布时间 - $meta_news_createdate = get_meta($information->ic_id, 'meta_news_createdate'); - if (empty($meta_news_createdate)) { - add_meta($information->ic_id, 'meta_news_createdate', date('m/d/Y', time())); - } - - //如果URL有修改也删除静态文件 - if ($this->input->post('ic_url') != $information->ic_url) { - $this->update_cache($information->ic_url, true); - } - - //如果信息不发布则删除静态文件 - if ($this->input->post('ic_status') == '0') { - $this->update_cache($this->input->post('ic_url'), true); - } - - //德语站FAQ版块需要删除原来的文件才能更新静态 - $site_code = $this->config->item('site_code'); - $ic_url = $this->input->post('ic_url'); - $auto_update_cache = $this->input->get_post('auto_update_cache_checkbox'); - - if (strcasecmp($site_code, "gm") == 0 && !empty($auto_update_cache)) { - $update_info_log = $this->update_cache($ic_url, true); - } else if (strcasecmp($site_code, "cht") == 0 && !empty($auto_update_cache)) { - $update_info_log = $this->update_cache($ic_url); - } else if (strcasecmp($site_code, "cht") != 0 && strcasecmp($site_code, "gm") != 0) {//非cht站点并且非GM - $update_info_log = $this->update_cache($ic_url); - } - - if (empty($update_info_log) || count($update_info_log) == 0 || !isset($update_info_log[0]['url'])) { - $update_info_log = 'not found update info log'; - } - - $data[] = array('name' => 'ok', 'value' => $this->lang->line('form_info_success'), 'update_info_log' => $update_info_log); - $this->Logs_model->backup($information->is_id, $this->input->post('ic_content')); - $this->Logs_model->backup_summary($information->is_id, $this->input->post('ic_summary')); - - //作者个人页面更新 - if ($this->config->item('site_code') == 'cht') { - $author_pages = array( - 'zzy' => 'http://www.chinahighlights.com/author/ruru-zhou/', - 'Gavin' => 'http://www.chinahighlights.com/author/gavin-van-hinsbergh/', - 'WBL' => 'http://www.chinahighlights.com/author/annie-wu/', - 'PKL' => 'http://www.chinahighlights.com/author/kelly/', - '210000017' => 'http://www.chinahighlights.com/author/lynne-buddin/', - '202000027' => 'http://www.chinahighlights.com/author/margaux/', - '202000019' => 'http://www.chinahighlights.com/author/anusuya-mitra/', - '210000018' => 'http://www.chinahighlights.com/author/connie/', - '210000016' => 'http://www.chinahighlights.com/author/ben/', - '200000008' => 'http://www.chinahighlights.com/author/pete-marchetto/', - '210000019' => 'http://www.chinahighlights.com/author/oscar/', - '210000021' => 'http://www.chinahighlights.com/author/matthew/', - '200000013' => 'http://www.chinahighlights.com/author/kit-onslow-smith/', - '202000018' => 'http://www.chinahighlights.com/author/klaus-capra/', - '202000017' => 'http://www.chinahighlights.com/author/christy-campbell/' - ); - $key = $this->input->post('ic_author'); - if (isset($author_pages[$key])) { - $this->update_cache($author_pages[$key]); - } - } - - echo json_encode($data); - } - } - - //URL不重复检查 - function ic_url_check() { - if ($this->input->post('ignore_url_check')) { - return true; - } - - $url = $this->input->post('ic_url'); - if ($url === '') { - return true; - } - $is_id = $this->input->post('is_id'); - return $this->Information_model->URLcheck($is_id, $url); - } - - //URL格式检查,不能包含大小写、空格等特殊字符 - function ic_url_format($url) { - if ($url != mb_strtolower($url) || strpos($url, ' ') !== false || strpos($url, '--') !== false || strpos($url, ')') !== false || strpos($url, '(') !== false || strpos($url, '//') !== false || strpos($url, '\\') !== false) { - return false; - } - return true; - } - - //更新静态文件 - //不用参数提交的原因是可能url带有特殊字符,CI会报错 - public function update_cache($static_html_url = false, $delete_only = false) { - $url = !empty($static_html_url) ? $static_html_url : $this->input->post('cache_url'); - $url = str_replace($this->config->item('site_url'), '', $url); - $original_url = $url; //原始链接 - $delete_only = !empty($delete_only) ? $delete_only : $this->input->get_post('delete_only'); - - switch ($this->config->item('site_code')) { - case 'cht': - $search_list = $this->Information_model->search_url($url); - $amp_request = FALSE; - foreach ($search_list as $key => $req_url) { - $meta_amp_status = get_meta($req_url->ic_id, 'AMP_STATUS'); - if ($meta_amp_status) { - $amp_request = TRUE; - } - } - if ($amp_request) { - $url = 'http://192.155.250.124:22224/ampreq' . $url; - } else { - $url = 'http://192.155.250.124:22224' . $url; - } - break; - case 'ah': - if ($delete_only === true) { - $url = 'https://www.asiahighlights.com/index.php/information/delete_cache_8X913mksJ/?static_html_url=' . $url; - } else {// static_html_optimize=comeon 启用静态化压缩和js、css延迟加载 - $url = 'https://www.asiahighlights.com/index.php/information/detail/?static_html_url=' . $url . '&static_html_optimize=comeon'; - } - break; - - case 'gm': - //GET_HTTP("http://148.251.35.42:3300/create-cache/?url=" . urlencode($url)); //请求nodejs静态化更新页面,删除缓存,因为部分页面没有进入信息平台 - if ($delete_only) { - $url = "http://144.76.185.44:8029/gm.php/information/delete_cache_23Xd913mddkgssODII?static_html_url=" . urlencode($url); - } else { - //先删除再生成,部分页面没有在信息平台中 - GET_HTTP("http://144.76.185.44:8029/gm.php/information/delete_cache_23Xd913mddkgssODII?static_html_url=" . urlencode($url)); - $url = "http://144.76.185.44:8029" . $url; - } - break; - - case 'vac'://国际站 - case 'vc': - case 'it': - case 'ru': - case 'jp': - if ($delete_only) { - //只删除操作,在url修改和不发布信息的时候使用 - $url = $this->config->item('site_url') . '/index.php/welcome/update_cache/delete_only?static_html_url=' . $url; - } else { - $information = $this->Information_model->Detail($url); - $tmp = $url; - //判断是否是更新信息 - // 产品页面不能生成静态页面,比如/beijing/hotel/只是为了在导航显示一个链接,如果生成了静态页面,网前只会显示一个空白页面了 - if (!empty($information->ic_content)) { - $url = $this->config->item('site_url') . '/index.php/information/detail/?static_html_url=' . $url; - } else { - //先尝试删除静态文件。 - //$try_del = $this->config->item('site_url') . '/index.php/welcome/update_cache/delete_only?static_html_url=' . $url; - //file_get_contents($try_del); - $url = $this->config->item('site_url') . '/index.php/welcome/update_cache/?static_html_url=' . $url; - } - if (isset($information->ic_type) && $information->ic_type == 'product') { - $url = $this->config->item('site_url') . '/index.php/welcome/update_cache/?static_html_url=' . $tmp; - } - } - break; - - case 'ct'://子站点使用 - case 'sht': - case 'gl': - case 'mbj': - case 'yz': - $url = $this->config->item('site_url') . $url . '@cache@refresh'; - break; - default:return false; - break; - } - - $content = GET_HTTP($url); - if ($content === false) { - $data[] = array('name' => 'no', 'value' => sprintf($this->lang->line('update_cache_failed'), $url)); - } else { - //手动更新的话,接着更新CDN缓存 - $msg = $this->lang->line('update_cache_success'); - - if ($this->input->post('updatecdn') == 1) { - $notice = $this->update_cdn(); - if ($notice == 200) { - $msg .= $this->lang->line('update_cdn_success'); - } else { - $msg .= $this->lang->line('update_cdn_failed') . '
' . $notice; - } - } - $data[] = array('name' => 'ok', 'value' => $msg, 'url' => $url); - } - //如果是外部调用就返回结果,内部就不返回了 - if ($this->input->post('cache_url')) { - echo json_encode($data); - } - return $data; - } - - //更新CDN缓存 - public function update_cdn($static_html_url = false) { - $flag = false; //false:不更新,true:更新 - $update_site = array('jp', 'ru'); //需要更新CDN的站点 - //需要更新的url - $url = $static_html_url; - if (empty($url)) - $url = $this->input->post('cache_url'); - - //如果传递进来的url是带有域名,则对域名进行判断 - $tempu = parse_url($url); - if (isset($tempu['host'])) { - $url = isset($tempu['path']) ? $tempu['path'] : '/'; - $pad = $tempu['host']; - $flag = true; - } - //如果传递进来的url没有域名,则使用当前站点的信息进行判断 - else { - $url = str_replace($this->config->item('site_url'), '', $url); - $pad = str_replace('http://', '', $this->config->item('site_url')); - if (in_array($this->config->item('site_code'), $update_site)) - $flag = TRUE; - } - - //默认更新成功,如果不成功,则返回错误提示信息 - $notice = 200; - if ($flag) { - $result = GET_HTTP('https://openapi.us.cdnetworks.com/purge/rest/doPurge?user=ycc@chinahighlights.com&pass=cXi2UbsTrw9Urv@&pad=' . $pad . '&type=item&path=' . $url . '&output=json'); - $result = json_decode($result, true); - if ($result['resultCode'] != 200) - $notice = $result['notice'] . $result['details']; - } - return $notice; - } - - //获取产品信息,提供给用户选择进行绑定 - function get_products() { - $HT_productType = $this->input->post('product_type'); - $HT_productName = $this->input->post('product_name'); - //产品类型 - switch ($HT_productType) { - case 't': - $data['productList'] = $this->Landscape_model->search_list($HT_productName); - break; - default: - $data['productList'] = array(); - break; - } - $data['product_type'] = $HT_productType; - $product_list_page = $this->load->view('bootstrap/information_select_product', $data, true); - $data = array(); - $data[] = array('name' => 'ok', 'value' => $product_list_page); - echo json_encode($data); - return true; - } - - //显示备份的内容 - function backup_content($log_id) { - $data['log_info'] = $this->Logs_model->read($log_id); - $data['log_list'] = $this->Logs_model->get_all_backup_list($data['log_info']->log_res_id); - $this->load->view('bootstrap/header', $data); - $this->load->view('bootstrap/information_backup_content'); - $this->load->view('bootstrap/footer'); - } - - //保存自定义配置 - function save_meta() { - $im_ic_id = $this->input->post('im_ic_id'); - $im_key = $this->input->post('im_key'); - $im_value = $this->input->post('im_value'); - if ($im_ic_id && $im_key && $im_value !== false) { - $meta = $this->InfoMetas_model->get($im_ic_id, $im_key); - if ($meta === false) { - $this->InfoMetas_model->add($im_ic_id, $im_key, $im_value); - } else { - $this->InfoMetas_model->update($im_ic_id, $im_key, $im_value); - } - $data[] = array('name' => 'ok', 'value' => $this->lang->line('media_save_success')); - } else { - $data[] = array('name' => 'no', 'value' => $this->lang->line('media_save_error')); - } - echo json_encode($data); - return true; - } - - //保存自定义配置 - function delete_meta() { - $im_ic_id = $this->input->post('im_ic_id'); - $im_key = $this->input->post('im_key'); - if ($im_ic_id && $im_key) { - - $this->InfoMetas_model->delete($im_ic_id, $im_key); - $data[] = array('name' => 'ok', 'value' => $this->lang->line('media_delete_success')); - } else { - $data[] = array('name' => 'no', 'value' => $this->lang->line('media_save_error')); - } - echo json_encode($data); - return true; - } - -} +permission->is_admin(); + //$this->output->enable_profiler(TRUE); + $this->load->model('Area_model'); + $this->load->model('Information_model'); + $this->load->model('InfoContents_model'); + $this->load->model('InfoStructures_model'); + $this->load->model('Landscape_model'); + $this->load->model('Operator_model'); + $this->load->model('Logs_model'); + $this->load->model('InfoMetas_model'); + $this->load->model('Infoauthors_model'); + $this->load->model('InfoSMS_model'); + $this->load->library('Amplib'); //加载AMP处理类 + } + + public function index() { + echo '信息首页'; + } + + public function add($is_parent_id) { + //添加空内容. + $this->InfoContents_model->Add('', 'New Information', '', '', '', '', '', '', '', 0, 0, '', '', 0, 0, '', '', 0, '', 0, '', ''); + $infocontent = $this->InfoContents_model->get_ic_contents($this->InfoContents_model->insert_id); + if (!empty($infocontent) && $this->InfoStructures_model->Add($is_parent_id, $this->InfoContents_model->insert_id)) { + $is_id = $this->InfoStructures_model->insert_id; + $InfoStructures = $this->InfoStructures_model->Detail($is_id); + $InfoStructures->is_id = $is_id; + $data[] = array('name' => 'ok', 'value' => $InfoStructures); + $this->Logs_model->add($this->InfoStructures_model->insert_id); + } else { + $data[] = array('name' => 'no', 'value' => $this->lang->line('form_info_error')); + } + echo json_encode($data); + return TRUE; + } + + //移动结构顺序 + public function move() { + //网站会提交一个同级节点id列表字符串,按照这个去排序 + $parent_id = $this->input->post('pid'); + $idsStr = $this->input->post('ids'); + $idsArray = explode(',', $idsStr); + foreach ($idsArray as $key => $value) { + if ($value) { + //设置排序 + $this->InfoStructures_model->set_sort($value, $key); + //设置path + $this->InfoStructures_model->set_path($parent_id, $value); + } + } + $data[] = array('name' => 'ok', 'value' => $this->lang->line('structures_success_move')); + echo json_encode($data); + $this->Logs_model->move($idsStr); + return TRUE; + } + + //把文章移动到任意板块文章下 + //is_id 信息结构ID,is_parent_id即将转移到的信息结构id + public function move_by_is_id() { + $data = array(); + $is_id = $this->input->post('is_id'); + $is_parent_id = $this->input->post('is_parent_id'); + if ($is_id == $is_parent_id || empty($is_id) || empty($is_parent_id)) { + return false; + } + //即将移动到文章结构信息 + $Structure = $this->InfoStructures_model->Detail($is_id); + //目标文章结构信息 + $Structure_parent = $this->InfoStructures_model->Detail($is_parent_id); + //只能移动到本站点下 + if ($Structure->is_sitecode == $Structure_parent->is_sitecode) { + //不能搬迁到自己的子节点下 + if (strpos(',' . $Structure_parent->is_path, ',' . $is_id . ',') == false) { + $this->InfoStructures_model->set_path($is_parent_id, $is_id); + } + //信息的区域类型和id也要修改 todo + } + $data[] = array('name' => 'ok', 'value' => $this->lang->line('structures_success_move')); + echo json_encode($data); + $this->Logs_model->move($is_id); + return TRUE; + } + + public function delete($is_id) { + //查询结构信息 + $Structure = $this->InfoStructures_model->Detail($is_id); + if ($Structure == FALSE) { + $data[] = array('name' => 'no', 'value' => $this->lang->line('structures_error_notfound')); + echo json_encode($data); + return false; + } + if ($this->InfoStructures_model->HasChild($Structure->is_id)) { + $data[] = array('name' => 'no', 'value' => $this->lang->line('structures_error_haschild')); + echo json_encode($data); + return false; + } else { + $info_detail = $this->Information_model->Detail($is_id); + $this->Logs_model->delete($is_id, $info_detail->ic_content); + if (!empty($info_detail->ic_summary)) { + $this->Logs_model->backup_summary($is_id, $info_detail->ic_summary); + } + $this->InfoStructures_model->Delete($Structure->is_id); + $this->InfoContents_model->Delete($Structure->is_ic_id); + //如果是已经发布的页面,删除静态文件 + if ($info_detail->ic_status == 1) { + $this->update_cache($info_detail->ic_url, true); + } + //删除成功后返回一个上级链接给用户 + $drumpurl = site_url('information/edit/' . $Structure->is_parent_id); + if ($Structure->is_parent_id == 0) + $drumpurl = site_url('/'); + $data[] = array('name' => 'ok', 'value' => $drumpurl); + echo json_encode($data); + return true; + } + } + + public function edit($is_id) { + set_time_limit(30); + //$this->output->enable_profiler(true); + //查询结构信息 + $Structure = $this->InfoStructures_model->Detail($is_id); + if ($Structure == FALSE) { + show_404(); + } + //查询结构根节点 + $rootStructure = $this->InfoStructures_model->GetParent($Structure->is_path, 1); + //没有根节点就从它本身开始查询 + if ($rootStructure == false) { + $rootStructure_ID = $Structure->is_id; + } else { + $rootStructure_ID = $rootStructure->is_id; + } + + //查询结构列表信息 + $data['informationList'] = $this->Information_model->StructureList($rootStructure_ID); + + //增加一项,属于这个区域,但是结构数据层次不准确的也要列出来 + //todo: + //信息内容 + $data['information'] = $this->Information_model->Detail($is_id); + + //检查该信息是否已收录 + $data['embody'] = 1; + if (isset($data['information']->ic_id)) { + $embody = $this->InfoMetas_model->get($data['information']->ic_id, 'meta_embody'); + if ($embody && $embody != '1') { + $data['embody'] = 0; + } + //设置该信息所有未读消息为已读 + $this->InfoSMS_model->readed_for_info($data['information']->ic_id); + } + + //主节点信息 + $data['rootInformation'] = $this->Information_model->Detail($rootStructure_ID); + //获取未绑定的景点,只有城市有,无视其它区域类型 + $data['unlink_landscape_list'] = array(); + + //可选的展示模板 + if (in_array($this->config->item('site_code'), array('vac', 'vc', 'jp', 'ru', 'it'))) { + $this->config->set_item('templates', $this->config->item('templates_i')); + } + + if (in_array($this->config->item('site_code'), array('ah'))) { + $this->config->set_item('templates', $this->config->item('templates_ah')); + } + if (in_array($this->config->item('site_code'), array('pgr'))) { + $this->config->set_item('templates', $this->config->item('templates_pgr')); + } + if (in_array($this->config->item('site_code'), array('ts'))) { + $this->config->set_item('templates', $this->config->item('templates_ts')); + } + if (in_array($this->config->item('site_code'), array('cht'))) { + $this->config->set_item('templates', $this->config->item('templates_cht')); + } + if (in_array($this->config->item('site_code'), array('gm'))) { + $this->config->set_item('templates', $this->config->item('templates_gm')); + } + + + //信息区域类型 + switch ($data['rootInformation']->ic_ht_area_type) { + case 'c': //城市 + $data['infoTypeList'] = $this->config->item('InfoType_city'); + $data['unlink_landscape_list'] = $this->Information_model->get_unlink_landscape_list($data['rootInformation']->ic_ht_area_id); + break; + case 'p'://省份 + $data['infoTypeList'] = $this->config->item('InfoType_province'); + break; + case 'n'://国家 + $data['infoTypeList'] = $this->config->item('InfoType_country'); + break; + case 't'://特殊区域 + $data['infoTypeList'] = $this->config->item('InfoType_special'); + break; + case 'e'://大洲 + $data['infoTypeList'] = array(); + break; + case 'z'://公民游 + $data['infoTypeList'] = $this->config->item('InfoType_citizen'); + break; + case 'v'://视频 + $data['infoTypeList'] = $this->config->item('InfoType_video'); + break; + case 'f'://节庆 + $data['infoTypeList'] = $this->config->item('InfoType_festival'); + break; + case 'pd'://产品管理 + $data['infoTypeList'] = $this->config->item('InfoType_product'); + //LMR 2016-7-14 + if (in_array($this->config->item('site_code'), array('vac', 'vc', 'jp', 'ru', 'it'))) { + $this->config->set_item('templates', $this->config->item('templates_product_i')); + } else { + $this->config->set_item('templates', $this->config->item('templates_product')); + } + break; + default: + $data['infoTypeList'] = array(); + break; + } + + + + $data['templateList'] = $this->config->item('templates'); + //翰特产品类型 + $data['productTypeList'] = $this->config->item('ProductType_HT'); + //获取绑定的产品名称 + switch ($data['information']->ic_ht_product_type) { + case 't': + $data['product_title'] = $this->Landscape_model->get_landscape_title($data['information']->ic_ht_product_id); + break; + default: + $data['product_title'] = ''; + break; + } + //获取最后更新者信息 + $data['last_edit_info'] = $this->Logs_model->get_last_edit($is_id); + + //编辑列表 + $sites = $this->config->item('site'); + $data['editor_list'] = $this->Operator_model->get_site_user($this->config->item('site_code')); + //获取作者列表 + $data['author_list'] = $this->Infoauthors_model->get_site_user($this->config->item('site_code')); + + //获取备份信息记录 + $data['content_backup_list'] = $this->Logs_model->get_backup_list($is_id); + + //所属导航栏目 + $data['setting_website_nav'] = $this->InfoMetas_model->get_list(0, 'setting_website_nav_' . strtolower($this->config->item('site_code'))); + + $data['my_tags'] = array(); + $data['all_tags'] = array(); + if (is_series_site()) { + //信息标签 + //$this->InfoTags_model->ic_id = null; + //$data['all_tags'] = $this->InfoTags_model->list_tag(); + //$this->InfoTags_model->ic_id = $data['information']->ic_id; + //$data['my_tags'] = $this->InfoTags_model->list_tag(); + //差集 + foreach ($data['all_tags'] as &$it) { + foreach ($data['my_tags'] as $it2) { + if ($it->it_id == $it2->icit_it_id) { + $it = null; + break; + } + } + } + $data['all_tags'] = array_filter($data['all_tags']); + } + + $this->load->view('bootstrap3/header', $data); + $this->load->view('bootstrap3/information_edit'); + $this->load->view('bootstrap3/footer'); + } + + /** + public function redirect($jumpUrl){ + + header('HTTP/1.1 301 Moved Permanently'); + + header($jumpUrl);// 301 跳转到设置的 url + + exit(); + + } */ + public function test_proxy($url = false) { + $curl = curl_init(); + //curl_setopt($curl,CURLOPT_URL, "http://graph.facebook.com/?id=http://www.chinahighlights.com"); + //curl_setopt($curl,CURLOPT_URL, 'http://graph.facebook.com/?id=http://www.mybeijingchina.com/beijing-attractions/beihai-park/'); + curl_setopt($curl, CURLOPT_URL, $url); + curl_setopt($curl, CURLOPT_HEADER, 0); + curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1); + curl_setopt($curl, CURLOPT_HTTPPROXYTUNNEL, 1); + curl_setopt($curl, CURLOPT_PROXY, "120.24.227.23:33333"); + $request = curl_exec($curl); + curl_close($curl); + return $request; + //echo $request; + } + + // 分享数 lzq + public function statistical_sharing() { + + //$info_ic = $this->Information_model->get_ic_url_by_code('mbj'); + $info_ic = $this->Information_model->get_ic_url(); + $ic_id = $info_ic->ic_id; + $ic_url = $info_ic->ic_url; + $ic_sitecode = $info_ic->ic_sitecode; + $site = $this->config->item('site'); + + if (!empty($ic_url)) { + + $result = $this->Information_model->update_ic_date_by_code($ic_id); + //var_dump($site['mbj']['site_url']); + //$wz_url = 'http://graph.facebook.com/?id='.$site['mbj']['site_url'].$ic_url; + $complete_url = 'http://graph.facebook.com/?id=' . $site[$ic_sitecode]['site_url'] . $ic_url; + //echo $wz_url; + $api_return = $this->test_proxy($complete_url); + $api_return = json_decode($api_return); + if (empty($api_return->shares)) { + var_dump($api_return); + $shares = 0; + } else { + var_dump($api_return); + $shares = $api_return->shares; + } + + //echo $asd->shares; + $result2 = $this->Information_model->insert_url_to_csi($info_ic->ic_url, $ic_id, $info_ic->ic_sitecode, $shares); + } + + //$sstt = $this->config->item('site'); + //foreach($infolist as $k=>$v){ + // $aabb[] = $v->ic_sitecode; + //} + //$url_count = $this->Information_model->get_count_by_code('mbj'); + //$surl = site_url('/information/fengxiangshu'); + //redirect($surl,'refresh',301); + + $this->load->view('bootstrap3/header'); + $this->load->view('bootstrap3/statistical_sharing'); + } + + public function edit_save() { + header('Cache-Control: no-cache'); + $information = $this->Information_model->Detail($this->input->post('is_id')); + if ($information === false) { + $data[] = array('name' => 'no', 'value' => $this->lang->line('structures_error_notfound')); + echo json_encode($data); + return false; + } + + $this->form_validation->set_rules('ic_url_title', 'lang:ic_url_title', 'required'); + $this->form_validation->set_rules('ic_title', 'lang:ic_title', 'required'); + $this->form_validation->set_rules('ic_author', 'lang:ic_author', 'required'); + $this->form_validation->set_rules('ic_url', 'lang:ic_url', 'callback_ic_url_check'); + //这里比较特别,检测两次ic_url,ci会冲掉第一个ic_url的规则,所以需要在下面也加上callback_ic_url_check + $this->form_validation->set_rules('ic_url', 'lang:ic_url_format', 'callback_ic_url_check|callback_ic_url_format'); + + if ($this->input->post('ignore_seo_check') === false) { + $this->form_validation->set_rules('ic_seo_title', 'lang:ic_seo_title', 'required'); + $this->form_validation->set_rules('ic_seo_description', 'lang:ic_seo_description', 'required|max_length[250]'); + } + if ($this->form_validation->run() == FALSE) { + $data = array(); + foreach ($this->form_validation->_error_array as $key => $value) { + $data[] = array('name' => $key, 'value' => $value); + } + echo json_encode($data); + } else { + $this->InfoContents_model->Update($information->is_ic_id, $this->input->post('ic_url'), $this->input->post('ic_url_title'), $this->input->post('ic_type'), $this->input->post('ic_title'), $this->input->post('ic_content'), $this->input->post('ic_summary'), $this->input->post('ic_seo_title'), $this->input->post('ic_seo_description'), $this->input->post('ic_seo_keywords'), $this->input->post('ic_show_bread_crumbs'), $this->input->post('ic_status'), $this->input->post('ic_template'), $this->input->post('ic_photo'), $this->input->post('ic_photo_width'), $this->input->post('ic_photo_height'), $this->input->post('ic_recommend_tours'), $this->input->post('ic_recommend_packages'), $this->input->post('ic_ht_area_id'), $this->input->post('ic_ht_area_type'), $this->input->post('ic_ht_product_id'), $this->input->post('ic_ht_product_type'), $this->input->post('ic_author')); + + //AMP更新和生成 beign + $auto_update_amp = $this->input->get_post('auto_update_amp'); + if (!empty($auto_update_amp) && $auto_update_amp == 'true' && $this->input->post('ic_status') == 1) { + $amp_result=$this->amplib->auto_create($information->ic_id); + if (!empty($amp_result)) { + $amp_result = json_decode($amp_result); + if($amp_result->result=='ok'){ + $amp_save_result= $this->amplib->edit_save($information->ic_id,$amp_result->data->amp,'1'); + if(!empty($amp_save_result)){ + $amp_save_result = json_decode($amp_save_result); + if($amp_save_result->name=='no'){ + echo json_encode(array('name' => 'no', 'value' => 'AMP转换语法错误,请重新进入AMP编辑器检查')); + return; + } + } + } + } + } + //AMP更新和生成 end + //为新闻添加默认发布时间 + $meta_news_createdate = get_meta($information->ic_id, 'meta_news_createdate'); + if (empty($meta_news_createdate)) { + add_meta($information->ic_id, 'meta_news_createdate', date('m/d/Y', time())); + } + + //如果URL有修改也删除静态文件 + if ($this->input->post('ic_url') != $information->ic_url) { + $this->update_cache($information->ic_url, true); + } + + //如果信息不发布则删除静态文件 + if ($this->input->post('ic_status') == '0') { + $this->update_cache($this->input->post('ic_url'), true); + } + + //德语站FAQ版块需要删除原来的文件才能更新静态 + $site_code = $this->config->item('site_code'); + $ic_url = $this->input->post('ic_url'); + $auto_update_cache = $this->input->get_post('auto_update_cache_checkbox'); + + if (strcasecmp($site_code, "gm") == 0 && !empty($auto_update_cache)) { + $update_info_log = $this->update_cache($ic_url, true); + } else if (strcasecmp($site_code, "cht") == 0 && !empty($auto_update_cache)) { + $update_info_log = $this->update_cache($ic_url); + } else if (strcasecmp($site_code, "cht") != 0 && strcasecmp($site_code, "gm") != 0) {//非cht站点并且非GM + $update_info_log = $this->update_cache($ic_url); + } + + if (empty($update_info_log) || count($update_info_log) == 0 || !isset($update_info_log[0]['url'])) { + $update_info_log = 'not found update info log'; + } + + $data[] = array('name' => 'ok', 'value' => $this->lang->line('form_info_success'), 'update_info_log' => $update_info_log); + $this->Logs_model->backup($information->is_id, $this->input->post('ic_content')); + $this->Logs_model->backup_summary($information->is_id, $this->input->post('ic_summary')); + + //作者个人页面更新 + if ($this->config->item('site_code') == 'cht') { + $author_pages = array( + 'zzy' => 'http://www.chinahighlights.com/author/ruru-zhou/', + 'Gavin' => 'http://www.chinahighlights.com/author/gavin-van-hinsbergh/', + 'WBL' => 'http://www.chinahighlights.com/author/annie-wu/', + 'PKL' => 'http://www.chinahighlights.com/author/kelly/', + '210000017' => 'http://www.chinahighlights.com/author/lynne-buddin/', + '202000027' => 'http://www.chinahighlights.com/author/margaux/', + '202000019' => 'http://www.chinahighlights.com/author/anusuya-mitra/', + '210000018' => 'http://www.chinahighlights.com/author/connie/', + '210000016' => 'http://www.chinahighlights.com/author/ben/', + '200000008' => 'http://www.chinahighlights.com/author/pete-marchetto/', + '210000019' => 'http://www.chinahighlights.com/author/oscar/', + '210000021' => 'http://www.chinahighlights.com/author/matthew/', + '200000013' => 'http://www.chinahighlights.com/author/kit-onslow-smith/', + '202000018' => 'http://www.chinahighlights.com/author/klaus-capra/', + '202000017' => 'http://www.chinahighlights.com/author/christy-campbell/' + ); + $key = $this->input->post('ic_author'); + if (isset($author_pages[$key])) { + $this->update_cache($author_pages[$key]); + } + } + + echo json_encode($data); + } + } + + //URL不重复检查 + function ic_url_check() { + if ($this->input->post('ignore_url_check')) { + return true; + } + + $url = $this->input->post('ic_url'); + if ($url === '') { + return true; + } + $is_id = $this->input->post('is_id'); + return $this->Information_model->URLcheck($is_id, $url); + } + + //URL格式检查,不能包含大小写、空格等特殊字符 + function ic_url_format($url) { + if ($url != mb_strtolower($url) || strpos($url, ' ') !== false || strpos($url, '--') !== false || strpos($url, ')') !== false || strpos($url, '(') !== false || strpos($url, '//') !== false || strpos($url, '\\') !== false) { + return false; + } + return true; + } + + //更新静态文件 + //不用参数提交的原因是可能url带有特殊字符,CI会报错 + public function update_cache($static_html_url = false, $delete_only = false) { + $url = !empty($static_html_url) ? $static_html_url : $this->input->post('cache_url'); + $url = str_replace($this->config->item('site_url'), '', $url); + $original_url = $url; //原始链接 + $delete_only = !empty($delete_only) ? $delete_only : $this->input->get_post('delete_only'); + + switch ($this->config->item('site_code')) { + case 'cht': + $search_list = $this->Information_model->search_url($url); + $amp_request = FALSE; + foreach ($search_list as $key => $req_url) { + $meta_amp_status = get_meta($req_url->ic_id, 'AMP_STATUS'); + if ($meta_amp_status) { + $amp_request = TRUE; + } + } + if ($amp_request) { + $url = 'http://192.155.250.124:22224/ampreq' . $url; + } else { + $url = 'http://192.155.250.124:22224' . $url; + } + break; + case 'ah': + if ($delete_only === true) { + $url = 'https://www.asiahighlights.com/index.php/information/delete_cache_8X913mksJ/?static_html_url=' . $url; + } else {// static_html_optimize=comeon 启用静态化压缩和js、css延迟加载 + $url = 'https://www.asiahighlights.com/index.php/information/detail/?static_html_url=' . $url . '&static_html_optimize=comeon'; + } + break; + + case 'gm': + //GET_HTTP("http://148.251.35.42:3300/create-cache/?url=" . urlencode($url)); //请求nodejs静态化更新页面,删除缓存,因为部分页面没有进入信息平台 + if ($delete_only) { + $url = "http://144.76.185.44:8029/gm.php/information/delete_cache_23Xd913mddkgssODII?static_html_url=" . urlencode($url); + } else { + //先删除再生成,部分页面没有在信息平台中 + GET_HTTP("http://144.76.185.44:8029/gm.php/information/delete_cache_23Xd913mddkgssODII?static_html_url=" . urlencode($url)); + $url = "http://144.76.185.44:8029" . $url; + } + break; + + case 'vac'://国际站 + case 'vc': + case 'it': + case 'ru': + case 'jp': + if ($delete_only) { + //只删除操作,在url修改和不发布信息的时候使用 + $url = $this->config->item('site_url') . '/index.php/welcome/update_cache/delete_only?static_html_url=' . $url; + } else { + $information = $this->Information_model->Detail($url); + $tmp = $url; + //判断是否是更新信息 + // 产品页面不能生成静态页面,比如/beijing/hotel/只是为了在导航显示一个链接,如果生成了静态页面,网前只会显示一个空白页面了 + if (!empty($information->ic_content)) { + $url = $this->config->item('site_url') . '/index.php/information/detail/?static_html_url=' . $url; + } else { + //先尝试删除静态文件。 + //$try_del = $this->config->item('site_url') . '/index.php/welcome/update_cache/delete_only?static_html_url=' . $url; + //file_get_contents($try_del); + $url = $this->config->item('site_url') . '/index.php/welcome/update_cache/?static_html_url=' . $url; + } + if (isset($information->ic_type) && $information->ic_type == 'product') { + $url = $this->config->item('site_url') . '/index.php/welcome/update_cache/?static_html_url=' . $tmp; + } + //int return direct + + if ($url) { + $ch = curl_init(); + curl_setopt($ch, CURLOPT_URL, $url); + curl_setopt($ch, CURLOPT_NOSIGNAL,1); + curl_setopt($ch, CURLOPT_TIMEOUT, 1); + curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0); // 对认证证书来源的检查 + curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0); // 从证书中检查SSL加密算法是否存在 + curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); //禁止直接显示获取的内容 + curl_setopt($ch, CURLOPT_HEADER, 0); //不需要HEAD + //curl_setopt($ch, CURLOPT_ENCODING, 'gzip'); + curl_exec($ch); + curl_close($ch); + $data[] = array('name' => 'ok', 'value' => '信息保存成功,请在8秒后检查更新页面。', 'url' => $url); + //如果是外部调用就返回结果,内部就不返回了 + if ($this->input->post('cache_url')) { + echo json_encode($data); + } + return $data; + } + + } + break; + + case 'ct'://子站点使用 + case 'sht': + case 'gl': + case 'mbj': + case 'yz': + $url = $this->config->item('site_url') . $url . '@cache@refresh'; + break; + default:return false; + break; + } + + $content = GET_HTTP($url); + if ($content === false) { + $data[] = array('name' => 'no', 'value' => sprintf($this->lang->line('update_cache_failed'), $url)); + } else { + //手动更新的话,接着更新CDN缓存 + $msg = $this->lang->line('update_cache_success'); + + if ($this->input->post('updatecdn') == 1) { + $notice = $this->update_cdn(); + if ($notice == 200) { + $msg .= $this->lang->line('update_cdn_success'); + } else { + $msg .= $this->lang->line('update_cdn_failed') . '
' . $notice; + } + } + $data[] = array('name' => 'ok', 'value' => $msg, 'url' => $url); + } + //如果是外部调用就返回结果,内部就不返回了 + if ($this->input->post('cache_url')) { + echo json_encode($data); + } + return $data; + } + + //更新CDN缓存 + public function update_cdn($static_html_url = false) { + $flag = false; //false:不更新,true:更新 + $update_site = array('jp', 'ru'); //需要更新CDN的站点 + //需要更新的url + $url = $static_html_url; + if (empty($url)) + $url = $this->input->post('cache_url'); + + //如果传递进来的url是带有域名,则对域名进行判断 + $tempu = parse_url($url); + if (isset($tempu['host'])) { + $url = isset($tempu['path']) ? $tempu['path'] : '/'; + $pad = $tempu['host']; + $flag = true; + } + //如果传递进来的url没有域名,则使用当前站点的信息进行判断 + else { + $url = str_replace($this->config->item('site_url'), '', $url); + $pad = str_replace('http://', '', $this->config->item('site_url')); + if (in_array($this->config->item('site_code'), $update_site)) + $flag = TRUE; + } + + //默认更新成功,如果不成功,则返回错误提示信息 + $notice = 200; + if ($flag) { + $result = GET_HTTP('https://openapi.us.cdnetworks.com/purge/rest/doPurge?user=ycc@chinahighlights.com&pass=cXi2UbsTrw9Urv@&pad=' . $pad . '&type=item&path=' . $url . '&output=json'); + $result = json_decode($result, true); + if ($result['resultCode'] != 200) + $notice = $result['notice'] . $result['details']; + } + return $notice; + } + + //获取产品信息,提供给用户选择进行绑定 + function get_products() { + $HT_productType = $this->input->post('product_type'); + $HT_productName = $this->input->post('product_name'); + //产品类型 + switch ($HT_productType) { + case 't': + $data['productList'] = $this->Landscape_model->search_list($HT_productName); + break; + default: + $data['productList'] = array(); + break; + } + $data['product_type'] = $HT_productType; + $product_list_page = $this->load->view('bootstrap/information_select_product', $data, true); + $data = array(); + $data[] = array('name' => 'ok', 'value' => $product_list_page); + echo json_encode($data); + return true; + } + + //显示备份的内容 + function backup_content($log_id) { + $data['log_info'] = $this->Logs_model->read($log_id); + $data['log_list'] = $this->Logs_model->get_all_backup_list($data['log_info']->log_res_id); + $this->load->view('bootstrap/header', $data); + $this->load->view('bootstrap/information_backup_content'); + $this->load->view('bootstrap/footer'); + } + + //保存自定义配置 + function save_meta() { + $im_ic_id = $this->input->post('im_ic_id'); + $im_key = $this->input->post('im_key'); + $im_value = $this->input->post('im_value'); + if ($im_ic_id && $im_key && $im_value !== false) { + $meta = $this->InfoMetas_model->get($im_ic_id, $im_key); + if ($meta === false) { + $this->InfoMetas_model->add($im_ic_id, $im_key, $im_value); + } else { + $this->InfoMetas_model->update($im_ic_id, $im_key, $im_value); + } + $data[] = array('name' => 'ok', 'value' => $this->lang->line('media_save_success')); + } else { + $data[] = array('name' => 'no', 'value' => $this->lang->line('media_save_error')); + } + echo json_encode($data); + return true; + } + + //保存自定义配置 + function delete_meta() { + $im_ic_id = $this->input->post('im_ic_id'); + $im_key = $this->input->post('im_key'); + if ($im_ic_id && $im_key) { + + $this->InfoMetas_model->delete($im_ic_id, $im_key); + $data[] = array('name' => 'ok', 'value' => $this->lang->line('media_delete_success')); + } else { + $data[] = array('name' => 'no', 'value' => $this->lang->line('media_save_error')); + } + echo json_encode($data); + return true; + } + +}