diff --git a/application/controllers/information.php b/application/controllers/information.php
index 5754cf89..47398286 100644
--- a/application/controllers/information.php
+++ b/application/controllers/information.php
@@ -1,3609 +1,3610 @@
-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->model('recommends_and_tips_model');
- $this->load->model('trippest_model'); //trippest产品
- $this->load->model('Feedback_model');
- $this->load->model('Price_model');
- $this->load->model('PrimeLinePrice_model');
- $this->load->library('Amplib'); //加载AMP处理类
- $this->load->library('Currency');
- $this->load->library('html_optimize_lib'); //加载HTML优化类
-
- }
-
- 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;
- }
-
- //[国际->国际]复制节点结构到任意站点的节点下面。-- lmr
- //is_id 信息结构ID,
- public function copy_by_is_id($src_is_id, $dest_is_id)
- {
- if (empty ($src_is_id) || empty ($src_is_id)) {
- echo 'need 2 is_id v1';
- return false;
- }
-
- $data = array();
- if ($src_is_id == $dest_is_id || empty ($src_is_id) || empty ($dest_is_id)) {
- echo 'need 2 is_id v2';
- return false;
- }
- // 源节点
- $src = $this->InfoStructures_model->Detail($src_is_id);
- $src_path = $this->Information_model->get_list_by_path($src->is_path, false, $src->is_sitecode);
- // 源子节点
- foreach ($src_path as $n => $item) {
- if ($item->is_id === $src->is_id) {
- unset($src_path[$n]);
- }
- }
- // 目标节点结构
- $dest = $this->InfoStructures_model->Detail($dest_is_id);
- $dest_path = $this->Information_model->get_list_by_path($dest->is_path, false, $dest->is_sitecode);
- // 目标子节点
- foreach ($dest_path as $n => $item) {
- if ($item->is_id === $dest->is_id) {
- unset($dest_path[$n]);
- }
- }
-
- // 新旧节点对应表
- $node_map = array();
- // 循环复制各个层级的节点。
- foreach ($src_path as $n => $item) {
-
- // 定位复制的父节点
- $target_is_id = $dest->is_id;
- foreach ($node_map as $old => $new) {
- if ($item->is_parent_id == $old) {
- $target_is_id = $new;
- }
- }
- // info_content
- $item_info_content = $this->InfoContents_model->get_ic_contents2($item->is_ic_id);
- $this->InfoContents_model->Add_with_sitecode(
- $item_info_content->ic_url,
- $item_info_content->ic_url_title,
- $item_info_content->ic_type,
- $item_info_content->ic_title,
- $item_info_content->ic_content,
- $item_info_content->ic_summary,
- $item_info_content->ic_seo_title,
- $item_info_content->ic_seo_description,
- $item_info_content->ic_seo_keywords,
- $item_info_content->ic_show_bread_crumbs,
- $item_info_content->ic_status,
- $item_info_content->ic_template,
- $item_info_content->ic_photo,
- $item_info_content->ic_photo_width,
- $item_info_content->ic_photo_height,
- $item_info_content->ic_recommend_tours,
- $item_info_content->ic_recommend_packages,
- $item_info_content->ic_ht_area_id,
- $item_info_content->ic_ht_area_type,
- $item_info_content->ic_ht_product_id,
- $item_info_content->ic_ht_product_type,
- $item_info_content->ic_author,
- $dest->is_sitecode
- );
-
- // info_meta
- $item_meta_amp = $this->InfoMetas_model->get($item->is_ic_id, 'AMP');
- $item_meta_ampbody = $this->InfoMetas_model->get($item->is_ic_id, 'AMP_BODY');
- $item_meta_ampcss = $this->InfoMetas_model->get($item->is_ic_id, 'AMP_CSS');
- $item_meta_ampscript = $this->InfoMetas_model->get($item->is_ic_id, 'AMP_SCRIPT');
- $item_meta_ampjson = $this->InfoMetas_model->get($item->is_ic_id, 'AMP_JSON');
- $item_meta_ampstatus = $this->InfoMetas_model->get($item->is_ic_id, 'AMP_STATUS');
- $item_meta_pcstatus = $this->InfoMetas_model->get($item->is_ic_id, 'AMP_BODY_PC_STATUS');
- $item_meta_pcbody = $this->InfoMetas_model->get($item->is_ic_id, 'AMP_BODY_PC');
- $item_meta_pccss = $this->InfoMetas_model->get($item->is_ic_id, 'AMP_CSS_PC');
- $item_meta_pcschema = $this->InfoMetas_model->get($item->is_ic_id, 'AMP_SCHEMA');
-
- if (!empty ($item_meta_amp))
- $this->InfoMetas_model->Add($this->InfoContents_model->insert_id, 'AMP', $item_meta_amp);
- if (!empty ($item_meta_ampbody))
- $this->InfoMetas_model->Add($this->InfoContents_model->insert_id, 'AMP_BODY', $item_meta_ampbody);
- if (!empty ($item_meta_ampcss))
- $this->InfoMetas_model->Add($this->InfoContents_model->insert_id, 'AMP_CSS', $item_meta_ampcss);
- if (!empty ($item_meta_ampscript))
- $this->InfoMetas_model->Add($this->InfoContents_model->insert_id, 'AMP_SCRIPT', $item_meta_ampscript);
- if (!empty ($item_meta_ampjson))
- $this->InfoMetas_model->Add($this->InfoContents_model->insert_id, 'AMP_JSON', $item_meta_ampjson);
- if (!empty ($item_meta_ampstatus))
- $this->InfoMetas_model->Add($this->InfoContents_model->insert_id, 'AMP_STATUS', $item_meta_ampstatus);
- if (!empty ($item_meta_pcstatus))
- $this->InfoMetas_model->Add($this->InfoContents_model->insert_id, 'AMP_BODY_PC_STATUS', $item_meta_pcstatus);
- if (!empty ($item_meta_pcbody))
- $this->InfoMetas_model->Add($this->InfoContents_model->insert_id, 'AMP_BODY_PC', $item_meta_pcbody);
- if (!empty ($item_meta_pccss))
- $this->InfoMetas_model->Add($this->InfoContents_model->insert_id, 'AMP_CSS_PC', $item_meta_pccss);
- if (!empty ($item_meta_pcschema))
- $this->InfoMetas_model->Add($this->InfoContents_model->insert_id, 'AMP_SCHEMA', $item_meta_pcschema);
-
- // gm 补充meta
- $item_meta_addon_css = $this->InfoMetas_model->get($item->is_ic_id, 'meta_addon_css');
- if (!empty ($item_meta_addon_css))
- $this->InfoMetas_model->Add($this->InfoContents_model->insert_id, 'meta_addon_css', $item_meta_addon_css);
-
- $item_meta_addon_js = $this->InfoMetas_model->get($item->is_ic_id, 'meta_addon_js');
- if (!empty ($item_meta_addon_js))
- $this->InfoMetas_model->Add($this->InfoContents_model->insert_id, 'meta_addon_js', $item_meta_addon_js);
-
- $item_meta_use_list_picture = $this->InfoMetas_model->get($item->is_ic_id, 'meta_use_list_picture');
- if (!empty ($item_meta_use_list_picture))
- $this->InfoMetas_model->Add($this->InfoContents_model->insert_id, 'meta_use_list_picture', $item_meta_use_list_picture);
-
- // 添加节点
- $this->InfoStructures_model->Add_with_sitecode($target_is_id, $this->InfoContents_model->insert_id, 999, $dest->is_sitecode);
- $node_map[$item->is_id] = $this->InfoStructures_model->insert_id;
-
- }
-
- print_r($node_map);
- // print_r($src);
- // print_r($src_path);
- // print_r($dest);
- // print_r($dest_path);
-
- //返回状态
- $data[] = array('name' => 'ok', 'value' => 'copy_by_is_id() success!');
- echo json_encode($data);
- return true;
- }
-
- //[德语->国际]复制节点结构到任意站点的节点下面。-- lmr
- //is_id 信息结构ID,
- public function copy_by_is_id_gm($src_is_id, $dest_is_id)
- {
- if (empty ($src_is_id) || empty ($src_is_id)) {
- echo 'need 2 is_id v1';
- return false;
- }
-
- $data = array();
- if ($src_is_id == $dest_is_id || empty ($src_is_id) || empty ($dest_is_id)) {
- echo 'need 2 is_id v2';
- return false;
- }
-
- // 源节点
- $src = $this->InfoStructures_model->Detail_gm($src_is_id);
- $src_path = $this->Information_model->get_list_by_path_gm($src->is_path, false, $src->is_sitecode);
- // 源子节点
- foreach ($src_path as $n => $item) {
- if ($item->is_id === $src->is_id) {
- unset($src_path[$n]);
- }
- }
-
- // 目标节点结构
- $dest = $this->InfoStructures_model->Detail($dest_is_id);
- $dest_path = $this->Information_model->get_list_by_path($dest->is_path, false, $dest->is_sitecode);
- // 目标子节点
- foreach ($dest_path as $n => $item) {
- if ($item->is_id === $dest->is_id) {
- unset($dest_path[$n]);
- }
- }
-
- // 新旧节点对应表
- $node_map = array();
- // 循环复制各个层级的节点。
- foreach ($src_path as $n => $item) {
-
- // 定位复制的父节点
- $target_is_id = $dest->is_id;
- foreach ($node_map as $old => $new) {
- if ($item->is_parent_id == $old) {
- $target_is_id = $new;
- }
- }
- // info_content
- $item_info_content = $this->InfoContents_model->get_ic_contents2_gm($item->is_ic_id);
- $this->InfoContents_model->Add_with_sitecode(
- $item_info_content->ic_url,
- $item_info_content->ic_url_title,
- $item_info_content->ic_type,
- $item_info_content->ic_title,
- $item_info_content->ic_content,
- $item_info_content->ic_summary,
- $item_info_content->ic_seo_title,
- $item_info_content->ic_seo_description,
- $item_info_content->ic_seo_keywords,
- $item_info_content->ic_show_bread_crumbs,
- $item_info_content->ic_status,
- $item_info_content->ic_template,
- $item_info_content->ic_photo,
- $item_info_content->ic_photo_width,
- $item_info_content->ic_photo_height,
- $item_info_content->ic_recommend_tours,
- $item_info_content->ic_recommend_packages,
- $item_info_content->ic_ht_area_id,
- $item_info_content->ic_ht_area_type,
- $item_info_content->ic_ht_product_id,
- $item_info_content->ic_ht_product_type,
- $item_info_content->ic_author,
- $dest->is_sitecode
- );
-
- // info_meta
- $item_meta_amp = $this->InfoMetas_model->get_gm($item->is_ic_id, 'AMP');
- $item_meta_ampbody = $this->InfoMetas_model->get_gm($item->is_ic_id, 'AMP_BODY');
- $item_meta_ampcss = $this->InfoMetas_model->get_gm($item->is_ic_id, 'AMP_CSS');
- $item_meta_ampscript = $this->InfoMetas_model->get_gm($item->is_ic_id, 'AMP_SCRIPT');
- $item_meta_ampjson = $this->InfoMetas_model->get_gm($item->is_ic_id, 'AMP_JSON');
- $item_meta_ampstatus = $this->InfoMetas_model->get_gm($item->is_ic_id, 'AMP_STATUS');
- $item_meta_pcstatus = $this->InfoMetas_model->get_gm($item->is_ic_id, 'AMP_BODY_PC_STATUS');
- $item_meta_pcbody = $this->InfoMetas_model->get_gm($item->is_ic_id, 'AMP_BODY_PC');
- $item_meta_pccss = $this->InfoMetas_model->get_gm($item->is_ic_id, 'AMP_CSS_PC');
- $item_meta_pcschema = $this->InfoMetas_model->get_gm($item->is_ic_id, 'AMP_SCHEMA');
-
- if (!empty ($item_meta_amp))
- $this->InfoMetas_model->Add($this->InfoContents_model->insert_id, 'AMP', $item_meta_amp);
- if (!empty ($item_meta_ampbody))
- $this->InfoMetas_model->Add($this->InfoContents_model->insert_id, 'AMP_BODY', $item_meta_ampbody);
- if (!empty ($item_meta_ampcss))
- $this->InfoMetas_model->Add($this->InfoContents_model->insert_id, 'AMP_CSS', $item_meta_ampcss);
- if (!empty ($item_meta_ampscript))
- $this->InfoMetas_model->Add($this->InfoContents_model->insert_id, 'AMP_SCRIPT', $item_meta_ampscript);
- if (!empty ($item_meta_ampjson))
- $this->InfoMetas_model->Add($this->InfoContents_model->insert_id, 'AMP_JSON', $item_meta_ampjson);
- if (!empty ($item_meta_ampstatus))
- $this->InfoMetas_model->Add($this->InfoContents_model->insert_id, 'AMP_STATUS', $item_meta_ampstatus);
- if (!empty ($item_meta_pcstatus))
- $this->InfoMetas_model->Add($this->InfoContents_model->insert_id, 'AMP_BODY_PC_STATUS', $item_meta_pcstatus);
- if (!empty ($item_meta_pcbody))
- $this->InfoMetas_model->Add($this->InfoContents_model->insert_id, 'AMP_BODY_PC', $item_meta_pcbody);
- if (!empty ($item_meta_pccss))
- $this->InfoMetas_model->Add($this->InfoContents_model->insert_id, 'AMP_CSS_PC', $item_meta_pccss);
- if (!empty ($item_meta_pcschema))
- $this->InfoMetas_model->Add($this->InfoContents_model->insert_id, 'AMP_SCHEMA', $item_meta_pcschema);
-
- // gm 补充meta
- $item_meta_addon_css = $this->InfoMetas_model->get_gm($item->is_ic_id, 'meta_addon_css');
- if (!empty ($item_meta_addon_css))
- $this->InfoMetas_model->Add($this->InfoContents_model->insert_id, 'meta_addon_css', $item_meta_addon_css);
-
- $item_meta_addon_js = $this->InfoMetas_model->get_gm($item->is_ic_id, 'meta_addon_js');
- if (!empty ($item_meta_addon_js))
- $this->InfoMetas_model->Add($this->InfoContents_model->insert_id, 'meta_addon_js', $item_meta_addon_js);
-
- $item_meta_use_list_picture = $this->InfoMetas_model->get_gm($item->is_ic_id, 'meta_use_list_picture');
- if (!empty ($item_meta_use_list_picture))
- $this->InfoMetas_model->Add($this->InfoContents_model->insert_id, 'meta_use_list_picture', $item_meta_use_list_picture);
-
- // 添加节点
- $this->InfoStructures_model->Add_with_sitecode($target_is_id, $this->InfoContents_model->insert_id, 999, $dest->is_sitecode);
- $node_map[$item->is_id] = $this->InfoStructures_model->insert_id;
-
- }
-
- print_r($node_map);
- // print_r($src);
- // print_r($src_path);
- // print_r($dest);
- // print_r($dest_path);
-
- //返回状态
- $data[] = array('name' => 'ok', 'value' => 'copy_by_is_id() success!');
- echo json_encode($data);
- 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);
-
- //删除前,备份amp的meta标签-isid。
- //$meta_value = $this->InfoMetas_model->get($info_detail->ic_id, 'AMP_JSON');
- //if ($meta_value) {
- // $this->Logs_model->backup_meta($info_detail->ic_id, $meta_value, 'AMP_JSON_' . $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);
-
- //增加一项,属于这个区域,但是结构数据层次不准确的也要列出来
- //信息内容
- $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('gh_vac', 'gh_vc', 'gh_jp', 'gh_ru', 'gh_it', 'gh_gm'))) {
- $this->config->set_item('templates', $this->config->item('templates_gh'));
- }
-
- 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'));
- }
-
- if ($Structure->is_sitecode == 'ct') {
- $data['infoTypeList'] = $this->config->item('InfoType_ct');
- } elseif ($Structure->is_sitecode == 'ah') {
- $data['infoTypeList'] = $this->config->item('InfoType_ah');
- } else {
- 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 if ($this->config->item('site_code') === 'gm') {
- $this->config->set_item('templates', $this->config->item('templates_product_gm'));
- $data['infoTypeList'] = $this->config->item('InfoType_product_gm');
- } else {
- $this->config->set_item('templates', $this->config->item('templates_product'));
- }
-
- break;
- default:
- $data['infoTypeList'] = array('不设置' => 'none', '首页' => 'root');
- 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']);
- }
-
- //获取移动优先的模板,如果有的话
- //增加判断站点,每个站点需要读取的模板不一样。 20210311 zp
- //取消预览,严重影响速度 2023-08-15 ycc
- /*
- if (is_mobile_first()) {
- $mobile_first_template_path = 'mobile_first/' . $this->config->item('site_code');
- if (is_file(APPPATH . 'views/' . $mobile_first_template_path . EXT)) {
- $data['mobile_first_template'] = $this->load->view($mobile_first_template_path, '', true);
- //主样式表,内联模式
- $main_css_string = compress_css(GET_HTTP('https://proxy-data.chinahighlights.com/css/mobile-first.css'));
- $data['mobile_first_template'] = str_replace('', '', $data['mobile_first_template']);
- //查找是否有静态文件
- if ($this->html_file_helper('find', $data['information']->ic_url)) {
- $data['has_html_file'] = true;
- }
- } else {
- $data['mobile_first_template'] = '没有找到移动模板';
- }
- }
- */
-
- //判断是否生成静态文件
- if (is_mobile_first()) {
- //查找是否有静态文件
- if ($this->html_file_helper('find', $data['information']->ic_url)) {
- $data['has_html_file'] = true;
- }
- }
-
- $this->load->view('bootstrap3/header', $data);
- $this->load->view('bootstrap3/information_edit');
- $this->load->view('bootstrap3/footer');
- }
-
- 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 {
- $ic_content = $this->input->post('ic_content');
- if (strcasecmp($this->config->item('site_code'), "chinatravel") == 0) { //ct站替换中国大陆的英文
- if (stripos($ic_content, 'mainland china') !== false) {
- $ic_content = str_ireplace('mainland china', 'the mainland of china', $ic_content);
- }
- }
-
- $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'), $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, "ch") == 0 && !empty ($auto_update_cache)) {
- //读取模板生成PC和移动优先文件
- $information_new = $this->Information_model->Detail($this->input->post('is_id'));
- //$this->benchmark->mark('000');
- $recommand_information = $this->recommand_information($information);
- //$this->benchmark->mark('111');
- $this->make_www_cache('mobile', $information_new, $recommand_information);
- $this->make_www_cache('pc', $information_new, $recommand_information);
- //echo ' |000~111: '.$this->benchmark->elapsed_time('000', '111');
- } else if (strcasecmp($site_code, "ah") == 0 && !empty ($auto_update_cache)) {
- //读取模板生成PC和移动优先文件
- $recommand_information = $this->recommand_information($information);
- $information_new = $this->Information_model->Detail($this->input->post('is_id'));
- $this->make_www_cache_ah('mobile', $information_new, $recommand_information);
- $this->make_www_cache_ah('pc', $information_new, $recommand_information);
- } else if (strcasecmp($site_code, "gh") == 0 && !empty ($auto_update_cache)) {
- $recommand_information = $this->recommand_information($information);
- $information_new = $this->Information_model->Detail($this->input->post('is_id'));
- $this->make_www_cache_gh('mobile', $information_new, $recommand_information);
- $this->make_www_cache_gh('pc', $information_new, $recommand_information);
- } else if (strcasecmp($site_code, "chinatravel") == 0 && !empty ($auto_update_cache)) {
- //chinatravel读取模板生成PC和移动优先文件
- $information_new = $this->Information_model->Detail($this->input->post('is_id'));
- $this->make_www_cache_ct($information_new);
- // $this->make_www_cache_ct('pc', $information_new);
- } else if (strcasecmp($site_code, "shanghai") == 0 && !empty ($auto_update_cache)) {
- $information_new = $this->Information_model->Detail($this->input->post('is_id'));
- $this->make_www_cache_sh($information_new);
- } else if (strcasecmp($site_code, "cht") == 0 && !empty ($auto_update_cache)) {
- $update_info_log = $this->update_cache($ic_url);
- } else if (strcasecmp($site_code, "ah") == 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 && strcasecmp($site_code, "ah") != 0) { //非cht站点并且非GM并且非AH
- $update_info_log = $this->update_cache($ic_url);
- } else if (strcasecmp($site_code, "ct") == 0 && !empty ($auto_update_cache)) {
- $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, $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不重复检查
- public 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格式检查,不能包含大小写、空格等特殊字符
- public 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;
- }
-
- public function update_www_cache($ic_id)
- {
- $information = $this->Information_model->detail_by_ic_id($ic_id);
- if (empty ($information)) {
- echo json_encode(array('name' => 'no', 'data' => '找不到这个页面'));
- return false;
- }
- if ($this->html_file_helper('find', $information->ic_url)) {
- $recommand_information = $this->recommand_information($information);
- //用于批量更新,CH和chinatravel分开 ,20210317 zp
- if ($this->config->item('site_code') == 'ch') {
- $this->make_www_cache('pc', $information, $recommand_information);
- $this->make_www_cache('mobile', $information, $recommand_information);
- } else if ($this->config->item('site_code') == 'ah') {
- $this->make_www_cache_ah('pc', $information, $recommand_information);
- $this->make_www_cache_ah('mobile', $information, $recommand_information);
- } else if ($this->config->item('site_code') == 'chinatravel') {
- $this->make_www_cache_ct($information);
- // $this->make_www_cache_ct('mobile', $information);
- } else if ($this->config->item('site_code') == 'shanghai') {
- $this->make_www_cache_sh($information);
- } else if ($this->config->item('site_code') == 'gh') {
- $this->make_www_cache_gh('pc', $information, $recommand_information);
- $this->make_www_cache_gh('mobile', $information, $recommand_information);
- }
-
- echo json_encode(array('name' => 'yes', 'data' => '更新成功!'));
- return true;
- } else {
- echo json_encode(array('name' => 'no', 'data' => '没有发布静态页面: ' . $information->ic_url));
- return false;
- }
- }
-
- //静态文件操作
- public function html_file_helper($active = 'find', $ic_url = false)
- {
- if (empty ($ic_url)) {
- $ic_url = $this->input->get_post('ic_url');
- }
- if (empty ($ic_url)) {
- return false;
- }
- $html_file = $this->config->item('cache')[$this->config->item('site_code')]['cache_path'] . $ic_url;
- $html_file = str_replace("\\", "/", $html_file);
- if (substr($html_file, -1, 1) == '/') {
- $html_file = $html_file . 'index.htm';
- }
- $html_file_mobile = $html_file . '-mobile.htm';
- $html_file_pc = $html_file . '-pc.htm';
-
- switch ($active) {
- case 'find': //寻找静态文件
- if (is_file($html_file_mobile) || is_file($html_file_pc)) {
- return true;
- } else {
- return false;
- }
- // break;
- case 'delete':
- if (is_file($html_file_mobile)) {
- unlink($html_file_mobile);
- }
- if (is_file($html_file_pc)) {
- unlink($html_file_pc);
- }
- echo '删除静态文件成功! ' . $ic_url;
- break;
- default:
- return false;
- }
- return false;
- }
-
- //生成静态文件 $device='mobile' or 'pc'
- public function make_www_cache($device, $information, $recommand_information)
- {
- $data = array();
- switch ($device) {
- case 'mobile':
- //获取移动优先的模板,如果有的话
- $template_path = 'mobile_first/' . $this->config->item('site_code');
- if (is_file(APPPATH . 'views/' . $template_path . EXT)) {
- $template = $this->load->view($template_path, '', true);
- $html_path_ext = '-mobile.htm';
- } else {
- return false;
- }
- break;
- case 'pc':
- //获取PC的模板,如果有的话
- $template_path = 'mobile_first/' . $this->config->item('site_code');
- if (is_file(APPPATH . 'views/' . $template_path . '-pc' . EXT)) {
- $template = $this->load->view($template_path . '-pc', '', true);
- $html_path_ext = '-pc.htm';
- } else {
- return false;
- }
- break;
- default:
- }
- $breadcrumb_data = $this->Information_model->get_path_exclude_self($information->is_id, $information->is_path);
-
- $breadcrumb_structured_data_content = $this->load->view(
- $template_path . '-structured-data-breadcrumb',
- array('breadcrumb_data' => $breadcrumb_data, 'information' => $information),
- true
- );
- $template = str_replace(
- '',
- $breadcrumb_structured_data_content,
- $template
- );
-
- //替换模板中的标签
- $template = str_replace('', $information->ic_seo_title, $template);
- $template = str_replace('', $information->ic_seo_description, $template);
- $template = str_replace('', $information->ic_seo_keywords, $template);
- $template = str_replace('', $this->config->item('site_url') . $information->ic_url, $template);
-
- // 动态加载反馈标签,第一个城市不足八条,使用第二城市数据。
- // HTLM:
- // 解析结果:; Shanghai,Beijing
- $feedback_array = [];
- preg_match_all('^^', $information->ic_content, $feedback_array);
- if (!empty ($feedback_array)) {
- foreach ($feedback_array[0] as $index => $tag_name) {
- $city_name_string = $feedback_array[1][$index];
- $city_name_list = explode(',', $city_name_string);
- $feedback_list = $this->Feedback_model->get_feedback_by_city_list($city_name_list);
- // 防止触发 Google 网络垃圾政策只返回前三条
- $top3_feedback_list = array_slice($feedback_list, 0, 3);
- $feedback_content = $this->load->view(
- 'mobile_first/ch-feedback-list',
- array('feedback_list' => $top3_feedback_list),
- true
- );
- $information->ic_content = str_replace(
- $tag_name,
- $feedback_content,
- $information->ic_content
- );
- }
- }
-
- // 动态加载反馈标签,每个城市三十条反馈。
- // HTLM:
- // 解析结果:; Bangkok
- $feedback30_array = [];
- preg_match_all('^^', $information->ic_content, $feedback30_array);
- if (!empty ($feedback30_array)) {
- foreach ($feedback30_array[0] as $index => $tag_name) {
- $city_name = $feedback30_array[1][$index];
- $feedback_list = $this->Feedback_model->get_feedback_by_city_name($city_name);
- $feedback_30_content = $this->load->view(
- 'mobile_first/ch-feedback-30-list',
- array('feedback_list' => $feedback_list),
- true
- );
- $information->ic_content = str_replace(
- $tag_name,
- $feedback_30_content,
- $information->ic_content
- );
- }
- }
-
- // 集合页面反馈标签
- $feedback_city_array = [];
- preg_match_all('^^', $information->ic_content, $feedback_city_array);
- if (!empty ($feedback_city_array)) {
- foreach ($feedback_city_array[0] as $index => $tag_name) {
- $city_name_string = $feedback_city_array[1][$index];
- $city_name_list = explode(',', $city_name_string);
- $feedback_city_list = [];
- foreach ($city_name_list as $index => $city_name) {
- $feedback_list = $this->Feedback_model->get_feedback_by_city_name($city_name, 5);
- $data_name = str_replace(" ", "_", $city_name);
- $feedback_city_list[$data_name] = $feedback_list;
- }
-
- $feedback_city_content = $this->load->view(
- 'mobile_first/ch-feedback-city-list',
- $feedback_city_list,
- true
- );
- $information->ic_content = str_replace(
- $tag_name,
- $feedback_city_content,
- $information->ic_content
- );
- }
- }
-
- // 天气预报模板
- $weather_forecast_content = $this->load->view(
- $template_path . '-weather-forecast',
- array(),
- true
- );
- $information->ic_content = str_replace(
- '',
- $weather_forecast_content,
- $information->ic_content
- );
-
- // 火车票首页搜索框 --zp
- $template_TrainSearch = "";
- if ($information->ic_url == "/china-trains/hometest.htm" || $information->ic_url == "/china-trains/") {
- $template_TrainSearch = $this->load->view($template_path . '-train-index', null, true);
- $information->ic_content = str_replace(
- '',
- $template_TrainSearch,
- $information->ic_content
- );
- }
-
- //火车票搜索框添加 -- zp
- if ($information->is_parent_id == "278008234" && $information->ic_url != "/china-trains/") { //20240403 字节
- //本地测试的火车父类ID为:278035939 。网前为:278008234
- $meta_train_city = get_meta($information->ic_id, 'meta_train_city'); //默认的出发及目的地城市 , beijing|shanghai
- $data_TrainCity = array();
- $data_TrainCity["from"] = "";
- $data_TrainCity["to"] = "";
- if (!empty ($meta_train_city)) {
- if (strpos($meta_train_city, '|') !== false) {
- $arrTrainCity = explode('|', $meta_train_city);
- $data_TrainCity["from"] = $arrTrainCity[0];
- $data_TrainCity["to"] = $arrTrainCity[1];
- }
- }
-
- $template_TrainSearch = $this->load->view($template_path . '-train-detail', $data_TrainCity, true);
- $template = str_replace('', $template_TrainSearch, $template);
- }
-
- $meta_product_code = get_meta($information->ic_id, 'meta_product_code');
- $meta_google_ad_article = get_meta($information->ic_id, 'meta_google_ad_article');
-
- $ads_by_google = !empty($meta_google_ad_article);
- //H1模板替换
- $data_H1 = array();
- $data_H1['infocategory'] = $this->Information_model->get_detail_by_path($information->is_path, 1); //信息所属分类,获取信息顶级节点内容
- $data_H1['author'] = ''; //获取作者信息
- $author = $this->Operator_model->get_author_nikename($information->ic_author);
- if (!empty ($author)) {
- $data_H1['author'] = $author->OPI_FirstName;
- } else {
- $author_web = $this->Infoauthors_model->detail_by_id($information->ic_author); //原始作者,可能是在线作者等
- if (!empty ($author_web)) {
- $data_H1['author'] = $author_web->a_name;
- }
- }
-
- // 检查图片地址格式
- $parsed_photo = $information->ic_photo;
- $parsed_photo_url = parse_url($information->ic_photo);
- if (
- (!isset ($parsed_photo_url['host']) || !isset ($parsed_photo_url['scheme'])) && isset ($parsed_photo_url['path'])
- ) {
- $parsed_photo = 'https://images.chinahighlights.com' . $parsed_photo_url['path'];
- }
-
- $data_H1['ic_title'] = $information->ic_title;
- $data_H1['ic_photo'] = $parsed_photo;
- $data_H1['breadcrumb_data'] = $breadcrumb_data;
- $data_H1['ads_by_google'] = $ads_by_google;
- $data_H1['ic_datetime'] = $information->ic_datetime;
- $template_H1 = $this->load->view($template_path . '-h1', $data_H1, true);
- $template = str_replace('', $template_H1, $template);
-
- //非产品页面
- if (empty ($meta_product_code)) {
- $template = str_replace('?product_code=', '', $template);
-
- $article_structured_data_content = $this->load->view(
- $template_path . '-structured-data-article',
- array('information' => $information, 'author' => $author),
- true
- );
- $template = str_replace('', $article_structured_data_content, $template);
-
- $info_page_form_content = $this->load->view($template_path . '-info-page-form', false, true);
- $information->ic_content = str_replace('', $info_page_form_content, $information->ic_content);
-
- $visa_free_tester_content = $this->load->view($template_path . '-visa-free-tester', false, true);
- $information->ic_content = str_replace('', $visa_free_tester_content, $information->ic_content);
- } else {
- $inquiry_form_template = $this->load->view($template_path . '-inquiry-form', array('meta_product_code' => $meta_product_code), true);
- $template = str_replace('?product_code=', '?product_code=' . $meta_product_code, $template);
- $information->ic_content = str_replace('', $inquiry_form_template, $information->ic_content);
- }
-
- // CH: 1; AH: 28; GH : 33
- $price_tag_list = $this->parse_price_tag($information->ic_content, 1);
-
- foreach ($price_tag_list as $price_tag) {
- $information->ic_content = str_replace(
- $price_tag['placeholder'],
- $price_tag['price_number'],
- $information->ic_content
- );
- }
-
- //---day tours--- 20210922 zp
- //本地 278035929
- //网前 278008224
- if ($information->is_parent_id == "278008224") {
- if (!empty ($meta_product_code)) {
- //准备需要的数据
- $dataTrippest = [];
-
- $dataTrippest["ic_title"] = $information->ic_title;
- //附加选项
- $t_Type = get_meta($information->ic_id, 'meta_trippest_type');
- if (isset ($t_Type)) {
- $dataTrippest["t_Type"] = $t_Type;
- } else {
- $dataTrippest["t_Type"] = "general";
- }
-
- $t_package = get_meta($information->ic_id, 'meta_trippest_package');
- $dataTrippest["t_package"] = explode("|", $t_package);
- $t_excludedate = get_meta($information->ic_id, 'meta_trippest_excludedate');
- $dataTrippest["t_excludedate"] = $t_excludedate;
- $t_includedate = get_meta($information->ic_id, 'meta_trippest_includedate');
- $dataTrippest["t_includedate"] = $t_includedate;
- $t_excludemonth = get_meta($information->ic_id, 'meta_trippest_excludemonth');
- $dataTrippest["t_excludemonth"] = $t_excludemonth;
- $dataTrippest["t_limitperson"] = get_meta($information->ic_id, 'meta_trippest_limitperson');
-
- //获取翰特对应信息
- $dataTrippest['PagDetail'] = $this->trippest_model->get_pagdetail($meta_product_code);
- //所属那个目的地 select SYC_SN,SYC2_CodeDiscribe from dbo.V_System_Code where SYC_Type=132 and LGC_LGC=2
- // 132001 北京目的地
- // 132002 上海目的地
- // 132003 西安目的地
- // 132004 桂林目的地
- // 132005 成都目的地
- $PAG_SourceType = $dataTrippest['PagDetail']->PAG_SourceType;
- switch ($PAG_SourceType) {
- case '132001':
- $dataTrippest['PAG_SourceType'] = "beijing";
- break;
- case '132002':
- $dataTrippest['PAG_SourceType'] = "shanghai";
- break;
- case '132003':
- $dataTrippest['PAG_SourceType'] = "xian";
- break;
- case '132004':
- $dataTrippest['PAG_SourceType'] = "guilin";
- break;
- case '132005':
- $dataTrippest['PAG_SourceType'] = "chengdu";
- break;
- case '132006':
- $dataTrippest['PAG_SourceType'] = "zhangjiajie";
- break;
- case '132007':
- $dataTrippest['PAG_SourceType'] = "huangshan";
- break;
- default:
- $dataTrippest['PAG_SourceType'] = "";
- break;
- }
-
- //每周发团
- $PAG_Scheme = $dataTrippest['PagDetail']->PAG_Scheme;
- $dataTrippest['PAG_Scheme'] = $PAG_Scheme;
- //接送
- if ($dataTrippest["t_Type"] == "transfer" || 1 == 1) {
- $PagList = $this->trippest_model->GetTransfer($dataTrippest['PagDetail']->PAG_SN);
- $dataTrippest["PagList"] = $PagList;
- }
-
- //价格
- // $price = $this->trippest_model->get_price("BJALC-1",2);
- $price = $this->trippest_model->get_price($dataTrippest['PagDetail']->PAG_Code, 2);
- $showPrice = "";
- if (!empty ($price)) {
- $PKP_AdultNetPrice = $price->PKP_AdultNetPrice;
- $PKP_AdultSpecialPrice = $price->PKP_AdultSpecialPrice;
- if ($PKP_AdultSpecialPrice > 0) {
- $showPrice = $PKP_AdultSpecialPrice;
- } else {
- $showPrice = $PKP_AdultNetPrice;
- }
- }
- $dataTrippest["showPrice"] = $showPrice;
-
- //替换内容
- $trippest_detail_template = $this->load->view($template_path . '-daytours-detail', $dataTrippest, true);
-
- // print_r($trippest_detail_template);
- // die();
- $information->ic_content = str_replace('', $trippest_detail_template, $information->ic_content);
- }
- }
-
- //---day tours end ----
-
- //信息推荐
- $template_recommand = $recommand_information; //$this->recommand_information($information); 从外面传进来,pc和移动只需要查一次,减少数据库负担
- $template = str_replace('', $this->load->view($template_path . '-next', array('recommands' => $template_recommand), true), $template);
- // //广告,改叫tips,防止被插件屏蔽
- if (!empty ($template_recommand['Tips Right TOP'])) {
- $template = str_replace('', "", $template);
- }
- if (!empty ($template_recommand['Tips Right'])) {
- $template = str_replace('', "" . $template_recommand['Tips Right']->it_content . "
", $template);
- }
-
- // /day-tours/(278008224) 节点不使用推荐信息
- if ($information->is_parent_id == '278008224') {
- } else {
- // 右侧列表广告
- $tips_right_a = [];
- $tips_right_b = [];
- $tips_right_c = [];
- for ($i = 1; $i <= 12; $i++) {
- $key = 'List Tips Right A_' . $i;
- if (array_key_exists($key, $recommand_information) && $recommand_information[$key]) {
- $tips_right_a[] = $recommand_information[$key];
- }
- }
- for ($i = 1; $i <= 12; $i++) {
- $key = 'List Tips Right B_' . $i;
- if (array_key_exists($key, $recommand_information) && $recommand_information[$key]) {
- $tips_right_b[] = $recommand_information[$key];
- }
- }
- for ($i = 1; $i <= 12; $i++) {
- $key = 'List Tips Right C_' . $i;
- if (array_key_exists($key, $recommand_information) && $recommand_information[$key]) {
- $tips_right_c[] = $recommand_information[$key];
- }
- }
-
- $tips_right_list_content = $this->load->view(
- 'mobile_first/ch-tips-right-list',
- array(
- 'tips_right_a' => $tips_right_a,
- 'tips_right_b' => $tips_right_b,
- 'tips_right_c' => $tips_right_c
- ),
- true
- );
-
- $template = str_replace('', $tips_right_list_content, $template);
- }
-
- //文中的信息推荐
- if (strpos($information->ic_content, '') !== false) {
- $information->ic_content = str_replace('', $this->load->view($template_path . '-recommends-article', array('recommands' => $template_recommand), true), $information->ic_content);
- }
- //文中的线路推荐
- if (strpos($information->ic_content, '') !== false) {
- $information->ic_content = str_replace('', $this->load->view($template_path . '-recommends-tour', array('recommands' => $template_recommand), true), $information->ic_content);
- }
-
- // 未勾选In Article 广告时,加入标签 ,让 ezoic 识别出该页面不展示广告。
- if (empty ($meta_google_ad_article) || !$meta_google_ad_article) {
- $template = str_replace(
- '',
- '',
- $template
- );
- } else {
- $template = str_replace(
- '',
- '',
- $template
- );
- }
-
- //替换内容中广告
- $temp_array = array();
- preg_match_all('^^', $information->ic_content, $temp_array);
- if (!empty ($temp_array[1])) {
- foreach ($temp_array[1] as $key => $item) {
- $tips_detail = $this->recommends_and_tips_model->tips_detail($item);
- if ($tips_detail) {
- $information->ic_content = str_replace($temp_array[0][$key], $tips_detail->it_content, $information->ic_content);
- }
- }
- }
-
- //顶部全屏大图
- if ($device == 'mobile') { //移动端读取移动大图
- $meta_addon_picture = get_meta($information->ic_id, 'meta_addon_picture_mobile');
- } else {
- $meta_addon_picture = get_meta($information->ic_id, 'meta_addon_picture');
- }
-
- //顶部视频
- $meta_news_video = get_meta($information->ic_id, 'meta_news_video');
- $meta_video_picture = get_meta($information->ic_id, 'meta_video_picture');
- if (!empty ($meta_news_video) && !empty ($meta_video_picture)) {
- $template = str_replace('', '', $template);
-
- }
-
- if (is_file('D:/wwwroot/origin-data.chinahighlights.com/css/mobile-first.css')) { //主样式表,内联模式,优先读取本地,没有在从网络读取,为了加速
- $main_css_string = compress_css(file_get_contents('D:/wwwroot/origin-data.chinahighlights.com/css/mobile-first.css'));
- } else {
- $main_css_string = compress_css(GET_HTTP('https://proxy-data.chinahighlights.com/css/mobile-first.css'));
- }
- $template = str_replace('', '', $template);
-
- // /china-trains/ 节点
- if ($information->is_parent_id == "278008234") {
- $template = str_replace(
- '',
- '',
- $template
- );
- }
- //额外样式
- $meta_addon_css = get_meta($information->ic_id, 'meta_addon_css');
- if (!empty ($meta_addon_css)) {
- if ($meta_addon_css == 'https://proxy-data.chinahighlights.com/css/tour-detail-former.css' && is_file('D:/wwwroot/origin-data.chinahighlights.com/css/tour-detail-former.css')) {
- $meta_addon_css_string = compress_css(file_get_contents('D:/wwwroot/origin-data.chinahighlights.com/css/tour-detail-former.css'));
- } else {
- $meta_addon_css_string = compress_css(GET_HTTP($meta_addon_css));
- }
- $template = str_replace('', '', $template);
- }
- //额外js
- $meta_addon_js = get_meta($information->ic_id, 'meta_addon_js');
- if (!empty ($meta_addon_js)) {
- $template = str_replace('', '', $template);
- }
-
- $meta_index_set = get_meta($information->ic_id, 'meta_index_set');
- if (!empty ($meta_index_set)) {
- $template = str_replace('', '', $template);
- }
- //设置内容图片缓加载
- $lazy_content = $this->html_optimize_lib->set_lazy_loader($information->ic_content, 'https://data.chinahighlights.com/grey.gif');
- $template = str_replace('', $lazy_content, $template);
-
- //替换内容中各种标签
- $tag_why_us = $this->load->view($template_path . '-why-us', false, true);
- $template = str_replace('', $tag_why_us, $template);
-
- //Google广告代码
- //if (!empty(get_meta($information->ic_id, 'meta_google_ad_content'))) {
- $template = str_replace('', '', $template);
- //}
- //社媒分享图片
- $full_ic_photo = '';
- if (!empty ($information->ic_photo)) {
- $full_ic_photo = $this->config->item('site_image_url') . $information->ic_photo;
- } else {
- $full_ic_photo = get_meta($information->ic_id, 'meta_addon_picture_mobile');
- }
- if (!empty ($full_ic_photo)) {
- $template = str_replace('', '', $template);
- }
- //设置图片尺寸
- if (is_dir('D:/wwwroot/origin-images.chinahighlights.com') && is_dir('D:/wwwroot/origin-www.chinahighlights.com')) {
- $template = $this->html_optimize_lib->set_image_size_local($template, 'D:/wwwroot/origin-www.chinahighlights.com', 'D:/wwwroot/origin-images.chinahighlights.com');
- } else {
- $template = $this->html_optimize_lib->set_image_size($template);
- }
- // /travelguide/chinese-zodiac/monthly-fortune-for-dog.htm
- $html_path = $this->config->item('cache')[$this->config->item('site_code')]['cache_path'] . $information->ic_url;
- $html_path = str_replace("\\", "/", $html_path);
- if (substr($html_path, -1, 1) == '/') {
- $html_path = $html_path . 'index.htm';
- }
- $html_path .= $html_path_ext;
- create_folder_by_path(dirname($html_path));
- file_put_contents($html_path, $template, LOCK_EX);
- }
-
- public function test_recommand()
- {
- $information = $this->Information_model->Detail($this->input->get('is_id'));
- $recommand_information = $this->recommand_information($information);
- // var_dump($recommand_information);
- $tips_right_a = [];
- $tips_right_b = [];
- $tips_right_c = [];
- for ($i = 1; $i <= 12; $i++) {
- $key = 'List Tips Right A_' . $i;
- if (array_key_exists($key, $recommand_information) && $recommand_information[$key]) {
- $tips_right_a[] = $recommand_information[$key];
- }
- }
- for ($i = 1; $i <= 12; $i++) {
- $key = 'List Tips Right B_' . $i;
- if (array_key_exists($key, $recommand_information) && $recommand_information[$key]) {
- $tips_right_b[] = $recommand_information[$key];
- }
- }
- for ($i = 1; $i <= 12; $i++) {
- $key = 'List Tips Right C_' . $i;
- if (array_key_exists($key, $recommand_information) && $recommand_information[$key]) {
- $tips_right_c[] = $recommand_information[$key];
- }
- }
-
- echo 'List Tips Right A: ' . COUNT($tips_right_a);
- echo '; List Tips Right B: ' . COUNT($tips_right_b);
- echo '; List Tips Right C: ' . COUNT($tips_right_c);
-
- $tips_right_list_content = $this->load->view(
- 'mobile_first/ah-tips-right-list',
- array(
- 'tips_right_a' => $tips_right_a,
- 'tips_right_b' => $tips_right_b,
- 'tips_right_c' => $tips_right_c
- ),
- true
- );
- echo $tips_right_list_content;
- }
-
- public function test_feedback()
- {
- $feedback_newest = $this->Feedback_model->get_feedback_newest();
- var_dump($feedback_newest);
- echo '------------------------------------------------------';
- $feedback_newest = $this->Feedback_model->get_feedback_newest(10);
- var_dump($feedback_newest);
- }
-
- public function test_ch_feedback30()
- {
- $feedback30_array = [];
- preg_match_all('^^', '', $feedback30_array);
- if (!empty ($feedback30_array)) {
- foreach ($feedback30_array[0] as $index => $tag_name) {
- $city_name = $feedback30_array[1][$index];
- $feedback_list = $this->Feedback_model->get_feedback_by_city_name($city_name, 2);
- $feedback_content = $this->load->view(
- 'mobile_first/ch-feedback-30-list',
- array('feedback_list' => $feedback_list),
- true
- );
- echo $feedback_content;
- }
- }
- }
-
- public function test_get_feedback_by_city_name()
- {
-
- $feedback_list = $this->Feedback_model->get_feedback_by_city_name('Bangkok', 5);
- var_dump($feedback_list);
- }
-
- public function test_feedback_city_list()
- {
- $feedback_city_array = [];
- preg_match_all('^^', '', $feedback_city_array);
- if (!empty ($feedback_city_array)) {
- foreach ($feedback_city_array[0] as $index => $tag_name) {
- $city_name_string = $feedback_city_array[1][$index];
- $city_name_list = explode(',', $city_name_string);
- $feedback_city_list = [];
- foreach ($city_name_list as $index => $city_name) {
- $feedback_list = $this->Feedback_model->get_feedback_by_city_name($city_name, 5);
- $data_name = str_replace(" ", "_", $city_name);
- $feedback_city_list[$data_name] = $feedback_list;
- }
-
- // header('Content-Type: application/json');
- // echo json_encode($feedback_city_list);
-
- $feedback_content = $this->load->view(
- 'mobile_first/ah-feedback-city-list',
- $feedback_city_list,
- true
- );
- echo $feedback_content;
- }
- }
- }
-
- // #ah-mtc-3,st,2#
- // CH: 1; AH: 28; GH : 33
- public function test_price()
- {
- $price_rule = base64_decode($this->input->get('price_rule'));
- $dept_sn = $this->input->get('dept_sn');
- $price_item_array = $this->price_pregmatch($price_rule);
- echo 'price_item_array: ';
- var_dump($price_item_array);
-
- $price_tag_list = $this->parse_price_tag($price_rule, $dept_sn);
- echo '
price_tag_list: ';
- var_dump($price_tag_list);
- }
-
- /*!
- * 页面中有价格标签,查出价格并替换内容
- * @author LiaoYijun
- * @date 2023-05-12
- * @param string $price_content 包含价格标签的内容
- * @return array 包含价格与占位符的数组
- */
- public function parse_price_tag($price_content, $dept_sn = 28)
- {
- $price_item_array = $this->price_pregmatch($price_content);
- $price_tag_list = [];
- if (!empty ($price_item_array)) {
- foreach ($price_item_array as $price_item) {
- $price_date = !empty ($price_item->price_date) ? $price_item->price_date : date('Y-m-d', time() + 86400 * 7); //当前时间7天后的价格
- $price_number = '';
- //优先读取新的价格体系
- $price = $this->PrimeLinePrice_model->search($price_item->cli_no, 1, $price_item->cli_grade, $price_item->person_size, $price_date, $dept_sn);
- if (!empty ($price)) {
- switch (strtoupper($price_item->price_people)) {
- case 'A':
- $price_number = $price->PLP_AdultUnitPrice;
- break;
- case 'C':
- $price_number = $price->PLP_ChildUnitPrice;
- break;
- case 'B':
- $price_number = $price->PLP_BabyUnitPrice;
- break;
- case 'R':
- $price_number = $price->PLP_RoomDiffPrice;
- break;
- case 'AR':
- $price_number = $price->PLP_AdultUnitPrice + $price->PLP_RoomDiffPrice; //成人加单间房差
- break;
- default:
- $price_number = $price->PLP_AdultUnitPrice;
- }
- } else {
- $price = $this->Price_model->search($price_item->cli_no, 1, $price_item->cli_grade, false, $price_date);
- if (!empty ($price)) {
-
- switch (strtoupper($price_item->price_people)) {
- case 'A':
- switch ($price_item->person_size) {
- case '1':
- $price_number = $price->CLP_OneAdultPriceRMB;
- break;
- case '2': //25
- $price_number = $price->CLP_TwoToFiveAdultPriceRMB;
- break;
- case '6': //69
- $price_number = $price->CLP_SixToNineAdultPriceRMB;
- break;
- case '10':
- $price_number = $price->CLP_OverTenAdultPriceRMB;
- break;
- default:
- $price_number = $price->CLP_TwoToFiveAdultPriceRMB;
- }
- break;
- case 'C':
- $price_number = 0;
- break;
- case 'B':
- $price_number = 0;
- break;
- case 'R':
- switch ($price_item->person_size) {
- case '1':
- $price_number = $price->CLP_OneRoomDiffPriceRMB;
- break;
- case '2': //25
- $price_number = $price->CLP_TwoToFiveRoomDiffPriceRMB;
- break;
- case '6': //69
- $price_number = $price->CLP_SixToNineRoomDiffPriceRMB;
- break;
- case '10':
- $price_number = $price->CLP_OverTenRoomDiffPriceRMB;
- break;
- default:
- $price_number = $price->CLP_TwoToFiveRoomDiffPriceRMB;
- }
- break;
- case 'AR': //成人加单间房差
- $price_number = 0;
- break;
- default:
- $price_number = 0;
- }
- }
- }
- $site_money = $this->currency->calc_show_price($price_number);
- //把金额格式化为带有逗号(,)方便阅读,如 12,345
- $price_number = is_numeric($price_number) ? number_format($site_money) : $price_number;
- if (!empty ($price_number)) {
- $price_tag = [
- 'placeholder' => $price_item->placeholder,
- 'price_number' => $price_number,
- ];
- $price_tag_list[] = $price_tag;
- }
- }
- }
- return $price_tag_list;
- }
-
- //使用正则匹配出价格标签,返回一个价格数组
- private function price_pregmatch($content)
- {
- $price_array = array();
- $temp_array = array();
- $result = false;
- //#ah-1,lx,2,2016-01-23,A#
- //线路代号,等级(st标准、lx豪华、ec经济),人等,时间,人型(A成人、C小孩、B婴儿、R单间房差、AR成人+房差)
- preg_match_all('^#[a-zA-Z0-9,-]+#^', $content, $temp_array);
- foreach ($temp_array[0] as $item) {
- $placeholder = $item;
- $item = str_replace('#', '', $item);
- $price_array = explode(',', $item);
- $cli_no = !empty ($price_array[0]) ? $price_array[0] : false; //线路代号
- if (empty ($cli_no)) {
- continue; //没有设置线路代号则进入下一条
- }
- $cli_grade = !empty ($price_array[1]) ? $price_array[1] : false; //标准7001、豪华7002、经济7003
- switch (strtoupper($cli_grade)) {
- case 'ST':
- $cli_grade = '7001';
- break;
- case 'LX':
- $cli_grade = '7002';
- break;
- case 'EC':
- $cli_grade = '7003';
- break;
- default:
- $cli_grade = '7001';
- }
- $person_size = (!empty ($price_array[2]) && is_numeric($price_array[2])) ? $price_array[2] : 2; //人等1,2-5,6-9,10,默认2人等
- //为了兼容以前的人等方式,把算数人等转换为单数 25=>2
- switch ($person_size) {
- case '25':
- $person_size = '2';
- break;
- case '69':
- $person_size = '6';
- break;
- }
- $price_date = !empty ($price_array[3]) ? $price_array[3] : false; //价格时间
- $price_people = !empty ($price_array[4]) ? $price_array[4] : 'A'; //A成人、C小孩、B婴儿、R单间房差
- $result[] = (object) array('placeholder' => $placeholder, 'cli_no' => $cli_no, 'cli_grade' => $cli_grade, 'person_size' => $person_size, 'price_date' => $price_date, 'price_people' => $price_people);
- }
- return $result;
- }
-
- public function make_www_cache_gh($device, $information, $recommand_information)
- {
- $data = array();
- switch ($device) {
- case 'mobile':
- //获取移动优先的模板,如果有的话
- $template_path = 'mobile_first/' . $this->config->item('site_code');
- if (is_file(APPPATH . 'views/' . $template_path . EXT)) {
- $template = $this->load->view($template_path, '', true);
- $html_path_ext = '-mobile.htm';
- } else {
- return false;
- }
- break;
- case 'pc':
- //获取PC的模板,如果有的话
- $template_path = 'mobile_first/' . $this->config->item('site_code');
- if (is_file(APPPATH . 'views/' . $template_path . '-pc' . EXT)) {
- $template = $this->load->view($template_path . '-pc', '', true);
- $html_path_ext = '-pc.htm';
- } else {
- return false;
- }
- break;
- default:
- }
-
- // GH Home 下层节点名称和链接映射
- $group_map = [
- 278009289 => [
- 'ic_url' => '/destinations',
- 'ic_url_title' => 'Destinations',
- ],
- 278009290 => [
- 'ic_url' => '/about',
- 'ic_url_title' => 'About Us',
- ],
- ];
- $breadcrumb_data = $this->Information_model->get_breadcrumb_data($information->is_id, $information->is_path, $group_map);
-
- $breadcrumb_structured_data_content = $this->load->view(
- $template_path . '-structured-data-breadcrumb',
- array('breadcrumb_data' => $breadcrumb_data, 'information' => $information),
- true
- );
- $template = str_replace(
- '',
- $breadcrumb_structured_data_content,
- $template
- );
-
- //替换模板中的标签
- $template = str_replace('', $information->ic_seo_title, $template);
- $template = str_replace('', $information->ic_seo_description, $template);
- $template = str_replace('', $information->ic_seo_keywords, $template);
- $template = str_replace('', $this->config->item('site_url') . $information->ic_url, $template);
-
- //顶部全屏大图
- if ($device == 'mobile') { //移动端读取移动大图
- $meta_addon_picture = get_meta($information->ic_id, 'meta_addon_picture_mobile');
- } else {
- $meta_addon_picture = get_meta($information->ic_id, 'meta_addon_picture');
- }
-
- $meta_product_code = get_meta($information->ic_id, 'meta_product_code');
- $ads_by_google = !empty (get_meta($information->ic_id, 'meta_google_ad_article'));
- //H1模板替换
- $data_H1 = array();
- $data_H1['infocategory'] = $this->Information_model->get_detail_by_path($information->is_path, 1); //信息所属分类,获取信息顶级节点内容
- $data_H1['author'] = ''; //获取作者信息
- $author = $this->Operator_model->get_author_nikename($information->ic_author);
-
- if (!empty ($author)) {
- $data_H1['author'] = $author->OPI_FirstName;
- } else {
- $author_web = $this->Infoauthors_model->detail_by_id($information->ic_author); //原始作者,可能是在线作者等
- if (!empty ($author_web)) {
- $data_H1['author'] = $author_web->a_name;
- }
- }
- $data_H1['ic_title'] = $information->ic_title;
- $data_H1['ic_photo'] = $meta_addon_picture; //$information->ic_photo; 用额外设置的图片替代
- $data_H1['breadcrumb_data'] = $breadcrumb_data;
- $data_H1['ads_by_google'] = $ads_by_google;
- $template_H1 = $this->load->view($template_path . '-h1', $data_H1, true);
- $template = str_replace('', $template_H1, $template);
-
- if (empty ($meta_product_code)) {
- $addthis_widget = $this->load->view($template_path . '-add-this', false, true);
- $template = str_replace('', $addthis_widget, $template);
- }
-
- $article_structured_data_content = $this->load->view(
- $template_path . '-structured-data-article',
- array('information' => $information, 'author_name' => $data_H1['author']),
- true
- );
- $template = str_replace('', $article_structured_data_content, $template);
-
- if (!empty ($meta_product_code)) {
- //
- $product_code_input = "";
- $template = str_replace('', $product_code_input, $template);
- }
-
- if (empty ($meta_product_code)) {
- $template = str_replace('?product_code=', '', $template);
- } else {
- $template = str_replace('?product_code=', '?product_code=' . $meta_product_code, $template);
- }
-
- //信息推荐
- $template_recommand = $recommand_information; //$this->recommand_information($information); 从外面传进来,pc和移动只需要查一次,减少数据库负担
- $template = str_replace('', $this->load->view($template_path . '-next', array('recommands' => $template_recommand), true), $template);
- // //广告,改叫tips,防止被插件屏蔽
- if (!empty ($template_recommand['Tips Right TOP'])) {
- // $template = str_replace('', "", $template);
- }
- if (!empty ($template_recommand['Tips Right'])) {
- $template = str_replace('', "" . $template_recommand['Tips Right']->it_content . "
", $template);
- }
- // 右侧列表广告
- $tips_right_a = [];
- $tips_right_b = [];
- $tips_right_c = [];
- for ($i = 1; $i <= 12; $i++) {
- $key = 'List Tips Right A_' . $i;
- if (array_key_exists($key, $recommand_information) && $recommand_information[$key]) {
- $tips_right_a[] = $recommand_information[$key];
- }
- }
- for ($i = 1; $i <= 12; $i++) {
- $key = 'List Tips Right B_' . $i;
- if (array_key_exists($key, $recommand_information) && $recommand_information[$key]) {
- $tips_right_b[] = $recommand_information[$key];
- }
- }
- for ($i = 1; $i <= 12; $i++) {
- $key = 'List Tips Right C_' . $i;
- if (array_key_exists($key, $recommand_information) && $recommand_information[$key]) {
- $tips_right_c[] = $recommand_information[$key];
- }
- }
-
- $tips_right_list_content = $this->load->view(
- 'mobile_first/gh-tips-right-list',
- array(
- 'tips_right_a' => $tips_right_a,
- 'tips_right_b' => $tips_right_b,
- 'tips_right_c' => $tips_right_c
- ),
- true
- );
-
- $template = str_replace('', $tips_right_list_content, $template);
- //文中的信息推荐
- if (strpos($information->ic_content, '') !== false) {
- // $information->ic_content = str_replace('', $this->load->view($template_path . '-recommends-article', array('recommands' => $template_recommand), TRUE), $information->ic_content);
- }
- //文中的线路推荐
- if (strpos($information->ic_content, '') !== false) {
- // $information->ic_content = str_replace('', $this->load->view($template_path . '-recommends-tour', array('recommands' => $template_recommand), TRUE), $information->ic_content);
- }
-
- //替换内容中广告
- $temp_array = array();
- preg_match_all('^^', $information->ic_content, $temp_array);
- if (!empty ($temp_array[1])) {
- foreach ($temp_array[1] as $key => $item) {
- $tips_detail = $this->recommends_and_tips_model->tips_detail($item);
- if ($tips_detail) {
- $information->ic_content = str_replace($temp_array[0][$key], $tips_detail->it_content, $information->ic_content);
- }
- }
- }
-
- // 未勾选In Article 广告时,加入标签 ,让 ezoic 识别出该页面不展示广告。
- $meta_google_ad_article = get_meta($information->ic_id, 'meta_google_ad_article');
- if (empty ($meta_google_ad_article) || !$meta_google_ad_article) {
- $template = str_replace(
- '',
- '',
- $template
- );
- } else {
- $template = str_replace(
- '',
- '',
- $template
- );
- }
-
- $why_us_covid_list_pc = $this->load->view(
- $template_path . '-why-us-covid-list-pc',
- array(),
- true
- );
- $information->ic_content = str_replace('', $why_us_covid_list_pc, $information->ic_content);
- $why_us_covid_list_mobile = $this->load->view(
- $template_path . '-why-us-covid-mobile',
- array(),
- true
- );
- $information->ic_content = str_replace('', $why_us_covid_list_mobile, $information->ic_content);
-
- if (empty ($meta_product_code)) {
- $info_page_form_content = $this->load->view($template_path . '-info-page-form', false, true);
- $information->ic_content = str_replace('', $info_page_form_content, $information->ic_content);
- } else {
- $tour_form_content = $this->load->view(
- 'mobile_first/gh-tour-form',
- array('information' => $information, 'meta_product_code' => $meta_product_code),
- true
- );
- $information->ic_content = str_replace('', $tour_form_content, $information->ic_content);
- }
-
- // CH: 1; AH: 28; GH : 33
- $price_tag_list = $this->parse_price_tag($information->ic_content, 33);
-
- foreach ($price_tag_list as $price_tag) {
- $information->ic_content = str_replace(
- $price_tag['placeholder'],
- $price_tag['price_number'],
- $information->ic_content
- );
- }
-
- // 动态加载反馈标签,每个城市三十条反馈。
- // HTLM:
- // 解析结果:; Bangkok
- $feedback30_array = [];
- preg_match_all('^^', $information->ic_content, $feedback30_array);
- if (!empty ($feedback30_array)) {
- foreach ($feedback30_array[0] as $index => $tag_name) {
- $city_name = $feedback30_array[1][$index];
- $feedback_list = $this->Feedback_model->get_feedback_by_city_name($city_name);
- $feedback_30_content = $this->load->view(
- 'mobile_first/gh-feedback-30-list',
- array('feedback_list' => $feedback_list),
- true
- );
- $information->ic_content = str_replace(
- $tag_name,
- $feedback_30_content,
- $information->ic_content
- );
- }
- }
-
- // 集合页面反馈标签
- $feedback_city_array = [];
- preg_match_all('^^', $information->ic_content, $feedback_city_array);
- if (!empty ($feedback_city_array)) {
- foreach ($feedback_city_array[0] as $index => $tag_name) {
- $city_name_string = $feedback_city_array[1][$index];
- $city_name_list = explode(',', $city_name_string);
- $feedback_city_list = [];
- foreach ($city_name_list as $index => $city_name) {
- $feedback_list = $this->Feedback_model->get_feedback_by_city_name($city_name, 5);
- $data_name = str_replace(" ", "_", $city_name);
- $feedback_city_list[$data_name] = $feedback_list;
- }
-
- $feedback_city_content = $this->load->view(
- 'mobile_first/gh-feedback-city-list',
- $feedback_city_list,
- true
- );
- $information->ic_content = str_replace(
- $tag_name,
- $feedback_city_content,
- $information->ic_content
- );
- }
- }
-
- // 动态加载反馈标签,第一个城市不足八条,使用第二城市数据。
- // HTLM:
- // 解析结果:; Siem Reap,Bangkok
- $feedback_array = [];
- preg_match_all('^^', $information->ic_content, $feedback_array);
- if (!empty ($feedback_array)) {
- foreach ($feedback_array[0] as $index => $tag_name) {
- $city_name_string = $feedback_array[1][$index];
- $city_name_list = explode(',', $city_name_string);
- $feedback_list = $this->Feedback_model->get_feedback_by_city_list($city_name_list);
- // 防止触发 Google 网络垃圾政策只返回前三条
- $top3_feedback_list = array_slice($feedback_list, 0, 3);
- $feedback_content = $this->load->view(
- 'mobile_first/gh-feedback-list',
- array('feedback_list' => $top3_feedback_list),
- true
- );
- $information->ic_content = str_replace(
- $tag_name,
- $feedback_content,
- $information->ic_content
- );
- }
- }
-
- if (is_file('D:/wwwroot/origin-www.globalhighlights.com/css/gh-global.css')) { //主样式表,内联模式,优先读取本地,没有在从网络读取,为了加速
- $main_css_string = compress_css(file_get_contents('D:/wwwroot/origin-www.globalhighlights.com/css/gh-global.css'));
- } else {
- $main_css_string = compress_css(GET_HTTP('https://www.globalhighlights.com/css/gh-global.css'));
- }
- $template = str_replace('', '', $template);
- //额外样式
- $meta_addon_css = get_meta($information->ic_id, 'meta_addon_css');
- if (!empty ($meta_addon_css)) {
- // if ($meta_addon_css == 'https://proxy-data.chinahighlights.com/css/tour-detail-former.css' && is_file('D:/wwwroot/origin-data.chinahighlights.com/css/tour-detail-former.css')) {
- //$meta_addon_css_string = compress_css(file_get_contents('D:/wwwroot/origin-data.chinahighlights.com/css/tour-detail-former.css'));
- // } else {
- $meta_addon_css_string = compress_css(GET_HTTP($meta_addon_css));
- // }
- $template = str_replace('', '', $template);
- }
- //额外js
- $meta_addon_js = get_meta($information->ic_id, 'meta_addon_js');
- if (!empty ($meta_addon_js)) {
- $template = str_replace('', '', $template);
- }
-
- $meta_index_set = get_meta($information->ic_id, 'meta_index_set');
- if (!empty ($meta_index_set)) {
- $template = str_replace('', '', $template);
- }
- //设置内容图片缓加载
- $lazy_content = $this->html_optimize_lib->set_lazy_loader($information->ic_content, 'https://data.chinahighlights.com/grey.gif');
- $template = str_replace('', $lazy_content, $template);
-
- //社媒分享图片
- $full_ic_photo = '';
- if (!empty ($information->ic_photo)) {
- $full_ic_photo = $this->config->item('site_image_url') . $information->ic_photo;
- } else {
- $full_ic_photo = get_meta($information->ic_id, 'meta_addon_picture_mobile');
- }
- if (!empty ($full_ic_photo)) {
- $template = str_replace('', '', $template);
- }
- //设置图片尺寸
- if (is_dir('D:/wwwroot/origin-images.chinahighlights.com') && is_dir('D:/wwwroot/origin-www.globalhighlights.com')) {
- $template = $this->html_optimize_lib->set_image_size_local($template, 'D:/wwwroot/origin-www.globalhighlights.com', 'D:/wwwroot/origin-images.chinahighlights.com');
- } else {
- $template = $this->html_optimize_lib->set_image_size($template);
- }
- // /travelguide/chinese-zodiac/monthly-fortune-for-dog.htm
- $html_path = $this->config->item('cache')[$this->config->item('site_code')]['cache_path'] . $information->ic_url;
- $html_path = str_replace("\\", "/", $html_path);
- if (substr($html_path, -1, 1) == '/') {
- $html_path = $html_path . 'index.htm';
- }
- $html_path .= $html_path_ext;
- create_folder_by_path(dirname($html_path));
- file_put_contents($html_path, $template, LOCK_EX);
- }
-
- public function make_www_cache_ah($device, $information, $recommand_information)
- {
-
- $data = array();
- $data['information'] = $information;
- $recommand_template = '';
- switch ($device) {
- case 'mobile':
- //获取移动优先的模板,如果有的话
- $template_path = 'mobile_first/' . $this->config->item('site_code');
- if (is_file(APPPATH . 'views/' . $template_path . EXT)) {
- $template = $this->load->view($template_path, '', true);
- $html_path_ext = '-mobile.htm';
- } else {
- return false;
- }
- $recommand_template = 'mobile_first/ah-next-mobile';
- break;
- case 'pc':
- //获取PC的模板,如果有的话
- $template_path = 'mobile_first/' . $this->config->item('site_code');
- if (is_file(APPPATH . 'views/' . $template_path . '-pc' . EXT)) {
- $template = $this->load->view($template_path . '-pc', '', true);
- $html_path_ext = '-pc.htm';
- } else {
- return false;
- }
- $recommand_template = 'mobile_first/ah-next';
- break;
- default:
- }
-
- //替换模板中的标签
- $template = str_replace('', $information->ic_seo_title, $template);
- $template = str_replace('', $information->ic_seo_description, $template);
- $template = str_replace('', $information->ic_seo_keywords, $template);
- $template = str_replace('', $this->config->item('site_url') . $information->ic_url, $template);
-
- //顶部视频
- $data['meta_news_video'] = get_meta($information->ic_id, 'meta_news_video');
- $data['meta_video_picture'] = get_meta($information->ic_id, 'meta_video_picture');
- if (empty ($data['meta_news_video']) && empty ($data['meta_video_picture'])) {
- //没有顶部视频时候才读取全屏大图
- //顶部全屏大图
- if ($device == 'mobile') { //移动端读取移动大图
- $data['meta_addon_picture'] = get_meta($information->ic_id, 'meta_addon_picture_mobile');
- } else {
- $data['meta_addon_picture'] = get_meta($information->ic_id, 'meta_addon_picture');
- }
- $data['meta_addon_picture_url'] = get_meta($information->ic_id, 'meta_addon_picture_url');
- }
-
- // AH Home 下层节点名称和链接映射
- $group_map = [
- 278002667 => [
- 'ic_url' => '/destinations',
- 'ic_url_title' => 'Destinations',
- ],
- 278008885 => [
- 'ic_url' => '/about-us',
- 'ic_url_title' => 'About Us',
- ],
- ];
-
- $breadcrumb_data = $this->Information_model->get_breadcrumb_data($information->is_id, $information->is_path, $group_map);
- $ads_by_google = !empty (get_meta($information->ic_id, 'meta_google_ad_article'));
- $data['ads_by_google'] = $ads_by_google;
- $data['author'] = ''; //获取作者信息
- $author = $this->Operator_model->get_author_nikename($information->ic_author);
- if (!empty ($author)) {
- $data['author'] = $author->OPI_FirstName;
- } else {
- $author_web = $this->Infoauthors_model->detail_by_id($information->ic_author); //原始作者,可能是在线作者等
- if (!empty ($author_web)) {
- $data['author'] = $author_web->a_name;
- }
- }
- $data['breadcrumb_data'] = $breadcrumb_data;
- $template_H1 = $this->load->view($template_path . '-h1', $data, true);
- $template = str_replace('', $template_H1, $template);
- // 结构化标签:Article
- $article_structured_data_content = $this->load->view(
- $template_path . '-structured-data-article',
- array('information' => $information, 'author' => $data['author']),
- true
- );
- $template = str_replace('', $article_structured_data_content, $template);
- // 结构化标签:BreadcrumbList
- $breadcrumb_structured_data_content = $this->load->view(
- $template_path . '-structured-data-breadcrumb',
- array('breadcrumb_data' => $breadcrumb_data, 'information' => $information),
- true
- );
- $template = str_replace(
- '',
- $breadcrumb_structured_data_content,
- $template
- );
-
- //推荐信息或者产品
- $template_recommand = $recommand_information;
- $template = str_replace('', $this->load->view($recommand_template, array('recommands' => $template_recommand), true), $template);
- //广告,改叫tips,防止被插件屏蔽
- if (!empty ($template_recommand['Tips Right'])) {
- $template = str_replace('', "" . $template_recommand['Tips Right']->it_content . "
", $template);
- }
- // 右侧列表广告
- $tips_right_a = [];
- $tips_right_b = [];
- $tips_right_c = [];
- for ($i = 1; $i <= 12; $i++) {
- $key = 'List Tips Right A_' . $i;
- if (array_key_exists($key, $recommand_information) && $recommand_information[$key]) {
- $tips_right_a[] = $recommand_information[$key];
- }
- }
- for ($i = 1; $i <= 12; $i++) {
- $key = 'List Tips Right B_' . $i;
- if (array_key_exists($key, $recommand_information) && $recommand_information[$key]) {
- $tips_right_b[] = $recommand_information[$key];
- }
- }
- for ($i = 1; $i <= 12; $i++) {
- $key = 'List Tips Right C_' . $i;
- if (array_key_exists($key, $recommand_information) && $recommand_information[$key]) {
- $tips_right_c[] = $recommand_information[$key];
- }
- }
-
- $tips_right_list_content = $this->load->view(
- 'mobile_first/ah-tips-right-list',
- array(
- 'tips_right_a' => $tips_right_a,
- 'tips_right_b' => $tips_right_b,
- 'tips_right_c' => $tips_right_c
- ),
- true
- );
-
- $template = str_replace('', $tips_right_list_content, $template);
-
- //文中的信息推荐
- if (strpos($information->ic_content, '') !== false) {
- $information->ic_content = str_replace('', $this->load->view($template_path . '-recommends-article', array('recommands' => $template_recommand), true), $information->ic_content);
- }
- //文中的线路推荐
- if (strpos($information->ic_content, '') !== false) {
- $information->ic_content = str_replace('', $this->load->view($template_path . '-recommends-tour', array('recommands' => $template_recommand), true), $information->ic_content);
- }
-
- //替换内容中广告
- $temp_array = array();
- preg_match_all('^^', $information->ic_content, $temp_array);
- if (!empty ($temp_array[1])) {
- foreach ($temp_array[1] as $key => $item) {
- $tips_detail = $this->recommends_and_tips_model->tips_detail($item);
- if ($tips_detail) {
- $information->ic_content = str_replace($temp_array[0][$key], $tips_detail->it_content, $information->ic_content);
- }
- }
- }
-
- $meta_product_code = get_meta($information->ic_id, 'meta_product_code');
- // 非产品页面
- if (empty ($meta_product_code)) {
- $addthis_widget = $this->load->view($template_path . '-add-this', false, true);
- $template = str_replace('', $addthis_widget, $template);
- $template = str_replace('?product_code=', '', $template);
- } else {
- $template = str_replace('?product_code=', '?product_code=' . $meta_product_code, $template);
- $inquiry_form_template = $this->load->view(
- $template_path . '-inquiry-form',
- array('meta_product_code' => $meta_product_code, 'information' => $information),
- true
- );
- $information->ic_content = str_replace('', $inquiry_form_template, $information->ic_content);
-
- // GP 表单
- $gp_form_content = $this->load->view(
- $template_path . '-gp-form',
- array('meta_product_code' => $meta_product_code, 'information' => $information),
- true
- );
- $information->ic_content = str_replace('', $gp_form_content, $information->ic_content);
-
- // tour-list 表单
- $tour_list_form_content = $this->load->view(
- $template_path . '-tour-list-form',
- array('meta_product_code' => $meta_product_code, 'information' => $information),
- true
- );
- $information->ic_content = str_replace('', $tour_list_form_content, $information->ic_content);
-
- // 水灯节 GP 线路表单
- $gp_form_content = $this->load->view(
- $template_path . '-lantern-festival-gp-form',
- array('meta_product_code' => $meta_product_code, 'information' => $information),
- true
- );
- $information->ic_content = str_replace('', $gp_form_content, $information->ic_content);
- }
-
- $price_tag_list = $this->parse_price_tag($information->ic_content);
-
- foreach ($price_tag_list as $price_tag) {
- $information->ic_content = str_replace(
- $price_tag['placeholder'],
- $price_tag['price_number'],
- $information->ic_content
- );
- }
- // why-us 相关的标签
- $why_us_mobile = $this->load->view($template_path . '-why-us-mobile', false, true);
- $information->ic_content = str_replace('', $why_us_mobile, $information->ic_content);
-
- $why_us_tour_detail_pc = $this->load->view($template_path . '-why-us-tour-detail-pc', false, true);
- $information->ic_content = str_replace('', $why_us_tour_detail_pc, $information->ic_content);
-
- $why_us_tour_list_pc = $this->load->view($template_path . '-why-us-tour-list-pc', false, true);
- $information->ic_content = str_replace('', $why_us_tour_list_pc, $information->ic_content);
-
- $info_page_form_content = $this->load->view($template_path . '-info-page-form', false, true);
- $information->ic_content = str_replace('', $info_page_form_content, $information->ic_content);
-
- // 水灯节表单
- $lantern_form_content = $this->load->view(
- $template_path . '-lantern-form',
- array('information' => $information),
- true
- );
- $information->ic_content = str_replace('', $lantern_form_content, $information->ic_content);
- // 水灯节在信息页面表单
- $lantern_form_info_page_content = $this->load->view(
- $template_path . '-lantern-form-info-page',
- array('information' => $information),
- true
- );
- $information->ic_content = str_replace('', $lantern_form_info_page_content, $information->ic_content);
-
- // 动态加载反馈标签,第一个城市不足八条,使用第二城市数据。
- // HTLM:
- // 解析结果:; Siem Reap,Bangkok
- $feedback_array = [];
- preg_match_all('^^', $information->ic_content, $feedback_array);
- if (!empty ($feedback_array)) {
- foreach ($feedback_array[0] as $index => $tag_name) {
- $city_name_string = $feedback_array[1][$index];
- $city_name_list = explode(',', $city_name_string);
- $feedback_list = $this->Feedback_model->get_feedback_by_city_list($city_name_list);
- // 防止触发 Google 网络垃圾政策只返回前三条
- $top3_feedback_list = array_slice($feedback_list, 0, 3);
- $feedback_content = $this->load->view(
- 'mobile_first/ah-feedback-list',
- array('feedback_list' => $top3_feedback_list),
- true
- );
- $information->ic_content = str_replace(
- $tag_name,
- $feedback_content,
- $information->ic_content
- );
- }
- }
-
- // 动态加载反馈标签,每个城市三十条反馈。
- // HTLM:
- // 解析结果:; Bangkok
- $feedback30_array = [];
- preg_match_all('^^', $information->ic_content, $feedback30_array);
- if (!empty ($feedback30_array)) {
- foreach ($feedback30_array[0] as $index => $tag_name) {
- $city_name = $feedback30_array[1][$index];
- $feedback_list = $this->Feedback_model->get_feedback_by_city_name($city_name);
- $feedback_30_content = $this->load->view(
- 'mobile_first/ah-feedback-30-list',
- array('feedback_list' => $feedback_list),
- true
- );
- $information->ic_content = str_replace(
- $tag_name,
- $feedback_30_content,
- $information->ic_content
- );
- }
- }
-
- // 集合页面反馈标签
- $feedback_city_array = [];
- preg_match_all('^^', $information->ic_content, $feedback_city_array);
- if (!empty ($feedback_city_array)) {
- foreach ($feedback_city_array[0] as $index => $tag_name) {
- $city_name_string = $feedback_city_array[1][$index];
- $city_name_list = explode(',', $city_name_string);
- $feedback_city_list = [];
- foreach ($city_name_list as $index => $city_name) {
- $feedback_list = $this->Feedback_model->get_feedback_by_city_name($city_name, 5);
- $data_name = str_replace(" ", "_", $city_name);
- $feedback_city_list[$data_name] = $feedback_list;
- }
-
- $feedback_city_content = $this->load->view(
- 'mobile_first/ah-feedback-city-list',
- $feedback_city_list,
- true
- );
- $information->ic_content = str_replace(
- $tag_name,
- $feedback_city_content,
- $information->ic_content
- );
- }
- }
-
- //主样式表,内联模式
- if (is_file('D:/wwwroot/origin-www.asiahighlights.com/css/mobile-first.css')) { //主样式表,内联模式,优先读取本地,没有在从网络读取,为了加速
- $main_css_string = compress_css(file_get_contents('D:/wwwroot/origin-www.asiahighlights.com/css/mobile-first.css'));
- } else {
- $main_css_string = compress_css(GET_HTTP('https://proxy-data.asiahighlights.com/css/mobile-first.css'));
- }
- $template = str_replace('', '', $template);
- //额外样式
- $meta_addon_css = get_meta($information->ic_id, 'meta_addon_css');
- if (!empty ($meta_addon_css)) {
- //内联方式
- $meta_addon_css_string = compress_css(GET_HTTP($meta_addon_css));
- $template = str_replace('', '', $template);
- }
- //额外js
- $meta_addon_js = get_meta($information->ic_id, 'meta_addon_js');
- if (!empty ($meta_addon_js)) {
- $template = str_replace('', '', $template);
- }
-
- $meta_index_set = get_meta($information->ic_id, 'meta_index_set');
- if (!empty ($meta_index_set)) {
- $template = str_replace('', '', $template);
- }
- //设置内容图片缓加载
- $lazy_content = $this->html_optimize_lib->set_lazy_loader($information->ic_content, 'https://data.asiahighlights.com/grey.gif');
- $template = str_replace('', $lazy_content, $template);
-
- //Google广告代码
- //if (!empty(get_meta($information->ic_id, 'meta_google_ad_content'))) {
- $template = str_replace('', '', $template);
- //}
- //社媒分享图片
-
- $full_ic_photo = '';
- if (!empty ($information->ic_photo)) {
- $full_ic_photo = $this->config->item('site_image_url') . $information->ic_photo;
- } else {
- $full_ic_photo = get_meta($information->ic_id, 'meta_addon_picture_mobile');
- }
- if (!empty ($full_ic_photo)) {
- $template = str_replace('', '', $template);
- }
-
- //设置图片尺寸
- if (is_dir('D:/wwwroot/origin-images.chinahighlights.com') && is_dir('D:/wwwroot/origin-www.asiahighlights.com')) {
- $template = $this->html_optimize_lib->set_image_size_local($template, 'D:/wwwroot/origin-www.asiahighlights.com', 'D:/wwwroot/origin-images.chinahighlights.com');
- } else {
- $template = $this->html_optimize_lib->set_image_size($template);
- }
- // /travelguide/chinese-zodiac/monthly-fortune-for-dog.htm
- $html_path = $this->config->item('cache')[$this->config->item('site_code')]['cache_path'] . $information->ic_url;
- $html_path = str_replace("\\", "/", $html_path);
- if (substr($html_path, -1, 1) == '/') {
- $html_path = $html_path . 'index.htm';
- }
- $html_path .= $html_path_ext;
- create_folder_by_path(dirname($html_path));
- file_put_contents($html_path, $template, LOCK_EX);
- }
-
- /**
- * @description: CT用的生成静态文件方法.有些内容的替换,CT这边不一样,需要单独处理 zp
- * @param {type} $device='mobile' or 'pc'
- * @return:
- * @Date Changed:
- */
- public function make_www_cache_ct($information)
- {
- $data = array();
-
- #region 公用数据
- //$apiurl = "http://202.103.68.104:61/info.php"; //本地测试
- $apiurl = "https://ct.mycht.cn/info.php"; //网前
-
- //先准备数据,CT采用直接赋值视图然后返回视图字符串的模式,不使用一次次替换视图模板内容的模式。
- $data["TITLE"] = $information->ic_seo_title;
- $data["DESCRIPTION"] = $information->ic_seo_description;
- $data["KEYWORDS"] = $information->ic_seo_keywords;
- $data["CANONICAL"] = $this->config->item('site_url') . $information->ic_url;
- $meta_ct_page_type = "";
- $meta_ct_page_type = get_meta($information->ic_id, 'meta_ct_page_type'); //页面类型
- $meta_product_code = get_meta($information->ic_id, 'meta_product_code'); //绑定的产品编号
- $template_path = 'mobile_first/' . $this->config->item('site_code'); //模板位置
-
- //面包屑
- $crumb = "";
- $crumb_data = $this->Information_model->get_path_exclude_ct($information->is_id, $information->is_path);
- if (count($crumb_data) > 0) { //至少有一个父类面包屑才显示
- $crumb = "";
- }
- $data["crumb"] = $crumb;
-
- //作者字符串,信息页或者城市天气页加载 2022-7-26
- $str_author = "";
- $author = $this->Operator_model->get_author_nikename($information->ic_author);
- if ((empty ($meta_product_code) && !($meta_ct_page_type !== false && $meta_ct_page_type != "")) || $meta_ct_page_type == "weatherpage") {
- $OPI_FirstName = !empty ($author) ? $author->OPI_FirstName : 'author nickname';
- $str_author = 'Written by ' . $OPI_FirstName . ' Updated ' . date("M. j, Y", strtotime($information->ic_datetime)) . '
';
- }
-
- //火车票详细页搜索框添加 -- zp
- $meta_ct_page_trainform = get_meta($information->ic_id, 'meta_ct_page_trainform'); //是否插入火车票搜索框
- $template_TrainDetailSearch = "";
- if ($meta_ct_page_trainform == "yes" || $information->is_parent_id == "278014609") {
- $template_TrainDetailSearch = $this->load->view($template_path . '-train-detail', null, true);
- }
-
- /* 详细内容 */
- $ic_content = $information->ic_content;
-
- #region old replace
- // /**替换详细内容里面的价格
- /* 直接使用fetch来动态获取价格,这样不用替换标签,直接录标签
- // * // 一日游价格标签, "" 或者 逗号后面是人数
- // * //精华线路标签""
- // */
- // $ic_content = preg_replace_callback('//i',function($match){
- // //处理一日游每次配备
- // $matchItem = $match[1];
- // return '';;
- // },$ic_content);
- // $ic_content = preg_replace_callback('//i',function($match){
- // //处理精华线路每次配备
- // $matchItem = $match[1];
- // return '';;
- // },$ic_content);
- #enregion
-
- /** 替换H1加面包屑,加作者 */
- $ic_content = preg_replace('/(.*)<\/h1>/i', $crumb . "\r\n" . '$1
' . "\r\n" . $str_author . $template_TrainDetailSearch . "\r\n", $ic_content, 1);
-
- /**替换zodiac标签 */
- if (strpos($ic_content, '') !== false) {
- $zodiacCalc = $this->load->view('mobile_first/' . $this->config->item('site_code') . '-zodiac-calc', false, true);
- $ic_content = str_replace('', $zodiacCalc, $ic_content);
- }
-
- //图片加延迟
- $ic_content = $this->html_optimize_lib->set_lazy_loader($ic_content, 'https://data.chinatravel.com/images/mobile-first/grey.gif');
-
- $ic_content = $this->html_optimize_lib->set_image_size($ic_content);
-
- $data["CUSTOMCONENT"] = $ic_content;
-
- //非产品页面
- $data["PRODUCTJS"] = "";
- $data["ISPRODUCT"] = "no"; //判断是否是产品页
- $data["addthis_widget"] = "";
- $data["FloatIcon"] = ""; //浮动图标替代addthis
- $arrExitUrl = array("/", "/culture", "/guide", "/tour", "/citytour", "/daytrip", "/asia-tour", "/china-trains");
-
- if (empty (get_meta($information->ic_id, 'meta_product_code')) || in_array($information->ic_url, $arrExitUrl)) {
- //$data["addthis_widget"] = $this->load->view($template_path . '-add-this', false, true); //社媒代码addthis
- $data["FloatIcon"] = "";
- } else {
- // $data["PRODUCTJS"] = '';
- $data["ISPRODUCT"] = "yes";
- }
-
- //顶部视频
- $data["TOPVIDEO"] = "";
- $meta_news_video = get_meta($information->ic_id, 'meta_news_video');
- $meta_video_picture = get_meta($information->ic_id, 'meta_video_picture');
- if (!empty ($meta_news_video) && !empty ($meta_video_picture)) {
- $data["TOPVIDEO"] = '
';
- }
-
- //主样式表,内联模式
- //$apiweb="http://202.103.68.104"; //本地测试
- $apiweb = "https://data.chinatravel.com";
- $cssUrl = $apiweb . "/css/newcss3/base.css?v=" . time();
- $main_css_string = compress_css(GET_HTTP($cssUrl));
- $data["MAINCSS"] = '';
-
- //额外样式
- $data["ADDONCSS"] = "";
- $meta_addon_css = get_meta($information->ic_id, 'meta_addon_css');
- if (!empty ($meta_addon_css)) {
- //引用方式
- //$data["ADDONCSS"]= '';
- //内联方式
- $meta_addon_css_string = compress_css(GET_HTTP($meta_addon_css));
- $data["ADDONCSS"] = '';
- }
- //社媒分享图片
- $data["OGIMAGE"] = "";
- if (!empty ($information->ic_photo)) {
- if (strpos($information->ic_photo, "chinatravel.com") != false) {
- $full_ic_photo = $information->ic_photo;
- } else {
- $full_ic_photo = $this->config->item('site_image_url') . $information->ic_photo;
- }
- $data["OGIMAGE"] = '';
- }
-
- //结构化标签
- $data["ConstructionCode"] = "";
- $meta_construction_code = get_meta($information->ic_id, 'meta_construction_code');
- if (!empty ($meta_construction_code)) {
- $data["ConstructionCode"] = $meta_construction_code;
- }
-
- //总JS:为了方便以后js好维护,必须的把一些公用的JS统计到一个文件。但是又不是所有页面都需要调用这个基础js,所以必须在这里进行判断
- $addBaseJs = false;
- $addonJs = "";
- $meta_ct_page_price = get_meta($information->ic_id, 'meta_ct_page_price'); //是否包含价格
-
- if ($meta_ct_page_price == "yes") {
- $addBaseJs = true;
- } else if ($meta_ct_page_type !== false && $meta_ct_page_type != "") {
- $addBaseJs = true;
- }
-
- if ($addBaseJs) {
- $addonJs = '';
- }
- /// ----- 总JS判断完成-----
-
- //额外js
- $data["ADDONJS"] = "";
- $meta_addon_js = get_meta($information->ic_id, 'meta_addon_js');
- if (!empty ($meta_addon_js)) {
- $addonJs .= '';
- }
- //价格js
- if ($meta_ct_page_price == "yes") {
- $addonJs .= '';
- }
-
- //列表js
- if (in_array($meta_ct_page_type, array('daytripindex', 'tourindex', 'attractionindex'))) {
- $addonJs .= '';
- }
-
- //天气
- if (in_array($meta_ct_page_type, array('weatherpage'))) {
- $addonJs .= '';
- }
-
- //页面传递参数
- $passParam = "";
- if (in_array($meta_ct_page_type, array("daytripindex", "tourindex", "attractionindex", "weatherpage"))) { //一日游和线路列表
- //产品首页
- $meta_ct_page_value = get_meta($information->ic_id, 'meta_ct_page_value');
-
- if (in_array($meta_ct_page_type, array("attractionindex"))) {
- //旧信息id,景点等信息类
- $passParam .= '';
- } else {
- //城市名称,产品类用
- $passParam .= '';
- }
-
- //加信息平台的is_id
- $passParam .= '';
- }
-
- //产品详细页
- $productType = "";
- $productCode = "";
- if ($meta_ct_page_type == "daytripdetail") {
- //一日游
- if (!empty ($meta_ct_page_type)) {
- $productType = $meta_ct_page_type;
- }
- $meta_ct_page_value = get_meta($information->ic_id, 'meta_ct_page_value');
- if (!empty ($meta_ct_page_value)) {
- $productCode = $meta_ct_page_value;
- }
- $addonJs .= '';
- //$addonJs .= '';
- $data["ADDONCSS"] .= '';
- }
- if ($meta_ct_page_type == "tourdetail") {
- //线路
- $productType = $meta_ct_page_type;
- $meta_ct_page_value = get_meta($information->ic_id, 'meta_ct_page_value');
- if (!empty ($meta_ct_page_value)) {
- $productCode = $meta_ct_page_value;
- }
-
- //获取cli_sn
- $tourdata = json_decode(GET_HTTP($apiurl . "/thirdparty/ctmobilefirst/api/getCliSn/?param=" . $productCode));
- $data["clisn"] = $tourdata->clisn;
-
- //调取模板
- $dataform["TourCode"] = $productCode;
- $dataform["CLI_SN"] = $tourdata->clisn;
- $dataform["TourName"] = $information->ic_title;
-
-
- }
-
- //游船详细页
- if ($meta_ct_page_type == "cruisedetails") {
- $productType = $meta_ct_page_type;
- $meta_ct_page_value = get_meta($information->ic_id, 'meta_ct_page_value');
- if (!empty ($meta_ct_page_value)) {
- $productCode = $meta_ct_page_value;
- }
- $dataCruise["shipname"] = $productCode;
- $template_curisedetails = $this->load->view($template_path . '-cruisedetails-form', $dataCruise, true);
- $data["template_curisedetails"] = $template_curisedetails;
- }
-
- //表单页
- if (in_array($meta_ct_page_type, array("customize", "contactus", "pagewithform", "tourdetail"))) {
- $productType = $meta_ct_page_type;
- $addonJs .= '';
- $data["ADDONCSS"] .= '';
- }
-
- $data["productType"] = $productType;
- $data["productCode"] = $productCode;
-
- //页面添加的元素
- $data["ADDONJS"] = $addonJs;
- $data["passParam"] = $passParam;
-
- #endregion
-
- #region 移动端和PC端差别处理区域
- $arrDevice = array("mobile", "pc");
- foreach ($arrDevice as $device) {
- //顶部全屏大图
- $data["TOPBANNER"] = "";
- $ImgText = ""; //图文字
- $meta_addon_picture_url = get_meta($information->ic_id, 'meta_addon_picture_url');
- $meta_addon_picture_text = get_meta($information->ic_id, 'meta_addon_picture_text');
- if ($device == 'mobile') { //移动端读取移动大图
- $meta_addon_picture = get_meta($information->ic_id, 'meta_addon_picture_mobile');
- $bannerImg = '
';
- if (!empty ($meta_addon_picture_url) && !empty ($meta_addon_picture_text)) {
- $ImgText = '';
- } else if (!empty ($meta_addon_picture_text)) {
- $ImgText = '' . $meta_addon_picture_text . '
';
- }
- } else {
- $meta_addon_picture = get_meta($information->ic_id, 'meta_addon_picture');
- $bannerImg = '
';
- if (!empty ($meta_addon_picture_url) && !empty ($meta_addon_picture_text)) {
- $ImgText = '';
- } else if (!empty ($meta_addon_picture_text)) {
- $ImgText = '' . $meta_addon_picture_text . '
';
- }
- }
-
- // 搜索框
- $template_TrainSearch = "";
- if ($information->ic_url == "/china-trains/hometest" || $information->ic_url == "/china-trains") {
- //火车票首页
- $template_TrainSearch = $this->load->view($template_path . '-train-index', null, true);
- $ImgText = "";
- //火车票移动端去掉头部图片,保证搜索框CLS
- if ($device == 'mobile') {
- $meta_addon_picture = "";
- $data["TOPBANNER"] = '' . $template_TrainSearch . '
';
- }
- } else if ($information->ic_url == "/china-flights") {
- //机票首页
- $template_TrainSearch = $this->load->view($template_path . '-flight-index', null, true);
- $ImgText = "";
- //飞机票移动端去掉头部图片,保证搜索框CLS
- if ($device == 'mobile') {
- $meta_addon_picture = "";
- $data["TOPBANNER"] = '' . $template_TrainSearch . '
';
- }
- }
-
- if (!empty ($meta_addon_picture)) {
- if (!empty ($meta_addon_picture_url)) {
- $data["TOPBANNER"] = '';
- } else {
- $data["TOPBANNER"] = '' . $bannerImg . $ImgText . $template_TrainSearch . '
';
- }
- }
-
- if ($meta_ct_page_type == "tourdetail") {
- $dataform['device'] = $device;
- $template_form_tourqi = $this->load->view($template_path . '-form-tourqi', $dataform, true);
- $data["template_form_tourqi"] = $template_form_tourqi; //表单模板字符串
- }
-
- //两种设备分别调用两种模板 ,静态化
- switch ($device) {
- case 'mobile':
- //获取移动优先的模板,如果有的话
- $template_path = 'mobile_first/' . $this->config->item('site_code');
- if (is_file(APPPATH . 'views/' . $template_path . EXT)) {
- $template = $this->load->view($template_path, $data, true);
- $html_path_ext = '-mobile.htm';
- } else {
- return false;
- }
- break;
- case 'pc':
- //获取PC的模板,如果有的话
- $template_path = 'mobile_first/' . $this->config->item('site_code');
- if (is_file(APPPATH . 'views/' . $template_path . '-pc' . EXT)) {
- $template = $this->load->view($template_path . '-pc', $data, true);
- $html_path_ext = '-pc.htm';
- } else {
- return false;
- }
- break;
- default:
- }
-
- //生成静态文件
- $html_path = $this->config->item('cache')[$this->config->item('site_code')]['cache_path'] . $information->ic_url;
- $html_path = str_replace("\\", "/", $html_path);
- if (substr($html_path, -1, 1) == '/') {
- $html_path = $html_path . 'index.htm';
- }
- $html_path .= $html_path_ext;
- create_folder_by_path(dirname($html_path));
- file_put_contents($html_path, $template, LOCK_EX);
- }
- #endregion
-
- }
-
- /**
- * 上海站
- */
- public function make_www_cache_sh($information)
- {
- $data = array();
-
- #region 公用数据
- //$apiurl = "http://202.103.68.104:61/info.php"; //本地测试
- $apiurl = "https://ct.mycht.cn/info.php"; //网前
-
- //先准备数据,采用直接赋值视图然后返回视图字符串的模式,不使用一次次替换视图模板内容的模式。
- $data["TITLE"] = $information->ic_seo_title;
- $data["DESCRIPTION"] = $information->ic_seo_description;
- $data["KEYWORDS"] = $information->ic_seo_keywords;
- $data["CANONICAL"] = $this->config->item('site_url') . $information->ic_url;
- $meta_ct_page_type = "";
- $meta_ct_page_type = get_meta($information->ic_id, 'meta_ct_page_type'); //页面类型
- $meta_product_code = get_meta($information->ic_id, 'meta_product_code'); //绑定的产品编号
- $template_path = 'mobile_first/' . $this->config->item('site_code'); //模板位置
-
- //面包屑
- $crumb = "";
- $crumb_data = $this->Information_model->get_path_exclude_ct($information->is_id, $information->is_path);
- if (count($crumb_data) > 0) { //至少有一个父类面包屑才显示
- $crumb = "";
- }
- $data["crumb"] = $crumb;
-
- //作者字符串,信息页或者城市天气页加载 2022-7-26
- $str_author = "";
- $author = $this->Operator_model->get_author_nikename($information->ic_author);
- if ((empty ($meta_product_code) && !($meta_ct_page_type !== false && $meta_ct_page_type != "")) || $meta_ct_page_type == "weatherpage") {
- $OPI_FirstName = !empty ($author) ? $author->OPI_FirstName : 'author nickname';
- $str_author = 'Written by ' . $OPI_FirstName . ' Updated ' . date("M. j, Y", strtotime($information->ic_datetime)) . '
';
- }
-
-
- /* 详细内容 */
- $ic_content = $information->ic_content;
-
- /** 替换H1加面包屑,加作者 */
- $ic_content = preg_replace('/(.*)<\/h1>/i', $crumb . "\r\n" . '$1
' . "\r\n" . $str_author . "\r\n", $ic_content, 1);
-
- //图片加延迟
- $ic_content = $this->html_optimize_lib->set_lazy_loader($ic_content, 'https://data.shanghaihighlights.com/image/grey.gif');
-
- $ic_content = $this->html_optimize_lib->set_image_size($ic_content);
-
-
-
- //非产品页面
- $data["PRODUCTJS"] = "";
- $data["ISPRODUCT"] = "no"; //判断是否是产品页
- $data["addthis_widget"] = "";
- $data["FloatIcon"] = ""; //浮动图标替代addthis
- $arrExitUrl = array("/", "/culture", "/guide", "/tour", "/citytour", "/daytrip", "/asia-tour", "/china-trains");
-
- if (empty (get_meta($information->ic_id, 'meta_product_code')) || in_array($information->ic_url, $arrExitUrl)) {
- $data["FloatIcon"] = "";
- } else {
- $data["ISPRODUCT"] = "yes";
- }
-
- //顶部视频
- $data["TOPVIDEO"] = "";
- $meta_news_video = get_meta($information->ic_id, 'meta_news_video');
- $meta_video_picture = get_meta($information->ic_id, 'meta_video_picture');
- if (!empty ($meta_news_video) && !empty ($meta_video_picture)) {
- $data["TOPVIDEO"] = '
';
- }
-
- //主样式表,内联模式
- //$apiweb="http://202.103.68.104:81"; //本地测试
- $apiweb = "https://data.shanghaihighlights.com";
- $cssUrl = $apiweb . "/css/css3/base.css?v=" . time();
- $main_css_string = compress_css(GET_HTTP($cssUrl));
- $data["MAINCSS"] = '';
-
- //额外样式
- $data["ADDONCSS"] = "";
- $meta_addon_css = get_meta($information->ic_id, 'meta_addon_css');
- if (!empty ($meta_addon_css)) {
- //引用方式
- //$data["ADDONCSS"]= '';
- //内联方式
- $meta_addon_css_string = compress_css(GET_HTTP($meta_addon_css));
- $data["ADDONCSS"] = '';
- }
- //社媒分享图片
- $data["OGIMAGE"] = "";
- if (!empty ($information->ic_photo)) {
- if (strpos($information->ic_photo, "shanghaihighlights.com") != false) {
- $full_ic_photo = $information->ic_photo;
- } else {
- $full_ic_photo = $this->config->item('site_image_url') . $information->ic_photo;
- }
- $data["OGIMAGE"] = '';
- }
-
- //结构化标签
- $data["ConstructionCode"] = "";
- $meta_construction_code = get_meta($information->ic_id, 'meta_construction_code');
- if (!empty ($meta_construction_code)) {
- $data["ConstructionCode"] = $meta_construction_code;
- }
-
- //总JS:为了方便以后js好维护,必须的把一些公用的JS统计到一个文件。但是又不是所有页面都需要调用这个基础js,所以必须在这里进行判断
- $addBaseJs = false;
- $addonJs = "";
- $meta_ct_page_price = get_meta($information->ic_id, 'meta_ct_page_price'); //是否包含价格
-
- if ($meta_ct_page_price == "yes") {
- $addBaseJs = true;
- } else if ($meta_ct_page_type !== false && $meta_ct_page_type != "") {
- $addBaseJs = true;
- }
-
- if ($addBaseJs) {
- $addonJs = '';
- }
- /// ----- 总JS判断完成-----
-
- //额外js
- $data["ADDONJS"] = "";
- $meta_addon_js = get_meta($information->ic_id, 'meta_addon_js');
- if (!empty ($meta_addon_js)) {
- $addonJs .= '';
- }
- //价格js
- if ($meta_ct_page_price == "yes") {
- $addonJs .= '';
- }
-
- //列表js
- if (in_array($meta_ct_page_type, array('daytripindex', 'tourindex', 'attractionindex'))) {
- $addonJs .= '';
- }
-
- //天气
- if (in_array($meta_ct_page_type, array('weatherpage'))) {
- $addonJs .= '';
- }
-
- //页面传递参数
- $passParam = "";
- if (in_array($meta_ct_page_type, array("daytripindex", "tourindex", "attractionindex", "weatherpage"))) { //一日游和线路列表
- //产品首页
- $meta_ct_page_value = get_meta($information->ic_id, 'meta_ct_page_value');
-
- if (in_array($meta_ct_page_type, array("attractionindex"))) {
- //旧信息id,景点等信息类
- $passParam .= '';
- } else {
- //城市名称,产品类用
- $passParam .= '';
- }
-
- //加信息平台的is_id
- $passParam .= '';
- }
-
- //产品详细页
- $productType = "";
- $productCode = "";
- if ($meta_ct_page_type == "daytripdetail") {
- //一日游
- if (!empty ($meta_ct_page_type)) {
- $productType = $meta_ct_page_type;
- }
- $meta_ct_page_value = get_meta($information->ic_id, 'meta_ct_page_value');
- if (!empty ($meta_ct_page_value)) {
- $productCode = $meta_ct_page_value;
- }
- $addonJs .= '';
- //$addonJs .= '';
- $data["ADDONCSS"] .= '';
-
- //一日游表单的替换
- $DayTripData["productCode"] = $productCode;
- $template_form_daydetail = $this->load->view($template_path . '-daydetail-form', $DayTripData, true); //模板内容
- //使用simple_html_dom_lib库来进行表单添加
- $ic_content = $this->html_optimize_lib->add_htmlcode($ic_content, "#maincontent", $template_form_daydetail);
- }
- if ($meta_ct_page_type == "tourdetail") {
- //线路
- $productType = $meta_ct_page_type;
- $meta_ct_page_value = get_meta($information->ic_id, 'meta_ct_page_value');
- if (!empty ($meta_ct_page_value)) {
- $productCode = $meta_ct_page_value;
- }
-
- //获取cli_sn
- $tourdata = json_decode(GET_HTTP($apiurl . "/thirdparty/ctmobilefirst/api/getCliSn/?param=" . $productCode));
- $data["clisn"] = $tourdata->clisn;
-
- //调取模板
- $dataform["TourCode"] = $productCode;
- $dataform["CLI_SN"] = $tourdata->clisn;
- $dataform["TourName"] = $information->ic_title;
- $template_form_tourqi = $this->load->view($template_path . '-form-tourqi', $dataform, true);
- $data["template_form_tourqi"] = $template_form_tourqi; //表单模板字符串
-
- }
-
-
- //表单页
- if (in_array($meta_ct_page_type, array("customize", "contactus", "pagewithform", "tourdetail"))) {
- $productType = $meta_ct_page_type;
- $addonJs .= '';
- $data["ADDONCSS"] .= '';
- }
-
- if ($meta_ct_page_type == "daytripform") {
- $productType = $meta_ct_page_type;
- $addonJs .= '';
- $data["ADDONCSS"] .= '';
- }
-
- $data["productType"] = $productType;
- $data["productCode"] = $productCode;
-
- //页面添加的元素
- $data["ADDONJS"] = $addonJs;
- $data["passParam"] = $passParam;
-
- //页面详细内容放最后,这样上面都可以进行内容的替换,比如一日游表单
- $data["CUSTOMCONENT"] = $ic_content;
-
- #endregion
-
- #region 移动端和PC端差别处理区域
- $arrDevice = array("mobile", "pc");
- foreach ($arrDevice as $device) {
- //顶部全屏大图
- $data["TOPBANNER"] = "";
- $ImgText = ""; //图文字
- $meta_addon_picture_url = get_meta($information->ic_id, 'meta_addon_picture_url');
- $meta_addon_picture_text = get_meta($information->ic_id, 'meta_addon_picture_text');
- if ($device == 'mobile') { //移动端读取移动大图
- $meta_addon_picture = get_meta($information->ic_id, 'meta_addon_picture_mobile');
- $bannerImg = '
';
- if (!empty ($meta_addon_picture_url) && !empty ($meta_addon_picture_text)) {
- $ImgText = '';
- } else if (!empty ($meta_addon_picture_text)) {
- $ImgText = '' . $meta_addon_picture_text . '
';
- }
- } else {
- $meta_addon_picture = get_meta($information->ic_id, 'meta_addon_picture');
- $bannerImg = '
';
- if (!empty ($meta_addon_picture_url) && !empty ($meta_addon_picture_text)) {
- $ImgText = '';
- } else if (!empty ($meta_addon_picture_text)) {
- $ImgText = '' . $meta_addon_picture_text . '
';
- }
- }
-
- // 搜索框
- $template_TrainSearch = "";
- if ($information->ic_url == "/china-trains/hometest" || $information->ic_url == "/china-trains") {
- //火车票首页
- $template_TrainSearch = $this->load->view($template_path . '-train-index', null, true);
- $ImgText = "";
- //火车票移动端去掉头部图片,保证搜索框CLS
- if ($device == 'mobile') {
- $meta_addon_picture = "";
- $data["TOPBANNER"] = '' . $template_TrainSearch . '
';
- }
- } else if ($information->ic_url == "/china-flights") {
- //机票首页
- $template_TrainSearch = $this->load->view($template_path . '-flight-index', null, true);
- $ImgText = "";
- //飞机票移动端去掉头部图片,保证搜索框CLS
- if ($device == 'mobile') {
- $meta_addon_picture = "";
- $data["TOPBANNER"] = '' . $template_TrainSearch . '
';
- }
- }
-
- if (!empty ($meta_addon_picture)) {
- if (!empty ($meta_addon_picture_url)) {
- $data["TOPBANNER"] = '';
- } else {
- $data["TOPBANNER"] = '' . $bannerImg . $ImgText . $template_TrainSearch . '
';
- }
- }
-
- //两种设备分别调用两种模板 ,静态化
- switch ($device) {
- case 'mobile':
- //获取移动优先的模板,如果有的话
- $template_path = 'mobile_first/' . $this->config->item('site_code');
- if (is_file(APPPATH . 'views/' . $template_path . EXT)) {
- $template = $this->load->view($template_path, $data, true);
- $html_path_ext = '-mobile.htm';
- } else {
- return false;
- }
- break;
- case 'pc':
- //获取PC的模板,如果有的话
- $template_path = 'mobile_first/' . $this->config->item('site_code');
- if (is_file(APPPATH . 'views/' . $template_path . '-pc' . EXT)) {
- $template = $this->load->view($template_path . '-pc', $data, true);
- $html_path_ext = '-pc.htm';
- } else {
- return false;
- }
- break;
- default:
- }
-
- //生成静态文件
- $html_path = $this->config->item('cache')[$this->config->item('site_code')]['cache_path'] . $information->ic_url;
- $html_path = str_replace("\\", "/", $html_path);
- if (substr($html_path, -1, 1) == '/') {
- $html_path = $html_path . 'index.htm';
- }
- $html_path .= $html_path_ext;
- create_folder_by_path(dirname($html_path));
- file_put_contents($html_path, $template, LOCK_EX);
- }
- #endregion
-
- }
-
- //通过内容找到第一张图片
- public function set_photo_content($ic_photo, $ic_content)
- {
- if (empty ($ic_photo)) {
- $images = get_image_url_by_source($ic_content);
- if (!empty ($images) and !empty ($images[1])) {
- return $images[1][0];
- }
- } else {
- return $this->config->item('site_image_url') . $ic_photo;
- }
- return '';
- }
-
- //根据推荐规则进行查询
- public function recommand_information_rule($information, $root_information, $recommand, &$exclude_ids)
- {
- $data = array();
- switch ($recommand->ir_rule) {
- case 'rule_same_node_keyword': //同节点关键词
- $keywords = explode(',', $recommand->ir_keyword);
- $data = $this->Information_model->search_by_words_2($root_information->is_path, $keywords, $exclude_ids);
- break;
- case 'rule_same_url_keyword': //同URL关键词
- $keywords = explode(',', $recommand->ir_keyword);
- $url = trim($information->ic_url);
- $url = substr($url, 0, strpos($url, '/', 1) + 1);
- $data = $this->Information_model->search_by_words($url, $keywords, $exclude_ids);
- break;
- case 'rule_same_node_random': //同节点随机
- $data = $this->Information_model->random(1, $root_information->is_path, $exclude_ids);
- break;
- case 'rule_this_node_random': //指定节点下随机
- $ir_pointer = $this->Information_model->Detail($recommand->ir_pointer_is_id, 'is_path');
- if (!empty ($ir_pointer)) {
- $data = $this->Information_model->random(1, $ir_pointer->is_path, $exclude_ids);
- }
- break;
- case 'rule_range_random': //范围内随机,同读取备用节点
- break;
- case 'rule_show_tips': //显示广告
- $data = $this->recommends_and_tips_model->tips_detail($recommand->ir_pointer_it_id);
- return array($recommand->ir_name => $data);
- //break;
- case 'rule_no_show': //不显示
- return array($recommand->ir_name => false);
- //break;
- default: //'rule_parent'://继承上级规则则留空,程序会循环一遍分组的规则
- return false;
- }
- //读取备用节点
- if (empty ($data) && !empty ($recommand->ir_urls)) { //查不到信息并且备选urls不为空,则随机选一条
- // $url_array = explode("\n", $recommand->ir_urls);
- // $data = $this->Information_model->Detail(trim($url_array[rand(0, count($url_array) - 1)]));
- $url_array = explode("\n", $recommand->ir_urls);
- $data = $this->Information_model->random_range(1, $url_array, $exclude_ids);
- }
- if (!empty ($data)) {
- $exclude_ids[] = $data->is_id;
- $data->desktop_photo = get_meta($data->ic_id, 'meta_addon_picture');
- $data->mobile_photo = get_meta($data->ic_id, 'meta_addon_picture_mobile');
- if (empty ($data->mobile_photo)) {
- if (!empty ($data->ic_photo)) {
- $data->mobile_photo = $this->config->item('site_image_url') . $data->ic_photo;
- } else {
- $data->mobile_photo = 'https://data.chinahighlights.com/image/travelguide/article/recommended-info-bottom-cover.jpg';
- }
- }
- }
- return array($recommand->ir_name => $data);
- }
-
- //获取当前信息所有的推荐信息和广告内容
- public function recommand_information($information)
- {
- $data = array();
- $group_detail = $this->Information_model->get_detail_by_path($information->is_path, 0); //信息所属分组,根据分组进行不同推荐
- $group_recommands = $this->recommends_and_tips_model->recommends_list($group_detail->is_id); //节点下所有的推荐规则
- $root_detail = $this->Information_model->get_detail_by_path($information->is_path, 1); //信息所属分类,获取信息顶级节点内容
- $root_recommands = $this->recommends_and_tips_model->recommends_list($root_detail->is_id); //节点下所有的推荐规则
-
- $exclude_ids = array($information->is_id); //需要排除的is_id,防止通过页面显示相同内容,默认排除本身,每个推荐内容都需要排除已经推荐过的
- foreach ($root_recommands as $item) {
- if ($this->config->item('site_code') == 'ah' or $this->config->item('site_code') == 'ch' or $this->config->item('site_code') == 'gh') { //如果是AH CH GH的页面,取消重复检测
- $exclude_ids = array(0);
- }
- $result = $this->recommand_information_rule($information, $root_detail, $item, $exclude_ids);
- if (!empty ($result)) {
- $data += $result;
- }
- }
-
- foreach ($group_recommands as $item) {
- if ($this->config->item('site_code') == 'ah' or $this->config->item('site_code') == 'ch' or $this->config->item('site_code') == 'gh') { //如果是AH CH GH的页面,取消重复检测
- $exclude_ids = array(0);
- }
- if (empty ($data[$item->ir_name])) {
- $result = $this->recommand_information_rule($information, $root_detail, $item, $exclude_ids);
- if (!empty ($result)) {
- $data += $result;
- }
- }
- }
- //print_r($data);
- //log_message('error', 'exclude_ids: '.$information->ic_url.' '.implode(',',$exclude_ids));
- return $data;
- }
-
- public function call_mobile_template_NEXT($template_path, $is_id)
- {
- $data['detail'] = $this->Information_model->Detail($is_id);
- $data['type_detail'] = $this->Information_model->get_detail_by_path($data['detail']->is_path, 0); //信息所属分组,根据分组进行不同推荐
- $data['root_detail'] = $this->Information_model->get_detail_by_path($data['detail']->is_path, 1); //信息所属分类,获取信息顶级节点内容
-
- switch (strtolower($data['type_detail']->is_id)) {
- case 278008010: //Inspiration
- //随机获取两个同级节点内容
- $random_array = $this->Information_model->random(2, $data['root_detail']->is_path, array($data['detail']->is_id));
- if (!empty ($random_array[0])) {
- $data['info_howtoplan'] = $random_array[0];
- $data['info_howtoplan_root'] = $data['root_detail'];
- $data['info_howtoplan']->ic_photo = $this->set_photo_content($data['info_howtoplan']->ic_photo, $data['info_howtoplan']->ic_content);
- }
- if (!empty ($random_array[1])) {
- $data['info_besttime'] = $random_array[1];
- $data['info_besttime_root'] = $data['root_detail'];
- $data['info_besttime']->ic_photo = $this->set_photo_content($data['info_besttime']->ic_photo, $data['info_besttime']->ic_content);
- }
- //漏斗作用的页面,随机挑选一篇
- $random_array = array(
- '/travelguide/china-facts.htm',
- '/travelguide/article-top-china-tourist-destination.htm',
- '/travelguide/most-beautiful-places.htm',
- '/weather/china-best-times.htm',
- '/travelguide/article-10-movies-to-watch.htm',
- '/travelguide/article-culture-shock-in-china.htm',
- '/travelguide/article-what-chinese-eat-for-breakfast.htm',
- '/travelguide/china-top-10-attractions.htm',
- '/travelguide/chinese-food/eight-chinese-dishes.htm',
- '/travelguide/china-travel-reopen-restrictions.htm',
- );
- $data['info_topthings'] = $this->Information_model->Detail($random_array[rand(0, count($random_array) - 1)]);
- if (!empty ($data['info_topthings'])) {
- $data['info_topthings_root'] = $this->Information_model->get_detail_by_path($data['info_topthings']->is_path, 1);
- $data['info_topthings']->ic_photo = $this->set_photo_content($data['info_topthings']->ic_photo, $data['info_topthings']->ic_content);
- }
- //文化板块的页面,随机挑选一篇
- $random_array = array(
- '/travelguide/chinese-zodiac/',
- '/travelguide/culture/china-arts-crafts.htm',
- '/beijing/forbidden-city/',
- '/travelguide/culture/traditionalmedichine.htm',
- '/travelguide/chinese-tea/',
- '/travelguide/kungfu/',
- '/travelguide/culture/china-history.htm',
- '/travelguide/chinese-food/',
- '/travelguide/chinese-language/',
- );
- $data['info_hotel'] = $this->Information_model->Detail($random_array[rand(0, count($random_array) - 1)]);
- if (!empty ($data['info_hotel'])) {
- $data['info_hotel_root'] = $this->Information_model->get_detail_by_path($data['info_hotel']->is_path, 1);
- $data['info_hotel']->ic_photo = $this->set_photo_content($data['info_hotel']->ic_photo, $data['info_hotel']->ic_content);
- }
- break;
- case 278008012: //'planing-1(guide)':
- case 278008013: //'planning-2 (decision tips)':
- case 278008011: //'destination': //url的第一段表示地区,根据第一段来搜索相关数据如/beijing/ 而不是根据is_parent_id因为可能信息和线路是在不同的分类下
- $destination_url = trim($data['detail']->ic_url);
- $destination_url = substr($destination_url, 0, strpos($destination_url, '/', 1) + 1);
- //how to plan
- $data['info_howtoplan'] = $this->Information_model->search_by_words($destination_url, array('how', 'plan'), array($data['detail']->is_id));
- if (empty ($data['info_howtoplan'])) { //找不到对应信息则显示备用
- $data['info_howtoplan'] = $this->Information_model->Detail('/travelguide/plan-first-trip.htm');
- }
- $data['info_howtoplan_root'] = $this->Information_model->get_detail_by_path($data['info_howtoplan']->is_path, 1); //信息所属分类,获取信息顶级节点内容
- if (!empty ($data['info_howtoplan'])) {
- $data['info_howtoplan']->ic_photo = $this->set_photo_content($data['info_howtoplan']->ic_photo, $data['info_howtoplan']->ic_content);
- }
- //best time to visit
- $data['info_besttime'] = $this->Information_model->search_by_words($destination_url, array('best', 'time'), array($data['detail']->is_id));
- if (empty ($data['info_besttime'])) {
- $data['info_besttime'] = $this->Information_model->Detail('/weather/china-best-times.htm');
- }
- $data['info_besttime_root'] = $this->Information_model->get_detail_by_path($data['info_besttime']->is_path, 1); //信息所属分类,获取信息顶级节点内容
- if (!empty ($data['info_besttime'])) {
- $data['info_besttime']->ic_photo = $this->set_photo_content($data['info_besttime']->ic_photo, $data['info_besttime']->ic_content);
- }
- //top things to do
- $data['info_topthings'] = $this->Information_model->search_by_words($destination_url, array('top', 'things'), array($data['detail']->is_id));
- if (empty ($data['info_topthings'])) {
- $data['info_topthings'] = $this->Information_model->Detail('/travelguide/article-top-china-tourist-destination.htm');
- }
- $data['info_topthings_root'] = $this->Information_model->get_detail_by_path($data['info_topthings']->is_path, 1); //信息所属分类,获取信息顶级节点内容
- if (!empty ($data['info_topthings'])) {
- $data['info_topthings']->ic_photo = $this->set_photo_content($data['info_topthings']->ic_photo, $data['info_topthings']->ic_content);
- }
- //第四篇,随机推荐下方url
- $random_array = array(
- '/feedback/',
- '/travelguide/how-chinahighlights-selects-your-hotel.htm',
- '/travelguide/article-private-tour-vs-group-tour.htm',
- '/aboutus/who-recommended.htm',
- '/aboutus/no-shops.htm',
- '/aboutus/company-history.htm',
- );
- $data['info_hotel'] = $this->Information_model->Detail($random_array[rand(0, count($random_array) - 1)]);
- if (!empty ($data['info_hotel'])) {
- $data['info_hotel_root'] = $this->Information_model->get_detail_by_path($data['info_hotel']->is_path, 1);
- $data['info_hotel']->ic_photo = $this->set_photo_content($data['info_hotel']->ic_photo, $data['info_hotel']->ic_content);
- }
- break;
- default:
- return '';
- }
-
- return $this->load->view($template_path . '-next', $data, 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://169.54.167.189:22224/ampreq' . $url;
- } else {
- $url = 'http://169.54.167.189: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 = "https://www.chinarundreisen.com/gm.php/information/delete_cache_23Xd913mddkgssODII?static_html_url=" . urlencode($url);
- //} else {
- //先删除再生成,部分页面没有在信息平台中
- GET_HTTP("https://www.chinarundreisen.com/gm.php/information/delete_cache_23Xd913mddkgssODII?static_html_url=" . urlencode($url));
- $url = "https://www.chinarundreisen.com/gm.php/information/detail/?static_html_url=" . $url;
- //}
- break;
-
- //国际站
- case 'vac':
- case 'vc':
- case 'it':
- case 'ru':
- case 'jp':
- $information = $this->Information_model->Detail($url);
- $meta_pc_amp = @get_meta($information->ic_id, 'AMP_BODY_PC_STATUS');
- if ($delete_only) {
- //只删除操作,在url修改和不发布信息的时候使用
- $url = $this->config->item('site_url') . '/index.php/welcome/update_cache/delete_only?static_html_url=' . $url;
- } else {
- $tmp = $url;
- //判断是否是更新信息
- // 产品页面不能生成静态页面,比如/beijing/hotel/只是为了在导航显示一个链接,如果生成了静态页面,网前只会显示一个空白页面了
- if (!empty ($information->ic_content) || !empty ($information->ic_summary) || $meta_pc_amp == 'yes') {
- $url = $this->config->item('site_url') . '/index.php/information/detail/?static_html_url=' . $url;
- } else {
- $url = $this->config->item('site_url') . '/index.php/welcome/update_cache/?static_html_url=' . $url;
- //$url = $this->config->item('site_url') . '/index.php/information/detail/?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
- $cache_url = $this->input->post('cache_url');
- if ($url && !$cache_url) {
- /*
- ignore_user_abort(true);
- $ch = curl_init();
- curl_setopt($ch, CURLOPT_URL, $url);
- 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_FRESH_CONNECT, 1);
- curl_setopt($ch, CURLOPT_NOBODY, 1);
- curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
- curl_exec($ch);
- curl_close($ch);
- */
- $data['async_update'] = $url;
- $data[] = array('name' => 'ok', 'value' => '信息保存成功,请在8秒后检查更新页面。', 'url' => $url);
- //如果是外部调用就返回结果,内部就不返回了
- if ($cache_url) {
- echo json_encode($data);
- }
- return $data;
- }
- }
- break;
- //国际站 - GH - add gm
- case 'gh_vac':
- case 'gh_vc':
- case 'gh_it':
- case 'gh_ru':
- case 'gh_jp':
- case 'gh_gm':
- $information = $this->Information_model->Detail($url);
- $meta_pc_amp = @get_meta($information->ic_id, 'AMP_BODY_PC_STATUS');
- if ($delete_only) {
- //只删除操作,在url修改和不发布信息的时候使用
- $url = $this->config->item('site_url') . '/index.php/welcome/update_cache/delete_only?static_html_url=' . $url;
- } else {
- $tmp = $url;
- //判断是否是更新信息
- // 产品页面不能生成静态页面,比如/beijing/hotel/只是为了在导航显示一个链接,如果生成了静态页面,网前只会显示一个空白页面了
- if (!empty ($information->ic_content) || !empty ($information->ic_summary) || $meta_pc_amp == 'yes') {
- $url = $this->config->item('site_url') . '/index.php/gh/info/detail/?static_html_url=' . $url;
- } else {
- $url = $this->config->item('site_url') . '/index.php/welcome/update_cache/?static_html_url=' . $url;
- //$url = $this->config->item('site_url') . '/index.php/information/detail/?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;
- }
-
- // GH国际 不发布的时候删除缓存
- if (isset ($information) && !empty ($information) && !$information->ic_status) {
- $url = $this->config->item('site_url') . '/index.php/welcome/update_cache/delete_only?static_html_url=' . $tmp;
- }
-
- //int return direct
- $cache_url = $this->input->post('cache_url');
- if ($url && !$cache_url) {
- /*
- ignore_user_abort(true);
- $ch = curl_init();
- curl_setopt($ch, CURLOPT_URL, $url);
- 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_FRESH_CONNECT, 1);
- curl_setopt($ch, CURLOPT_NOBODY, 1);
- curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
- curl_exec($ch);
- curl_close($ch);
- */
- $data['async_update'] = $url;
- $data[] = array('name' => 'ok', 'value' => '信息保存成功,请在8秒后检查更新页面。', 'url' => $url);
- //如果是外部调用就返回结果,内部就不返回了
- if ($cache_url) {
- echo json_encode($data);
- }
- return $data;
- }
- }
- break;
-
- case 'ct': //子站点使用
- $url = 'http://50.97.246.187:22223' . $url;
- break;
- 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;
- }
-
- //获取产品信息,提供给用户选择进行绑定
- public 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;
- }
-
- //显示备份的内容
- public function backup_content($log_id)
- {
- $data['log_info'] = $this->Logs_model->read($log_id);
- if ($data['log_info']->log_action == 'backup_amp') {
- $data['log_list'] = $this->Logs_model->get_all_backup_list($data['log_info']->log_res_id, true);
- } else {
- $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');
- }
-
- //保存自定义配置
- public 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;
- }
-
- //保存自定义配置
- public 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->model('recommends_and_tips_model');
+ $this->load->model('trippest_model'); //trippest产品
+ $this->load->model('Feedback_model');
+ $this->load->model('Price_model');
+ $this->load->model('PrimeLinePrice_model');
+ $this->load->library('Amplib'); //加载AMP处理类
+ $this->load->library('Currency');
+ $this->load->library('html_optimize_lib'); //加载HTML优化类
+
+ }
+
+ 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;
+ }
+
+ //[国际->国际]复制节点结构到任意站点的节点下面。-- lmr
+ //is_id 信息结构ID,
+ public function copy_by_is_id($src_is_id, $dest_is_id)
+ {
+ if (empty ($src_is_id) || empty ($src_is_id)) {
+ echo 'need 2 is_id v1';
+ return false;
+ }
+
+ $data = array();
+ if ($src_is_id == $dest_is_id || empty ($src_is_id) || empty ($dest_is_id)) {
+ echo 'need 2 is_id v2';
+ return false;
+ }
+ // 源节点
+ $src = $this->InfoStructures_model->Detail($src_is_id);
+ $src_path = $this->Information_model->get_list_by_path($src->is_path, false, $src->is_sitecode);
+ // 源子节点
+ foreach ($src_path as $n => $item) {
+ if ($item->is_id === $src->is_id) {
+ unset($src_path[$n]);
+ }
+ }
+ // 目标节点结构
+ $dest = $this->InfoStructures_model->Detail($dest_is_id);
+ $dest_path = $this->Information_model->get_list_by_path($dest->is_path, false, $dest->is_sitecode);
+ // 目标子节点
+ foreach ($dest_path as $n => $item) {
+ if ($item->is_id === $dest->is_id) {
+ unset($dest_path[$n]);
+ }
+ }
+
+ // 新旧节点对应表
+ $node_map = array();
+ // 循环复制各个层级的节点。
+ foreach ($src_path as $n => $item) {
+
+ // 定位复制的父节点
+ $target_is_id = $dest->is_id;
+ foreach ($node_map as $old => $new) {
+ if ($item->is_parent_id == $old) {
+ $target_is_id = $new;
+ }
+ }
+ // info_content
+ $item_info_content = $this->InfoContents_model->get_ic_contents2($item->is_ic_id);
+ $this->InfoContents_model->Add_with_sitecode(
+ $item_info_content->ic_url,
+ $item_info_content->ic_url_title,
+ $item_info_content->ic_type,
+ $item_info_content->ic_title,
+ $item_info_content->ic_content,
+ $item_info_content->ic_summary,
+ $item_info_content->ic_seo_title,
+ $item_info_content->ic_seo_description,
+ $item_info_content->ic_seo_keywords,
+ $item_info_content->ic_show_bread_crumbs,
+ $item_info_content->ic_status,
+ $item_info_content->ic_template,
+ $item_info_content->ic_photo,
+ $item_info_content->ic_photo_width,
+ $item_info_content->ic_photo_height,
+ $item_info_content->ic_recommend_tours,
+ $item_info_content->ic_recommend_packages,
+ $item_info_content->ic_ht_area_id,
+ $item_info_content->ic_ht_area_type,
+ $item_info_content->ic_ht_product_id,
+ $item_info_content->ic_ht_product_type,
+ $item_info_content->ic_author,
+ $dest->is_sitecode
+ );
+
+ // info_meta
+ $item_meta_amp = $this->InfoMetas_model->get($item->is_ic_id, 'AMP');
+ $item_meta_ampbody = $this->InfoMetas_model->get($item->is_ic_id, 'AMP_BODY');
+ $item_meta_ampcss = $this->InfoMetas_model->get($item->is_ic_id, 'AMP_CSS');
+ $item_meta_ampscript = $this->InfoMetas_model->get($item->is_ic_id, 'AMP_SCRIPT');
+ $item_meta_ampjson = $this->InfoMetas_model->get($item->is_ic_id, 'AMP_JSON');
+ $item_meta_ampstatus = $this->InfoMetas_model->get($item->is_ic_id, 'AMP_STATUS');
+ $item_meta_pcstatus = $this->InfoMetas_model->get($item->is_ic_id, 'AMP_BODY_PC_STATUS');
+ $item_meta_pcbody = $this->InfoMetas_model->get($item->is_ic_id, 'AMP_BODY_PC');
+ $item_meta_pccss = $this->InfoMetas_model->get($item->is_ic_id, 'AMP_CSS_PC');
+ $item_meta_pcschema = $this->InfoMetas_model->get($item->is_ic_id, 'AMP_SCHEMA');
+
+ if (!empty ($item_meta_amp))
+ $this->InfoMetas_model->Add($this->InfoContents_model->insert_id, 'AMP', $item_meta_amp);
+ if (!empty ($item_meta_ampbody))
+ $this->InfoMetas_model->Add($this->InfoContents_model->insert_id, 'AMP_BODY', $item_meta_ampbody);
+ if (!empty ($item_meta_ampcss))
+ $this->InfoMetas_model->Add($this->InfoContents_model->insert_id, 'AMP_CSS', $item_meta_ampcss);
+ if (!empty ($item_meta_ampscript))
+ $this->InfoMetas_model->Add($this->InfoContents_model->insert_id, 'AMP_SCRIPT', $item_meta_ampscript);
+ if (!empty ($item_meta_ampjson))
+ $this->InfoMetas_model->Add($this->InfoContents_model->insert_id, 'AMP_JSON', $item_meta_ampjson);
+ if (!empty ($item_meta_ampstatus))
+ $this->InfoMetas_model->Add($this->InfoContents_model->insert_id, 'AMP_STATUS', $item_meta_ampstatus);
+ if (!empty ($item_meta_pcstatus))
+ $this->InfoMetas_model->Add($this->InfoContents_model->insert_id, 'AMP_BODY_PC_STATUS', $item_meta_pcstatus);
+ if (!empty ($item_meta_pcbody))
+ $this->InfoMetas_model->Add($this->InfoContents_model->insert_id, 'AMP_BODY_PC', $item_meta_pcbody);
+ if (!empty ($item_meta_pccss))
+ $this->InfoMetas_model->Add($this->InfoContents_model->insert_id, 'AMP_CSS_PC', $item_meta_pccss);
+ if (!empty ($item_meta_pcschema))
+ $this->InfoMetas_model->Add($this->InfoContents_model->insert_id, 'AMP_SCHEMA', $item_meta_pcschema);
+
+ // gm 补充meta
+ $item_meta_addon_css = $this->InfoMetas_model->get($item->is_ic_id, 'meta_addon_css');
+ if (!empty ($item_meta_addon_css))
+ $this->InfoMetas_model->Add($this->InfoContents_model->insert_id, 'meta_addon_css', $item_meta_addon_css);
+
+ $item_meta_addon_js = $this->InfoMetas_model->get($item->is_ic_id, 'meta_addon_js');
+ if (!empty ($item_meta_addon_js))
+ $this->InfoMetas_model->Add($this->InfoContents_model->insert_id, 'meta_addon_js', $item_meta_addon_js);
+
+ $item_meta_use_list_picture = $this->InfoMetas_model->get($item->is_ic_id, 'meta_use_list_picture');
+ if (!empty ($item_meta_use_list_picture))
+ $this->InfoMetas_model->Add($this->InfoContents_model->insert_id, 'meta_use_list_picture', $item_meta_use_list_picture);
+
+ // 添加节点
+ $this->InfoStructures_model->Add_with_sitecode($target_is_id, $this->InfoContents_model->insert_id, 999, $dest->is_sitecode);
+ $node_map[$item->is_id] = $this->InfoStructures_model->insert_id;
+
+ }
+
+ print_r($node_map);
+ // print_r($src);
+ // print_r($src_path);
+ // print_r($dest);
+ // print_r($dest_path);
+
+ //返回状态
+ $data[] = array('name' => 'ok', 'value' => 'copy_by_is_id() success!');
+ echo json_encode($data);
+ return true;
+ }
+
+ //[德语->国际]复制节点结构到任意站点的节点下面。-- lmr
+ //is_id 信息结构ID,
+ public function copy_by_is_id_gm($src_is_id, $dest_is_id)
+ {
+ if (empty ($src_is_id) || empty ($src_is_id)) {
+ echo 'need 2 is_id v1';
+ return false;
+ }
+
+ $data = array();
+ if ($src_is_id == $dest_is_id || empty ($src_is_id) || empty ($dest_is_id)) {
+ echo 'need 2 is_id v2';
+ return false;
+ }
+
+ // 源节点
+ $src = $this->InfoStructures_model->Detail_gm($src_is_id);
+ $src_path = $this->Information_model->get_list_by_path_gm($src->is_path, false, $src->is_sitecode);
+ // 源子节点
+ foreach ($src_path as $n => $item) {
+ if ($item->is_id === $src->is_id) {
+ unset($src_path[$n]);
+ }
+ }
+
+ // 目标节点结构
+ $dest = $this->InfoStructures_model->Detail($dest_is_id);
+ $dest_path = $this->Information_model->get_list_by_path($dest->is_path, false, $dest->is_sitecode);
+ // 目标子节点
+ foreach ($dest_path as $n => $item) {
+ if ($item->is_id === $dest->is_id) {
+ unset($dest_path[$n]);
+ }
+ }
+
+ // 新旧节点对应表
+ $node_map = array();
+ // 循环复制各个层级的节点。
+ foreach ($src_path as $n => $item) {
+
+ // 定位复制的父节点
+ $target_is_id = $dest->is_id;
+ foreach ($node_map as $old => $new) {
+ if ($item->is_parent_id == $old) {
+ $target_is_id = $new;
+ }
+ }
+ // info_content
+ $item_info_content = $this->InfoContents_model->get_ic_contents2_gm($item->is_ic_id);
+ $this->InfoContents_model->Add_with_sitecode(
+ $item_info_content->ic_url,
+ $item_info_content->ic_url_title,
+ $item_info_content->ic_type,
+ $item_info_content->ic_title,
+ $item_info_content->ic_content,
+ $item_info_content->ic_summary,
+ $item_info_content->ic_seo_title,
+ $item_info_content->ic_seo_description,
+ $item_info_content->ic_seo_keywords,
+ $item_info_content->ic_show_bread_crumbs,
+ $item_info_content->ic_status,
+ $item_info_content->ic_template,
+ $item_info_content->ic_photo,
+ $item_info_content->ic_photo_width,
+ $item_info_content->ic_photo_height,
+ $item_info_content->ic_recommend_tours,
+ $item_info_content->ic_recommend_packages,
+ $item_info_content->ic_ht_area_id,
+ $item_info_content->ic_ht_area_type,
+ $item_info_content->ic_ht_product_id,
+ $item_info_content->ic_ht_product_type,
+ $item_info_content->ic_author,
+ $dest->is_sitecode
+ );
+
+ // info_meta
+ $item_meta_amp = $this->InfoMetas_model->get_gm($item->is_ic_id, 'AMP');
+ $item_meta_ampbody = $this->InfoMetas_model->get_gm($item->is_ic_id, 'AMP_BODY');
+ $item_meta_ampcss = $this->InfoMetas_model->get_gm($item->is_ic_id, 'AMP_CSS');
+ $item_meta_ampscript = $this->InfoMetas_model->get_gm($item->is_ic_id, 'AMP_SCRIPT');
+ $item_meta_ampjson = $this->InfoMetas_model->get_gm($item->is_ic_id, 'AMP_JSON');
+ $item_meta_ampstatus = $this->InfoMetas_model->get_gm($item->is_ic_id, 'AMP_STATUS');
+ $item_meta_pcstatus = $this->InfoMetas_model->get_gm($item->is_ic_id, 'AMP_BODY_PC_STATUS');
+ $item_meta_pcbody = $this->InfoMetas_model->get_gm($item->is_ic_id, 'AMP_BODY_PC');
+ $item_meta_pccss = $this->InfoMetas_model->get_gm($item->is_ic_id, 'AMP_CSS_PC');
+ $item_meta_pcschema = $this->InfoMetas_model->get_gm($item->is_ic_id, 'AMP_SCHEMA');
+
+ if (!empty ($item_meta_amp))
+ $this->InfoMetas_model->Add($this->InfoContents_model->insert_id, 'AMP', $item_meta_amp);
+ if (!empty ($item_meta_ampbody))
+ $this->InfoMetas_model->Add($this->InfoContents_model->insert_id, 'AMP_BODY', $item_meta_ampbody);
+ if (!empty ($item_meta_ampcss))
+ $this->InfoMetas_model->Add($this->InfoContents_model->insert_id, 'AMP_CSS', $item_meta_ampcss);
+ if (!empty ($item_meta_ampscript))
+ $this->InfoMetas_model->Add($this->InfoContents_model->insert_id, 'AMP_SCRIPT', $item_meta_ampscript);
+ if (!empty ($item_meta_ampjson))
+ $this->InfoMetas_model->Add($this->InfoContents_model->insert_id, 'AMP_JSON', $item_meta_ampjson);
+ if (!empty ($item_meta_ampstatus))
+ $this->InfoMetas_model->Add($this->InfoContents_model->insert_id, 'AMP_STATUS', $item_meta_ampstatus);
+ if (!empty ($item_meta_pcstatus))
+ $this->InfoMetas_model->Add($this->InfoContents_model->insert_id, 'AMP_BODY_PC_STATUS', $item_meta_pcstatus);
+ if (!empty ($item_meta_pcbody))
+ $this->InfoMetas_model->Add($this->InfoContents_model->insert_id, 'AMP_BODY_PC', $item_meta_pcbody);
+ if (!empty ($item_meta_pccss))
+ $this->InfoMetas_model->Add($this->InfoContents_model->insert_id, 'AMP_CSS_PC', $item_meta_pccss);
+ if (!empty ($item_meta_pcschema))
+ $this->InfoMetas_model->Add($this->InfoContents_model->insert_id, 'AMP_SCHEMA', $item_meta_pcschema);
+
+ // gm 补充meta
+ $item_meta_addon_css = $this->InfoMetas_model->get_gm($item->is_ic_id, 'meta_addon_css');
+ if (!empty ($item_meta_addon_css))
+ $this->InfoMetas_model->Add($this->InfoContents_model->insert_id, 'meta_addon_css', $item_meta_addon_css);
+
+ $item_meta_addon_js = $this->InfoMetas_model->get_gm($item->is_ic_id, 'meta_addon_js');
+ if (!empty ($item_meta_addon_js))
+ $this->InfoMetas_model->Add($this->InfoContents_model->insert_id, 'meta_addon_js', $item_meta_addon_js);
+
+ $item_meta_use_list_picture = $this->InfoMetas_model->get_gm($item->is_ic_id, 'meta_use_list_picture');
+ if (!empty ($item_meta_use_list_picture))
+ $this->InfoMetas_model->Add($this->InfoContents_model->insert_id, 'meta_use_list_picture', $item_meta_use_list_picture);
+
+ // 添加节点
+ $this->InfoStructures_model->Add_with_sitecode($target_is_id, $this->InfoContents_model->insert_id, 999, $dest->is_sitecode);
+ $node_map[$item->is_id] = $this->InfoStructures_model->insert_id;
+
+ }
+
+ print_r($node_map);
+ // print_r($src);
+ // print_r($src_path);
+ // print_r($dest);
+ // print_r($dest_path);
+
+ //返回状态
+ $data[] = array('name' => 'ok', 'value' => 'copy_by_is_id() success!');
+ echo json_encode($data);
+ 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);
+
+ //删除前,备份amp的meta标签-isid。
+ //$meta_value = $this->InfoMetas_model->get($info_detail->ic_id, 'AMP_JSON');
+ //if ($meta_value) {
+ // $this->Logs_model->backup_meta($info_detail->ic_id, $meta_value, 'AMP_JSON_' . $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);
+
+ //增加一项,属于这个区域,但是结构数据层次不准确的也要列出来
+ //信息内容
+ $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('gh_vac', 'gh_vc', 'gh_jp', 'gh_ru', 'gh_it', 'gh_gm'))) {
+ $this->config->set_item('templates', $this->config->item('templates_gh'));
+ }
+
+ 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'));
+ }
+
+ if ($Structure->is_sitecode == 'ct') {
+ $data['infoTypeList'] = $this->config->item('InfoType_ct');
+ } elseif ($Structure->is_sitecode == 'ah') {
+ $data['infoTypeList'] = $this->config->item('InfoType_ah');
+ } else {
+ 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 if ($this->config->item('site_code') === 'gm') {
+ $this->config->set_item('templates', $this->config->item('templates_product_gm'));
+ $data['infoTypeList'] = $this->config->item('InfoType_product_gm');
+ } else {
+ $this->config->set_item('templates', $this->config->item('templates_product'));
+ }
+
+ break;
+ default:
+ $data['infoTypeList'] = array('不设置' => 'none', '首页' => 'root');
+ 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']);
+ }
+
+ //获取移动优先的模板,如果有的话
+ //增加判断站点,每个站点需要读取的模板不一样。 20210311 zp
+ //取消预览,严重影响速度 2023-08-15 ycc
+ /*
+ if (is_mobile_first()) {
+ $mobile_first_template_path = 'mobile_first/' . $this->config->item('site_code');
+ if (is_file(APPPATH . 'views/' . $mobile_first_template_path . EXT)) {
+ $data['mobile_first_template'] = $this->load->view($mobile_first_template_path, '', true);
+ //主样式表,内联模式
+ $main_css_string = compress_css(GET_HTTP('https://proxy-data.chinahighlights.com/css/mobile-first.css'));
+ $data['mobile_first_template'] = str_replace('', '', $data['mobile_first_template']);
+ //查找是否有静态文件
+ if ($this->html_file_helper('find', $data['information']->ic_url)) {
+ $data['has_html_file'] = true;
+ }
+ } else {
+ $data['mobile_first_template'] = '没有找到移动模板';
+ }
+ }
+ */
+
+ //判断是否生成静态文件
+ if (is_mobile_first()) {
+ //查找是否有静态文件
+ if ($this->html_file_helper('find', $data['information']->ic_url)) {
+ $data['has_html_file'] = true;
+ }
+ }
+
+ $this->load->view('bootstrap3/header', $data);
+ $this->load->view('bootstrap3/information_edit');
+ $this->load->view('bootstrap3/footer');
+ }
+
+ 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 {
+ $ic_content = $this->input->post('ic_content');
+ if (strcasecmp($this->config->item('site_code'), "chinatravel") == 0) { //ct站替换中国大陆的英文
+ if (stripos($ic_content, 'mainland china') !== false) {
+ $ic_content = str_ireplace('mainland china', 'the mainland of china', $ic_content);
+ }
+ }
+
+ $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'), $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, "ch") == 0 && !empty ($auto_update_cache)) {
+ //读取模板生成PC和移动优先文件
+ $information_new = $this->Information_model->Detail($this->input->post('is_id'));
+ //$this->benchmark->mark('000');
+ $recommand_information = $this->recommand_information($information);
+ //$this->benchmark->mark('111');
+ $this->make_www_cache('mobile', $information_new, $recommand_information);
+ $this->make_www_cache('pc', $information_new, $recommand_information);
+ //echo ' |000~111: '.$this->benchmark->elapsed_time('000', '111');
+ } else if (strcasecmp($site_code, "ah") == 0 && !empty ($auto_update_cache)) {
+ //读取模板生成PC和移动优先文件
+ $recommand_information = $this->recommand_information($information);
+ $information_new = $this->Information_model->Detail($this->input->post('is_id'));
+ $this->make_www_cache_ah('mobile', $information_new, $recommand_information);
+ $this->make_www_cache_ah('pc', $information_new, $recommand_information);
+ } else if (strcasecmp($site_code, "gh") == 0 && !empty ($auto_update_cache)) {
+ $recommand_information = $this->recommand_information($information);
+ $information_new = $this->Information_model->Detail($this->input->post('is_id'));
+ $this->make_www_cache_gh('mobile', $information_new, $recommand_information);
+ $this->make_www_cache_gh('pc', $information_new, $recommand_information);
+ } else if (strcasecmp($site_code, "chinatravel") == 0 && !empty ($auto_update_cache)) {
+ //chinatravel读取模板生成PC和移动优先文件
+ $information_new = $this->Information_model->Detail($this->input->post('is_id'));
+ $this->make_www_cache_ct($information_new);
+ // $this->make_www_cache_ct('pc', $information_new);
+ } else if (strcasecmp($site_code, "shanghai") == 0 && !empty ($auto_update_cache)) {
+ $information_new = $this->Information_model->Detail($this->input->post('is_id'));
+ $this->make_www_cache_sh($information_new);
+ } else if (strcasecmp($site_code, "cht") == 0 && !empty ($auto_update_cache)) {
+ $update_info_log = $this->update_cache($ic_url);
+ } else if (strcasecmp($site_code, "ah") == 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 && strcasecmp($site_code, "ah") != 0) { //非cht站点并且非GM并且非AH
+ $update_info_log = $this->update_cache($ic_url);
+ } else if (strcasecmp($site_code, "ct") == 0 && !empty ($auto_update_cache)) {
+ $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, $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不重复检查
+ public 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格式检查,不能包含大小写、空格等特殊字符
+ public 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;
+ }
+
+ public function update_www_cache($ic_id)
+ {
+ $information = $this->Information_model->detail_by_ic_id($ic_id);
+ if (empty ($information)) {
+ echo json_encode(array('name' => 'no', 'data' => '找不到这个页面'));
+ return false;
+ }
+ if ($this->html_file_helper('find', $information->ic_url)) {
+ $recommand_information = $this->recommand_information($information);
+ //用于批量更新,CH和chinatravel分开 ,20210317 zp
+ if ($this->config->item('site_code') == 'ch') {
+ $this->make_www_cache('pc', $information, $recommand_information);
+ $this->make_www_cache('mobile', $information, $recommand_information);
+ } else if ($this->config->item('site_code') == 'ah') {
+ $this->make_www_cache_ah('pc', $information, $recommand_information);
+ $this->make_www_cache_ah('mobile', $information, $recommand_information);
+ } else if ($this->config->item('site_code') == 'chinatravel') {
+ $this->make_www_cache_ct($information);
+ // $this->make_www_cache_ct('mobile', $information);
+ } else if ($this->config->item('site_code') == 'shanghai') {
+ $this->make_www_cache_sh($information);
+ } else if ($this->config->item('site_code') == 'gh') {
+ $this->make_www_cache_gh('pc', $information, $recommand_information);
+ $this->make_www_cache_gh('mobile', $information, $recommand_information);
+ }
+
+ echo json_encode(array('name' => 'yes', 'data' => '更新成功!'));
+ return true;
+ } else {
+ echo json_encode(array('name' => 'no', 'data' => '没有发布静态页面: ' . $information->ic_url));
+ return false;
+ }
+ }
+
+ //静态文件操作
+ public function html_file_helper($active = 'find', $ic_url = false)
+ {
+ if (empty ($ic_url)) {
+ $ic_url = $this->input->get_post('ic_url');
+ }
+ if (empty ($ic_url)) {
+ return false;
+ }
+ $html_file = $this->config->item('cache')[$this->config->item('site_code')]['cache_path'] . $ic_url;
+ $html_file = str_replace("\\", "/", $html_file);
+ if (substr($html_file, -1, 1) == '/') {
+ $html_file = $html_file . 'index.htm';
+ }
+ $html_file_mobile = $html_file . '-mobile.htm';
+ $html_file_pc = $html_file . '-pc.htm';
+
+ switch ($active) {
+ case 'find': //寻找静态文件
+ if (is_file($html_file_mobile) || is_file($html_file_pc)) {
+ return true;
+ } else {
+ return false;
+ }
+ // break;
+ case 'delete':
+ if (is_file($html_file_mobile)) {
+ unlink($html_file_mobile);
+ }
+ if (is_file($html_file_pc)) {
+ unlink($html_file_pc);
+ }
+ echo '删除静态文件成功! ' . $ic_url;
+ break;
+ default:
+ return false;
+ }
+ return false;
+ }
+
+ //生成静态文件 $device='mobile' or 'pc'
+ public function make_www_cache($device, $information, $recommand_information)
+ {
+ $data = array();
+ switch ($device) {
+ case 'mobile':
+ //获取移动优先的模板,如果有的话
+ $template_path = 'mobile_first/' . $this->config->item('site_code');
+ if (is_file(APPPATH . 'views/' . $template_path . EXT)) {
+ $template = $this->load->view($template_path, '', true);
+ $html_path_ext = '-mobile.htm';
+ } else {
+ return false;
+ }
+ break;
+ case 'pc':
+ //获取PC的模板,如果有的话
+ $template_path = 'mobile_first/' . $this->config->item('site_code');
+ if (is_file(APPPATH . 'views/' . $template_path . '-pc' . EXT)) {
+ $template = $this->load->view($template_path . '-pc', '', true);
+ $html_path_ext = '-pc.htm';
+ } else {
+ return false;
+ }
+ break;
+ default:
+ }
+ $breadcrumb_data = $this->Information_model->get_path_exclude_self($information->is_id, $information->is_path);
+
+ $breadcrumb_structured_data_content = $this->load->view(
+ $template_path . '-structured-data-breadcrumb',
+ array('breadcrumb_data' => $breadcrumb_data, 'information' => $information),
+ true
+ );
+ $template = str_replace(
+ '',
+ $breadcrumb_structured_data_content,
+ $template
+ );
+
+ //替换模板中的标签
+ $template = str_replace('', $information->ic_seo_title, $template);
+ $template = str_replace('', $information->ic_seo_description, $template);
+ $template = str_replace('', $information->ic_seo_keywords, $template);
+ $template = str_replace('', $this->config->item('site_url') . $information->ic_url, $template);
+
+ // 动态加载反馈标签,第一个城市不足八条,使用第二城市数据。
+ // HTLM:
+ // 解析结果:; Shanghai,Beijing
+ $feedback_array = [];
+ preg_match_all('^^', $information->ic_content, $feedback_array);
+ if (!empty ($feedback_array)) {
+ foreach ($feedback_array[0] as $index => $tag_name) {
+ $city_name_string = $feedback_array[1][$index];
+ $city_name_list = explode(',', $city_name_string);
+ $feedback_list = $this->Feedback_model->get_feedback_by_city_list($city_name_list);
+ // 防止触发 Google 网络垃圾政策只返回前三条
+ $top3_feedback_list = array_slice($feedback_list, 0, 3);
+ $feedback_content = $this->load->view(
+ 'mobile_first/ch-feedback-list',
+ array('feedback_list' => $top3_feedback_list),
+ true
+ );
+ $information->ic_content = str_replace(
+ $tag_name,
+ $feedback_content,
+ $information->ic_content
+ );
+ }
+ }
+
+ // 动态加载反馈标签,每个城市三十条反馈。
+ // HTLM:
+ // 解析结果:; Bangkok
+ $feedback30_array = [];
+ preg_match_all('^^', $information->ic_content, $feedback30_array);
+ if (!empty ($feedback30_array)) {
+ foreach ($feedback30_array[0] as $index => $tag_name) {
+ $city_name = $feedback30_array[1][$index];
+ $feedback_list = $this->Feedback_model->get_feedback_by_city_name($city_name);
+ $feedback_30_content = $this->load->view(
+ 'mobile_first/ch-feedback-30-list',
+ array('feedback_list' => $feedback_list),
+ true
+ );
+ $information->ic_content = str_replace(
+ $tag_name,
+ $feedback_30_content,
+ $information->ic_content
+ );
+ }
+ }
+
+ // 集合页面反馈标签
+ $feedback_city_array = [];
+ preg_match_all('^^', $information->ic_content, $feedback_city_array);
+ if (!empty ($feedback_city_array)) {
+ foreach ($feedback_city_array[0] as $index => $tag_name) {
+ $city_name_string = $feedback_city_array[1][$index];
+ $city_name_list = explode(',', $city_name_string);
+ $feedback_city_list = [];
+ foreach ($city_name_list as $index => $city_name) {
+ $feedback_list = $this->Feedback_model->get_feedback_by_city_name($city_name, 5);
+ $data_name = str_replace(" ", "_", $city_name);
+ $feedback_city_list[$data_name] = $feedback_list;
+ }
+
+ $feedback_city_content = $this->load->view(
+ 'mobile_first/ch-feedback-city-list',
+ $feedback_city_list,
+ true
+ );
+ $information->ic_content = str_replace(
+ $tag_name,
+ $feedback_city_content,
+ $information->ic_content
+ );
+ }
+ }
+
+ // 天气预报模板
+ $weather_forecast_content = $this->load->view(
+ $template_path . '-weather-forecast',
+ array(),
+ true
+ );
+ $information->ic_content = str_replace(
+ '',
+ $weather_forecast_content,
+ $information->ic_content
+ );
+
+ // 火车票首页搜索框 --zp
+ $template_TrainSearch = "";
+ if ($information->ic_url == "/china-trains/hometest.htm" || $information->ic_url == "/china-trains/") {
+ $template_TrainSearch = $this->load->view($template_path . '-train-index', null, true);
+ $information->ic_content = str_replace(
+ '',
+ $template_TrainSearch,
+ $information->ic_content
+ );
+ }
+
+ //火车票搜索框添加 -- zp
+ if ($information->is_parent_id == "278008234" && $information->ic_url != "/china-trains/") { //20240403 字节
+ //本地测试的火车父类ID为:278035939 。网前为:278008234
+ $meta_train_city = get_meta($information->ic_id, 'meta_train_city'); //默认的出发及目的地城市 , beijing|shanghai
+ $data_TrainCity = array();
+ $data_TrainCity["from"] = "";
+ $data_TrainCity["to"] = "";
+ if (!empty ($meta_train_city)) {
+ if (strpos($meta_train_city, '|') !== false) {
+ $arrTrainCity = explode('|', $meta_train_city);
+ $data_TrainCity["from"] = $arrTrainCity[0];
+ $data_TrainCity["to"] = $arrTrainCity[1];
+ }
+ }
+
+ $template_TrainSearch = $this->load->view($template_path . '-train-detail', $data_TrainCity, true);
+ $template = str_replace('', $template_TrainSearch, $template);
+ }
+
+ $meta_product_code = get_meta($information->ic_id, 'meta_product_code');
+ $meta_google_ad_article = get_meta($information->ic_id, 'meta_google_ad_article');
+
+ $ads_by_google = !empty($meta_google_ad_article);
+ //H1模板替换
+ $data_H1 = array();
+ $data_H1['infocategory'] = $this->Information_model->get_detail_by_path($information->is_path, 1); //信息所属分类,获取信息顶级节点内容
+ $data_H1['author'] = ''; //获取作者信息
+ $author = $this->Operator_model->get_author_nikename($information->ic_author);
+ if (!empty ($author)) {
+ $data_H1['author'] = $author->OPI_FirstName;
+ } else {
+ $author_web = $this->Infoauthors_model->detail_by_id($information->ic_author); //原始作者,可能是在线作者等
+ if (!empty ($author_web)) {
+ $data_H1['author'] = $author_web->a_name;
+ }
+ }
+
+ // 检查图片地址格式
+ $parsed_photo = $information->ic_photo;
+ $parsed_photo_url = parse_url($information->ic_photo);
+ if (
+ (!isset ($parsed_photo_url['host']) || !isset ($parsed_photo_url['scheme'])) && isset ($parsed_photo_url['path'])
+ ) {
+ $parsed_photo = 'https://images.chinahighlights.com' . $parsed_photo_url['path'];
+ }
+
+ $data_H1['ic_title'] = $information->ic_title;
+ $data_H1['ic_photo'] = $parsed_photo;
+ $data_H1['breadcrumb_data'] = $breadcrumb_data;
+ $data_H1['ads_by_google'] = $ads_by_google;
+ $data_H1['ic_datetime'] = $information->ic_datetime;
+ $template_H1 = $this->load->view($template_path . '-h1', $data_H1, true);
+ $template = str_replace('', $template_H1, $template);
+
+ //非产品页面
+ if (empty ($meta_product_code)) {
+ $template = str_replace('?product_code=', '', $template);
+
+ $article_structured_data_content = $this->load->view(
+ $template_path . '-structured-data-article',
+ array('information' => $information, 'author' => $author),
+ true
+ );
+ $template = str_replace('', $article_structured_data_content, $template);
+
+ $info_page_form_content = $this->load->view($template_path . '-info-page-form', false, true);
+ $information->ic_content = str_replace('', $info_page_form_content, $information->ic_content);
+
+ $visa_free_tester_content = $this->load->view($template_path . '-visa-free-tester', false, true);
+ $information->ic_content = str_replace('', $visa_free_tester_content, $information->ic_content);
+ } else {
+ $inquiry_form_template = $this->load->view($template_path . '-inquiry-form', array('meta_product_code' => $meta_product_code), true);
+ $template = str_replace('?product_code=', '?product_code=' . $meta_product_code, $template);
+ $information->ic_content = str_replace('', $inquiry_form_template, $information->ic_content);
+ }
+
+ // CH: 1; AH: 28; GH : 33
+ $price_tag_list = $this->parse_price_tag($information->ic_content, 1);
+
+ foreach ($price_tag_list as $price_tag) {
+ $information->ic_content = str_replace(
+ $price_tag['placeholder'],
+ $price_tag['price_number'],
+ $information->ic_content
+ );
+ }
+
+ //---day tours--- 20210922 zp
+ //本地 278035929
+ //网前 278008224
+ if ($information->is_parent_id == "278008224") {
+ if (!empty ($meta_product_code)) {
+ //准备需要的数据
+ $dataTrippest = [];
+
+ $dataTrippest["ic_title"] = $information->ic_title;
+ //附加选项
+ $t_Type = get_meta($information->ic_id, 'meta_trippest_type');
+ if (isset ($t_Type)) {
+ $dataTrippest["t_Type"] = $t_Type;
+ } else {
+ $dataTrippest["t_Type"] = "general";
+ }
+
+ $t_package = get_meta($information->ic_id, 'meta_trippest_package');
+ $dataTrippest["t_package"] = explode("|", $t_package);
+ $t_excludedate = get_meta($information->ic_id, 'meta_trippest_excludedate');
+ $dataTrippest["t_excludedate"] = $t_excludedate;
+ $t_includedate = get_meta($information->ic_id, 'meta_trippest_includedate');
+ $dataTrippest["t_includedate"] = $t_includedate;
+ $t_excludemonth = get_meta($information->ic_id, 'meta_trippest_excludemonth');
+ $dataTrippest["t_excludemonth"] = $t_excludemonth;
+ $dataTrippest["t_limitperson"] = get_meta($information->ic_id, 'meta_trippest_limitperson');
+
+ //获取翰特对应信息
+ $dataTrippest['PagDetail'] = $this->trippest_model->get_pagdetail($meta_product_code);
+ //所属那个目的地 select SYC_SN,SYC2_CodeDiscribe from dbo.V_System_Code where SYC_Type=132 and LGC_LGC=2
+ // 132001 北京目的地
+ // 132002 上海目的地
+ // 132003 西安目的地
+ // 132004 桂林目的地
+ // 132005 成都目的地
+ $PAG_SourceType = $dataTrippest['PagDetail']->PAG_SourceType;
+ switch ($PAG_SourceType) {
+ case '132001':
+ $dataTrippest['PAG_SourceType'] = "beijing";
+ break;
+ case '132002':
+ $dataTrippest['PAG_SourceType'] = "shanghai";
+ break;
+ case '132003':
+ $dataTrippest['PAG_SourceType'] = "xian";
+ break;
+ case '132004':
+ $dataTrippest['PAG_SourceType'] = "guilin";
+ break;
+ case '132005':
+ $dataTrippest['PAG_SourceType'] = "chengdu";
+ break;
+ case '132006':
+ $dataTrippest['PAG_SourceType'] = "zhangjiajie";
+ break;
+ case '132007':
+ $dataTrippest['PAG_SourceType'] = "huangshan";
+ break;
+ default:
+ $dataTrippest['PAG_SourceType'] = "";
+ break;
+ }
+
+ //每周发团
+ $PAG_Scheme = $dataTrippest['PagDetail']->PAG_Scheme;
+ $dataTrippest['PAG_Scheme'] = $PAG_Scheme;
+ //接送
+ if ($dataTrippest["t_Type"] == "transfer" || 1 == 1) {
+ $PagList = $this->trippest_model->GetTransfer($dataTrippest['PagDetail']->PAG_SN);
+ $dataTrippest["PagList"] = $PagList;
+ }
+
+ //价格
+ // $price = $this->trippest_model->get_price("BJALC-1",2);
+ $price = $this->trippest_model->get_price($dataTrippest['PagDetail']->PAG_Code, 2);
+ $showPrice = "";
+ if (!empty ($price)) {
+ $PKP_AdultNetPrice = $price->PKP_AdultNetPrice;
+ $PKP_AdultSpecialPrice = $price->PKP_AdultSpecialPrice;
+ if ($PKP_AdultSpecialPrice > 0) {
+ $showPrice = $PKP_AdultSpecialPrice;
+ } else {
+ $showPrice = $PKP_AdultNetPrice;
+ }
+ }
+ $dataTrippest["showPrice"] = $showPrice;
+
+ //替换内容
+ $trippest_detail_template = $this->load->view($template_path . '-daytours-detail', $dataTrippest, true);
+
+ // print_r($trippest_detail_template);
+ // die();
+ $information->ic_content = str_replace('', $trippest_detail_template, $information->ic_content);
+ }
+ }
+
+ //---day tours end ----
+
+ //信息推荐
+ $template_recommand = $recommand_information; //$this->recommand_information($information); 从外面传进来,pc和移动只需要查一次,减少数据库负担
+ $template = str_replace('', $this->load->view($template_path . '-next', array('recommands' => $template_recommand), true), $template);
+ // //广告,改叫tips,防止被插件屏蔽
+ if (!empty ($template_recommand['Tips Right TOP'])) {
+ $template = str_replace('', "", $template);
+ }
+ if (!empty ($template_recommand['Tips Right'])) {
+ $template = str_replace('', "" . $template_recommand['Tips Right']->it_content . "
", $template);
+ }
+
+ // /day-tours/(278008224) 节点不使用推荐信息
+ if ($information->is_parent_id == '278008224') {
+ } else {
+ // 右侧列表广告
+ $tips_right_a = [];
+ $tips_right_b = [];
+ $tips_right_c = [];
+ for ($i = 1; $i <= 12; $i++) {
+ $key = 'List Tips Right A_' . $i;
+ if (array_key_exists($key, $recommand_information) && $recommand_information[$key]) {
+ $tips_right_a[] = $recommand_information[$key];
+ }
+ }
+ for ($i = 1; $i <= 12; $i++) {
+ $key = 'List Tips Right B_' . $i;
+ if (array_key_exists($key, $recommand_information) && $recommand_information[$key]) {
+ $tips_right_b[] = $recommand_information[$key];
+ }
+ }
+ for ($i = 1; $i <= 12; $i++) {
+ $key = 'List Tips Right C_' . $i;
+ if (array_key_exists($key, $recommand_information) && $recommand_information[$key]) {
+ $tips_right_c[] = $recommand_information[$key];
+ }
+ }
+
+ $tips_right_list_content = $this->load->view(
+ 'mobile_first/ch-tips-right-list',
+ array(
+ 'tips_right_a' => $tips_right_a,
+ 'tips_right_b' => $tips_right_b,
+ 'tips_right_c' => $tips_right_c
+ ),
+ true
+ );
+
+ $template = str_replace('', $tips_right_list_content, $template);
+ }
+
+ //文中的信息推荐
+ if (strpos($information->ic_content, '') !== false) {
+ $information->ic_content = str_replace('', $this->load->view($template_path . '-recommends-article', array('recommands' => $template_recommand), true), $information->ic_content);
+ }
+ //文中的线路推荐
+ if (strpos($information->ic_content, '') !== false) {
+ $information->ic_content = str_replace('', $this->load->view($template_path . '-recommends-tour', array('recommands' => $template_recommand), true), $information->ic_content);
+ }
+
+ // 未勾选In Article 广告时,加入标签 ,让 ezoic 识别出该页面不展示广告。
+ if (empty ($meta_google_ad_article) || !$meta_google_ad_article) {
+ $template = str_replace(
+ '',
+ '',
+ $template
+ );
+ } else {
+ $template = str_replace(
+ '',
+ '',
+ $template
+ );
+ }
+
+ //替换内容中广告
+ $temp_array = array();
+ preg_match_all('^^', $information->ic_content, $temp_array);
+ if (!empty ($temp_array[1])) {
+ foreach ($temp_array[1] as $key => $item) {
+ $tips_detail = $this->recommends_and_tips_model->tips_detail($item);
+ if ($tips_detail) {
+ $information->ic_content = str_replace($temp_array[0][$key], $tips_detail->it_content, $information->ic_content);
+ }
+ }
+ }
+
+ //顶部全屏大图
+ if ($device == 'mobile') { //移动端读取移动大图
+ $meta_addon_picture = get_meta($information->ic_id, 'meta_addon_picture_mobile');
+ } else {
+ $meta_addon_picture = get_meta($information->ic_id, 'meta_addon_picture');
+ }
+
+ //顶部视频
+ $meta_news_video = get_meta($information->ic_id, 'meta_news_video');
+ $meta_video_picture = get_meta($information->ic_id, 'meta_video_picture');
+ if (!empty ($meta_news_video) && !empty ($meta_video_picture)) {
+ $template = str_replace('', '', $template);
+
+ }
+
+ if (is_file('D:/wwwroot/origin-data.chinahighlights.com/css/mobile-first.css')) { //主样式表,内联模式,优先读取本地,没有在从网络读取,为了加速
+ $main_css_string = compress_css(file_get_contents('D:/wwwroot/origin-data.chinahighlights.com/css/mobile-first.css'));
+ } else {
+ $main_css_string = compress_css(GET_HTTP('https://proxy-data.chinahighlights.com/css/mobile-first.css'));
+ }
+ $template = str_replace('', '', $template);
+
+ // /china-trains/ 节点
+ if ($information->is_parent_id == "278008234") {
+ $template = str_replace(
+ '',
+ '',
+ $template
+ );
+ }
+ //额外样式
+ $meta_addon_css = get_meta($information->ic_id, 'meta_addon_css');
+ if (!empty ($meta_addon_css)) {
+ if ($meta_addon_css == 'https://proxy-data.chinahighlights.com/css/tour-detail-former.css' && is_file('D:/wwwroot/origin-data.chinahighlights.com/css/tour-detail-former.css')) {
+ $meta_addon_css_string = compress_css(file_get_contents('D:/wwwroot/origin-data.chinahighlights.com/css/tour-detail-former.css'));
+ } else {
+ $meta_addon_css_string = compress_css(GET_HTTP($meta_addon_css));
+ }
+ $template = str_replace('', '', $template);
+ }
+ //额外js
+ $meta_addon_js = get_meta($information->ic_id, 'meta_addon_js');
+ if (!empty ($meta_addon_js)) {
+ $template = str_replace('', '', $template);
+ }
+
+ $meta_index_set = get_meta($information->ic_id, 'meta_index_set');
+ if (!empty ($meta_index_set)) {
+ $template = str_replace('', '', $template);
+ }
+ //设置内容图片缓加载
+ $lazy_content = $this->html_optimize_lib->set_lazy_loader($information->ic_content, 'https://data.chinahighlights.com/grey.gif');
+ $template = str_replace('', $lazy_content, $template);
+
+ //替换内容中各种标签
+ $tag_why_us = $this->load->view($template_path . '-why-us', false, true);
+ $template = str_replace('', $tag_why_us, $template);
+
+ //Google广告代码
+ //if (!empty(get_meta($information->ic_id, 'meta_google_ad_content'))) {
+ $template = str_replace('', '', $template);
+ //}
+ //社媒分享图片
+ $full_ic_photo = '';
+ if (!empty ($information->ic_photo)) {
+ $full_ic_photo = $this->config->item('site_image_url') . $information->ic_photo;
+ } else {
+ $full_ic_photo = get_meta($information->ic_id, 'meta_addon_picture_mobile');
+ }
+ if (!empty ($full_ic_photo)) {
+ $template = str_replace('', '', $template);
+ }
+ //设置图片尺寸
+ if (is_dir('D:/wwwroot/origin-images.chinahighlights.com') && is_dir('D:/wwwroot/origin-www.chinahighlights.com')) {
+ $template = $this->html_optimize_lib->set_image_size_local($template, 'D:/wwwroot/origin-www.chinahighlights.com', 'D:/wwwroot/origin-images.chinahighlights.com');
+ } else {
+ $template = $this->html_optimize_lib->set_image_size($template);
+ }
+ // /travelguide/chinese-zodiac/monthly-fortune-for-dog.htm
+ $html_path = $this->config->item('cache')[$this->config->item('site_code')]['cache_path'] . $information->ic_url;
+ $html_path = str_replace("\\", "/", $html_path);
+ if (substr($html_path, -1, 1) == '/') {
+ $html_path = $html_path . 'index.htm';
+ }
+ $html_path .= $html_path_ext;
+ create_folder_by_path(dirname($html_path));
+ file_put_contents($html_path, $template, LOCK_EX);
+ }
+
+ public function test_recommand()
+ {
+ $information = $this->Information_model->Detail($this->input->get('is_id'));
+ $recommand_information = $this->recommand_information($information);
+ // var_dump($recommand_information);
+ $tips_right_a = [];
+ $tips_right_b = [];
+ $tips_right_c = [];
+ for ($i = 1; $i <= 12; $i++) {
+ $key = 'List Tips Right A_' . $i;
+ if (array_key_exists($key, $recommand_information) && $recommand_information[$key]) {
+ $tips_right_a[] = $recommand_information[$key];
+ }
+ }
+ for ($i = 1; $i <= 12; $i++) {
+ $key = 'List Tips Right B_' . $i;
+ if (array_key_exists($key, $recommand_information) && $recommand_information[$key]) {
+ $tips_right_b[] = $recommand_information[$key];
+ }
+ }
+ for ($i = 1; $i <= 12; $i++) {
+ $key = 'List Tips Right C_' . $i;
+ if (array_key_exists($key, $recommand_information) && $recommand_information[$key]) {
+ $tips_right_c[] = $recommand_information[$key];
+ }
+ }
+
+ echo 'List Tips Right A: ' . COUNT($tips_right_a);
+ echo '; List Tips Right B: ' . COUNT($tips_right_b);
+ echo '; List Tips Right C: ' . COUNT($tips_right_c);
+
+ $tips_right_list_content = $this->load->view(
+ 'mobile_first/ah-tips-right-list',
+ array(
+ 'tips_right_a' => $tips_right_a,
+ 'tips_right_b' => $tips_right_b,
+ 'tips_right_c' => $tips_right_c
+ ),
+ true
+ );
+ echo $tips_right_list_content;
+ }
+
+ public function test_feedback()
+ {
+ $feedback_newest = $this->Feedback_model->get_feedback_newest();
+ var_dump($feedback_newest);
+ echo '------------------------------------------------------';
+ $feedback_newest = $this->Feedback_model->get_feedback_newest(10);
+ var_dump($feedback_newest);
+ }
+
+ public function test_ch_feedback30()
+ {
+ $feedback30_array = [];
+ preg_match_all('^^', '', $feedback30_array);
+ if (!empty ($feedback30_array)) {
+ foreach ($feedback30_array[0] as $index => $tag_name) {
+ $city_name = $feedback30_array[1][$index];
+ $feedback_list = $this->Feedback_model->get_feedback_by_city_name($city_name, 2);
+ $feedback_content = $this->load->view(
+ 'mobile_first/ch-feedback-30-list',
+ array('feedback_list' => $feedback_list),
+ true
+ );
+ echo $feedback_content;
+ }
+ }
+ }
+
+ public function test_get_feedback_by_city_name()
+ {
+
+ $feedback_list = $this->Feedback_model->get_feedback_by_city_name('Bangkok', 5);
+ var_dump($feedback_list);
+ }
+
+ public function test_feedback_city_list()
+ {
+ $feedback_city_array = [];
+ preg_match_all('^^', '', $feedback_city_array);
+ if (!empty ($feedback_city_array)) {
+ foreach ($feedback_city_array[0] as $index => $tag_name) {
+ $city_name_string = $feedback_city_array[1][$index];
+ $city_name_list = explode(',', $city_name_string);
+ $feedback_city_list = [];
+ foreach ($city_name_list as $index => $city_name) {
+ $feedback_list = $this->Feedback_model->get_feedback_by_city_name($city_name, 5);
+ $data_name = str_replace(" ", "_", $city_name);
+ $feedback_city_list[$data_name] = $feedback_list;
+ }
+
+ // header('Content-Type: application/json');
+ // echo json_encode($feedback_city_list);
+
+ $feedback_content = $this->load->view(
+ 'mobile_first/ah-feedback-city-list',
+ $feedback_city_list,
+ true
+ );
+ echo $feedback_content;
+ }
+ }
+ }
+
+ // #ah-mtc-3,st,2#
+ // CH: 1; AH: 28; GH : 33
+ public function test_price()
+ {
+ $price_rule = base64_decode($this->input->get('price_rule'));
+ $dept_sn = $this->input->get('dept_sn');
+ $price_item_array = $this->price_pregmatch($price_rule);
+ echo 'price_item_array: ';
+ var_dump($price_item_array);
+
+ $price_tag_list = $this->parse_price_tag($price_rule, $dept_sn);
+ echo '
price_tag_list: ';
+ var_dump($price_tag_list);
+ }
+
+ /*!
+ * 页面中有价格标签,查出价格并替换内容
+ * @author LiaoYijun
+ * @date 2023-05-12
+ * @param string $price_content 包含价格标签的内容
+ * @return array 包含价格与占位符的数组
+ */
+ public function parse_price_tag($price_content, $dept_sn = 28)
+ {
+ $price_item_array = $this->price_pregmatch($price_content);
+ $price_tag_list = [];
+ if (!empty ($price_item_array)) {
+ foreach ($price_item_array as $price_item) {
+ $price_date = !empty ($price_item->price_date) ? $price_item->price_date : date('Y-m-d', time() + 86400 * 7); //当前时间7天后的价格
+ $price_number = '';
+ //优先读取新的价格体系
+ $price = $this->PrimeLinePrice_model->search($price_item->cli_no, 1, $price_item->cli_grade, $price_item->person_size, $price_date, $dept_sn);
+ if (!empty ($price)) {
+ switch (strtoupper($price_item->price_people)) {
+ case 'A':
+ $price_number = $price->PLP_AdultUnitPrice;
+ break;
+ case 'C':
+ $price_number = $price->PLP_ChildUnitPrice;
+ break;
+ case 'B':
+ $price_number = $price->PLP_BabyUnitPrice;
+ break;
+ case 'R':
+ $price_number = $price->PLP_RoomDiffPrice;
+ break;
+ case 'AR':
+ $price_number = $price->PLP_AdultUnitPrice + $price->PLP_RoomDiffPrice; //成人加单间房差
+ break;
+ default:
+ $price_number = $price->PLP_AdultUnitPrice;
+ }
+ } else {
+ $price = $this->Price_model->search($price_item->cli_no, 1, $price_item->cli_grade, false, $price_date);
+ if (!empty ($price)) {
+
+ switch (strtoupper($price_item->price_people)) {
+ case 'A':
+ switch ($price_item->person_size) {
+ case '1':
+ $price_number = $price->CLP_OneAdultPriceRMB;
+ break;
+ case '2': //25
+ $price_number = $price->CLP_TwoToFiveAdultPriceRMB;
+ break;
+ case '6': //69
+ $price_number = $price->CLP_SixToNineAdultPriceRMB;
+ break;
+ case '10':
+ $price_number = $price->CLP_OverTenAdultPriceRMB;
+ break;
+ default:
+ $price_number = $price->CLP_TwoToFiveAdultPriceRMB;
+ }
+ break;
+ case 'C':
+ $price_number = 0;
+ break;
+ case 'B':
+ $price_number = 0;
+ break;
+ case 'R':
+ switch ($price_item->person_size) {
+ case '1':
+ $price_number = $price->CLP_OneRoomDiffPriceRMB;
+ break;
+ case '2': //25
+ $price_number = $price->CLP_TwoToFiveRoomDiffPriceRMB;
+ break;
+ case '6': //69
+ $price_number = $price->CLP_SixToNineRoomDiffPriceRMB;
+ break;
+ case '10':
+ $price_number = $price->CLP_OverTenRoomDiffPriceRMB;
+ break;
+ default:
+ $price_number = $price->CLP_TwoToFiveRoomDiffPriceRMB;
+ }
+ break;
+ case 'AR': //成人加单间房差
+ $price_number = 0;
+ break;
+ default:
+ $price_number = 0;
+ }
+ }
+ }
+ $site_money = $this->currency->calc_show_price($price_number);
+ //把金额格式化为带有逗号(,)方便阅读,如 12,345
+ $price_number = is_numeric($price_number) ? number_format($site_money) : $price_number;
+ if (!empty ($price_number)) {
+ $price_tag = [
+ 'placeholder' => $price_item->placeholder,
+ 'price_number' => $price_number,
+ ];
+ $price_tag_list[] = $price_tag;
+ }
+ }
+ }
+ return $price_tag_list;
+ }
+
+ //使用正则匹配出价格标签,返回一个价格数组
+ private function price_pregmatch($content)
+ {
+ $price_array = array();
+ $temp_array = array();
+ $result = false;
+ //#ah-1,lx,2,2016-01-23,A#
+ //线路代号,等级(st标准、lx豪华、ec经济),人等,时间,人型(A成人、C小孩、B婴儿、R单间房差、AR成人+房差)
+ preg_match_all('^#[a-zA-Z0-9,-]+#^', $content, $temp_array);
+ foreach ($temp_array[0] as $item) {
+ $placeholder = $item;
+ $item = str_replace('#', '', $item);
+ $price_array = explode(',', $item);
+ $cli_no = !empty ($price_array[0]) ? $price_array[0] : false; //线路代号
+ if (empty ($cli_no)) {
+ continue; //没有设置线路代号则进入下一条
+ }
+ $cli_grade = !empty ($price_array[1]) ? $price_array[1] : false; //标准7001、豪华7002、经济7003
+ switch (strtoupper($cli_grade)) {
+ case 'ST':
+ $cli_grade = '7001';
+ break;
+ case 'LX':
+ $cli_grade = '7002';
+ break;
+ case 'EC':
+ $cli_grade = '7003';
+ break;
+ default:
+ $cli_grade = '7001';
+ }
+ $person_size = (!empty ($price_array[2]) && is_numeric($price_array[2])) ? $price_array[2] : 2; //人等1,2-5,6-9,10,默认2人等
+ //为了兼容以前的人等方式,把算数人等转换为单数 25=>2
+ switch ($person_size) {
+ case '25':
+ $person_size = '2';
+ break;
+ case '69':
+ $person_size = '6';
+ break;
+ }
+ $price_date = !empty ($price_array[3]) ? $price_array[3] : false; //价格时间
+ $price_people = !empty ($price_array[4]) ? $price_array[4] : 'A'; //A成人、C小孩、B婴儿、R单间房差
+ $result[] = (object) array('placeholder' => $placeholder, 'cli_no' => $cli_no, 'cli_grade' => $cli_grade, 'person_size' => $person_size, 'price_date' => $price_date, 'price_people' => $price_people);
+ }
+ return $result;
+ }
+
+ public function make_www_cache_gh($device, $information, $recommand_information)
+ {
+ $data = array();
+ switch ($device) {
+ case 'mobile':
+ //获取移动优先的模板,如果有的话
+ $template_path = 'mobile_first/' . $this->config->item('site_code');
+ if (is_file(APPPATH . 'views/' . $template_path . EXT)) {
+ $template = $this->load->view($template_path, '', true);
+ $html_path_ext = '-mobile.htm';
+ } else {
+ return false;
+ }
+ break;
+ case 'pc':
+ //获取PC的模板,如果有的话
+ $template_path = 'mobile_first/' . $this->config->item('site_code');
+ if (is_file(APPPATH . 'views/' . $template_path . '-pc' . EXT)) {
+ $template = $this->load->view($template_path . '-pc', '', true);
+ $html_path_ext = '-pc.htm';
+ } else {
+ return false;
+ }
+ break;
+ default:
+ }
+
+ // GH Home 下层节点名称和链接映射
+ $group_map = [
+ 278009289 => [
+ 'ic_url' => '/destinations',
+ 'ic_url_title' => 'Destinations',
+ ],
+ 278009290 => [
+ 'ic_url' => '/about',
+ 'ic_url_title' => 'About Us',
+ ],
+ ];
+ $breadcrumb_data = $this->Information_model->get_breadcrumb_data($information->is_id, $information->is_path, $group_map);
+
+ $breadcrumb_structured_data_content = $this->load->view(
+ $template_path . '-structured-data-breadcrumb',
+ array('breadcrumb_data' => $breadcrumb_data, 'information' => $information),
+ true
+ );
+ $template = str_replace(
+ '',
+ $breadcrumb_structured_data_content,
+ $template
+ );
+
+ //替换模板中的标签
+ $template = str_replace('', $information->ic_seo_title, $template);
+ $template = str_replace('', $information->ic_seo_description, $template);
+ $template = str_replace('', $information->ic_seo_keywords, $template);
+ $template = str_replace('', $this->config->item('site_url') . $information->ic_url, $template);
+
+ //顶部全屏大图
+ if ($device == 'mobile') { //移动端读取移动大图
+ $meta_addon_picture = get_meta($information->ic_id, 'meta_addon_picture_mobile');
+ } else {
+ $meta_addon_picture = get_meta($information->ic_id, 'meta_addon_picture');
+ }
+
+ $meta_product_code = get_meta($information->ic_id, 'meta_product_code');
+ $ads_by_google = !empty (get_meta($information->ic_id, 'meta_google_ad_article'));
+ //H1模板替换
+ $data_H1 = array();
+ $data_H1['infocategory'] = $this->Information_model->get_detail_by_path($information->is_path, 1); //信息所属分类,获取信息顶级节点内容
+ $data_H1['author'] = ''; //获取作者信息
+ $author = $this->Operator_model->get_author_nikename($information->ic_author);
+
+ if (!empty ($author)) {
+ $data_H1['author'] = $author->OPI_FirstName;
+ } else {
+ $author_web = $this->Infoauthors_model->detail_by_id($information->ic_author); //原始作者,可能是在线作者等
+ if (!empty ($author_web)) {
+ $data_H1['author'] = $author_web->a_name;
+ }
+ }
+ $data_H1['ic_title'] = $information->ic_title;
+ $data_H1['ic_photo'] = $meta_addon_picture; //$information->ic_photo; 用额外设置的图片替代
+ $data_H1['breadcrumb_data'] = $breadcrumb_data;
+ $data_H1['ads_by_google'] = $ads_by_google;
+ $template_H1 = $this->load->view($template_path . '-h1', $data_H1, true);
+ $template = str_replace('', $template_H1, $template);
+
+ if (empty ($meta_product_code)) {
+ $addthis_widget = $this->load->view($template_path . '-add-this', false, true);
+ $template = str_replace('', $addthis_widget, $template);
+ }
+
+ $article_structured_data_content = $this->load->view(
+ $template_path . '-structured-data-article',
+ array('information' => $information, 'author_name' => $data_H1['author']),
+ true
+ );
+ $template = str_replace('', $article_structured_data_content, $template);
+
+ if (!empty ($meta_product_code)) {
+ //
+ $product_code_input = "";
+ $template = str_replace('', $product_code_input, $template);
+ }
+
+ if (empty ($meta_product_code)) {
+ $template = str_replace('?product_code=', '', $template);
+ } else {
+ $template = str_replace('?product_code=', '?product_code=' . $meta_product_code, $template);
+ }
+
+ //信息推荐
+ $template_recommand = $recommand_information; //$this->recommand_information($information); 从外面传进来,pc和移动只需要查一次,减少数据库负担
+ $template = str_replace('', $this->load->view($template_path . '-next', array('recommands' => $template_recommand), true), $template);
+ // //广告,改叫tips,防止被插件屏蔽
+ if (!empty ($template_recommand['Tips Right TOP'])) {
+ // $template = str_replace('', "", $template);
+ }
+ if (!empty ($template_recommand['Tips Right'])) {
+ $template = str_replace('', "" . $template_recommand['Tips Right']->it_content . "
", $template);
+ }
+ // 右侧列表广告
+ $tips_right_a = [];
+ $tips_right_b = [];
+ $tips_right_c = [];
+ for ($i = 1; $i <= 12; $i++) {
+ $key = 'List Tips Right A_' . $i;
+ if (array_key_exists($key, $recommand_information) && $recommand_information[$key]) {
+ $tips_right_a[] = $recommand_information[$key];
+ }
+ }
+ for ($i = 1; $i <= 12; $i++) {
+ $key = 'List Tips Right B_' . $i;
+ if (array_key_exists($key, $recommand_information) && $recommand_information[$key]) {
+ $tips_right_b[] = $recommand_information[$key];
+ }
+ }
+ for ($i = 1; $i <= 12; $i++) {
+ $key = 'List Tips Right C_' . $i;
+ if (array_key_exists($key, $recommand_information) && $recommand_information[$key]) {
+ $tips_right_c[] = $recommand_information[$key];
+ }
+ }
+
+ $tips_right_list_content = $this->load->view(
+ 'mobile_first/gh-tips-right-list',
+ array(
+ 'tips_right_a' => $tips_right_a,
+ 'tips_right_b' => $tips_right_b,
+ 'tips_right_c' => $tips_right_c
+ ),
+ true
+ );
+
+ $template = str_replace('', $tips_right_list_content, $template);
+ //文中的信息推荐
+ if (strpos($information->ic_content, '') !== false) {
+ // $information->ic_content = str_replace('', $this->load->view($template_path . '-recommends-article', array('recommands' => $template_recommand), TRUE), $information->ic_content);
+ }
+ //文中的线路推荐
+ if (strpos($information->ic_content, '') !== false) {
+ // $information->ic_content = str_replace('', $this->load->view($template_path . '-recommends-tour', array('recommands' => $template_recommand), TRUE), $information->ic_content);
+ }
+
+ //替换内容中广告
+ $temp_array = array();
+ preg_match_all('^^', $information->ic_content, $temp_array);
+ if (!empty ($temp_array[1])) {
+ foreach ($temp_array[1] as $key => $item) {
+ $tips_detail = $this->recommends_and_tips_model->tips_detail($item);
+ if ($tips_detail) {
+ $information->ic_content = str_replace($temp_array[0][$key], $tips_detail->it_content, $information->ic_content);
+ }
+ }
+ }
+
+ // 未勾选In Article 广告时,加入标签 ,让 ezoic 识别出该页面不展示广告。
+ $meta_google_ad_article = get_meta($information->ic_id, 'meta_google_ad_article');
+ if (empty ($meta_google_ad_article) || !$meta_google_ad_article) {
+ $template = str_replace(
+ '',
+ '',
+ $template
+ );
+ } else {
+ $template = str_replace(
+ '',
+ '',
+ $template
+ );
+ }
+
+ $why_us_covid_list_pc = $this->load->view(
+ $template_path . '-why-us-covid-list-pc',
+ array(),
+ true
+ );
+ $information->ic_content = str_replace('', $why_us_covid_list_pc, $information->ic_content);
+ $why_us_covid_list_mobile = $this->load->view(
+ $template_path . '-why-us-covid-mobile',
+ array(),
+ true
+ );
+ $information->ic_content = str_replace('', $why_us_covid_list_mobile, $information->ic_content);
+
+ if (empty ($meta_product_code)) {
+ $info_page_form_content = $this->load->view($template_path . '-info-page-form', false, true);
+ $information->ic_content = str_replace('', $info_page_form_content, $information->ic_content);
+ } else {
+ $tour_form_content = $this->load->view(
+ 'mobile_first/gh-tour-form',
+ array('information' => $information, 'meta_product_code' => $meta_product_code),
+ true
+ );
+ $information->ic_content = str_replace('', $tour_form_content, $information->ic_content);
+ }
+
+ // CH: 1; AH: 28; GH : 33
+ $price_tag_list = $this->parse_price_tag($information->ic_content, 33);
+
+ foreach ($price_tag_list as $price_tag) {
+ $information->ic_content = str_replace(
+ $price_tag['placeholder'],
+ $price_tag['price_number'],
+ $information->ic_content
+ );
+ }
+
+ // 动态加载反馈标签,每个城市三十条反馈。
+ // HTLM:
+ // 解析结果:; Bangkok
+ $feedback30_array = [];
+ preg_match_all('^^', $information->ic_content, $feedback30_array);
+ if (!empty ($feedback30_array)) {
+ foreach ($feedback30_array[0] as $index => $tag_name) {
+ $city_name = $feedback30_array[1][$index];
+ $feedback_list = $this->Feedback_model->get_feedback_by_city_name($city_name);
+ $feedback_30_content = $this->load->view(
+ 'mobile_first/gh-feedback-30-list',
+ array('feedback_list' => $feedback_list),
+ true
+ );
+ $information->ic_content = str_replace(
+ $tag_name,
+ $feedback_30_content,
+ $information->ic_content
+ );
+ }
+ }
+
+ // 集合页面反馈标签
+ $feedback_city_array = [];
+ preg_match_all('^^', $information->ic_content, $feedback_city_array);
+ if (!empty ($feedback_city_array)) {
+ foreach ($feedback_city_array[0] as $index => $tag_name) {
+ $city_name_string = $feedback_city_array[1][$index];
+ $city_name_list = explode(',', $city_name_string);
+ $feedback_city_list = [];
+ foreach ($city_name_list as $index => $city_name) {
+ $feedback_list = $this->Feedback_model->get_feedback_by_city_name($city_name, 5);
+ $data_name = str_replace(" ", "_", $city_name);
+ $feedback_city_list[$data_name] = $feedback_list;
+ }
+
+ $feedback_city_content = $this->load->view(
+ 'mobile_first/gh-feedback-city-list',
+ $feedback_city_list,
+ true
+ );
+ $information->ic_content = str_replace(
+ $tag_name,
+ $feedback_city_content,
+ $information->ic_content
+ );
+ }
+ }
+
+ // 动态加载反馈标签,第一个城市不足八条,使用第二城市数据。
+ // HTLM:
+ // 解析结果:; Siem Reap,Bangkok
+ $feedback_array = [];
+ preg_match_all('^^', $information->ic_content, $feedback_array);
+ if (!empty ($feedback_array)) {
+ foreach ($feedback_array[0] as $index => $tag_name) {
+ $city_name_string = $feedback_array[1][$index];
+ $city_name_list = explode(',', $city_name_string);
+ $feedback_list = $this->Feedback_model->get_feedback_by_city_list($city_name_list);
+ // 防止触发 Google 网络垃圾政策只返回前三条
+ $top3_feedback_list = array_slice($feedback_list, 0, 3);
+ $feedback_content = $this->load->view(
+ 'mobile_first/gh-feedback-list',
+ array('feedback_list' => $top3_feedback_list),
+ true
+ );
+ $information->ic_content = str_replace(
+ $tag_name,
+ $feedback_content,
+ $information->ic_content
+ );
+ }
+ }
+
+ if (is_file('D:/wwwroot/origin-www.globalhighlights.com/css/gh-global.css')) { //主样式表,内联模式,优先读取本地,没有在从网络读取,为了加速
+ $main_css_string = compress_css(file_get_contents('D:/wwwroot/origin-www.globalhighlights.com/css/gh-global.css'));
+ } else {
+ $main_css_string = compress_css(GET_HTTP('https://www.globalhighlights.com/css/gh-global.css'));
+ }
+ $template = str_replace('', '', $template);
+ //额外样式
+ $meta_addon_css = get_meta($information->ic_id, 'meta_addon_css');
+ if (!empty ($meta_addon_css)) {
+ // if ($meta_addon_css == 'https://proxy-data.chinahighlights.com/css/tour-detail-former.css' && is_file('D:/wwwroot/origin-data.chinahighlights.com/css/tour-detail-former.css')) {
+ //$meta_addon_css_string = compress_css(file_get_contents('D:/wwwroot/origin-data.chinahighlights.com/css/tour-detail-former.css'));
+ // } else {
+ $meta_addon_css_string = compress_css(GET_HTTP($meta_addon_css));
+ // }
+ $template = str_replace('', '', $template);
+ }
+ //额外js
+ $meta_addon_js = get_meta($information->ic_id, 'meta_addon_js');
+ if (!empty ($meta_addon_js)) {
+ $template = str_replace('', '', $template);
+ }
+
+ $meta_index_set = get_meta($information->ic_id, 'meta_index_set');
+ if (!empty ($meta_index_set)) {
+ $template = str_replace('', '', $template);
+ }
+ //设置内容图片缓加载
+ $lazy_content = $this->html_optimize_lib->set_lazy_loader($information->ic_content, 'https://data.chinahighlights.com/grey.gif');
+ $template = str_replace('', $lazy_content, $template);
+
+ //社媒分享图片
+ $full_ic_photo = '';
+ if (!empty ($information->ic_photo)) {
+ $full_ic_photo = $this->config->item('site_image_url') . $information->ic_photo;
+ } else {
+ $full_ic_photo = get_meta($information->ic_id, 'meta_addon_picture_mobile');
+ }
+ if (!empty ($full_ic_photo)) {
+ $template = str_replace('', '', $template);
+ }
+ //设置图片尺寸
+ if (is_dir('D:/wwwroot/origin-images.chinahighlights.com') && is_dir('D:/wwwroot/origin-www.globalhighlights.com')) {
+ $template = $this->html_optimize_lib->set_image_size_local($template, 'D:/wwwroot/origin-www.globalhighlights.com', 'D:/wwwroot/origin-images.chinahighlights.com');
+ } else {
+ $template = $this->html_optimize_lib->set_image_size($template);
+ }
+ // /travelguide/chinese-zodiac/monthly-fortune-for-dog.htm
+ $html_path = $this->config->item('cache')[$this->config->item('site_code')]['cache_path'] . $information->ic_url;
+ $html_path = str_replace("\\", "/", $html_path);
+ if (substr($html_path, -1, 1) == '/') {
+ $html_path = $html_path . 'index.htm';
+ }
+ $html_path .= $html_path_ext;
+ create_folder_by_path(dirname($html_path));
+ file_put_contents($html_path, $template, LOCK_EX);
+ }
+
+ public function make_www_cache_ah($device, $information, $recommand_information)
+ {
+
+ $data = array();
+ $data['information'] = $information;
+ $recommand_template = '';
+ switch ($device) {
+ case 'mobile':
+ //获取移动优先的模板,如果有的话
+ $template_path = 'mobile_first/' . $this->config->item('site_code');
+ if (is_file(APPPATH . 'views/' . $template_path . EXT)) {
+ $template = $this->load->view($template_path, '', true);
+ $html_path_ext = '-mobile.htm';
+ } else {
+ return false;
+ }
+ $recommand_template = 'mobile_first/ah-next-mobile';
+ break;
+ case 'pc':
+ //获取PC的模板,如果有的话
+ $template_path = 'mobile_first/' . $this->config->item('site_code');
+ if (is_file(APPPATH . 'views/' . $template_path . '-pc' . EXT)) {
+ $template = $this->load->view($template_path . '-pc', '', true);
+ $html_path_ext = '-pc.htm';
+ } else {
+ return false;
+ }
+ $recommand_template = 'mobile_first/ah-next';
+ break;
+ default:
+ }
+
+ //替换模板中的标签
+ $template = str_replace('', $information->ic_seo_title, $template);
+ $template = str_replace('', $information->ic_seo_description, $template);
+ $template = str_replace('', $information->ic_seo_keywords, $template);
+ $template = str_replace('', $this->config->item('site_url') . $information->ic_url, $template);
+
+ //顶部视频
+ $data['meta_news_video'] = get_meta($information->ic_id, 'meta_news_video');
+ $data['meta_video_picture'] = get_meta($information->ic_id, 'meta_video_picture');
+ if (empty ($data['meta_news_video']) && empty ($data['meta_video_picture'])) {
+ //没有顶部视频时候才读取全屏大图
+ //顶部全屏大图
+ if ($device == 'mobile') { //移动端读取移动大图
+ $data['meta_addon_picture'] = get_meta($information->ic_id, 'meta_addon_picture_mobile');
+ } else {
+ $data['meta_addon_picture'] = get_meta($information->ic_id, 'meta_addon_picture');
+ }
+ $data['meta_addon_picture_url'] = get_meta($information->ic_id, 'meta_addon_picture_url');
+ }
+
+ // AH Home 下层节点名称和链接映射
+ $group_map = [
+ 278002667 => [
+ 'ic_url' => '/destinations',
+ 'ic_url_title' => 'Destinations',
+ ],
+ 278008885 => [
+ 'ic_url' => '/about-us',
+ 'ic_url_title' => 'About Us',
+ ],
+ ];
+
+ $breadcrumb_data = $this->Information_model->get_breadcrumb_data($information->is_id, $information->is_path, $group_map);
+ $ads_by_google = !empty (get_meta($information->ic_id, 'meta_google_ad_article'));
+ $data['meta_news_createdate'] = get_meta($information->ic_id, 'meta_news_createdate');
+ $data['ads_by_google'] = $ads_by_google;
+ $data['author'] = ''; //获取作者信息
+ $author = $this->Operator_model->get_author_nikename($information->ic_author);
+ if (!empty ($author)) {
+ $data['author'] = $author->OPI_FirstName;
+ } else {
+ $author_web = $this->Infoauthors_model->detail_by_id($information->ic_author); //原始作者,可能是在线作者等
+ if (!empty ($author_web)) {
+ $data['author'] = $author_web->a_name;
+ }
+ }
+ $data['breadcrumb_data'] = $breadcrumb_data;
+ $template_H1 = $this->load->view($template_path . '-h1', $data, true);
+ $template = str_replace('', $template_H1, $template);
+ // 结构化标签:Article
+ $article_structured_data_content = $this->load->view(
+ $template_path . '-structured-data-article',
+ array('information' => $information, 'author' => $data['author']),
+ true
+ );
+ $template = str_replace('', $article_structured_data_content, $template);
+ // 结构化标签:BreadcrumbList
+ $breadcrumb_structured_data_content = $this->load->view(
+ $template_path . '-structured-data-breadcrumb',
+ array('breadcrumb_data' => $breadcrumb_data, 'information' => $information),
+ true
+ );
+ $template = str_replace(
+ '',
+ $breadcrumb_structured_data_content,
+ $template
+ );
+
+ //推荐信息或者产品
+ $template_recommand = $recommand_information;
+ $template = str_replace('', $this->load->view($recommand_template, array('recommands' => $template_recommand), true), $template);
+ //广告,改叫tips,防止被插件屏蔽
+ if (!empty ($template_recommand['Tips Right'])) {
+ $template = str_replace('', "" . $template_recommand['Tips Right']->it_content . "
", $template);
+ }
+ // 右侧列表广告
+ $tips_right_a = [];
+ $tips_right_b = [];
+ $tips_right_c = [];
+ for ($i = 1; $i <= 12; $i++) {
+ $key = 'List Tips Right A_' . $i;
+ if (array_key_exists($key, $recommand_information) && $recommand_information[$key]) {
+ $tips_right_a[] = $recommand_information[$key];
+ }
+ }
+ for ($i = 1; $i <= 12; $i++) {
+ $key = 'List Tips Right B_' . $i;
+ if (array_key_exists($key, $recommand_information) && $recommand_information[$key]) {
+ $tips_right_b[] = $recommand_information[$key];
+ }
+ }
+ for ($i = 1; $i <= 12; $i++) {
+ $key = 'List Tips Right C_' . $i;
+ if (array_key_exists($key, $recommand_information) && $recommand_information[$key]) {
+ $tips_right_c[] = $recommand_information[$key];
+ }
+ }
+
+ $tips_right_list_content = $this->load->view(
+ 'mobile_first/ah-tips-right-list',
+ array(
+ 'tips_right_a' => $tips_right_a,
+ 'tips_right_b' => $tips_right_b,
+ 'tips_right_c' => $tips_right_c
+ ),
+ true
+ );
+
+ $template = str_replace('', $tips_right_list_content, $template);
+
+ //文中的信息推荐
+ if (strpos($information->ic_content, '') !== false) {
+ $information->ic_content = str_replace('', $this->load->view($template_path . '-recommends-article', array('recommands' => $template_recommand), true), $information->ic_content);
+ }
+ //文中的线路推荐
+ if (strpos($information->ic_content, '') !== false) {
+ $information->ic_content = str_replace('', $this->load->view($template_path . '-recommends-tour', array('recommands' => $template_recommand), true), $information->ic_content);
+ }
+
+ //替换内容中广告
+ $temp_array = array();
+ preg_match_all('^^', $information->ic_content, $temp_array);
+ if (!empty ($temp_array[1])) {
+ foreach ($temp_array[1] as $key => $item) {
+ $tips_detail = $this->recommends_and_tips_model->tips_detail($item);
+ if ($tips_detail) {
+ $information->ic_content = str_replace($temp_array[0][$key], $tips_detail->it_content, $information->ic_content);
+ }
+ }
+ }
+
+ $meta_product_code = get_meta($information->ic_id, 'meta_product_code');
+ // 非产品页面
+ if (empty ($meta_product_code)) {
+ $addthis_widget = $this->load->view($template_path . '-add-this', false, true);
+ $template = str_replace('', $addthis_widget, $template);
+ $template = str_replace('?product_code=', '', $template);
+ } else {
+ $template = str_replace('?product_code=', '?product_code=' . $meta_product_code, $template);
+ $inquiry_form_template = $this->load->view(
+ $template_path . '-inquiry-form',
+ array('meta_product_code' => $meta_product_code, 'information' => $information),
+ true
+ );
+ $information->ic_content = str_replace('', $inquiry_form_template, $information->ic_content);
+
+ // GP 表单
+ $gp_form_content = $this->load->view(
+ $template_path . '-gp-form',
+ array('meta_product_code' => $meta_product_code, 'information' => $information),
+ true
+ );
+ $information->ic_content = str_replace('', $gp_form_content, $information->ic_content);
+
+ // tour-list 表单
+ $tour_list_form_content = $this->load->view(
+ $template_path . '-tour-list-form',
+ array('meta_product_code' => $meta_product_code, 'information' => $information),
+ true
+ );
+ $information->ic_content = str_replace('', $tour_list_form_content, $information->ic_content);
+
+ // 水灯节 GP 线路表单
+ $gp_form_content = $this->load->view(
+ $template_path . '-lantern-festival-gp-form',
+ array('meta_product_code' => $meta_product_code, 'information' => $information),
+ true
+ );
+ $information->ic_content = str_replace('', $gp_form_content, $information->ic_content);
+ }
+
+ $price_tag_list = $this->parse_price_tag($information->ic_content);
+
+ foreach ($price_tag_list as $price_tag) {
+ $information->ic_content = str_replace(
+ $price_tag['placeholder'],
+ $price_tag['price_number'],
+ $information->ic_content
+ );
+ }
+ // why-us 相关的标签
+ $why_us_mobile = $this->load->view($template_path . '-why-us-mobile', false, true);
+ $information->ic_content = str_replace('', $why_us_mobile, $information->ic_content);
+
+ $why_us_tour_detail_pc = $this->load->view($template_path . '-why-us-tour-detail-pc', false, true);
+ $information->ic_content = str_replace('', $why_us_tour_detail_pc, $information->ic_content);
+
+ $why_us_tour_list_pc = $this->load->view($template_path . '-why-us-tour-list-pc', false, true);
+ $information->ic_content = str_replace('', $why_us_tour_list_pc, $information->ic_content);
+
+ $info_page_form_content = $this->load->view($template_path . '-info-page-form', false, true);
+ $information->ic_content = str_replace('', $info_page_form_content, $information->ic_content);
+
+ // 水灯节表单
+ $lantern_form_content = $this->load->view(
+ $template_path . '-lantern-form',
+ array('information' => $information),
+ true
+ );
+ $information->ic_content = str_replace('', $lantern_form_content, $information->ic_content);
+ // 水灯节在信息页面表单
+ $lantern_form_info_page_content = $this->load->view(
+ $template_path . '-lantern-form-info-page',
+ array('information' => $information),
+ true
+ );
+ $information->ic_content = str_replace('', $lantern_form_info_page_content, $information->ic_content);
+
+ // 动态加载反馈标签,第一个城市不足八条,使用第二城市数据。
+ // HTLM:
+ // 解析结果:; Siem Reap,Bangkok
+ $feedback_array = [];
+ preg_match_all('^^', $information->ic_content, $feedback_array);
+ if (!empty ($feedback_array)) {
+ foreach ($feedback_array[0] as $index => $tag_name) {
+ $city_name_string = $feedback_array[1][$index];
+ $city_name_list = explode(',', $city_name_string);
+ $feedback_list = $this->Feedback_model->get_feedback_by_city_list($city_name_list);
+ // 防止触发 Google 网络垃圾政策只返回前三条
+ $top3_feedback_list = array_slice($feedback_list, 0, 3);
+ $feedback_content = $this->load->view(
+ 'mobile_first/ah-feedback-list',
+ array('feedback_list' => $top3_feedback_list),
+ true
+ );
+ $information->ic_content = str_replace(
+ $tag_name,
+ $feedback_content,
+ $information->ic_content
+ );
+ }
+ }
+
+ // 动态加载反馈标签,每个城市三十条反馈。
+ // HTLM:
+ // 解析结果:; Bangkok
+ $feedback30_array = [];
+ preg_match_all('^^', $information->ic_content, $feedback30_array);
+ if (!empty ($feedback30_array)) {
+ foreach ($feedback30_array[0] as $index => $tag_name) {
+ $city_name = $feedback30_array[1][$index];
+ $feedback_list = $this->Feedback_model->get_feedback_by_city_name($city_name);
+ $feedback_30_content = $this->load->view(
+ 'mobile_first/ah-feedback-30-list',
+ array('feedback_list' => $feedback_list),
+ true
+ );
+ $information->ic_content = str_replace(
+ $tag_name,
+ $feedback_30_content,
+ $information->ic_content
+ );
+ }
+ }
+
+ // 集合页面反馈标签
+ $feedback_city_array = [];
+ preg_match_all('^^', $information->ic_content, $feedback_city_array);
+ if (!empty ($feedback_city_array)) {
+ foreach ($feedback_city_array[0] as $index => $tag_name) {
+ $city_name_string = $feedback_city_array[1][$index];
+ $city_name_list = explode(',', $city_name_string);
+ $feedback_city_list = [];
+ foreach ($city_name_list as $index => $city_name) {
+ $feedback_list = $this->Feedback_model->get_feedback_by_city_name($city_name, 5);
+ $data_name = str_replace(" ", "_", $city_name);
+ $feedback_city_list[$data_name] = $feedback_list;
+ }
+
+ $feedback_city_content = $this->load->view(
+ 'mobile_first/ah-feedback-city-list',
+ $feedback_city_list,
+ true
+ );
+ $information->ic_content = str_replace(
+ $tag_name,
+ $feedback_city_content,
+ $information->ic_content
+ );
+ }
+ }
+
+ //主样式表,内联模式
+ if (is_file('D:/wwwroot/origin-www.asiahighlights.com/css/mobile-first.css')) { //主样式表,内联模式,优先读取本地,没有在从网络读取,为了加速
+ $main_css_string = compress_css(file_get_contents('D:/wwwroot/origin-www.asiahighlights.com/css/mobile-first.css'));
+ } else {
+ $main_css_string = compress_css(GET_HTTP('https://proxy-data.asiahighlights.com/css/mobile-first.css'));
+ }
+ $template = str_replace('', '', $template);
+ //额外样式
+ $meta_addon_css = get_meta($information->ic_id, 'meta_addon_css');
+ if (!empty ($meta_addon_css)) {
+ //内联方式
+ $meta_addon_css_string = compress_css(GET_HTTP($meta_addon_css));
+ $template = str_replace('', '', $template);
+ }
+ //额外js
+ $meta_addon_js = get_meta($information->ic_id, 'meta_addon_js');
+ if (!empty ($meta_addon_js)) {
+ $template = str_replace('', '', $template);
+ }
+
+ $meta_index_set = get_meta($information->ic_id, 'meta_index_set');
+ if (!empty ($meta_index_set)) {
+ $template = str_replace('', '', $template);
+ }
+ //设置内容图片缓加载
+ $lazy_content = $this->html_optimize_lib->set_lazy_loader($information->ic_content, 'https://data.asiahighlights.com/grey.gif');
+ $template = str_replace('', $lazy_content, $template);
+
+ //Google广告代码
+ //if (!empty(get_meta($information->ic_id, 'meta_google_ad_content'))) {
+ $template = str_replace('', '', $template);
+ //}
+ //社媒分享图片
+
+ $full_ic_photo = '';
+ if (!empty ($information->ic_photo)) {
+ $full_ic_photo = $this->config->item('site_image_url') . $information->ic_photo;
+ } else {
+ $full_ic_photo = get_meta($information->ic_id, 'meta_addon_picture_mobile');
+ }
+ if (!empty ($full_ic_photo)) {
+ $template = str_replace('', '', $template);
+ }
+
+ //设置图片尺寸
+ if (is_dir('D:/wwwroot/origin-images.chinahighlights.com') && is_dir('D:/wwwroot/origin-www.asiahighlights.com')) {
+ $template = $this->html_optimize_lib->set_image_size_local($template, 'D:/wwwroot/origin-www.asiahighlights.com', 'D:/wwwroot/origin-images.chinahighlights.com');
+ } else {
+ $template = $this->html_optimize_lib->set_image_size($template);
+ }
+ // /travelguide/chinese-zodiac/monthly-fortune-for-dog.htm
+ $html_path = $this->config->item('cache')[$this->config->item('site_code')]['cache_path'] . $information->ic_url;
+ $html_path = str_replace("\\", "/", $html_path);
+ if (substr($html_path, -1, 1) == '/') {
+ $html_path = $html_path . 'index.htm';
+ }
+ $html_path .= $html_path_ext;
+ create_folder_by_path(dirname($html_path));
+ file_put_contents($html_path, $template, LOCK_EX);
+ }
+
+ /**
+ * @description: CT用的生成静态文件方法.有些内容的替换,CT这边不一样,需要单独处理 zp
+ * @param {type} $device='mobile' or 'pc'
+ * @return:
+ * @Date Changed:
+ */
+ public function make_www_cache_ct($information)
+ {
+ $data = array();
+
+ #region 公用数据
+ //$apiurl = "http://202.103.68.104:61/info.php"; //本地测试
+ $apiurl = "https://ct.mycht.cn/info.php"; //网前
+
+ //先准备数据,CT采用直接赋值视图然后返回视图字符串的模式,不使用一次次替换视图模板内容的模式。
+ $data["TITLE"] = $information->ic_seo_title;
+ $data["DESCRIPTION"] = $information->ic_seo_description;
+ $data["KEYWORDS"] = $information->ic_seo_keywords;
+ $data["CANONICAL"] = $this->config->item('site_url') . $information->ic_url;
+ $meta_ct_page_type = "";
+ $meta_ct_page_type = get_meta($information->ic_id, 'meta_ct_page_type'); //页面类型
+ $meta_product_code = get_meta($information->ic_id, 'meta_product_code'); //绑定的产品编号
+ $template_path = 'mobile_first/' . $this->config->item('site_code'); //模板位置
+
+ //面包屑
+ $crumb = "";
+ $crumb_data = $this->Information_model->get_path_exclude_ct($information->is_id, $information->is_path);
+ if (count($crumb_data) > 0) { //至少有一个父类面包屑才显示
+ $crumb = "";
+ }
+ $data["crumb"] = $crumb;
+
+ //作者字符串,信息页或者城市天气页加载 2022-7-26
+ $str_author = "";
+ $author = $this->Operator_model->get_author_nikename($information->ic_author);
+ if ((empty ($meta_product_code) && !($meta_ct_page_type !== false && $meta_ct_page_type != "")) || $meta_ct_page_type == "weatherpage") {
+ $OPI_FirstName = !empty ($author) ? $author->OPI_FirstName : 'author nickname';
+ $str_author = 'Written by ' . $OPI_FirstName . ' Updated ' . date("M. j, Y", strtotime($information->ic_datetime)) . '
';
+ }
+
+ //火车票详细页搜索框添加 -- zp
+ $meta_ct_page_trainform = get_meta($information->ic_id, 'meta_ct_page_trainform'); //是否插入火车票搜索框
+ $template_TrainDetailSearch = "";
+ if ($meta_ct_page_trainform == "yes" || $information->is_parent_id == "278014609") {
+ $template_TrainDetailSearch = $this->load->view($template_path . '-train-detail', null, true);
+ }
+
+ /* 详细内容 */
+ $ic_content = $information->ic_content;
+
+ #region old replace
+ // /**替换详细内容里面的价格
+ /* 直接使用fetch来动态获取价格,这样不用替换标签,直接录标签
+ // * // 一日游价格标签, "" 或者 逗号后面是人数
+ // * //精华线路标签""
+ // */
+ // $ic_content = preg_replace_callback('//i',function($match){
+ // //处理一日游每次配备
+ // $matchItem = $match[1];
+ // return '';;
+ // },$ic_content);
+ // $ic_content = preg_replace_callback('//i',function($match){
+ // //处理精华线路每次配备
+ // $matchItem = $match[1];
+ // return '';;
+ // },$ic_content);
+ #enregion
+
+ /** 替换H1加面包屑,加作者 */
+ $ic_content = preg_replace('/(.*)<\/h1>/i', $crumb . "\r\n" . '$1
' . "\r\n" . $str_author . $template_TrainDetailSearch . "\r\n", $ic_content, 1);
+
+ /**替换zodiac标签 */
+ if (strpos($ic_content, '') !== false) {
+ $zodiacCalc = $this->load->view('mobile_first/' . $this->config->item('site_code') . '-zodiac-calc', false, true);
+ $ic_content = str_replace('', $zodiacCalc, $ic_content);
+ }
+
+ //图片加延迟
+ $ic_content = $this->html_optimize_lib->set_lazy_loader($ic_content, 'https://data.chinatravel.com/images/mobile-first/grey.gif');
+
+ $ic_content = $this->html_optimize_lib->set_image_size($ic_content);
+
+ $data["CUSTOMCONENT"] = $ic_content;
+
+ //非产品页面
+ $data["PRODUCTJS"] = "";
+ $data["ISPRODUCT"] = "no"; //判断是否是产品页
+ $data["addthis_widget"] = "";
+ $data["FloatIcon"] = ""; //浮动图标替代addthis
+ $arrExitUrl = array("/", "/culture", "/guide", "/tour", "/citytour", "/daytrip", "/asia-tour", "/china-trains");
+
+ if (empty (get_meta($information->ic_id, 'meta_product_code')) || in_array($information->ic_url, $arrExitUrl)) {
+ //$data["addthis_widget"] = $this->load->view($template_path . '-add-this', false, true); //社媒代码addthis
+ $data["FloatIcon"] = "";
+ } else {
+ // $data["PRODUCTJS"] = '';
+ $data["ISPRODUCT"] = "yes";
+ }
+
+ //顶部视频
+ $data["TOPVIDEO"] = "";
+ $meta_news_video = get_meta($information->ic_id, 'meta_news_video');
+ $meta_video_picture = get_meta($information->ic_id, 'meta_video_picture');
+ if (!empty ($meta_news_video) && !empty ($meta_video_picture)) {
+ $data["TOPVIDEO"] = '
';
+ }
+
+ //主样式表,内联模式
+ //$apiweb="http://202.103.68.104"; //本地测试
+ $apiweb = "https://data.chinatravel.com";
+ $cssUrl = $apiweb . "/css/newcss3/base.css?v=" . time();
+ $main_css_string = compress_css(GET_HTTP($cssUrl));
+ $data["MAINCSS"] = '';
+
+ //额外样式
+ $data["ADDONCSS"] = "";
+ $meta_addon_css = get_meta($information->ic_id, 'meta_addon_css');
+ if (!empty ($meta_addon_css)) {
+ //引用方式
+ //$data["ADDONCSS"]= '';
+ //内联方式
+ $meta_addon_css_string = compress_css(GET_HTTP($meta_addon_css));
+ $data["ADDONCSS"] = '';
+ }
+ //社媒分享图片
+ $data["OGIMAGE"] = "";
+ if (!empty ($information->ic_photo)) {
+ if (strpos($information->ic_photo, "chinatravel.com") != false) {
+ $full_ic_photo = $information->ic_photo;
+ } else {
+ $full_ic_photo = $this->config->item('site_image_url') . $information->ic_photo;
+ }
+ $data["OGIMAGE"] = '';
+ }
+
+ //结构化标签
+ $data["ConstructionCode"] = "";
+ $meta_construction_code = get_meta($information->ic_id, 'meta_construction_code');
+ if (!empty ($meta_construction_code)) {
+ $data["ConstructionCode"] = $meta_construction_code;
+ }
+
+ //总JS:为了方便以后js好维护,必须的把一些公用的JS统计到一个文件。但是又不是所有页面都需要调用这个基础js,所以必须在这里进行判断
+ $addBaseJs = false;
+ $addonJs = "";
+ $meta_ct_page_price = get_meta($information->ic_id, 'meta_ct_page_price'); //是否包含价格
+
+ if ($meta_ct_page_price == "yes") {
+ $addBaseJs = true;
+ } else if ($meta_ct_page_type !== false && $meta_ct_page_type != "") {
+ $addBaseJs = true;
+ }
+
+ if ($addBaseJs) {
+ $addonJs = '';
+ }
+ /// ----- 总JS判断完成-----
+
+ //额外js
+ $data["ADDONJS"] = "";
+ $meta_addon_js = get_meta($information->ic_id, 'meta_addon_js');
+ if (!empty ($meta_addon_js)) {
+ $addonJs .= '';
+ }
+ //价格js
+ if ($meta_ct_page_price == "yes") {
+ $addonJs .= '';
+ }
+
+ //列表js
+ if (in_array($meta_ct_page_type, array('daytripindex', 'tourindex', 'attractionindex'))) {
+ $addonJs .= '';
+ }
+
+ //天气
+ if (in_array($meta_ct_page_type, array('weatherpage'))) {
+ $addonJs .= '';
+ }
+
+ //页面传递参数
+ $passParam = "";
+ if (in_array($meta_ct_page_type, array("daytripindex", "tourindex", "attractionindex", "weatherpage"))) { //一日游和线路列表
+ //产品首页
+ $meta_ct_page_value = get_meta($information->ic_id, 'meta_ct_page_value');
+
+ if (in_array($meta_ct_page_type, array("attractionindex"))) {
+ //旧信息id,景点等信息类
+ $passParam .= '';
+ } else {
+ //城市名称,产品类用
+ $passParam .= '';
+ }
+
+ //加信息平台的is_id
+ $passParam .= '';
+ }
+
+ //产品详细页
+ $productType = "";
+ $productCode = "";
+ if ($meta_ct_page_type == "daytripdetail") {
+ //一日游
+ if (!empty ($meta_ct_page_type)) {
+ $productType = $meta_ct_page_type;
+ }
+ $meta_ct_page_value = get_meta($information->ic_id, 'meta_ct_page_value');
+ if (!empty ($meta_ct_page_value)) {
+ $productCode = $meta_ct_page_value;
+ }
+ $addonJs .= '';
+ //$addonJs .= '';
+ $data["ADDONCSS"] .= '';
+ }
+ if ($meta_ct_page_type == "tourdetail") {
+ //线路
+ $productType = $meta_ct_page_type;
+ $meta_ct_page_value = get_meta($information->ic_id, 'meta_ct_page_value');
+ if (!empty ($meta_ct_page_value)) {
+ $productCode = $meta_ct_page_value;
+ }
+
+ //获取cli_sn
+ $tourdata = json_decode(GET_HTTP($apiurl . "/thirdparty/ctmobilefirst/api/getCliSn/?param=" . $productCode));
+ $data["clisn"] = $tourdata->clisn;
+
+ //调取模板
+ $dataform["TourCode"] = $productCode;
+ $dataform["CLI_SN"] = $tourdata->clisn;
+ $dataform["TourName"] = $information->ic_title;
+
+
+ }
+
+ //游船详细页
+ if ($meta_ct_page_type == "cruisedetails") {
+ $productType = $meta_ct_page_type;
+ $meta_ct_page_value = get_meta($information->ic_id, 'meta_ct_page_value');
+ if (!empty ($meta_ct_page_value)) {
+ $productCode = $meta_ct_page_value;
+ }
+ $dataCruise["shipname"] = $productCode;
+ $template_curisedetails = $this->load->view($template_path . '-cruisedetails-form', $dataCruise, true);
+ $data["template_curisedetails"] = $template_curisedetails;
+ }
+
+ //表单页
+ if (in_array($meta_ct_page_type, array("customize", "contactus", "pagewithform", "tourdetail"))) {
+ $productType = $meta_ct_page_type;
+ $addonJs .= '';
+ $data["ADDONCSS"] .= '';
+ }
+
+ $data["productType"] = $productType;
+ $data["productCode"] = $productCode;
+
+ //页面添加的元素
+ $data["ADDONJS"] = $addonJs;
+ $data["passParam"] = $passParam;
+
+ #endregion
+
+ #region 移动端和PC端差别处理区域
+ $arrDevice = array("mobile", "pc");
+ foreach ($arrDevice as $device) {
+ //顶部全屏大图
+ $data["TOPBANNER"] = "";
+ $ImgText = ""; //图文字
+ $meta_addon_picture_url = get_meta($information->ic_id, 'meta_addon_picture_url');
+ $meta_addon_picture_text = get_meta($information->ic_id, 'meta_addon_picture_text');
+ if ($device == 'mobile') { //移动端读取移动大图
+ $meta_addon_picture = get_meta($information->ic_id, 'meta_addon_picture_mobile');
+ $bannerImg = '
';
+ if (!empty ($meta_addon_picture_url) && !empty ($meta_addon_picture_text)) {
+ $ImgText = '';
+ } else if (!empty ($meta_addon_picture_text)) {
+ $ImgText = '' . $meta_addon_picture_text . '
';
+ }
+ } else {
+ $meta_addon_picture = get_meta($information->ic_id, 'meta_addon_picture');
+ $bannerImg = '
';
+ if (!empty ($meta_addon_picture_url) && !empty ($meta_addon_picture_text)) {
+ $ImgText = '';
+ } else if (!empty ($meta_addon_picture_text)) {
+ $ImgText = '' . $meta_addon_picture_text . '
';
+ }
+ }
+
+ // 搜索框
+ $template_TrainSearch = "";
+ if ($information->ic_url == "/china-trains/hometest" || $information->ic_url == "/china-trains") {
+ //火车票首页
+ $template_TrainSearch = $this->load->view($template_path . '-train-index', null, true);
+ $ImgText = "";
+ //火车票移动端去掉头部图片,保证搜索框CLS
+ if ($device == 'mobile') {
+ $meta_addon_picture = "";
+ $data["TOPBANNER"] = '' . $template_TrainSearch . '
';
+ }
+ } else if ($information->ic_url == "/china-flights") {
+ //机票首页
+ $template_TrainSearch = $this->load->view($template_path . '-flight-index', null, true);
+ $ImgText = "";
+ //飞机票移动端去掉头部图片,保证搜索框CLS
+ if ($device == 'mobile') {
+ $meta_addon_picture = "";
+ $data["TOPBANNER"] = '' . $template_TrainSearch . '
';
+ }
+ }
+
+ if (!empty ($meta_addon_picture)) {
+ if (!empty ($meta_addon_picture_url)) {
+ $data["TOPBANNER"] = '';
+ } else {
+ $data["TOPBANNER"] = '' . $bannerImg . $ImgText . $template_TrainSearch . '
';
+ }
+ }
+
+ if ($meta_ct_page_type == "tourdetail") {
+ $dataform['device'] = $device;
+ $template_form_tourqi = $this->load->view($template_path . '-form-tourqi', $dataform, true);
+ $data["template_form_tourqi"] = $template_form_tourqi; //表单模板字符串
+ }
+
+ //两种设备分别调用两种模板 ,静态化
+ switch ($device) {
+ case 'mobile':
+ //获取移动优先的模板,如果有的话
+ $template_path = 'mobile_first/' . $this->config->item('site_code');
+ if (is_file(APPPATH . 'views/' . $template_path . EXT)) {
+ $template = $this->load->view($template_path, $data, true);
+ $html_path_ext = '-mobile.htm';
+ } else {
+ return false;
+ }
+ break;
+ case 'pc':
+ //获取PC的模板,如果有的话
+ $template_path = 'mobile_first/' . $this->config->item('site_code');
+ if (is_file(APPPATH . 'views/' . $template_path . '-pc' . EXT)) {
+ $template = $this->load->view($template_path . '-pc', $data, true);
+ $html_path_ext = '-pc.htm';
+ } else {
+ return false;
+ }
+ break;
+ default:
+ }
+
+ //生成静态文件
+ $html_path = $this->config->item('cache')[$this->config->item('site_code')]['cache_path'] . $information->ic_url;
+ $html_path = str_replace("\\", "/", $html_path);
+ if (substr($html_path, -1, 1) == '/') {
+ $html_path = $html_path . 'index.htm';
+ }
+ $html_path .= $html_path_ext;
+ create_folder_by_path(dirname($html_path));
+ file_put_contents($html_path, $template, LOCK_EX);
+ }
+ #endregion
+
+ }
+
+ /**
+ * 上海站
+ */
+ public function make_www_cache_sh($information)
+ {
+ $data = array();
+
+ #region 公用数据
+ //$apiurl = "http://202.103.68.104:61/info.php"; //本地测试
+ $apiurl = "https://ct.mycht.cn/info.php"; //网前
+
+ //先准备数据,采用直接赋值视图然后返回视图字符串的模式,不使用一次次替换视图模板内容的模式。
+ $data["TITLE"] = $information->ic_seo_title;
+ $data["DESCRIPTION"] = $information->ic_seo_description;
+ $data["KEYWORDS"] = $information->ic_seo_keywords;
+ $data["CANONICAL"] = $this->config->item('site_url') . $information->ic_url;
+ $meta_ct_page_type = "";
+ $meta_ct_page_type = get_meta($information->ic_id, 'meta_ct_page_type'); //页面类型
+ $meta_product_code = get_meta($information->ic_id, 'meta_product_code'); //绑定的产品编号
+ $template_path = 'mobile_first/' . $this->config->item('site_code'); //模板位置
+
+ //面包屑
+ $crumb = "";
+ $crumb_data = $this->Information_model->get_path_exclude_ct($information->is_id, $information->is_path);
+ if (count($crumb_data) > 0) { //至少有一个父类面包屑才显示
+ $crumb = "";
+ }
+ $data["crumb"] = $crumb;
+
+ //作者字符串,信息页或者城市天气页加载 2022-7-26
+ $str_author = "";
+ $author = $this->Operator_model->get_author_nikename($information->ic_author);
+ if ((empty ($meta_product_code) && !($meta_ct_page_type !== false && $meta_ct_page_type != "")) || $meta_ct_page_type == "weatherpage") {
+ $OPI_FirstName = !empty ($author) ? $author->OPI_FirstName : 'author nickname';
+ $str_author = 'Written by ' . $OPI_FirstName . ' Updated ' . date("M. j, Y", strtotime($information->ic_datetime)) . '
';
+ }
+
+
+ /* 详细内容 */
+ $ic_content = $information->ic_content;
+
+ /** 替换H1加面包屑,加作者 */
+ $ic_content = preg_replace('/(.*)<\/h1>/i', $crumb . "\r\n" . '$1
' . "\r\n" . $str_author . "\r\n", $ic_content, 1);
+
+ //图片加延迟
+ $ic_content = $this->html_optimize_lib->set_lazy_loader($ic_content, 'https://data.shanghaihighlights.com/image/grey.gif');
+
+ $ic_content = $this->html_optimize_lib->set_image_size($ic_content);
+
+
+
+ //非产品页面
+ $data["PRODUCTJS"] = "";
+ $data["ISPRODUCT"] = "no"; //判断是否是产品页
+ $data["addthis_widget"] = "";
+ $data["FloatIcon"] = ""; //浮动图标替代addthis
+ $arrExitUrl = array("/", "/culture", "/guide", "/tour", "/citytour", "/daytrip", "/asia-tour", "/china-trains");
+
+ if (empty (get_meta($information->ic_id, 'meta_product_code')) || in_array($information->ic_url, $arrExitUrl)) {
+ $data["FloatIcon"] = "";
+ } else {
+ $data["ISPRODUCT"] = "yes";
+ }
+
+ //顶部视频
+ $data["TOPVIDEO"] = "";
+ $meta_news_video = get_meta($information->ic_id, 'meta_news_video');
+ $meta_video_picture = get_meta($information->ic_id, 'meta_video_picture');
+ if (!empty ($meta_news_video) && !empty ($meta_video_picture)) {
+ $data["TOPVIDEO"] = '
';
+ }
+
+ //主样式表,内联模式
+ //$apiweb="http://202.103.68.104:81"; //本地测试
+ $apiweb = "https://data.shanghaihighlights.com";
+ $cssUrl = $apiweb . "/css/css3/base.css?v=" . time();
+ $main_css_string = compress_css(GET_HTTP($cssUrl));
+ $data["MAINCSS"] = '';
+
+ //额外样式
+ $data["ADDONCSS"] = "";
+ $meta_addon_css = get_meta($information->ic_id, 'meta_addon_css');
+ if (!empty ($meta_addon_css)) {
+ //引用方式
+ //$data["ADDONCSS"]= '';
+ //内联方式
+ $meta_addon_css_string = compress_css(GET_HTTP($meta_addon_css));
+ $data["ADDONCSS"] = '';
+ }
+ //社媒分享图片
+ $data["OGIMAGE"] = "";
+ if (!empty ($information->ic_photo)) {
+ if (strpos($information->ic_photo, "shanghaihighlights.com") != false) {
+ $full_ic_photo = $information->ic_photo;
+ } else {
+ $full_ic_photo = $this->config->item('site_image_url') . $information->ic_photo;
+ }
+ $data["OGIMAGE"] = '';
+ }
+
+ //结构化标签
+ $data["ConstructionCode"] = "";
+ $meta_construction_code = get_meta($information->ic_id, 'meta_construction_code');
+ if (!empty ($meta_construction_code)) {
+ $data["ConstructionCode"] = $meta_construction_code;
+ }
+
+ //总JS:为了方便以后js好维护,必须的把一些公用的JS统计到一个文件。但是又不是所有页面都需要调用这个基础js,所以必须在这里进行判断
+ $addBaseJs = false;
+ $addonJs = "";
+ $meta_ct_page_price = get_meta($information->ic_id, 'meta_ct_page_price'); //是否包含价格
+
+ if ($meta_ct_page_price == "yes") {
+ $addBaseJs = true;
+ } else if ($meta_ct_page_type !== false && $meta_ct_page_type != "") {
+ $addBaseJs = true;
+ }
+
+ if ($addBaseJs) {
+ $addonJs = '';
+ }
+ /// ----- 总JS判断完成-----
+
+ //额外js
+ $data["ADDONJS"] = "";
+ $meta_addon_js = get_meta($information->ic_id, 'meta_addon_js');
+ if (!empty ($meta_addon_js)) {
+ $addonJs .= '';
+ }
+ //价格js
+ if ($meta_ct_page_price == "yes") {
+ $addonJs .= '';
+ }
+
+ //列表js
+ if (in_array($meta_ct_page_type, array('daytripindex', 'tourindex', 'attractionindex'))) {
+ $addonJs .= '';
+ }
+
+ //天气
+ if (in_array($meta_ct_page_type, array('weatherpage'))) {
+ $addonJs .= '';
+ }
+
+ //页面传递参数
+ $passParam = "";
+ if (in_array($meta_ct_page_type, array("daytripindex", "tourindex", "attractionindex", "weatherpage"))) { //一日游和线路列表
+ //产品首页
+ $meta_ct_page_value = get_meta($information->ic_id, 'meta_ct_page_value');
+
+ if (in_array($meta_ct_page_type, array("attractionindex"))) {
+ //旧信息id,景点等信息类
+ $passParam .= '';
+ } else {
+ //城市名称,产品类用
+ $passParam .= '';
+ }
+
+ //加信息平台的is_id
+ $passParam .= '';
+ }
+
+ //产品详细页
+ $productType = "";
+ $productCode = "";
+ if ($meta_ct_page_type == "daytripdetail") {
+ //一日游
+ if (!empty ($meta_ct_page_type)) {
+ $productType = $meta_ct_page_type;
+ }
+ $meta_ct_page_value = get_meta($information->ic_id, 'meta_ct_page_value');
+ if (!empty ($meta_ct_page_value)) {
+ $productCode = $meta_ct_page_value;
+ }
+ $addonJs .= '';
+ //$addonJs .= '';
+ $data["ADDONCSS"] .= '';
+
+ //一日游表单的替换
+ $DayTripData["productCode"] = $productCode;
+ $template_form_daydetail = $this->load->view($template_path . '-daydetail-form', $DayTripData, true); //模板内容
+ //使用simple_html_dom_lib库来进行表单添加
+ $ic_content = $this->html_optimize_lib->add_htmlcode($ic_content, "#maincontent", $template_form_daydetail);
+ }
+ if ($meta_ct_page_type == "tourdetail") {
+ //线路
+ $productType = $meta_ct_page_type;
+ $meta_ct_page_value = get_meta($information->ic_id, 'meta_ct_page_value');
+ if (!empty ($meta_ct_page_value)) {
+ $productCode = $meta_ct_page_value;
+ }
+
+ //获取cli_sn
+ $tourdata = json_decode(GET_HTTP($apiurl . "/thirdparty/ctmobilefirst/api/getCliSn/?param=" . $productCode));
+ $data["clisn"] = $tourdata->clisn;
+
+ //调取模板
+ $dataform["TourCode"] = $productCode;
+ $dataform["CLI_SN"] = $tourdata->clisn;
+ $dataform["TourName"] = $information->ic_title;
+ $template_form_tourqi = $this->load->view($template_path . '-form-tourqi', $dataform, true);
+ $data["template_form_tourqi"] = $template_form_tourqi; //表单模板字符串
+
+ }
+
+
+ //表单页
+ if (in_array($meta_ct_page_type, array("customize", "contactus", "pagewithform", "tourdetail"))) {
+ $productType = $meta_ct_page_type;
+ $addonJs .= '';
+ $data["ADDONCSS"] .= '';
+ }
+
+ if ($meta_ct_page_type == "daytripform") {
+ $productType = $meta_ct_page_type;
+ $addonJs .= '';
+ $data["ADDONCSS"] .= '';
+ }
+
+ $data["productType"] = $productType;
+ $data["productCode"] = $productCode;
+
+ //页面添加的元素
+ $data["ADDONJS"] = $addonJs;
+ $data["passParam"] = $passParam;
+
+ //页面详细内容放最后,这样上面都可以进行内容的替换,比如一日游表单
+ $data["CUSTOMCONENT"] = $ic_content;
+
+ #endregion
+
+ #region 移动端和PC端差别处理区域
+ $arrDevice = array("mobile", "pc");
+ foreach ($arrDevice as $device) {
+ //顶部全屏大图
+ $data["TOPBANNER"] = "";
+ $ImgText = ""; //图文字
+ $meta_addon_picture_url = get_meta($information->ic_id, 'meta_addon_picture_url');
+ $meta_addon_picture_text = get_meta($information->ic_id, 'meta_addon_picture_text');
+ if ($device == 'mobile') { //移动端读取移动大图
+ $meta_addon_picture = get_meta($information->ic_id, 'meta_addon_picture_mobile');
+ $bannerImg = '
';
+ if (!empty ($meta_addon_picture_url) && !empty ($meta_addon_picture_text)) {
+ $ImgText = '';
+ } else if (!empty ($meta_addon_picture_text)) {
+ $ImgText = '' . $meta_addon_picture_text . '
';
+ }
+ } else {
+ $meta_addon_picture = get_meta($information->ic_id, 'meta_addon_picture');
+ $bannerImg = '
';
+ if (!empty ($meta_addon_picture_url) && !empty ($meta_addon_picture_text)) {
+ $ImgText = '';
+ } else if (!empty ($meta_addon_picture_text)) {
+ $ImgText = '' . $meta_addon_picture_text . '
';
+ }
+ }
+
+ // 搜索框
+ $template_TrainSearch = "";
+ if ($information->ic_url == "/china-trains/hometest" || $information->ic_url == "/china-trains") {
+ //火车票首页
+ $template_TrainSearch = $this->load->view($template_path . '-train-index', null, true);
+ $ImgText = "";
+ //火车票移动端去掉头部图片,保证搜索框CLS
+ if ($device == 'mobile') {
+ $meta_addon_picture = "";
+ $data["TOPBANNER"] = '' . $template_TrainSearch . '
';
+ }
+ } else if ($information->ic_url == "/china-flights") {
+ //机票首页
+ $template_TrainSearch = $this->load->view($template_path . '-flight-index', null, true);
+ $ImgText = "";
+ //飞机票移动端去掉头部图片,保证搜索框CLS
+ if ($device == 'mobile') {
+ $meta_addon_picture = "";
+ $data["TOPBANNER"] = '' . $template_TrainSearch . '
';
+ }
+ }
+
+ if (!empty ($meta_addon_picture)) {
+ if (!empty ($meta_addon_picture_url)) {
+ $data["TOPBANNER"] = '';
+ } else {
+ $data["TOPBANNER"] = '' . $bannerImg . $ImgText . $template_TrainSearch . '
';
+ }
+ }
+
+ //两种设备分别调用两种模板 ,静态化
+ switch ($device) {
+ case 'mobile':
+ //获取移动优先的模板,如果有的话
+ $template_path = 'mobile_first/' . $this->config->item('site_code');
+ if (is_file(APPPATH . 'views/' . $template_path . EXT)) {
+ $template = $this->load->view($template_path, $data, true);
+ $html_path_ext = '-mobile.htm';
+ } else {
+ return false;
+ }
+ break;
+ case 'pc':
+ //获取PC的模板,如果有的话
+ $template_path = 'mobile_first/' . $this->config->item('site_code');
+ if (is_file(APPPATH . 'views/' . $template_path . '-pc' . EXT)) {
+ $template = $this->load->view($template_path . '-pc', $data, true);
+ $html_path_ext = '-pc.htm';
+ } else {
+ return false;
+ }
+ break;
+ default:
+ }
+
+ //生成静态文件
+ $html_path = $this->config->item('cache')[$this->config->item('site_code')]['cache_path'] . $information->ic_url;
+ $html_path = str_replace("\\", "/", $html_path);
+ if (substr($html_path, -1, 1) == '/') {
+ $html_path = $html_path . 'index.htm';
+ }
+ $html_path .= $html_path_ext;
+ create_folder_by_path(dirname($html_path));
+ file_put_contents($html_path, $template, LOCK_EX);
+ }
+ #endregion
+
+ }
+
+ //通过内容找到第一张图片
+ public function set_photo_content($ic_photo, $ic_content)
+ {
+ if (empty ($ic_photo)) {
+ $images = get_image_url_by_source($ic_content);
+ if (!empty ($images) and !empty ($images[1])) {
+ return $images[1][0];
+ }
+ } else {
+ return $this->config->item('site_image_url') . $ic_photo;
+ }
+ return '';
+ }
+
+ //根据推荐规则进行查询
+ public function recommand_information_rule($information, $root_information, $recommand, &$exclude_ids)
+ {
+ $data = array();
+ switch ($recommand->ir_rule) {
+ case 'rule_same_node_keyword': //同节点关键词
+ $keywords = explode(',', $recommand->ir_keyword);
+ $data = $this->Information_model->search_by_words_2($root_information->is_path, $keywords, $exclude_ids);
+ break;
+ case 'rule_same_url_keyword': //同URL关键词
+ $keywords = explode(',', $recommand->ir_keyword);
+ $url = trim($information->ic_url);
+ $url = substr($url, 0, strpos($url, '/', 1) + 1);
+ $data = $this->Information_model->search_by_words($url, $keywords, $exclude_ids);
+ break;
+ case 'rule_same_node_random': //同节点随机
+ $data = $this->Information_model->random(1, $root_information->is_path, $exclude_ids);
+ break;
+ case 'rule_this_node_random': //指定节点下随机
+ $ir_pointer = $this->Information_model->Detail($recommand->ir_pointer_is_id, 'is_path');
+ if (!empty ($ir_pointer)) {
+ $data = $this->Information_model->random(1, $ir_pointer->is_path, $exclude_ids);
+ }
+ break;
+ case 'rule_range_random': //范围内随机,同读取备用节点
+ break;
+ case 'rule_show_tips': //显示广告
+ $data = $this->recommends_and_tips_model->tips_detail($recommand->ir_pointer_it_id);
+ return array($recommand->ir_name => $data);
+ //break;
+ case 'rule_no_show': //不显示
+ return array($recommand->ir_name => false);
+ //break;
+ default: //'rule_parent'://继承上级规则则留空,程序会循环一遍分组的规则
+ return false;
+ }
+ //读取备用节点
+ if (empty ($data) && !empty ($recommand->ir_urls)) { //查不到信息并且备选urls不为空,则随机选一条
+ // $url_array = explode("\n", $recommand->ir_urls);
+ // $data = $this->Information_model->Detail(trim($url_array[rand(0, count($url_array) - 1)]));
+ $url_array = explode("\n", $recommand->ir_urls);
+ $data = $this->Information_model->random_range(1, $url_array, $exclude_ids);
+ }
+ if (!empty ($data)) {
+ $exclude_ids[] = $data->is_id;
+ $data->desktop_photo = get_meta($data->ic_id, 'meta_addon_picture');
+ $data->mobile_photo = get_meta($data->ic_id, 'meta_addon_picture_mobile');
+ if (empty ($data->mobile_photo)) {
+ if (!empty ($data->ic_photo)) {
+ $data->mobile_photo = $this->config->item('site_image_url') . $data->ic_photo;
+ } else {
+ $data->mobile_photo = 'https://data.chinahighlights.com/image/travelguide/article/recommended-info-bottom-cover.jpg';
+ }
+ }
+ }
+ return array($recommand->ir_name => $data);
+ }
+
+ //获取当前信息所有的推荐信息和广告内容
+ public function recommand_information($information)
+ {
+ $data = array();
+ $group_detail = $this->Information_model->get_detail_by_path($information->is_path, 0); //信息所属分组,根据分组进行不同推荐
+ $group_recommands = $this->recommends_and_tips_model->recommends_list($group_detail->is_id); //节点下所有的推荐规则
+ $root_detail = $this->Information_model->get_detail_by_path($information->is_path, 1); //信息所属分类,获取信息顶级节点内容
+ $root_recommands = $this->recommends_and_tips_model->recommends_list($root_detail->is_id); //节点下所有的推荐规则
+
+ $exclude_ids = array($information->is_id); //需要排除的is_id,防止通过页面显示相同内容,默认排除本身,每个推荐内容都需要排除已经推荐过的
+ foreach ($root_recommands as $item) {
+ if ($this->config->item('site_code') == 'ah' or $this->config->item('site_code') == 'ch' or $this->config->item('site_code') == 'gh') { //如果是AH CH GH的页面,取消重复检测
+ $exclude_ids = array(0);
+ }
+ $result = $this->recommand_information_rule($information, $root_detail, $item, $exclude_ids);
+ if (!empty ($result)) {
+ $data += $result;
+ }
+ }
+
+ foreach ($group_recommands as $item) {
+ if ($this->config->item('site_code') == 'ah' or $this->config->item('site_code') == 'ch' or $this->config->item('site_code') == 'gh') { //如果是AH CH GH的页面,取消重复检测
+ $exclude_ids = array(0);
+ }
+ if (empty ($data[$item->ir_name])) {
+ $result = $this->recommand_information_rule($information, $root_detail, $item, $exclude_ids);
+ if (!empty ($result)) {
+ $data += $result;
+ }
+ }
+ }
+ //print_r($data);
+ //log_message('error', 'exclude_ids: '.$information->ic_url.' '.implode(',',$exclude_ids));
+ return $data;
+ }
+
+ public function call_mobile_template_NEXT($template_path, $is_id)
+ {
+ $data['detail'] = $this->Information_model->Detail($is_id);
+ $data['type_detail'] = $this->Information_model->get_detail_by_path($data['detail']->is_path, 0); //信息所属分组,根据分组进行不同推荐
+ $data['root_detail'] = $this->Information_model->get_detail_by_path($data['detail']->is_path, 1); //信息所属分类,获取信息顶级节点内容
+
+ switch (strtolower($data['type_detail']->is_id)) {
+ case 278008010: //Inspiration
+ //随机获取两个同级节点内容
+ $random_array = $this->Information_model->random(2, $data['root_detail']->is_path, array($data['detail']->is_id));
+ if (!empty ($random_array[0])) {
+ $data['info_howtoplan'] = $random_array[0];
+ $data['info_howtoplan_root'] = $data['root_detail'];
+ $data['info_howtoplan']->ic_photo = $this->set_photo_content($data['info_howtoplan']->ic_photo, $data['info_howtoplan']->ic_content);
+ }
+ if (!empty ($random_array[1])) {
+ $data['info_besttime'] = $random_array[1];
+ $data['info_besttime_root'] = $data['root_detail'];
+ $data['info_besttime']->ic_photo = $this->set_photo_content($data['info_besttime']->ic_photo, $data['info_besttime']->ic_content);
+ }
+ //漏斗作用的页面,随机挑选一篇
+ $random_array = array(
+ '/travelguide/china-facts.htm',
+ '/travelguide/article-top-china-tourist-destination.htm',
+ '/travelguide/most-beautiful-places.htm',
+ '/weather/china-best-times.htm',
+ '/travelguide/article-10-movies-to-watch.htm',
+ '/travelguide/article-culture-shock-in-china.htm',
+ '/travelguide/article-what-chinese-eat-for-breakfast.htm',
+ '/travelguide/china-top-10-attractions.htm',
+ '/travelguide/chinese-food/eight-chinese-dishes.htm',
+ '/travelguide/china-travel-reopen-restrictions.htm',
+ );
+ $data['info_topthings'] = $this->Information_model->Detail($random_array[rand(0, count($random_array) - 1)]);
+ if (!empty ($data['info_topthings'])) {
+ $data['info_topthings_root'] = $this->Information_model->get_detail_by_path($data['info_topthings']->is_path, 1);
+ $data['info_topthings']->ic_photo = $this->set_photo_content($data['info_topthings']->ic_photo, $data['info_topthings']->ic_content);
+ }
+ //文化板块的页面,随机挑选一篇
+ $random_array = array(
+ '/travelguide/chinese-zodiac/',
+ '/travelguide/culture/china-arts-crafts.htm',
+ '/beijing/forbidden-city/',
+ '/travelguide/culture/traditionalmedichine.htm',
+ '/travelguide/chinese-tea/',
+ '/travelguide/kungfu/',
+ '/travelguide/culture/china-history.htm',
+ '/travelguide/chinese-food/',
+ '/travelguide/chinese-language/',
+ );
+ $data['info_hotel'] = $this->Information_model->Detail($random_array[rand(0, count($random_array) - 1)]);
+ if (!empty ($data['info_hotel'])) {
+ $data['info_hotel_root'] = $this->Information_model->get_detail_by_path($data['info_hotel']->is_path, 1);
+ $data['info_hotel']->ic_photo = $this->set_photo_content($data['info_hotel']->ic_photo, $data['info_hotel']->ic_content);
+ }
+ break;
+ case 278008012: //'planing-1(guide)':
+ case 278008013: //'planning-2 (decision tips)':
+ case 278008011: //'destination': //url的第一段表示地区,根据第一段来搜索相关数据如/beijing/ 而不是根据is_parent_id因为可能信息和线路是在不同的分类下
+ $destination_url = trim($data['detail']->ic_url);
+ $destination_url = substr($destination_url, 0, strpos($destination_url, '/', 1) + 1);
+ //how to plan
+ $data['info_howtoplan'] = $this->Information_model->search_by_words($destination_url, array('how', 'plan'), array($data['detail']->is_id));
+ if (empty ($data['info_howtoplan'])) { //找不到对应信息则显示备用
+ $data['info_howtoplan'] = $this->Information_model->Detail('/travelguide/plan-first-trip.htm');
+ }
+ $data['info_howtoplan_root'] = $this->Information_model->get_detail_by_path($data['info_howtoplan']->is_path, 1); //信息所属分类,获取信息顶级节点内容
+ if (!empty ($data['info_howtoplan'])) {
+ $data['info_howtoplan']->ic_photo = $this->set_photo_content($data['info_howtoplan']->ic_photo, $data['info_howtoplan']->ic_content);
+ }
+ //best time to visit
+ $data['info_besttime'] = $this->Information_model->search_by_words($destination_url, array('best', 'time'), array($data['detail']->is_id));
+ if (empty ($data['info_besttime'])) {
+ $data['info_besttime'] = $this->Information_model->Detail('/weather/china-best-times.htm');
+ }
+ $data['info_besttime_root'] = $this->Information_model->get_detail_by_path($data['info_besttime']->is_path, 1); //信息所属分类,获取信息顶级节点内容
+ if (!empty ($data['info_besttime'])) {
+ $data['info_besttime']->ic_photo = $this->set_photo_content($data['info_besttime']->ic_photo, $data['info_besttime']->ic_content);
+ }
+ //top things to do
+ $data['info_topthings'] = $this->Information_model->search_by_words($destination_url, array('top', 'things'), array($data['detail']->is_id));
+ if (empty ($data['info_topthings'])) {
+ $data['info_topthings'] = $this->Information_model->Detail('/travelguide/article-top-china-tourist-destination.htm');
+ }
+ $data['info_topthings_root'] = $this->Information_model->get_detail_by_path($data['info_topthings']->is_path, 1); //信息所属分类,获取信息顶级节点内容
+ if (!empty ($data['info_topthings'])) {
+ $data['info_topthings']->ic_photo = $this->set_photo_content($data['info_topthings']->ic_photo, $data['info_topthings']->ic_content);
+ }
+ //第四篇,随机推荐下方url
+ $random_array = array(
+ '/feedback/',
+ '/travelguide/how-chinahighlights-selects-your-hotel.htm',
+ '/travelguide/article-private-tour-vs-group-tour.htm',
+ '/aboutus/who-recommended.htm',
+ '/aboutus/no-shops.htm',
+ '/aboutus/company-history.htm',
+ );
+ $data['info_hotel'] = $this->Information_model->Detail($random_array[rand(0, count($random_array) - 1)]);
+ if (!empty ($data['info_hotel'])) {
+ $data['info_hotel_root'] = $this->Information_model->get_detail_by_path($data['info_hotel']->is_path, 1);
+ $data['info_hotel']->ic_photo = $this->set_photo_content($data['info_hotel']->ic_photo, $data['info_hotel']->ic_content);
+ }
+ break;
+ default:
+ return '';
+ }
+
+ return $this->load->view($template_path . '-next', $data, 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://169.54.167.189:22224/ampreq' . $url;
+ } else {
+ $url = 'http://169.54.167.189: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 = "https://www.chinarundreisen.com/gm.php/information/delete_cache_23Xd913mddkgssODII?static_html_url=" . urlencode($url);
+ //} else {
+ //先删除再生成,部分页面没有在信息平台中
+ GET_HTTP("https://www.chinarundreisen.com/gm.php/information/delete_cache_23Xd913mddkgssODII?static_html_url=" . urlencode($url));
+ $url = "https://www.chinarundreisen.com/gm.php/information/detail/?static_html_url=" . $url;
+ //}
+ break;
+
+ //国际站
+ case 'vac':
+ case 'vc':
+ case 'it':
+ case 'ru':
+ case 'jp':
+ $information = $this->Information_model->Detail($url);
+ $meta_pc_amp = @get_meta($information->ic_id, 'AMP_BODY_PC_STATUS');
+ if ($delete_only) {
+ //只删除操作,在url修改和不发布信息的时候使用
+ $url = $this->config->item('site_url') . '/index.php/welcome/update_cache/delete_only?static_html_url=' . $url;
+ } else {
+ $tmp = $url;
+ //判断是否是更新信息
+ // 产品页面不能生成静态页面,比如/beijing/hotel/只是为了在导航显示一个链接,如果生成了静态页面,网前只会显示一个空白页面了
+ if (!empty ($information->ic_content) || !empty ($information->ic_summary) || $meta_pc_amp == 'yes') {
+ $url = $this->config->item('site_url') . '/index.php/information/detail/?static_html_url=' . $url;
+ } else {
+ $url = $this->config->item('site_url') . '/index.php/welcome/update_cache/?static_html_url=' . $url;
+ //$url = $this->config->item('site_url') . '/index.php/information/detail/?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
+ $cache_url = $this->input->post('cache_url');
+ if ($url && !$cache_url) {
+ /*
+ ignore_user_abort(true);
+ $ch = curl_init();
+ curl_setopt($ch, CURLOPT_URL, $url);
+ 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_FRESH_CONNECT, 1);
+ curl_setopt($ch, CURLOPT_NOBODY, 1);
+ curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
+ curl_exec($ch);
+ curl_close($ch);
+ */
+ $data['async_update'] = $url;
+ $data[] = array('name' => 'ok', 'value' => '信息保存成功,请在8秒后检查更新页面。', 'url' => $url);
+ //如果是外部调用就返回结果,内部就不返回了
+ if ($cache_url) {
+ echo json_encode($data);
+ }
+ return $data;
+ }
+ }
+ break;
+ //国际站 - GH - add gm
+ case 'gh_vac':
+ case 'gh_vc':
+ case 'gh_it':
+ case 'gh_ru':
+ case 'gh_jp':
+ case 'gh_gm':
+ $information = $this->Information_model->Detail($url);
+ $meta_pc_amp = @get_meta($information->ic_id, 'AMP_BODY_PC_STATUS');
+ if ($delete_only) {
+ //只删除操作,在url修改和不发布信息的时候使用
+ $url = $this->config->item('site_url') . '/index.php/welcome/update_cache/delete_only?static_html_url=' . $url;
+ } else {
+ $tmp = $url;
+ //判断是否是更新信息
+ // 产品页面不能生成静态页面,比如/beijing/hotel/只是为了在导航显示一个链接,如果生成了静态页面,网前只会显示一个空白页面了
+ if (!empty ($information->ic_content) || !empty ($information->ic_summary) || $meta_pc_amp == 'yes') {
+ $url = $this->config->item('site_url') . '/index.php/gh/info/detail/?static_html_url=' . $url;
+ } else {
+ $url = $this->config->item('site_url') . '/index.php/welcome/update_cache/?static_html_url=' . $url;
+ //$url = $this->config->item('site_url') . '/index.php/information/detail/?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;
+ }
+
+ // GH国际 不发布的时候删除缓存
+ if (isset ($information) && !empty ($information) && !$information->ic_status) {
+ $url = $this->config->item('site_url') . '/index.php/welcome/update_cache/delete_only?static_html_url=' . $tmp;
+ }
+
+ //int return direct
+ $cache_url = $this->input->post('cache_url');
+ if ($url && !$cache_url) {
+ /*
+ ignore_user_abort(true);
+ $ch = curl_init();
+ curl_setopt($ch, CURLOPT_URL, $url);
+ 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_FRESH_CONNECT, 1);
+ curl_setopt($ch, CURLOPT_NOBODY, 1);
+ curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
+ curl_exec($ch);
+ curl_close($ch);
+ */
+ $data['async_update'] = $url;
+ $data[] = array('name' => 'ok', 'value' => '信息保存成功,请在8秒后检查更新页面。', 'url' => $url);
+ //如果是外部调用就返回结果,内部就不返回了
+ if ($cache_url) {
+ echo json_encode($data);
+ }
+ return $data;
+ }
+ }
+ break;
+
+ case 'ct': //子站点使用
+ $url = 'http://50.97.246.187:22223' . $url;
+ break;
+ 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;
+ }
+
+ //获取产品信息,提供给用户选择进行绑定
+ public 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;
+ }
+
+ //显示备份的内容
+ public function backup_content($log_id)
+ {
+ $data['log_info'] = $this->Logs_model->read($log_id);
+ if ($data['log_info']->log_action == 'backup_amp') {
+ $data['log_list'] = $this->Logs_model->get_all_backup_list($data['log_info']->log_res_id, true);
+ } else {
+ $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');
+ }
+
+ //保存自定义配置
+ public 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;
+ }
+
+ //保存自定义配置
+ public 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;
+ }
+}
diff --git a/application/views/mobile_first/ah-h1.php b/application/views/mobile_first/ah-h1.php
index 8f013097..fc6d8b4e 100644
--- a/application/views/mobile_first/ah-h1.php
+++ b/application/views/mobile_first/ah-h1.php
@@ -1,20 +1,22 @@
-
-
-
-
-
Home
- $item) {?>
-
-
-
-

-
-
-
-
ic_title)?$information->ic_title:'H1 title asiahighlights mobile first template'; ?>
-
By Updated ic_datetime)); ?>
-
-
-
-
-
+
+
+
+
+
Home
+ $item) {?>
+
+
+
+

+
+
+
+
ic_title)?$information->ic_title:'H1 title asiahighlights mobile first template'; ?>
+
+
By Updated
+
+
+
+
+
+