diff --git a/application/config/config.php b/application/config/config.php index 8cb207d0..897a4e5e 100644 --- a/application/config/config.php +++ b/application/config/config.php @@ -39,9 +39,12 @@ switch ($_SERVER['SERVER_NAME']) { case 'gh-int.mycht.cn': $base_url = 'https://int.mycht.cn'; break; - case 'int.mycht.cn': + case 'int.mycht.cn': // lmr $base_url = 'https://int.mycht.cn'; break; + case 'gm.mycht.cn': // lmr + $base_url = 'https://gm.mycht.cn'; + break; case 'origin-gh.mycht.cn': $base_url = 'https://gh.mycht.cn'; break; @@ -426,14 +429,14 @@ $config['site'] = array( //静态文件生成路径 $config['cache']['jp']['cache_path'] = 'D:\wwwcache-intl\arachina.com'; -$config['cache']['gm']['cache_path'] = 'C:\Dropbox\wwwcache\chinarundreisen.com'; +$config['cache']['gm']['cache_path'] = 'D:\wwwcache-gm\chinarundreisen.com'; $config['cache']['vc']['cache_path'] = 'D:\wwwcache-intl\voyageschine.com'; $config['cache']['vac']['cache_path'] = 'D:\wwwcache-intl\viaje-a-china.com'; $config['cache']['ru']['cache_path'] = 'D:\wwwcache-intl\chinahighlights.ru'; $config['cache']['it']['cache_path'] = 'D:\wwwcache-intl\viaggio-in-cina.it'; $config['cache']['gh_jp']['cache_path'] = 'D:\wwwcache-intl\globalhighlights.jp'; -$config['cache']['gh_gm']['cache_path'] = 'C:\Dropbox\wwwcache\globalhighlights.de'; +$config['cache']['gh_gm']['cache_path'] = 'D:\wwwcache-gm\globalhighlights.de'; $config['cache']['gh_vc']['cache_path'] = 'D:\wwwcache-intl\globalhighlights.fr'; $config['cache']['gh_vac']['cache_path'] = 'D:\wwwcache-intl\globalhighlights.es'; $config['cache']['gh_ru']['cache_path'] = 'D:\wwwcache-intl\globalhighlights.ru'; @@ -762,7 +765,7 @@ $config['css_source_ts'] = 'https://www.trainspread.com/css/bootstrap.min.css'; //静态文件生成路径 $config['cache']['jp']['cache_path'] = 'D:\wwwcache-intl\arachina.com'; -$config['cache']['gm']['cache_path'] = 'C:\Dropbox\wwwcache\chinarundreisen.com'; +$config['cache']['gm']['cache_path'] = 'D:\wwwcache-gm\chinarundreisen.com'; $config['cache']['vc']['cache_path'] = 'D:\wwwcache-intl\voyageschine.com'; $config['cache']['vac']['cache_path'] = 'D:\wwwcache-intl\viaje-a-china.com'; $config['cache']['ru']['cache_path'] = 'D:\wwwcache-intl\chinahighlights.ru'; @@ -1137,11 +1140,13 @@ $config['templates_ah'] = array( // 出境游网站模板 $config['templates_pgr'] = array( - '空白模板' => 'guide_info_detail', '导航模板' => 'culture_info_detail_with_category', + '空白模板' => 'guide_info_detail', + '导航模板' => 'culture_info_detail_with_category', ); // 国际火车网站模板 $config['templates_ts'] = array( - '空白模板' => 'guide_info_detail', '信息导航模板' => 'train_series_with_category', + '空白模板' => 'guide_info_detail', + '信息导航模板' => 'train_series_with_category', ); //翰特产品类型,Information控制器的get_products函数有直接调用,在这里增加了信息需要去控制器写相关操作代码 diff --git a/application/controllers/information.php b/application/controllers/information.php index 968fd572..14c9e9be 100644 --- a/application/controllers/information.php +++ b/application/controllers/information.php @@ -900,8 +900,17 @@ class Information extends CI_Controller } } + // 检查图片地址格式 + $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'] = $information->ic_photo; + $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; @@ -1689,6 +1698,22 @@ class Information extends CI_Controller } } + // 未勾选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(), @@ -1713,7 +1738,7 @@ class Information extends CI_Controller ); $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); @@ -1989,7 +2014,8 @@ class Information extends CI_Controller $template = str_replace( '', $feedback_newest_10_content, - $template); + $template + ); //文中的信息推荐 if (strpos($information->ic_content, '') !== false) { @@ -3180,11 +3206,11 @@ class Information extends CI_Controller case 'gm': //GET_HTTP("http://148.251.35.42:3300/create-cache/?url=" . urlencode($url)); //请求nodejs静态化更新页面,删除缓存,因为部分页面没有进入信息平台 //if ($delete_only) { - // $url = "http://144.76.185.44:8029/gm.php/information/delete_cache_23Xd913mddkgssODII?static_html_url=" . urlencode($url); + // $url = "https://www.chinarundreisen.com/gm.php/information/delete_cache_23Xd913mddkgssODII?static_html_url=" . urlencode($url); //} else { //先删除再生成,部分页面没有在信息平台中 - GET_HTTP("http://144.76.185.44:8029/gm.php/information/delete_cache_23Xd913mddkgssODII?static_html_url=" . urlencode($url)); - $url = "http://144.76.185.44:8029/gm.php/information/detail/?static_html_url=" . $url; + 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; diff --git a/application/libraries/Amplib.php b/application/libraries/Amplib.php index e76bd514..026435ab 100644 --- a/application/libraries/Amplib.php +++ b/application/libraries/Amplib.php @@ -6,41 +6,45 @@ if (!defined('BASEPATH')) * AMP的相关方法 */ -class Amplib { +class Amplib +{ var $CI; - public function __construct() { - $this->CI = & get_instance(); + public function __construct() + { + $this->CI = &get_instance(); $this->CI->load->model('Information_model'); $this->CI->load->model('InfoMetas_model'); $this->CI->load->model('Logs_model'); } - public function edit($ic_id) { + public function edit($ic_id) + { $data = array(); $data['information'] = $this->CI->Information_model->detail_by_ic_id($ic_id); if ($data['information'] == FALSE) { show_404(); } - //查询上一次保存记录 - $amp_log = $this->CI->Logs_model->get_last_edit_amp($ic_id); - if(!empty($amp_log)){ - $data['last_edit_amp_id'] = $amp_log->log_id; - }else{ - $data['last_edit_amp_id'] = ''; - } + //查询上一次保存记录 + $amp_log = $this->CI->Logs_model->get_last_edit_amp($ic_id); + if (!empty($amp_log)) { + $data['last_edit_amp_id'] = $amp_log->log_id; + } else { + $data['last_edit_amp_id'] = ''; + } $this->CI->load->view('bootstrap3/header', $data); $this->CI->load->view('amp_editor'); $this->CI->load->view('bootstrap3/footer'); } - public function auto_create($ic_id) { + public function auto_create($ic_id) + { $data = array(); - if(strtolower($this->CI->config->item('site_code')) == 'cht'){ - $this->CI->Information_model->ic_type = "AND ic.ic_type != 'none'"; - } + if (strtolower($this->CI->config->item('site_code')) == 'cht') { + $this->CI->Information_model->ic_type = "AND ic.ic_type != 'none'"; + } $data['information'] = $this->CI->Information_model->detail_by_ic_id($ic_id); if ($data['information'] == FALSE) { return json_encode(array('result' => 'no', 'data' => '找不到这个页面')); @@ -61,7 +65,7 @@ class Amplib { break; case 'gm': $websitehost = 'https://data.chinarundreisen.com'; - $html_source_url = 'http://144.76.185.44:8029' . $data['information']->ic_url; + $html_source_url = 'https://www.chinarundreisen.com/' . $data['information']->ic_url; break; case 'ct': $websitehost = 'https://data.chinatravel.com'; @@ -75,23 +79,24 @@ class Amplib { $html_source = GET_HTTP($html_source_url); if (!empty($html_source)) { $post_data = array('websitehost' => $websitehost, 'template_name' => $site_code, 'create_amp' => 'true', 'htmlsource' => $html_source); - //德语站点走另外一个控制器,其他站点还是走原来的流程 - if($site_code == 'gm'){ - if($data['information']->ic_url == '/massgeschneiderte-china-reisen/'){ - return json_encode(array()); - }else{ - return GET_HTTP(site_url('/apps/htmlcompressor/index_gm/choose_way'), $post_data, 'POST'); - } - }elseif($site_code == 'ah'){ - return GET_HTTP(site_url('/apps/htmlcompressor/index_ah/choose_way'), $post_data, 'POST'); - }else{ - return GET_HTTP(site_url('/apps/htmlcompressor/index/optimize'), $post_data, 'POST'); - } + //德语站点走另外一个控制器,其他站点还是走原来的流程 + if ($site_code == 'gm') { + if ($data['information']->ic_url == '/massgeschneiderte-china-reisen/') { + return json_encode(array()); + } else { + return GET_HTTP(site_url('/apps/htmlcompressor/index_gm/choose_way'), $post_data, 'POST'); + } + } elseif ($site_code == 'ah') { + return GET_HTTP(site_url('/apps/htmlcompressor/index_ah/choose_way'), $post_data, 'POST'); + } else { + return GET_HTTP(site_url('/apps/htmlcompressor/index/optimize'), $post_data, 'POST'); + } } return json_encode(array('result' => 'no', 'data' => '不知道哪里错了,看代码')); } - public function edit_save($ic_id = false, $textarea_htmlcode = false, $amp_status = false) { + public function edit_save($ic_id = false, $textarea_htmlcode = false, $amp_status = false) + { $data = array(); if ($ic_id === false) { $ic_id = $this->CI->input->post('ic_id'); @@ -111,8 +116,8 @@ class Amplib { //CH的页面没有canonical内容,在这里帮补上 $textarea_htmlcode = str_replace('', $this->CI->config->item('site_url') . $data['information']->ic_url, $textarea_htmlcode); - //备份修改的代码 - $this->CI->Logs_model->write('backup_amp', $ic_id, $textarea_htmlcode); + //备份修改的代码 + $this->CI->Logs_model->write('backup_amp', $ic_id, $textarea_htmlcode); //AMP格式验证 if ($amp_status !== '0') {//只有发布的时候才需要验证 diff --git a/application/models/information_model.php b/application/models/information_model.php index 35b2570d..a80ffa61 100644 --- a/application/models/information_model.php +++ b/application/models/information_model.php @@ -52,7 +52,7 @@ class Information_model extends CI_Model function search($keyword) { $this->init(); - $this->topNum = 24; + $this->topNum = 48; if (is_numeric($keyword)) { $this->search_title = "AND ic_id=" . $this->HT->escape($keyword); } else { diff --git a/application/third_party/train/controllers/searchnew.php b/application/third_party/train/controllers/searchnew.php new file mode 100644 index 00000000..c02fa71a --- /dev/null +++ b/application/third_party/train/controllers/searchnew.php @@ -0,0 +1,292 @@ +load->model("BIZ_train_model");//加载模型 + } + + //查询聚合余票接口,对返回的数据进行处理 + public function index($train_date=null,$fromStation=null,$toStation=null){ + //定义一些变量 + $cache = 'no'; + $flag = true; + $juheTrainInfo = ''; + set_time_limit(0); + + //判断数据是否合法 + if(!$train_date || !$fromStation || !$toStation){ + exit('传参不能为空!'); + }else{ + if(strlen($fromStation) != 3){ + exit('fromStation:参数错误!'); + } + if(strlen($toStation) != 3){ + exit('toStation:参数错误!'); + } + $this->train_date = $train_date; + $now_time = time(); + $differ_time = (strtotime($train_date) - $now_time) / 86400; + if($differ_time <= 29){ + //调用聚合搜索模块 + $juheTrainInfo = $this->juheSearch($train_date,$fromStation,$toStation); + if(empty($juheTrainInfo)){ + $flag = 'error'; + } + }else{ + $flag = 'cache'; + } + + //调用数据处理模块。 + $returnJson = $this->dataOperate($juheTrainInfo,$flag,$fromStation,$toStation); + + //调用拼接处理模块 + $trainjson = $this->createTrainJson($returnJson); + + print_r($trainjson); + die(); + } + } + + //搜索模块 + function juheSearch($train_date,$fromStation,$toStation){ + $url = 'http://139.129.246.118:12309/trainTickets/ticketsAvailable?key='.JUHE_TRAIN_API_KEY.'&train_date='.$train_date.'&from_station='.$fromStation.'&to_station='.$toStation; + $this->url = $url; + $juheTrainInfo = $this->get_http($url); + if($this->validateJuhe($juheTrainInfo)){ + return $juheTrainInfo; + }else{ + return null; + } + } + + + //缓存处理模块(包含缓存处理) + function dataOperate($trainInfo,$flag,$fromStation,$toStation){ + if($flag == 'error'){ + $research = $this->juheSearch($this->train_date,$fromStation,$toStation); + if($this->validateJuhe($research)){ + $trainInfo = $research; + }else{ + $flag = 'cache'; + } + } + + if($flag == 'cache'){ + $cacheTrainInfo = $this->BIZ_train_model->get_train_info($fromStation,$toStation); + if(empty($cacheTrainInfo)){ + return null; + }else{ + $cache_time = $cacheTrainInfo->tpc_datetime; + $now_time = time(); + $differ_time = ($now_time - strtotime($cache_time)) / 86400; + if($differ_time >= 7){ + $this->delete_traincache($fromStation,$toStation); + $research = $this->juheSearch(strtotime('+7day'),$fromStation,$toStation); + if($this->validateJuhe($research)){ + $trainInfo = $research; + }else{ + return null; + } + } + } + } + $this->BIZ_train_model->addOrUpdate($fromStation,$toStation,$trainInfo); + return $trainInfo; + } + + //字符串拼接模块 + function createTrainJson($returnJson){ + + if(empty($returnJson)){ + + }else{ + $return_data = new stdClass(); + $return_data->data = new stdClass(); + $return_data->httpstatus = 200; + //$return_data->reason = $reason; + //$return_data->cache = $cache; + $return_data->data->result = array(); + $return_data->data->map = new stdClass(); + $obj = array(); + $i = 0; + $pricestr = ''; + //print_r(json_decode($returnJson)); + //die(); + if(!empty(json_decode($returnJson)->result->list)){ + foreach (json_decode($returnJson)->result->list as $value){ + $obj[$value->from_station_code] = $value->from_station_name; + $obj[$value->to_station_code] = $value->to_station_name; + $seat_type = ''; + if(isset($value->gjrw_price)){ + if($value->gjrw_price > 0){ + $gjrwPrice = $value->gjrw_price * 10; + $seat_type .= '"6":"'.$gjrwPrice.'","A6":"¥'.$value->gjrw_price.'",'; + } + } + if(isset($value->qtxb_price)){ + if($value->qtxb_price > 0){ + $seat_type .= '"H":"¥'.$value->qtxb_price.'",'; + } + } + if(isset($value->rw_price)){ + if($value->rw_price > 0){ + $rwPrice = $value->rw_price * 10; + $seat_type .= '"4":"'.$rwPrice.'","A4":"¥'.$value->rw_price.'",'; + } + } + if(isset($value->rz_price)){ + if($value->rz_price > 0){ + $rzPrice = $value->rz_price * 10; + $seat_type .= '"2":"'.$rzPrice.'","A2":"¥'.$value->rz_price.'",'; + } + } + if(isset($value->tdz_price)){ + if($value->tdz_price > 0){ + $seat_type .= '"P":"¥'.$value->tdz_price.'",'; + } + } + if(isset($value->wz_price)){ + if($value->wz_price > 0){ + $wzPrice = $value->wz_price * 10; + $seat_type .= '"WZ":"¥'.$value->wz_price.'",'; + } + } + if(isset($value->yw_price)){ + if($value->yw_price > 0){ + $ywPrice = $value->yw_price * 10; + $seat_type .= '"3":"'.$ywPrice.'","A3":"¥'.$value->yw_price.'",'; + } + } + if(isset($value->yz_price)){ + if($value->yz_price > 0){ + $yzPrice = $value->yz_price * 10; + $seat_type .= '"1":"'.$yzPrice.'","A1":"¥'.$value->yz_price.'",'; + } + } + if(isset($value->edz_price)){ + if($value->edz_price > 0){ + $seat_type .= '"O":"¥'.$value->edz_price.'",'; + } + } + if(isset($value->ydz_price)){ + if($value->ydz_price > 0){ + $seat_type .= '"M":"¥'.$value->ydz_price.'",'; + } + } + if(isset($value->swz_price)){ + if($value->swz_price > 0){ + $swzPrice = $value->swz_price * 10; + $seat_type .= '"9":"'.$swzPrice.'","A9":"¥'.$value->swz_price.'",'; + } + } + if(isset($value->dw_price)){ + if($value->dw_price > 0){ + $seat_type .= '"F":"¥'.$value->dw_price.'",'; + } + } + $pricestr = $seat_type.'"train_no":'.'"'.$value->train_no.'"'; + //余票字符串 + $return_data->data->result[$i] = '|预定|'.$value->train_no.'|'.$value->train_code.'|'.$value->from_station_name.'|'.$value->to_station_name.'|'.$value->from_station_code.'|'.$value->to_station_code.'|'.$value->start_time.'|'.$value->arrive_time.'|'.$value->run_time.'|'.$value->can_buy_now.'||'.$value->train_start_date.'||||||||'.$this->ticket_exchange($value->gjrw_num).'|'.$this->ticket_exchange($value->qtxb_num).'|'.$this->ticket_exchange($value->rw_num).'|'.$this->ticket_exchange($value->rz_num).'|'.$this->ticket_exchange($value->tdz_num).'|'.$this->ticket_exchange($value->wz_num).'||'.$this->ticket_exchange($value->yw_num).'|'.$this->ticket_exchange($value->yz_num).'|'.$this->ticket_exchange($value->edz_num).'|'.$this->ticket_exchange($value->ydz_num).'|'.$this->ticket_exchange($value->swz_num).'|'.$this->ticket_exchange($value->dw_num).'||'; + $data = '{"validateMessagesShowId":"_validatorMessage","status":true,"httpstatus":200,"data":{'.$pricestr.'},"messages":[],"validateMessages":{}}'; + $return_data->data->price[$i] = $data; + $i++; + } + } + $return_data->data->map = (object)$obj; + print_r($return_data); + } + } + + + //获取价格(废弃) + /* + fromStationCode:出发站三字码 + toStationCode:终点站三字码 + trainCode:车次号 + */ + public function get_price($fromStationCode=null,$toStationCode=null,$trainCode=null){ + if(!$fromStationCode || !$toStationCode || !$trainCode){ + exit('传参错误!'); + }else{ + $return_data = $this->BIZ_train_model->get_price($fromStationCode,$toStationCode,$trainCode); + if(!empty($return_data)){ + print_r(json_decode($return_data->TPL_Price)); + }else{ + print_r('没有数据返回'); + } + } + } + + //验证聚合返回的信息是否正确 + function validateJuhe($trainInfo){ + if(!empty($trainInfo) && !empty(json_decode($trainInfo)->result)){ + return true; + }else{ + return false; + } + } + + + //余票转换 + function ticket_exchange($num){ + if(isset($this->cache)){ + $time = strtotime($this->train_date) - time(); + $day = $time / 86400; + if($day > 15){ + return '有'; + }else{ + return $num; + } + }else{ + if(is_numeric($num)){ + if($num == 0){ + return '无'; + }elseif($num >= 99){ + return '有'; + }else{ + return $num; + } + }else{ + if($num == '--'){ + return ''; + } + } + } + } + + //发送请求 + function get_http($url, $data = '', $method = 'GET') { + $curl = curl_init(); // 启动一个CURL会话 + curl_setopt($curl, CURLOPT_URL, $url); // 要访问的地址 + curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, 0); // 对认证证书来源的检查 + curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, 0); // 从证书中检查SSL加密算法是否存在 + curl_setopt($curl, CURLOPT_USERAGENT, $_SERVER['HTTP_USER_AGENT']); // 模拟用户使用的浏览器 + curl_setopt($curl, CURLOPT_FOLLOWLOCATION, 1); // 使用自动跳转 + curl_setopt($curl, CURLOPT_AUTOREFERER, 1); // 自动设置Referer + if ($method == 'POST' && !empty($data)) { + curl_setopt($curl, CURLOPT_POST, 1); // 发送一个常规的Post请求 + curl_setopt($curl, CURLOPT_POSTFIELDS, $data); // Post提交的数据包 + } + curl_setopt($curl, CURLOPT_TIMEOUT, 45); // 设置超时限制防止死循环 + curl_setopt($curl, CURLOPT_HEADER, 0); // 显示返回的Header区域内容 + curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1); // 获取的信息以文件流的形式返回 + $tmpInfo = curl_exec($curl); // 执行操作 + $errno = curl_errno($curl); + if ($errno !== 0) { + return false; + $error_message = $errno . ' ' . curl_error($curl); //记录错误日志 + log_message('error', "third_party/train_app/index/get_http curl {$error_message}"); + } + curl_close($curl); //关闭CURL会话 + return $tmpInfo; //返回数据 + } +} + + + + +?> \ No newline at end of file diff --git a/application/views/bootstrap3/information_edit.php b/application/views/bootstrap3/information_edit.php index b03a69b0..8f935525 100644 --- a/application/views/bootstrap3/information_edit.php +++ b/application/views/bootstrap3/information_edit.php @@ -2,190 +2,316 @@ ?>
@@ -584,15 +584,15 @@ function copyOldUrl(id) {
@@ -621,72 +621,72 @@ function copyOldUrl(id) {
session->userdata('session_admin'); -$show_photo_meta = get_meta($information->ic_id, 'meta_use_list_picture'); -$amp_photo = ''; -if ($information->ic_photo && $show_photo_meta !== 'no') { - $amp_photo = $this->config->item('site_image_url') . $information->ic_photo; -} -$amp_build_url = "/amp_app/?icid=" . $information->ic_id . "&is_path=" . $information->is_path . "&usr=" . urlencode($amp_user['OPI_Name']) . "&url=" . urlencode($information->ic_url) . "&photo=" . urlencode($amp_photo) . "&site=" . urlencode($this->config->item('site_url')) . "&imgurl=" . urlencode($this->config->item('site_image_url')); -?> - ic_id, 'AMP_BODY_PC_STATUS') == 'yes') { - $PcAmpChecked = 'checked'; - } else { - $PcAmpChecked = ''; - }?> - - | - | - - - amp_status === '1') {?> - - - amp_status === '2') {?> - - - amp_status === '0') {?> - - + $PcAmpChecked = ''; + } ?> + + | + | + + + amp_status === '1') { ?> + + + amp_status === '2') { ?> + + + amp_status === '0') { ?> + +
+ if ($embody == 1) { + echo 'border-color:green;'; + } + ?>" name="ic_title" value="ic_title; ?>">
@@ -722,44 +722,44 @@ if ($embody == 1) { target="_blank" title="查看"> - ic_sitecode == 'ch') {?> - - - ic_sitecode == 'gm') {?> - - - ic_sitecode == 'ah') {?> - - + ic_sitecode == 'ch') { ?> + + + ic_sitecode == 'gm') { ?> + + + ic_sitecode == 'ah') { ?> + + - ic_sitecode == 'ct' || $information->ic_sitecode == 'chinatravel') {?> -
- - -
- + ic_sitecode == 'ct' || $information->ic_sitecode == 'chinatravel') { ?> +
+ + +
+
@@ -827,239 +827,223 @@ if ($embody == 1) { - ic_sitecode == 'chinatravel' || $information->ic_sitecode == 'shanghai' ) { - ?> -
-
- - -
+ ic_sitecode == 'chinatravel' || $information->ic_sitecode == 'shanghai') { + ?> +
+
+ + +
-
- - -
+
+ + +
-
- - +
+ + +
-
-
-
- - -
-
- - -
-
- - -
+
+
+ + +
+
+ + +
+
+ + +
-
- - + + - -
-
- - +
+
+ + -
+ +
-
-
-
- - 1.点击生成游船总数据文件  2.点击生成当前页面游船数据文件 - + } + +
-
- + @@ -1082,9 +1066,9 @@ if (!empty($setting_website_nav)) {

- ic_sitecode == "trippest") {?> - - + ic_sitecode == "trippest") { ?> + +
@@ -1176,171 +1158,168 @@ if (!empty($setting_website_nav)) { ic_sitecode == 'cht' || $information->ic_sitecode == "ct") { - ?> + ?> + +
+
+ + +
+ +
"> + + +
+ +
+ + +
+ +
+ + +
-
-
- - -
+
+ + +
-
"> - -
-
- - -
+ $vin) { + if ( + in_array($information->is_id, explode(",", $vin->is_path)) && $vin->status == 1 && $vin->id != $information->is_id + ) { + $children_cnt++; + } + } + echo ""; + if ($children_cnt > 0) { + ?> +
+
+ + +
+
+
+
+ +
+
+ + + +
-
- - -
-
- -
-
- - $vin) { - if ( - in_array($information->is_id, explode(",", $vin->is_path)) && $vin->status == 1 && $vin->id != $information->is_id - ) { - $children_cnt++; - } - } - echo ""; - if ($children_cnt > 0) { - ?> -
-
- - -
-
-
-
- -
-
- - - -
- - -
- - +
@@ -1448,365 +1425,397 @@ if ($information->ic_ht_area_type == 'c') { onclick="meta('delete', 'ic_id; ?>', 'meta_news_video', $('#meta_news_video').val())"> - - - -
-
- - -
- -
- - - -
- - -
- - - -
- - - - - -
-
- - -
-
- '首页', - 'tour' => '中国线路', - 'asia_tour' => '亚洲线路', - 'dest' => '目的地', - 'tailormade' => 'tailormade', - 'train' => '火车', - 'ship' => '游船', - 'hotel' => '酒店', - 'flight' => '机票', - 'info' => '信息', - 'deal' => '促销', - '2015' => '2015', - 'tour2017' => '2017', - 'op' => 'OP', - 'best' => '实用信息', - 'culture' => '文化', - 'top10' => 'TOP10', - 'lifestyle' => '生活方式', - 'aboutus' => '关于我们', -); - ?> - - -
-
- - -
-
- - -
- -
- - -
- -
- - -
- ic_ht_area_type == 'err') {?> -
- - -
- -
- - -
- -
- - - config->item('site_code') == 'gm') {?> -
- - -
- - - ic_ht_area_type == 'g') {?> -
- - -
- + +
+
+ - +
-
-
-
-

The China Highlights Experience

+
+

Why China Highlights

@@ -432,167 +447,23 @@ margin-top: 0; text-align: center; ">Where Can We Take You Today? - - - - - - - @@ -600,97 +471,83 @@
- -
China Highlights tailor-makes China tours to help travelers discover - China - their way. We're a passionate team of one hundred avid travelers who love to share our - knowledge - of China with those looking for a more authentic travel experience, more - ...
- China Highlights International Travel Service Co., LTD
- Corporate Number: 914503003486045699 + +
+ + Rated 5 out of 5 | 98.8% Excellence
+ China Highlights International
Travel Service Co., LTD
- -
-
Featured on
- -
-
- - +
+
Featured on
+China Highlights was featured on these medias. +
+ +

Address: Building 6, Chuangyi Business Park, 70 Qilidian Road, Guilin, Guangxi, 541004, China

@@ -700,38 +557,7 @@ class="img-responsive bottomlogopc">© 1998-2024 China Highlights — Discovery Your Way! - + - + @@ -380,55 +381,70 @@
-

The China Highlights Experience

+

Why China Highlights

-
- 1-to-1 Expert Planning -

1-to-1 Expert Planning

-

Your tour will be tailor-made by your personal travel advisor — a destination - expert. Every reply will be within 24 hours.

+
Save Your Time
+ +

Save Your Time

+
    +
  • Less research, more enjoyment!
  • +
  • Real-time 1V1 expert planning.
  • +
  • Seamless coordination
  • +
+
- Personal Journeys -

Personal Journeys

-

Enjoy your personal local guide and ride. Explore destinations at your own pace. - Have unparalleled flexibility, which is impossible on a group tour.

+
Maximize Your Flexibility
+

Maximize Your Flexibility

+
    +
  • Your own personal guide and ride.
  • +
  • Explore at your own pace.
  • +
  • Unparalleled flexibility, impossible on a group tour.
  • +
- Authentic Experiences -

Authentic Experiences

-

Discover the hidden gems. Experience local culture by practicing it. Try new and - exciting activities, and unveil the stories behind the sights and people.

+
Ensure Your Satisfaction
+

Ensure Your Satisfaction

+
    +
  • Well-trained elite 20% of guides.
  • +
  • 20% vacancy on vehicles.
  • +
  • 24/7 emergency support.
  • +
- Well-Selected Local Guides -

Well-Selected Local Guides

-

Knowledgeable, enthusiastic, and attentive — your personal local guides will - share interesting stories, insider information, and even create unexpected - highlights!

+
Live Your China Story
+

Live Your China Story

+
    +
  • Authentic local culture and lifestyles.
  • +
  • Understand the culture by living it.
  • +
  • Uncover fascinating histories and witness New China.
  • +
+
- - - - - - - - - -
-
- 1-to-1 Expert Planning -

1-to-1 Expert Planning

-

Your tour will be tailor-made by your personal travel advisor — a destination expert. Every reply - will be within 24 hours.

-
-
-
- Personal Journeys -

Personal Journeys

-

Enjoy your personal local guide and ride. Explore destinations at your own pace. Have unparalleled - flexibility, which is impossible on a group tour.

-
-
-
- Authentic Experiences -

Authentic Experiences

-

Discover the hidden gems. Experience local culture by practicing it. Try new and exciting - activities, and unveil the stories behind the sights and people.

-
-
-
- Well-Selected Local Guides -

Well-Selected Local Guides

-

Knowledgeable, enthusiastic, and attentive — your personal local guides will share interesting - stories, insider information, and even create unexpected highlights!

-
-
-
+ + + + + + + + + + +
+
+
Save Your Time
+ +

Save Your Time

+
    +
  • Less research, more enjoyment!
  • +
  • Real-time 1V1 expert planning.
  • +
  • Seamless coordination
  • +
+ +
+
+
+
Maximize Your Flexibility
+

Maximize Your Flexibility

+
    +
  • Your own personal guide and ride.
  • +
  • Explore at your own pace.
  • +
  • Unparalleled flexibility, impossible on a group tour.
  • +
+
+
+
+
Ensure Your Satisfaction
+

Ensure Your Satisfaction

+
    +
  • Well-trained elite 20% of guides.
  • +
  • 20% vacancy on vehicles.
  • +
  • 24/7 emergency support.
  • +
+
+
+
+
Live Your China Story
+

Live Your China Story

+
    +
  • Authentic local culture and lifestyles.
  • +
  • Understand the culture by living it.
  • +
  • Uncover fascinating histories and witness New China.
  • +
+ +
+
+
-
+
+ -
- - - +
+ China Highlights Logo + +
Rated 5 out of 5 | 98.8% Excellence
+China Highlights International
+Travel Service Co., LTD
-
- - -
- - -
- China Highlights Logo -
China Highlights tailor-makes China tours to help travelers discover China - their way. more - ... -
- -
-

qr code

- Contact us via WeChat: chinahighlightstour -
- - - -
- Featured on - feature on + Featured on + feature on
- Company Info - China Highlights International Travel Service Co., LTD
- Corporate Number: 914503003486045699 + AddressBuilding 6, Chuangyi Business Park, 70 Qilidian Road, Guilin, Guangxi, 541004, China
-
+
-