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;
+ }
+
+}