Merge branch 'master' of github.com:hainatravel/information-system

hotfix/paypal-note
赵鹏 4 years ago
commit 84c06cb1da

@ -387,7 +387,7 @@ $config['proxy_ips'] = '';
//各站信息组和人员权限分配 //各站信息组和人员权限分配
$config['site'] = array( $config['site'] = array(
'cht' => array('site_code' => 'cht', 'site_id' => 14, 'site_lgc' => '1', 'site_url' => 'https://www.chinahighlights.com', 'site_image_url' => '//images.chinahighlights.com', 'site_authors' => array('zzy', 'spt', 'yl', 'gavin', 'sw', 'zl', 'wbl', 'yqw', 'lf', 'zhm', 'pkl'), 'site_user' => ',ycc,lmr, zyh,J,shw,B,zzy,WJJ,Tony,pcf,zxy,wst,wz,v,S,yyg,yxd,wj,sw,yl,hx,spt,wmr,zl,syt,gavin,zm,htc,yqw,bhn,lmj,wbl,yqw,LYY,zhm,si'), 'cht' => array('site_code' => 'cht', 'site_id' => 14, 'site_lgc' => '1', 'site_url' => 'https://www.chinahighlights.com', 'site_image_url' => 'https://images.chinahighlights.com', 'site_authors' => array('zzy', 'spt', 'yl', 'gavin', 'sw', 'zl', 'wbl', 'yqw', 'lf', 'zhm', 'pkl'), 'site_user' => ',ycc,lmr, zyh,J,shw,B,zzy,WJJ,Tony,pcf,zxy,wst,wz,v,S,yyg,yxd,wj,sw,yl,hx,spt,wmr,zl,syt,gavin,zm,htc,yqw,bhn,lmj,wbl,yqw,LYY,zhm,si'),
'ch' => array('site_code' => 'ch', 'site_id' => 14, 'site_lgc' => '1', 'site_url' => 'https://www.chinahighlights.com', 'site_image_url' => 'https://images.chinahighlights.com', 'site_authors' => array('TDJ', 'ycc'), 'site_user' => ',ycc,'), 'ch' => array('site_code' => 'ch', 'site_id' => 14, 'site_lgc' => '1', 'site_url' => 'https://www.chinahighlights.com', 'site_image_url' => 'https://images.chinahighlights.com', 'site_authors' => array('TDJ', 'ycc'), 'site_user' => ',ycc,'),
'gm' => array('site_code' => 'gm', 'site_id' => 22, 'site_lgc' => '4', 'site_url' => 'https://www.chinarundreisen.com', 'site_image_url' => '//bilder.chinarundreisen.com', 'site_authors' => array('DX', 'X', 'K', 'Lan', 'lmr', 'zyh', 'ZYHL', 'TDJ'), 'site_user' => ',ycc,lmr,B,zyh,DX,X,K,htc,zm,bhn,Lan,Tony,zyh,J,v,ZYHL,TDJ,LYY,shw,'), 'gm' => array('site_code' => 'gm', 'site_id' => 22, 'site_lgc' => '4', 'site_url' => 'https://www.chinarundreisen.com', 'site_image_url' => '//bilder.chinarundreisen.com', 'site_authors' => array('DX', 'X', 'K', 'Lan', 'lmr', 'zyh', 'ZYHL', 'TDJ'), 'site_user' => ',ycc,lmr,B,zyh,DX,X,K,htc,zm,bhn,Lan,Tony,zyh,J,v,ZYHL,TDJ,LYY,shw,'),
'vc' => array('site_code' => 'vc', 'site_id' => 30, 'site_lgc' => '5', 'site_url' => 'https://www.voyageschine.com', 'site_image_url' => '//images.voyageschine.com', 'site_authors' => array('JE', 'kq', 'lya', 'lyz', 'zyh'), 'site_user' => ',ycc,lmr, zyh,JE,htc,kq,lya,bhn,Tony,zyh,B,J,lyz,LYY,'), 'vc' => array('site_code' => 'vc', 'site_id' => 30, 'site_lgc' => '5', 'site_url' => 'https://www.voyageschine.com', 'site_image_url' => '//images.voyageschine.com', 'site_authors' => array('JE', 'kq', 'lya', 'lyz', 'zyh'), 'site_user' => ',ycc,lmr, zyh,JE,htc,kq,lya,bhn,Tony,zyh,B,J,lyz,LYY,'),
@ -402,13 +402,13 @@ $config['site'] = array(
'gl' => array('site_code' => 'gl', 'site_id' => 90, 'site_lgc' => '1', 'site_url' => 'https://www.guilinchina.net', 'site_image_url' => '//images.guilinchina.net', 'site_authors' => array('vi', 'sfx'), 'site_user' => ',ycc,vi,bhn,hwt,thf,sfx,J,ZP,lyy,'), 'gl' => array('site_code' => 'gl', 'site_id' => 90, 'site_lgc' => '1', 'site_url' => 'https://www.guilinchina.net', 'site_image_url' => '//images.guilinchina.net', 'site_authors' => array('vi', 'sfx'), 'site_user' => ',ycc,vi,bhn,hwt,thf,sfx,J,ZP,lyy,'),
'mbj' => array('site_code' => 'mbj', 'site_id' => 98, 'site_lgc' => '1', 'site_url' => 'https://www.mybeijingchina.com', 'site_image_url' => '//images.mybeijingchina.com', 'site_authors' => array('vz', 'sfx'), 'site_user' => ',ycc,vz,bhn,hwt,thf,sfx,J,ZP,'), 'mbj' => array('site_code' => 'mbj', 'site_id' => 98, 'site_lgc' => '1', 'site_url' => 'https://www.mybeijingchina.com', 'site_image_url' => '//images.mybeijingchina.com', 'site_authors' => array('vz', 'sfx'), 'site_user' => ',ycc,vz,bhn,hwt,thf,sfx,J,ZP,'),
'ct' => array('site_code' => 'ct', 'site_id' => 1000, 'site_lgc' => '104', 'site_url' => 'https://www.chinatravel.com', 'site_image_url' => '//images.chinatravel.com', 'site_authors' => array('ll', 'D'), 'site_user' => ',ycc,vz,bhn,J,wj,ll,D,ZP,lyy,'), 'ct' => array('site_code' => 'ct', 'site_id' => 1000, 'site_lgc' => '104', 'site_url' => 'https://www.chinatravel.com', 'site_image_url' => '//images.chinatravel.com', 'site_authors' => array('ll', 'D'), 'site_user' => ',ycc,vz,bhn,J,wj,ll,D,ZP,lyy,'),
'chinatravel' => array('site_code' => 'chinatravel', 'site_id' => 1000, 'site_lgc' => '104', 'site_url' => 'https://www.chinatravel.com', 'site_image_url' => '//images.chinatravel.com', 'site_authors' => array('ll', 'D'), 'site_user' => ',ycc,vz,bhn,J,wj,ll,D,ZP,lyy,'), 'chinatravel' => array('site_code' => 'chinatravel', 'site_id' => 1000, 'site_lgc' => '104', 'site_url' => 'https://www.chinatravel.com', 'site_image_url' => 'https://images.chinatravel.com', 'site_authors' => array('ll', 'D'), 'site_user' => ',ycc,vz,bhn,J,wj,ll,D,ZP,lyy,'),
'dct' => array('site_code' => 'dct', 'site_id' => 99, 'site_lgc' => '1', 'site_url' => 'https://www.diychinatours.com', 'site_image_url' => '//images.chinahighlights.com', 'site_authors' => array('zzy', 'spt', 'yl', 'gavin'), 'site_user' => ',ycc,lmr, zyh,J,shw,B,zzy,WJJ,Tony,pcf,zxy,wst,wz,S,yyg,yxd,wj,sw,yl,hx,spt,wmr,syt,gavin,zm,htc,yqw,zl,sw,J,qqs,MGZ,'), 'dct' => array('site_code' => 'dct', 'site_id' => 99, 'site_lgc' => '1', 'site_url' => 'https://www.diychinatours.com', 'site_image_url' => 'https://images.chinahighlights.com', 'site_authors' => array('zzy', 'spt', 'yl', 'gavin'), 'site_user' => ',ycc,lmr, zyh,J,shw,B,zzy,WJJ,Tony,pcf,zxy,wst,wz,S,yyg,yxd,wj,sw,yl,hx,spt,wmr,syt,gavin,zm,htc,yqw,zl,sw,J,qqs,MGZ,'),
'cits' => array('site_code' => 'cits', 'site_id' => 10086, 'site_lgc' => '2', 'site_image_url' => '', 'site_url' => 'https://www.guilincits.com'), 'cits' => array('site_code' => 'cits', 'site_id' => 10086, 'site_lgc' => '2', 'site_image_url' => '', 'site_url' => 'https://www.guilincits.com'),
'mct' => array('site_code' => 'mct', 'site_id' => 6, 'site_lgc' => '101', 'site_image_url' => '', 'site_url' => 'https://www.mychinatours.com', 'site_authors' => array('cj')), 'mct' => array('site_code' => 'mct', 'site_id' => 6, 'site_lgc' => '101', 'site_image_url' => '', 'site_url' => 'https://www.mychinatours.com', 'site_authors' => array('cj')),
'diy' => array('site_code' => 'diy', 'site_id' => 99, 'site_lgc' => '1', 'sitemap_name' => 'E:/Dropbox/wwwroot/diychinatours.com/information.sitemap.xml', 'site_image_url' => '//images.diychinatours.com', 'site_url' => 'http://www.diychinatours.com', 'site_sitemap' => 'E:/Dropbox/wwwroot/diychinatours.com/information.sitemap.xml', 'site_authors' => array('ycc,lyy')), 'diy' => array('site_code' => 'diy', 'site_id' => 99, 'site_lgc' => '1', 'sitemap_name' => 'E:/Dropbox/wwwroot/diychinatours.com/information.sitemap.xml', 'site_image_url' => '//images.diychinatours.com', 'site_url' => 'http://www.diychinatours.com', 'site_sitemap' => 'E:/Dropbox/wwwroot/diychinatours.com/information.sitemap.xml', 'site_authors' => array('ycc,lyy')),
'ah' => array('site_code' => 'ah', 'site_id' => 141, 'site_lgc' => '1', 'sitemap_name' => '', 'site_image_url' => '//images.asiahighlights.com', 'site_url' => 'https://www.asiahighlights.com', 'site_sitemap' => '', 'site_authors' => array('X', 'sfx'), 'site_user' => array(',ycc,sfx,X,')), 'ah' => array('site_code' => 'ah', 'site_id' => 141, 'site_lgc' => '1', 'sitemap_name' => '', 'site_image_url' => 'https://images.asiahighlights.com', 'site_url' => 'https://www.asiahighlights.com', 'site_sitemap' => '', 'site_authors' => array('X', 'sfx'), 'site_user' => array(',ycc,sfx,X,')),
'gh' => array('site_code' => 'gh', 'site_id' => 163, 'site_lgc' => '1', 'sitemap_name' => '', 'site_image_url' => '//images.globalhighlights.com', 'site_url' => 'https://www.globalhighlights.com', 'site_sitemap' => '', 'site_authors' => array('X', 'sfx'), 'site_user' => array(',ycc,sfx,X,')), 'gh' => array('site_code' => 'gh', 'site_id' => 163, 'site_lgc' => '1', 'sitemap_name' => '', 'site_image_url' => 'https://images.globalhighlights.com', 'site_url' => 'https://www.globalhighlights.com', 'site_sitemap' => '', 'site_authors' => array('X', 'sfx'), 'site_user' => array(',ycc,sfx,X,')),
'pgr' => array('site_code' => 'pgr', 'site_id' => 148, 'site_lgc' => '2', 'sitemap_name' => '', 'site_image_url' => '', 'site_url' => 'https://www.peregrine.cn', 'site_sitemap' => '', 'site_authors' => array('X', 'sfx'), 'site_user' => array(',ycc,sfx,X,')), 'pgr' => array('site_code' => 'pgr', 'site_id' => 148, 'site_lgc' => '2', 'sitemap_name' => '', 'site_image_url' => '', 'site_url' => 'https://www.peregrine.cn', 'site_sitemap' => '', 'site_authors' => array('X', 'sfx'), 'site_user' => array(',ycc,sfx,X,')),
'ts' => array('site_code' => 'ts', 'site_id' => 149, 'site_lgc' => '1', 'sitemap_name' => '', 'site_image_url' => '', 'site_url' => 'https://www.trainspread.com', 'site_sitemap' => '', 'site_authors' => array('X', 'sfx'), 'site_user' => array(',ycc,sfx,X,')), 'ts' => array('site_code' => 'ts', 'site_id' => 149, 'site_lgc' => '1', 'sitemap_name' => '', 'site_image_url' => '', 'site_url' => 'https://www.trainspread.com', 'site_sitemap' => '', 'site_authors' => array('X', 'sfx'), 'site_user' => array(',ycc,sfx,X,')),
'bht' => array('site_code' => 'bht', 'site_id' => 6565, 'site_lgc' => '1', 'site_image_url' => '', 'site_url' => 'https://www.beijinghighlights.com', 'site_authors' => array('cj')), 'bht' => array('site_code' => 'bht', 'site_id' => 6565, 'site_lgc' => '1', 'site_image_url' => '', 'site_url' => 'https://www.beijinghighlights.com', 'site_authors' => array('cj')),

@ -21,8 +21,10 @@ class Information extends CI_Controller
$this->load->model('InfoMetas_model'); $this->load->model('InfoMetas_model');
$this->load->model('Infoauthors_model'); $this->load->model('Infoauthors_model');
$this->load->model('InfoSMS_model'); $this->load->model('InfoSMS_model');
$this->load->model('recommends_and_tips_model');
$this->load->library('Amplib'); //加载AMP处理类 $this->load->library('Amplib'); //加载AMP处理类
$this->load->library('html_optimize_lib'); //加载HTML优化类 $this->load->library('html_optimize_lib'); //加载HTML优化类
} }
public function index() public function index()
@ -585,6 +587,7 @@ class Information extends CI_Controller
default: default:
} }
//替换模板中的标签 //替换模板中的标签
$template = str_replace('<!--@TITLE@-->', $information->ic_seo_title, $template); $template = str_replace('<!--@TITLE@-->', $information->ic_seo_title, $template);
$template = str_replace('<!--@DESCRIPTION@-->', $information->ic_seo_description, $template); $template = str_replace('<!--@DESCRIPTION@-->', $information->ic_seo_description, $template);
@ -720,11 +723,17 @@ class Information extends CI_Controller
$template = str_replace('<!--@HEAD_1@-->', $template_H1, $template); $template = str_replace('<!--@HEAD_1@-->', $template_H1, $template);
//推荐信息或者产品
//信息推荐 暂时不用,未来用广告系统替代
$template_recommand = $this->recommand_information($information);
$template = str_replace('<!--@ARTICLENEXT@-->', $this->load->view($template_path . '-next', array('recommands'=>$template_recommand), TRUE), $template);
//广告改叫tips防止被插件屏蔽
if(!empty($template_recommand['Tips Right'])) {
$template = str_replace('<!--@TIPS-RIGHT@-->', "<div class='right_tour'><div class='ah_inforight'>".$template_recommand['Tips Right']->it_content."</div></div>", $template);
}
//非产品页面 //非产品页面
if (empty(get_meta($information->ic_id, 'meta_product_code'))) { if (empty(get_meta($information->ic_id, 'meta_product_code'))) {
//信息推荐 暂时不用,未来用广告系统替代
//$template_NEXT = $this->call_mobile_template_NEXT($template_path, $information->is_id);
//$template = str_replace('<!--@ARTICLENEXT@-->', $template_NEXT, $template);
$addthis_widget = $this->load->view($template_path . '-add-this', false, true); $addthis_widget = $this->load->view($template_path . '-add-this', false, true);
$template = str_replace('<!--@ADDTHIS-WIDGET@-->', $addthis_widget, $template); $template = str_replace('<!--@ADDTHIS-WIDGET@-->', $addthis_widget, $template);
} else { } else {
@ -1067,6 +1076,87 @@ class Information extends CI_Controller
return ''; return '';
} }
//根据推荐规则进行查询
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_id, $exclude_ids);
break;
case 'rule_this_node_random'://指定节点下随机
$data = $this->Information_model->random(1, $recommand->ir_pointer_is_id, $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)]));
}
if (!empty($data)) {
$exclude_ids[] = $data->is_id;
//读取附加移动端图片
$data->mobile_photo=get_meta($data->ic_id, 'meta_addon_picture_mobile');
if(empty($data->mobile_photo)){
$data->mobile_photo='https://data.asiahighlights.com/image/travel-guide/thailand/info-template-recommended.jpg';
}
}
return array($recommand->ir_name => $data);
}
//获取当前信息所有的推荐信息和广告内容
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) {
$result = $this->recommand_information_rule($information, $root_detail, $item, $exclude_ids);
if (!empty($result)) {
$data += $result;
}
}
foreach ($group_recommands as $item) {
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);
return $data;
}
function call_mobile_template_NEXT($template_path, $is_id) function call_mobile_template_NEXT($template_path, $is_id)
{ {
$data['detail'] = $this->Information_model->Detail($is_id); $data['detail'] = $this->Information_model->Detail($is_id);
@ -1129,7 +1219,7 @@ class Information extends CI_Controller
$destination_url = trim($data['detail']->ic_url); $destination_url = trim($data['detail']->ic_url);
$destination_url = substr($destination_url, 0, strpos($destination_url, '/', 1) + 1); $destination_url = substr($destination_url, 0, strpos($destination_url, '/', 1) + 1);
//how to plan //how to plan
$data['info_howtoplan'] = $this->Information_model->search_by_words($destination_url, array('how', 'plan'), $data['detail']->is_id); $data['info_howtoplan'] = $this->Information_model->search_by_words($destination_url, array('how', 'plan'),array($data['detail']->is_id));
if (empty($data['info_howtoplan'])) { //找不到对应信息则显示备用 if (empty($data['info_howtoplan'])) { //找不到对应信息则显示备用
$data['info_howtoplan'] = $this->Information_model->Detail('/travelguide/plan-first-trip.htm'); $data['info_howtoplan'] = $this->Information_model->Detail('/travelguide/plan-first-trip.htm');
} }
@ -1138,7 +1228,7 @@ class Information extends CI_Controller
$data['info_howtoplan']->ic_photo = $this->set_photo_content($data['info_howtoplan']->ic_photo, $data['info_howtoplan']->ic_content); $data['info_howtoplan']->ic_photo = $this->set_photo_content($data['info_howtoplan']->ic_photo, $data['info_howtoplan']->ic_content);
} }
//best time to visit //best time to visit
$data['info_besttime'] = $this->Information_model->search_by_words($destination_url, array('best', 'time'), $data['detail']->is_id); $data['info_besttime'] = $this->Information_model->search_by_words($destination_url, array('best', 'time'), array($data['detail']->is_id));
if (empty($data['info_besttime'])) { if (empty($data['info_besttime'])) {
$data['info_besttime'] = $this->Information_model->Detail('/weather/china-best-times.htm'); $data['info_besttime'] = $this->Information_model->Detail('/weather/china-best-times.htm');
} }
@ -1147,7 +1237,7 @@ class Information extends CI_Controller
$data['info_besttime']->ic_photo = $this->set_photo_content($data['info_besttime']->ic_photo, $data['info_besttime']->ic_content); $data['info_besttime']->ic_photo = $this->set_photo_content($data['info_besttime']->ic_photo, $data['info_besttime']->ic_content);
} }
//top things to do //top things to do
$data['info_topthings'] = $this->Information_model->search_by_words($destination_url, array('top', 'things'), $data['detail']->is_id); $data['info_topthings'] = $this->Information_model->search_by_words($destination_url, array('top', 'things'), array($data['detail']->is_id));
if (empty($data['info_topthings'])) { if (empty($data['info_topthings'])) {
$data['info_topthings'] = $this->Information_model->Detail('/travelguide/article-top-china-tourist-destination.htm'); $data['info_topthings'] = $this->Information_model->Detail('/travelguide/article-top-china-tourist-destination.htm');
} }
@ -1177,6 +1267,7 @@ class Information extends CI_Controller
return $this->load->view($template_path . '-next', $data, TRUE); return $this->load->view($template_path . '-next', $data, TRUE);
} }
//更新静态文件 //更新静态文件
//不用参数提交的原因是可能url带有特殊字符CI会报错 //不用参数提交的原因是可能url带有特殊字符CI会报错
public function update_cache($static_html_url = false, $delete_only = false) public function update_cache($static_html_url = false, $delete_only = false)

@ -65,15 +65,30 @@ class Information_model extends CI_Model {
} }
//根据关键词来搜索内容 //根据关键词来搜索内容
function search_by_words($url,array $words,$self_is_id){ function search_by_words($url,array $words,$exclude_ids){
$this->init(); $this->init();
$this->topNum = 1; $this->topNum = 1;
$sql_keyword=' AND ( 1=1 '; $sql_keyword=' AND ( 1=1 ';
foreach ($words as $item) { foreach ($words as $item) {
$sql_keyword .=" AND ic_title like '%". $this->HT->escape_like_str($item) ."%' "; $sql_keyword .=" AND ic_title like '%". $this->HT->escape_like_str(trim($item)) ."%' ";
} }
$sql_keyword.=' ) '; $sql_keyword.=' ) ';
$this->search =" AND ic_url LIKE '$url%' ". $sql_keyword.' AND is_id<>'.$self_is_id; $this->search =" AND ic_status=1 AND ic_url LIKE '$url%' ". $sql_keyword.' AND is_id NOT IN('.implode(',',$exclude_ids).',0)';
$this->orderBy = " ORDER BY is1.is_level ASC, is1.is_sort ASC,ic_datetime DESC ";
return $this->GetList();
}
//在当前节点下搜索关键词
function search_by_words_2($path,array $words,$exclude_ids){
$this->init();
$this->topNum = 1;
$sql_keyword=' AND ( 1=1 ';
foreach ($words as $item) {
$sql_keyword .=" AND ic_title like '%". $this->HT->escape_like_str(trim($item)) ."%' ";
}
$sql_keyword.=' ) ';
$this->path = " AND is1.is_path LIKE '$path%' ";
$this->search =' AND ic_status=1 AND is_id NOT IN('.implode(',',$exclude_ids).',0) '.$sql_keyword;
$this->orderBy = " ORDER BY is1.is_level ASC, is1.is_sort ASC,ic_datetime DESC "; $this->orderBy = " ORDER BY is1.is_level ASC, is1.is_sort ASC,ic_datetime DESC ";
return $this->GetList(); return $this->GetList();
} }
@ -84,7 +99,7 @@ class Information_model extends CI_Model {
$this->topNum = $topnum; $this->topNum = $topnum;
$this->search = " AND is_parent_id =". $this->HT->escape($is_parent_id); $this->search = " AND is_parent_id =". $this->HT->escape($is_parent_id);
$exclude_ids_string=implode(',',$exclude_ids); $exclude_ids_string=implode(',',$exclude_ids);
$this->search .= " AND is_id NOT in ($exclude_ids_string,0)"; $this->search .= " AND ic_status=1 AND is_id NOT in ($exclude_ids_string,0)";
$this->orderBy = " ORDER BY NewID() "; $this->orderBy = " ORDER BY NewID() ";
return $this->GetList(); return $this->GetList();
} }

@ -0,0 +1,62 @@
<?php
class recommends_and_tips_model extends CI_Model
{
function __construct()
{
parent::__construct();
$this->HT = $this->load->database('HT', TRUE);
}
public function recommends_list($is_id)
{
$sql = " SELECT
ir.ir_id
,ir.ir_is_id
,ir.ir_keyword
,ir.ir_name
,ir.ir_pointer_is_id
,ir.ir_pointer_it_id
,ir.ir_rule
,ir.ir_urls
,ir.ir_datetime
,ir.ir_sitecode
from infoRecommends ir
where 1=1
AND ir.ir_sitecode=?
AND ir.ir_is_id=?
";
$query = $this->HT->query($sql, array($this->config->item('site_code'), $is_id));
//print_r($this->INFO->queries);
return $query->result();
}
public function tips_detail($it_id)
{
$timestamp=time();
$sql = " SELECT TOP 1
it.it_id
,it.it_title
,it.it_expires
,it.it_content
,it.it_sitecode
,it.it_datetime
from infoTips it
where 1=1
AND it.it_sitecode=?
AND it.it_id=?
AND it.it_expires>=?
";
$query = $this->HT->query($sql, array($this->config->item('site_code'), $it_id,$timestamp));
//print_r($this->HT->queries);
if ($query->num_rows() > 0) {
$row = $query->row();
return $row;
} else {
return FALSE;
}
}
}

@ -41,6 +41,12 @@ class Index extends CI_Controller
$data['group_detail'] = $this->Information_model->get_detail_by_path($data['information']->is_path, 0); $data['group_detail'] = $this->Information_model->get_detail_by_path($data['information']->is_path, 0);
} }
//查询所有推荐信息
$recommends= $this->infoRecommends_model->detail_list($is_id);
foreach ($recommends as $item){
$data['recommends'][$item->ir_name]=$item;
}
$this->load->view('bootstrap3/header', $data); $this->load->view('bootstrap3/header', $data);
$this->load->view('bind'); $this->load->view('bind');
$this->load->view('bootstrap3/footer'); $this->load->view('bootstrap3/footer');
@ -62,7 +68,7 @@ class Index extends CI_Controller
$data['infoRecommend']->ir_pointer_is_id = null; $data['infoRecommend']->ir_pointer_is_id = null;
$data['infoRecommend']->ir_pointer_it_id = null; $data['infoRecommend']->ir_pointer_it_id = null;
$data['infoRecommend']->ir_urls = ''; $data['infoRecommend']->ir_urls = '';
$data['infoRecommend']->ir_rule = 'no'; $data['infoRecommend']->ir_rule = 'rule_parent';
$data['infoRecommend']->ir_datetime = time(); $data['infoRecommend']->ir_datetime = time();
$data['infoRecommend']->ir_sitecode = $this->config->item('site_code'); $data['infoRecommend']->ir_sitecode = $this->config->item('site_code');
$data['infoRecommend']->ir_id = $this->infoRecommends_model->add('infoRecommends', $data['infoRecommend']); $data['infoRecommend']->ir_id = $this->infoRecommends_model->add('infoRecommends', $data['infoRecommend']);
@ -92,10 +98,10 @@ class Index extends CI_Controller
$data[] = array('name' => 'no', 'value' => '查询不到数据,请重试'); $data[] = array('name' => 'no', 'value' => '查询不到数据,请重试');
} else { } else {
$infoRecommend->ir_rule = $this->input->post('ir_rule'); $infoRecommend->ir_rule = $this->input->post('ir_rule');
$infoRecommend->ir_keyword = $this->input->post('ir_keyword'); $infoRecommend->ir_keyword = trim($this->input->post('ir_keyword'));
$infoRecommend->ir_pointer_is_id = $this->input->post('ir_pointer_is_id'); $infoRecommend->ir_pointer_is_id = $this->input->post('ir_pointer_is_id');
$infoRecommend->ir_pointer_it_id = $this->input->post('ir_pointer_it_id'); $infoRecommend->ir_pointer_it_id = $this->input->post('ir_pointer_it_id');
$infoRecommend->ir_urls = $this->input->post('ir_urls'); $infoRecommend->ir_urls =trim($this->input->post('ir_urls'));
$infoRecommend->ir_datetime =time(); $infoRecommend->ir_datetime =time();
$infoRecommend->ir_id = $this->infoRecommends_model->update('infoRecommends', $infoRecommend, 'ir_id=' . $ir_id); $infoRecommend->ir_id = $this->infoRecommends_model->update('infoRecommends', $infoRecommend, 'ir_id=' . $ir_id);
$data[] = array('name' => 'ok', 'value' => '保存成功!'); $data[] = array('name' => 'ok', 'value' => '保存成功!');

@ -26,6 +26,12 @@ class infoRecommends_model extends CI_Model
return $this->get_list(); return $this->get_list();
} }
public function detail_list($ir_is_id){
$this->init();
$this->where = ' AND ir.ir_is_id=' . $this->HT->escape($ir_is_id);
return $this->get_list();
}
public function detail_by_ir_id($ir_id){ public function detail_by_ir_id($ir_id){
$this->init(); $this->init();
$this->topnum = 1; $this->topnum = 1;

@ -22,6 +22,7 @@
> <span > <span
class="pull-right glyphicon glyphicon-cog"></span></a></div> class="pull-right glyphicon glyphicon-cog"></span></a></div>
<div class="panel-body"> <div class="panel-body">
<?php echo empty($recommends['Tips Right'])?'继承上级':$recommends['Tips Right']->ir_rule; ?>
</div> </div>
</div> </div>
</div> </div>
@ -36,7 +37,7 @@
> <span > <span
class="pull-right glyphicon glyphicon-cog"></span></a></div> class="pull-right glyphicon glyphicon-cog"></span></a></div>
<div class="panel-body"> <div class="panel-body">
<?php echo empty($recommends['Article A'])?'继承上级':$recommends['Article A']->ir_rule.'<br/>'.$recommends['Article A']->ir_keyword; ?>
</div> </div>
</div> </div>
</div> </div>
@ -48,7 +49,7 @@
> <span > <span
class="pull-right glyphicon glyphicon-cog"></span></a></div> class="pull-right glyphicon glyphicon-cog"></span></a></div>
<div class="panel-body"> <div class="panel-body">
<?php echo empty($recommends['Article B'])?'继承上级':$recommends['Article B']->ir_rule.'<br/>'.$recommends['Article B']->ir_keyword; ?>
</div> </div>
</div> </div>
</div> </div>
@ -60,7 +61,7 @@
> <span > <span
class="pull-right glyphicon glyphicon-cog"></span></a></div> class="pull-right glyphicon glyphicon-cog"></span></a></div>
<div class="panel-body"> <div class="panel-body">
<?php echo empty($recommends['Article C'])?'继承上级':$recommends['Article C']->ir_rule.'<br/>'.$recommends['Article C']->ir_keyword; ?>
</div> </div>
</div> </div>
</div> </div>
@ -72,7 +73,7 @@
> <span > <span
class="pull-right glyphicon glyphicon-cog"></span></a></div> class="pull-right glyphicon glyphicon-cog"></span></a></div>
<div class="panel-body"> <div class="panel-body">
<?php echo empty($recommends['Article D'])?'继承上级':$recommends['Article D']->ir_rule.'<br/>'.$recommends['Article D']->ir_keyword; ?>
</div> </div>
</div> </div>
</div> </div>
@ -90,7 +91,7 @@
> <span > <span
class="pull-right glyphicon glyphicon-cog"></span></a></div> class="pull-right glyphicon glyphicon-cog"></span></a></div>
<div class="panel-body"> <div class="panel-body">
<?php echo empty($recommends['Tour A'])?'继承上级':$recommends['Tour A']->ir_rule.'<br/>'.$recommends['Tour A']->ir_keyword; ?>
</div> </div>
</div> </div>
</div> </div>
@ -102,7 +103,7 @@
> <span > <span
class="pull-right glyphicon glyphicon-cog"></span></a></div> class="pull-right glyphicon glyphicon-cog"></span></a></div>
<div class="panel-body"> <div class="panel-body">
<?php echo empty($recommends['Tour B'])?'继承上级':$recommends['Tour B']->ir_rule.'<br/>'.$recommends['Tour B']->ir_keyword; ?>
</div> </div>
</div> </div>
</div> </div>
@ -114,7 +115,7 @@
> <span > <span
class="pull-right glyphicon glyphicon-cog"></span></a></div> class="pull-right glyphicon glyphicon-cog"></span></a></div>
<div class="panel-body"> <div class="panel-body">
<?php echo empty($recommends['Tour C'])?'继承上级':$recommends['Tour C']->ir_rule.'<br/>'.$recommends['Tour C']->ir_keyword; ?>
</div> </div>
</div> </div>
</div> </div>
@ -125,7 +126,7 @@
onclick="show_bind_info(<?php echo $information->is_id; ?>,'Tour D')"> onclick="show_bind_info(<?php echo $information->is_id; ?>,'Tour D')">
<span class="pull-right glyphicon glyphicon-cog"></span></a></div> <span class="pull-right glyphicon glyphicon-cog"></span></a></div>
<div class="panel-body"> <div class="panel-body">
<?php echo empty($recommends['Tour D'])?'继承上级':$recommends['Tour D']->ir_rule.'<br/>'.$recommends['Tour D']->ir_keyword; ?>
</div> </div>
</div> </div>
</div> </div>
@ -151,6 +152,10 @@
</div> </div>
</div> </div>
<script> <script>
/*流程说明 /*流程说明
点击显示窗口清空modal-content内容然后请求API获取信息推荐设置的HTML来填充modal-content 点击显示窗口清空modal-content内容然后请求API获取信息推荐设置的HTML来填充modal-content
*/ */

@ -8,42 +8,42 @@
<form class="form-horizontal" action="<?php echo site_url('thirdparty/recommend/index/bind_info_save') ?>" method="post" id="bind_info_form" name="bind_info_form"> <form class="form-horizontal" action="<?php echo site_url('thirdparty/recommend/index/bind_info_save') ?>" method="post" id="bind_info_form" name="bind_info_form">
<div class="row"> <div class="row">
<div class="col-md-6"> <div class="col-md-6">
<label> <input type="radio" name="ir_rule" id="ir_rule_no" <?php echo $infoRecommend->ir_rule=='no'?'checked':''; ?> <label> <input type="radio" name="ir_rule" id="ir_rule_parent" <?php echo $infoRecommend->ir_rule=='rule_parent'?'checked':''; ?>
value="no">继承上级规则</label> value="rule_parent">继承上级规则</label>
</div> </div>
<div class="col-md-6"> <div class="col-md-6">
<label> <input type="radio" name="ir_rule" id="ir_rule_same_node_keyword" <?php echo $infoRecommend->ir_rule=='same_node_keyword'?'checked':''; ?> <label> <input type="radio" name="ir_rule" id="ir_rule_same_node_keyword" <?php echo $infoRecommend->ir_rule=='rule_same_node_keyword'?'checked':''; ?>
value="same_node_keyword">同节点关键词</label> value="rule_same_node_keyword">同节点关键词</label>
</div> </div>
<div class="col-md-6"> <div class="col-md-6">
<label> <input type="radio" name="ir_rule" id="ir_rule_same_url_keyword" <?php echo $infoRecommend->ir_rule=='same_url_keyword'?'checked':''; ?> <label> <input type="radio" name="ir_rule" id="ir_rule_same_url_keyword" <?php echo $infoRecommend->ir_rule=='rule_same_url_keyword'?'checked':''; ?>
value="same_url_keyword"> value="rule_same_url_keyword">
同URL关键词</label> 同URL关键词</label>
</div> </div>
<div class="col-md-6"> <div class="col-md-6">
<label> <input type="radio" name="ir_rule" id="ir_rule_same_node_random" <?php echo $infoRecommend->ir_rule=='same_node_random'?'checked':''; ?> <label> <input type="radio" name="ir_rule" id="ir_rule_same_node_random" <?php echo $infoRecommend->ir_rule=='rule_same_node_random'?'checked':''; ?>
value="same_node_random"> value="rule_same_node_random">
同节点随机</label> 同节点随机</label>
</div> </div>
<div class="col-md-6"> <div class="col-md-6">
<label> <input type="radio" name="ir_rule" id="ir_rule_this_node_random" <?php echo $infoRecommend->ir_rule=='this_node_random'?'checked':''; ?> <label> <input type="radio" name="ir_rule" id="ir_rule_this_node_random" <?php echo $infoRecommend->ir_rule=='rule_this_node_random'?'checked':''; ?>
value="this_node_random"> value="rule_this_node_random">
指定节点随机</label> 指定节点随机</label>
</div> </div>
<div class="col-md-6"> <div class="col-md-6">
<label> <input type="radio" name="ir_rule" id="ir_rule_range_random" value="range_random" <?php echo $infoRecommend->ir_rule=='range_random'?'checked':''; ?>> <label> <input type="radio" name="ir_rule" id="ir_rule_range_random" value="rule_range_random" <?php echo $infoRecommend->ir_rule=='rule_range_random'?'checked':''; ?>>
以下范围内随机</label> 以下范围内随机</label>
</div> </div>
<div class="col-md-6"> <div class="col-md-6">
<label> <input type="radio" name="ir_rule" id="ir_rule_show_tips" <?php echo $infoRecommend->ir_rule=='ir_rule_show_tips'?'checked':''; ?> <label> <input type="radio" name="ir_rule" id="ir_rule_show_tips" <?php echo $infoRecommend->ir_rule=='rule_show_tips'?'checked':''; ?>
value="ir_rule_show_tips">显示广告</label> value="rule_show_tips">显示广告</label>
</div> </div>
<div class="col-md-6"> <div class="col-md-6">
<label> <input type="radio" name="ir_rule" id="ir_rule_no_show" <?php echo $infoRecommend->ir_rule=='no_show'?'checked':''; ?> <label> <input type="radio" name="ir_rule" id="ir_rule_no_show" <?php echo $infoRecommend->ir_rule=='rule_no_show'?'checked':''; ?>
value="no_show">不显示</label> value="rule_no_show">不显示</label>
</div> </div>
</div> </div>

@ -52,7 +52,7 @@ class search extends CI_Controller{
//我们的接口相应时间 //我们的接口相应时间
$responsive_time = $end_time - $this->start_time; $responsive_time = $end_time - $this->start_time;
log_message('error','TRAINSPEED|请求url:'.$this->url.'|聚合相应时间:'.$api_responsive_time.'s|接口运行时间:'.$responsive_time.'s|缓存:'.$this->cache.'|+7天:'.$this->seveth); //log_message('error','TRAINSPEED|请求url:'.$this->url.'|聚合相应时间:'.$api_responsive_time.'s|接口运行时间:'.$responsive_time.'s|缓存:'.$this->cache.'|+7天:'.$this->seveth);
print_r($trainjson); print_r($trainjson);
} }

@ -83,7 +83,7 @@
<li><a href="<?php echo site_url('seo') ?>">SEO管理</a></li> <li><a href="<?php echo site_url('seo') ?>">SEO管理</a></li>
<li> <a href="<?php echo site_url('thirdparty/public/infopayauthor') ?>">打赏统计</a></li> <li> <a href="<?php echo site_url('thirdparty/public/infopayauthor') ?>">打赏统计</a></li>
<li> <a href="<?php echo site_url('thirdparty/form') ?>">表单管理</a></li> <li> <a href="<?php echo site_url('thirdparty/form') ?>">表单管理</a></li>
<li><a href="<?php echo site_url('thirdparty/advertise') ?>">广告管理</a></li> <li><a href="<?php echo site_url('thirdparty/advertise') ?>">旧版广告管理</a></li>
<li><a href="<?php echo site_url('apps/tripadvisor_spider') ?>">TA评论采集</a></li> <li><a href="<?php echo site_url('apps/tripadvisor_spider') ?>">TA评论采集</a></li>
<li><a href="<?php echo site_url('tools/old') ?>">老旧信息查询</a></li> <li><a href="<?php echo site_url('tools/old') ?>">老旧信息查询</a></li>
<li><a href="<?php echo site_url('apps/searchinfo/index/homepage') ?>">信息搜索</a></li> <li><a href="<?php echo site_url('apps/searchinfo/index/homepage') ?>">信息搜索</a></li>
@ -96,7 +96,7 @@
<li><a href="<?php echo site_url('setting') ?>">系统设置</a></li> <li><a href="<?php echo site_url('setting') ?>">系统设置</a></li>
<li><a href="<?php echo site_url('accessmanage') ?>">权限设置</a></li> <li><a href="<?php echo site_url('accessmanage') ?>">权限设置</a></li>
<li><a href="<?php echo site_url('sitemap') ?>">生成sitemap</a></li> <li><a href="<?php echo site_url('sitemap') ?>">生成sitemap</a></li>
<li><a href="<?php echo site_url('thirdparty/recommend') ?>">信息推荐</a></li> <li><a href="<?php echo site_url('thirdparty/recommend') ?>">广告管理和信息推荐</a></li>
</ul> </ul>
</li> </li>

@ -74,6 +74,34 @@
window.location.href = window.location.href; window.location.href = window.location.href;
}); });
} }
//选择内容图片
function openKCFinder_Content() {
var site_url = '<?php echo $this->config->item('site_url') ?>';
var weburl = encodeURI(site_url + $("#ic_url").val());
window.CallBack = openKCFinder_Content_callback;
window.open('/media/popselectpicture.php?site_code=<?php echo $this->config->item('site_code'); ?>&site_lgc=<?php echo $this->config->item('site_lgc'); ?>&WebUrl=' + weburl, 'kcfinder_textbox', 'status=0, toolbar=0, location=0, menubar=0, directories=0,resizable=1, scrollbars=0, width=800, height=600');
}
function openKCFinder_Content_callback(result) {
var site_image_url = '<?php echo $this->config->item('media_image_url') ?>';
var use_pictures = $("#use_pictures").val();
if (result != null) {
for (var key in result.Pinfo) {
if ('<?php echo $this->config->item('site_code') ?>' == 'cht') {
editor.insertHtml('<div class="photoBlock300 autowidht" id="yonglaidingweitupian"> <img class="img-responsive" src="' + site_image_url + result.Pinfo[key].PUrl + '" alt="' + result.Pinfo[key].Sinfo + '" width="' + result.Pinfo[key].Width + '" height="' + result.Pinfo[key].Height + '" />' + result.Pinfo[key].Sinfo + '</div>');
} else if ('<?php echo $this->config->item('site_code') ?>' == 'ch') {
editor.insertHtml('<div class="infoimage"><img src="' + site_image_url + result.Pinfo[key].PUrl + '" alt="' + result.Pinfo[key].Sinfo + '" class="img-responsive" width="' + result.Pinfo[key].Width + '" height="' + result.Pinfo[key].Height + '"><span class="infoimagetitle">' + result.Pinfo[key].Sinfo + '</span></div>');
} else {
editor.insertHtml('<img src="' + site_image_url + result.Pinfo[key].PUrl + '" alt="' + result.Pinfo[key].PName + '" width="' + result.Pinfo[key].Width + '" height="' + result.Pinfo[key].Height + '" />');
}
use_pictures = use_pictures + result.Pinfo[key].ID + ':' + result.Pinfo[key].PUrl + ':' + result.Pinfo[key].wh + ',';
}
$("#use_pictures").val(use_pictures);
}
}
</script> </script>
</head> </head>
@ -107,7 +135,7 @@
<li><a href="<?php echo site_url('seo') ?>">SEO管理</a></li> <li><a href="<?php echo site_url('seo') ?>">SEO管理</a></li>
<li> <a href="<?php echo site_url('thirdparty/public/infopayauthor') ?>">打赏统计</a></li> <li> <a href="<?php echo site_url('thirdparty/public/infopayauthor') ?>">打赏统计</a></li>
<li> <a href="<?php echo site_url('thirdparty/form') ?>">表单管理</a></li> <li> <a href="<?php echo site_url('thirdparty/form') ?>">表单管理</a></li>
<li><a href="<?php echo site_url('thirdparty/advertise') ?>">广告管理</a></li> <li><a href="<?php echo site_url('thirdparty/advertise') ?>">旧版广告管理</a></li>
<li><a href="<?php echo site_url('apps/tripadvisor_spider') ?>">TA评论采集</a></li> <li><a href="<?php echo site_url('apps/tripadvisor_spider') ?>">TA评论采集</a></li>
<li><a href="<?php echo site_url('tools/old') ?>">老旧信息查询</a></li> <li><a href="<?php echo site_url('tools/old') ?>">老旧信息查询</a></li>
<li><a href="<?php echo site_url('apps/searchinfo/index/homepage') ?>">信息搜索</a></li> <li><a href="<?php echo site_url('apps/searchinfo/index/homepage') ?>">信息搜索</a></li>
@ -121,7 +149,7 @@
<li><a href="<?php echo site_url('setting') ?>">系统设置</a></li> <li><a href="<?php echo site_url('setting') ?>">系统设置</a></li>
<li><a href="<?php echo site_url('accessmanage') ?>">权限设置</a></li> <li><a href="<?php echo site_url('accessmanage') ?>">权限设置</a></li>
<li><a href="<?php echo site_url('sitemap') ?>">生成sitemap</a></li> <li><a href="<?php echo site_url('sitemap') ?>">生成sitemap</a></li>
<li><a href="<?php echo site_url('thirdparty/recommend') ?>">信息推荐</a></li> <li><a href="<?php echo site_url('thirdparty/recommend') ?>">广告管理和信息推荐</a></li>
</ul> </ul>
</li> </li>
</ul> </ul>

@ -241,31 +241,7 @@
$("#ic_photo_img").attr("src", '/css/images/uploadPic.jpg'); $("#ic_photo_img").attr("src", '/css/images/uploadPic.jpg');
} }
//选择内容图片
function openKCFinder_Content() {
var site_url = '<?php echo $this->config->item('site_url') ?>';
var weburl = encodeURI(site_url + $("#ic_url").val());
window.CallBack = openKCFinder_Content_callback;
window.open('/media/popselectpicture.php?site_code=<?php echo $this->config->item('site_code'); ?>&site_lgc=<?php echo $this->config->item('site_lgc'); ?>&WebUrl=' + weburl, 'kcfinder_textbox', 'status=0, toolbar=0, location=0, menubar=0, directories=0,resizable=1, scrollbars=0, width=800, height=600');
}
function openKCFinder_Content_callback(result) {
var site_image_url = '<?php echo $this->config->item('media_image_url') ?>';
var use_pictures = $("#use_pictures").val();
if (result != null) {
for (var key in result.Pinfo) {
if ('<?php echo $this->config->item('site_code') ?>' == 'cht') {
editor.insertHtml('<div class="photoBlock300 autowidht" id="yonglaidingweitupian"> <img class="img-responsive" src="' + site_image_url + result.Pinfo[key].PUrl + '" alt="' + result.Pinfo[key].Sinfo + '" width="' + result.Pinfo[key].Width + '" height="' + result.Pinfo[key].Height + '" />' + result.Pinfo[key].Sinfo + '</div>');
} else if ('<?php echo $this->config->item('site_code') ?>' == 'ch') {
editor.insertHtml('<div class="infoimage"><img src="' + site_image_url + result.Pinfo[key].PUrl + '" alt="' + result.Pinfo[key].Sinfo + '" class="img-responsive" width="' + result.Pinfo[key].Width + '" height="' + result.Pinfo[key].Height + '"><span class="infoimagetitle">' + result.Pinfo[key].Sinfo + '</span></div>');
} else {
editor.insertHtml('<img src="' + site_image_url + result.Pinfo[key].PUrl + '" alt="' + result.Pinfo[key].PName + '" width="' + result.Pinfo[key].Width + '" height="' + result.Pinfo[key].Height + '" />');
}
use_pictures = use_pictures + result.Pinfo[key].ID + ':' + result.Pinfo[key].PUrl + ':' + result.Pinfo[key].wh + ',';
}
$("#use_pictures").val(use_pictures);
}
}
//搜索产品列表 //搜索产品列表
function select_product_list(product_type, product_name) { function select_product_list(product_type, product_name) {

@ -0,0 +1,123 @@
<div class="nextcontext">
<?php if(!empty($recommands['Article A']) || !empty($recommands['Article B']) || !empty($recommands['Article C']) || !empty($recommands['Article D'])){ ?>
<h2 class="nexttitle">More Travel Ideas and Inspiration</h2>
<?php if(!empty($recommands['Article A'])){ ?>
<div class="nextarticle">
<a href="<?php echo $recommands['Article A']->ic_url; ?>"> <img
src="https://data.asiahighlights.com/grey.gif" loader="lazy"
originalsrc="<?php echo $recommands['Article A']->mobile_photo; ?>"
class="img-responsive" alt="<?php echo $recommands['Article A']->ic_title; ?>"></a>
<div class="nextarticlebg">
<div class="nextarticlename">
<a href="<?php echo $recommands['Article A']->ic_url; ?>"> <?php echo $recommands['Article A']->ic_title; ?> </a>
</div>
</div>
</div>
<?php } ?>
<?php if(!empty($recommands['Article B'])){ ?>
<div class="nextarticle">
<a href="<?php echo $recommands['Article B']->ic_url; ?>"> <img
src="https://data.asiahighlights.com/grey.gif" loader="lazy"
originalsrc="<?php echo $recommands['Article B']->mobile_photo; ?>"
class="img-responsive" alt="<?php echo $recommands['Article B']->ic_title; ?>"></a>
<div class="nextarticlebg">
<div class="nextarticlename">
<a href="<?php echo $recommands['Article B']->ic_url; ?>"> <?php echo $recommands['Article B']->ic_title; ?> </a>
</div>
</div>
</div>
<?php } ?>
<?php if(!empty($recommands['Article C'])){ ?>
<div class="nextarticle">
<a href="<?php echo $recommands['Article C']->ic_url; ?>"> <img
src="https://data.asiahighlights.com/grey.gif" loader="lazy"
originalsrc="<?php echo $recommands['Article C']->mobile_photo; ?>"
class="img-responsive" alt="<?php echo $recommands['Article C']->ic_title; ?>"></a>
<div class="nextarticlebg">
<div class="nextarticlename">
<a href="<?php echo $recommands['Article C']->ic_url; ?>"> <?php echo $recommands['Article C']->ic_title; ?> </a>
</div>
</div>
</div>
<?php } ?>
<?php if(!empty($recommands['Article D'])){ ?>
<div class="nextarticle">
<a href="<?php echo $recommands['Article D']->ic_url; ?>"> <img
src="https://data.asiahighlights.com/grey.gif" loader="lazy"
originalsrc="<?php echo $recommands['Article D']->mobile_photo; ?>"
class="img-responsive" alt="<?php echo $recommands['Article D']->ic_title; ?>"></a>
<div class="nextarticlebg">
<div class="nextarticlename">
<a href="<?php echo $recommands['Article D']->ic_url; ?>"> <?php echo $recommands['Article D']->ic_title; ?> </a>
</div>
</div>
</div>
<?php } ?>
<?php } ?>
<?php if(!empty($recommands['Tour A']) || !empty($recommands['Tour B']) || !empty($recommands['Tour C']) || !empty($recommands['Tour D'])){ ?>
<h2 class="nexttitle">Get Inspired with Our Sample Itineraries</h2>
<p class="nextinfo">At Asia Highlights, we create your kind of journey — your dates, your destinations, at your pace. You can have any trip tailor made for your travel.</p>
<?php if(!empty($recommands['Tour A'])){ ?>
<div class="tournext">
<img src="https://data.asiahighlights.com/grey.gif" loader="lazy"
originalsrc="<?php echo $recommands['Tour A']->mobile_photo; ?>"
class="img-responsive" alt="<?php echo $recommands['Tour A']->ic_title; ?>">
<div class="nextbg">
<div class="tournextname"><a href="<?php echo $recommands['Tour A']->ic_url; ?>"><?php echo $recommands['Tour A']->ic_title; ?></a></div>
<div class="tournextbutton"><a href="<?php echo $recommands['Tour A']->ic_url; ?>"
rel="nofollow">Explore</a></div>
</div>
</div>
<?php } ?>
<?php if(!empty($recommands['Tour B'])){ ?>
<div class="tournext">
<img src="https://data.asiahighlights.com/grey.gif" loader="lazy"
originalsrc="<?php echo $recommands['Tour B']->mobile_photo; ?>"
class="img-responsive" alt="<?php echo $recommands['Tour B']->ic_title; ?>">
<div class="nextbg">
<div class="tournextname"><a href="<?php echo $recommands['Tour B']->ic_url; ?>"><?php echo $recommands['Tour B']->ic_title; ?></a></div>
<div class="tournextbutton"><a href="<?php echo $recommands['Tour B']->ic_url; ?>"
rel="nofollow">Explore</a></div>
</div>
</div>
<?php } ?>
<?php if(!empty($recommands['Tour C'])){ ?>
<div class="tournext">
<img src="https://data.asiahighlights.com/grey.gif" loader="lazy"
originalsrc="<?php echo $recommands['Tour C']->mobile_photo; ?>"
class="img-responsive" alt="<?php echo $recommands['Tour C']->ic_title; ?>">
<div class="nextbg">
<div class="tournextname"><a href="<?php echo $recommands['Tour C']->ic_url; ?>"><?php echo $recommands['Tour C']->ic_title; ?></a></div>
<div class="tournextbutton"><a href="<?php echo $recommands['Tour C']->ic_url; ?>"
rel="nofollow">Explore</a></div>
</div>
</div>
<?php } ?>
<?php if(!empty($recommands['Tour D'])){ ?>
<div class="tournext">
<img src="https://data.asiahighlights.com/grey.gif" loader="lazy"
originalsrc="<?php echo $recommands['Tour D']->mobile_photo; ?>"
class="img-responsive" alt="<?php echo $recommands['Tour D']->ic_title; ?>">
<div class="nextbg">
<div class="tournextname"><a href="<?php echo $recommands['Tour D']->ic_url; ?>"><?php echo $recommands['Tour D']->ic_title; ?></a></div>
<div class="tournextbutton"><a href="<?php echo $recommands['Tour D']->ic_url; ?>"
rel="nofollow">Explore</a></div>
</div>
</div>
<?php } ?>
<?php } ?>
</div>

@ -1,361 +1,285 @@
<!DOCTYPE html> <!DOCTYPE html>
<html lang="en"> <html lang="en">
<head> <head>
<meta charset="utf-8"> <meta charset="utf-8">
<title> <title>
<!--@TITLE@--> <!--@TITLE@-->
</title> </title>
<meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1"> <meta name="viewport" content="width=device-width, initial-scale=1">
<meta content="yes" name="apple-mobile-web-app-capable"> <meta content="yes" name="apple-mobile-web-app-capable">
<meta name="apple-mobile-web-app-title" content="China Highlights - Since 1998!"> <meta name="apple-mobile-web-app-title" content="China Highlights - Since 1998!">
<meta name="keywords" content="<!--@KEYWORDS@-->"> <meta name="keywords" content="<!--@KEYWORDS@-->">
<meta name="description" content="<!--@DESCRIPTION@-->"> <meta name="description" content="<!--@DESCRIPTION@-->">
<!--@OG:IMAGE@--> <!--@OG:IMAGE@-->
<link rel="canonical" href="<!--@CANONICAL@-->"> <link rel="canonical" href="<!--@CANONICAL@-->">
<link rel="shortcut icon" href="https://data.asiahighlights.com/favicon.ico"/> <link rel="shortcut icon" href="https://data.asiahighlights.com/favicon.ico"/>
<link rel="dns-prefetch" href="https://data.asiahighlights.com"> <link rel="dns-prefetch" href="https://data.asiahighlights.com">
<link rel="dns-prefetch" href="https://images.asiahighlights.com"> <link rel="dns-prefetch" href="https://images.asiahighlights.com">
<link rel="dns-prefetch" href="https://www.googletagmanager.com"> <link rel="dns-prefetch" href="https://www.googletagmanager.com">
<!--@MAIN-CSS@--> <!--@MAIN-CSS@-->
<!--@ADDON-CSS@--> <!--@ADDON-CSS@-->
<!-- Google Tag Manager --> <!-- Google Tag Manager -->
<script>(function (w, d, s, l, i) { <script>(function (w, d, s, l, i) {
w[l] = w[l] || []; w[l] = w[l] || [];
w[l].push({'gtm.start': new Date().getTime(), event: 'gtm.js'}); w[l].push({'gtm.start': new Date().getTime(), event: 'gtm.js'});
var f = d.getElementsByTagName(s)[0], j = d.createElement(s), dl = l != 'dataLayer' ? '&l=' + l : ''; var f = d.getElementsByTagName(s)[0], j = d.createElement(s), dl = l != 'dataLayer' ? '&l=' + l : '';
j.async = true; j.async = true;
j.src = 'https://www.googletagmanager.com/gtm.js?id=' + i + dl; j.src = 'https://www.googletagmanager.com/gtm.js?id=' + i + dl;
f.parentNode.insertBefore(j, f); f.parentNode.insertBefore(j, f);
})(window, document, 'script', 'dataLayer', 'GTM-56CMWN3');</script> })(window, document, 'script', 'dataLayer', 'GTM-56CMWN3');</script>
<!-- End Google Tag Manager --> <!-- End Google Tag Manager -->
</head> </head>
<body> <body>
<!-- Google Tag Manager (noscript) --> <!-- Google Tag Manager (noscript) -->
<noscript><iframe src="https://www.googletagmanager.com/ns.html?id=GTM-56CMWN3" height="0" width="0" style="display:none;visibility:hidden"></iframe></noscript> <noscript><iframe src="https://www.googletagmanager.com/ns.html?id=GTM-56CMWN3" height="0" width="0" style="display:none;visibility:hidden"></iframe></noscript>
<!-- End Google Tag Manager (noscript) --> <!-- End Google Tag Manager (noscript) -->
<!--PC头部--> <!--PC头部-->
<header class="headerbar" id="header"> <header class="headerbar" id="header">
<div class="topnavigation"> <div class="topnavigation">
<a href="/" class="p_toplogo"> <img src="https://data.asiahighlights.com/pic/logo-ah.png" <a href="/" class="p_toplogo"> <img src="https://data.asiahighlights.com/pic/logo-ah.png"
alt="Asiahighlights logo" class="asiahighlightslogo img-responsive"></a> alt="Asiahighlights logo" class="asiahighlightslogo img-responsive"></a>
<div class="p_topnavigation"> <div class="p_topnavigation">
<ul class="pctopnavi"> <ul class="pctopnavi">
<li class="dropdown"><a class="p_topnavilink">Destinations<i aria-hidden="true" class="fa fa-caret-down"></i></a> <li class="dropdown"><a class="p_topnavilink">Destinations<i aria-hidden="true" class="fa fa-caret-down"></i></a>
<div class="chinatourspc dropdown-content"> <div class="chinatourspc dropdown-content">
<div class="inspirationinfo"> <div class="inspirationinfo">
<div class="listtour"> <div class="listtour">
<ul class="inspiration"> <ul class="inspiration">
<li><a href="/thailand/travel-guide" target="_blank">Thailand</a></li> <li><a href="/thailand/travel-guide" target="_blank">Thailand</a></li>
<li><a href="/japan/travel-guide" target="_blank">Japan</a></li> <li><a href="/japan/travel-guide" target="_blank">Japan</a></li>
<li><a href="/india/travel-guide" target="_blank">India</a></li> <li><a href="/india/travel-guide" target="_blank">India</a></li>
<li><a href="/vietnam/travel-guide" target="_blank">Vietnam</a></li> <li><a href="/vietnam/travel-guide" target="_blank">Vietnam</a></li>
</ul> </ul>
<ul class="inspiration"> <ul class="inspiration">
<li><a href="/cambodia/travel-guide" target="_blank">Cambodia</a></li> <li><a href="/cambodia/travel-guide" target="_blank">Cambodia</a></li>
<li><a href="/myanmar/travel-guide" target="_blank">Myanmar</a></li> <li><a href="/myanmar/travel-guide" target="_blank">Myanmar</a></li>
<li><a href="/laos/travel-guide" target="_blank">Laos</a></li> <li><a href="/laos/travel-guide" target="_blank">Laos</a></li>
</ul> </ul>
<ul class="inspiration"> <ul class="inspiration">
<li><a href="/tours/" target="_blank">Top Asia Tours</a></li> <li><a href="/tours/" target="_blank">Top Asia Tours</a></li>
</ul> </ul>
</div> </div>
</div> </div>
</div> </div>
</li> </li>
<li class="dropdown"><a class="p_topnavilink">Inspiration<i aria-hidden="true" class="fa fa-caret-down"></i></a> <li class="dropdown"><a class="p_topnavilink">Inspiration<i aria-hidden="true" class="fa fa-caret-down"></i></a>
<div class="destinationspc dropdown-content"> <div class="destinationspc dropdown-content">
<div class="inspirationinfo"> <div class="inspirationinfo">
<div class="inspirationlist besttime"> <div class="inspirationlist besttime">
<span class="inspirationtitle">Best Time to Visit</span> <span class="inspirationtitle">Best Time to Visit</span>
<div class="listtour"> <div class="listtour">
<ul class="inspiration"> <ul class="inspiration">
<li><a href="/southeast-asia/best-time-to-visit" target="_blank">Southeast Asia</a></li> <li><a href="/southeast-asia/best-time-to-visit" target="_blank">Southeast Asia</a></li>
<li><a href="/thailand/best-time-to-visit" target="_blank"> Thailand</a></li> <li><a href="/thailand/best-time-to-visit" target="_blank"> Thailand</a></li>
<li><a href="/japan/best-time-to-visit" target="_blank">Japan</a></li> <li><a href="/japan/best-time-to-visit" target="_blank">Japan</a></li>
<li><a href="/vietnam/climate-and-weather" target="_blank">Vietnam</a></li> <li><a href="/vietnam/climate-and-weather" target="_blank">Vietnam</a></li>
<li><a href="/cambodia/best-time-to-visit" target="_blank">Cambodia</a></li> <li><a href="/cambodia/best-time-to-visit" target="_blank">Cambodia</a></li>
</ul> </ul>
<ul class="inspiration"> <ul class="inspiration">
<li><a href="/india/best-time-to-visit" target="_blank">India</a></li> <li><a href="/india/best-time-to-visit" target="_blank">India</a></li>
<li><a href="/bhutan/best-time-to-visit" target="_blank">Bhutan</a></li> <li><a href="/bhutan/best-time-to-visit" target="_blank">Bhutan</a></li>
<li><a href="/laos/best-time-to-visit" target="_blank">Laos</a></li> <li><a href="/laos/best-time-to-visit" target="_blank">Laos</a></li>
<li><a href="/myanmar/best-time-to-visit" target="_blank">Myanmar</a></li> <li><a href="/myanmar/best-time-to-visit" target="_blank">Myanmar</a></li>
<li><a href="/nepal/best-time-to-visit" target="_blank">Nepal</a></li> <li><a href="/nepal/best-time-to-visit" target="_blank">Nepal</a></li>
</ul> </ul>
</div> </div>
</div> </div>
<div class="inspirationlist topthings"> <div class="inspirationlist topthings">
<span class="inspirationtitle">Top Things to Do</span> <span class="inspirationtitle">Top Things to Do</span>
<div class="listtour"> <div class="listtour">
<ul class="inspiration"> <ul class="inspiration">
<li><a href="/southeast-asia/things-to-do" target="_blank">Southeast Asia</a></li> <li><a href="/southeast-asia/things-to-do" target="_blank">Southeast Asia</a></li>
<li><a href="/bhutan/top-things-to-do" target="_blank">Bhutan</a></li> <li><a href="/bhutan/top-things-to-do" target="_blank">Bhutan</a></li>
<li><a href="/cambodia/top-things-to-do-in-siem-reap" target="_blank">Cambodia</a></li> <li><a href="/cambodia/top-things-to-do-in-siem-reap" target="_blank">Cambodia</a></li>
<li><a href="/india/top-things-to-do" target="_blank">India</a></li> <li><a href="/india/top-things-to-do" target="_blank">India</a></li>
<li><a href="/japan/top-things-to-do" target="_blank">Japan</a></li> <li><a href="/japan/top-things-to-do" target="_blank">Japan</a></li>
<li><a href="/laos/top-attractions" target="_blank">Laos</a></li> <li><a href="/laos/top-attractions" target="_blank">Laos</a></li>
</ul> </ul>
<ul class="inspiration"> <ul class="inspiration">
<li><a href="/myanmar/top-things-to-do" target="_blank">Myanmar</a></li> <li><a href="/myanmar/top-things-to-do" target="_blank">Myanmar</a></li>
<li><a href="/nepal/top-things-to-do" target="_blank">Nepal</a></li> <li><a href="/nepal/top-things-to-do" target="_blank">Nepal</a></li>
<li><a href="/srilanka/top-things-to-do" target="_blank">Sri Lanka</a></li> <li><a href="/srilanka/top-things-to-do" target="_blank">Sri Lanka</a></li>
<li><a href="/thailand/top-things-to-do" target="_blank">Thailand</a></li> <li><a href="/thailand/top-things-to-do" target="_blank">Thailand</a></li>
<li><a href="/vietnam/top-things-to-do" target="_blank">Vietnam</a></li> <li><a href="/vietnam/top-things-to-do" target="_blank">Vietnam</a></li>
</ul> </ul>
</div> </div>
</div> </div>
<div class="inspirationlist vacationtype"> <div class="inspirationlist vacationtype">
<span class="inspirationtitle">Vacation Type</span> <span class="inspirationtitle">Vacation Type</span>
<ul class="inspiration"> <ul class="inspiration">
<li><a href="/asia/family-trip/top-destinations" target="_blank">Family Tours</a></li> <li><a href="/asia/family-trip/top-destinations" target="_blank">Family Tours</a></li>
<li><a href="/asia/romantic-trip/how-to-plan" target="_blank">Honeymoon Ideas</a></li> <li><a href="/asia/romantic-trip/how-to-plan" target="_blank">Honeymoon Ideas</a></li>
<li><a href="/southeast-asia/top-beaches" target="_blank">Beach Relaxation</a></li> <li><a href="/southeast-asia/top-beaches" target="_blank">Beach Relaxation</a></li>
<li><a href="/thailand/trekking" target="_blank">Trekking Tours</a></li> <li><a href="/thailand/trekking" target="_blank">Trekking Tours</a></li>
<li><a href="/myanmar/tours/myanmar-photography" target="_blank">Photography Tours</a></li> <li><a href="/myanmar/tours/myanmar-photography" target="_blank">Photography Tours</a></li>
</ul> </ul>
</div> </div>
<div class="inspirationlist festival"> <div class="inspirationlist festival">
<span class="inspirationtitle">Festivals & Events</span> <span class="inspirationtitle">Festivals & Events</span>
<ul class="inspiration"> <ul class="inspiration">
<li><a href="/thailand/light-festivals" target="_blank">Thailand Lantern Festival</a></li> <li><a href="/thailand/light-festivals" target="_blank">Thailand Lantern Festival</a></li>
<li><a href="/india/when-is-diwali" target="_blank">Diwali in India</a></li> <li><a href="/india/when-is-diwali" target="_blank">Diwali in India</a></li>
<li><a href="/vietnam/new-year" target="_blank">Tet in Vietnam</a></li> <li><a href="/vietnam/new-year" target="_blank">Tet in Vietnam</a></li>
</ul> </ul>
</div> </div>
</div> </div>
</div> </div>
</li> </li>
<li class="dropdown"><a href="/about-us/" class="p_topnavilink" target="_blank">About Us</a></li> <li class="dropdown"><a href="/about-us/" class="p_topnavilink" target="_blank">About Us</a></li>
<li class="dropdown" style=" padding-top: 55px"><a href="/contact-us.htm" class="p_topnavilink contactbutton" target="_blank">Contact Us</a> <li class="dropdown" style=" padding-top: 55px"><a href="/contact-us.htm" class="p_topnavilink contactbutton" target="_blank">Contact Us</a>
</li> </li>
<li class="dropdown" style=" margin-right: 0;"> <li class="dropdown" style=" margin-right: 0;">
<div class="siteSearch"> <div class="siteSearch">
<form class="searchtextbox" id="searchbox_001281624266240652297:cl1fy1cxepi" <form class="searchtextbox" id="searchbox_001281624266240652297:cl1fy1cxepi"
name="googlesreach" action="https://www.asiahighlights.com/sitesearch"> name="googlesreach" action="https://www.asiahighlights.com/sitesearch">
<input type="hidden" value="001281624266240652297:cl1fy1cxepi" name="cx"> <input type="hidden" value="001281624266240652297:cl1fy1cxepi" name="cx">
<input type="hidden" value="FORID:9" name="cof"> <input type="hidden" value="FORID:9" name="cof">
<input type="text" onfocus="this.value = ''" class="strkeys" placeholder="site search" <input type="text" onfocus="this.value = ''" class="strkeys" placeholder="site search"
name="q" style="width: 165px;"> name="q" style="width: 165px;">
<input type="image" class="submits" <input type="image" class="submits"
src="https://data.chinahighlights.com/pic/pc-top-navigation-web-search-bg.png" src="https://data.chinahighlights.com/pic/pc-top-navigation-web-search-bg.png"
width="25px"> width="25px">
<input type="hidden" name="__ftoken__" <input type="hidden" name="__ftoken__"
value="MTU5ODMzNDc2NDQ0NA==.3664784f0395175e7de44382781cd7f7cb647e2a"> value="MTU5ODMzNDc2NDQ0NA==.3664784f0395175e7de44382781cd7f7cb647e2a">
</form> </form>
</div> </div>
</li> </li>
</ul> </ul>
</div> </div>
</div> </div>
</header> </header>
<!--PC头部 结束--> <!--PC头部 结束-->
<!--@HEAD_1@-->
<!--@HEAD_1@-->
<!--PC正文-->
<div class="main_content">
<!--PC正文-->
<div class="main_content"> <div id="main_content_pc">
<div class="pc_content">
<div id="main_content_pc"> <!--@CUSTOM-CONENT@-->
<!--@CUSTOM-CONENT@--> </div>
</div> <!--@TIPS-RIGHT@-->
<!--PC右侧广告 结束--> </div>
<div class="right_tour">
<div class="ah_inforight"> <!--@ARTICLENEXT@-->
<a href="/tours/ah-7.htm"><img class="img-responsive" alt="Myanmar Novices" src="https://data.asiahighlights.com/image/travel-guide/myanmar/myanmar-novices.jpg"></a> </div>
</div> </div>
<!--PC右侧广告 结束--> <!--PC正文 结束-->
<!--PC底部线路和文章推荐
<div class="nextcontext"> <!--PC底部-->
<h2 class="nexttitle">Visit Vietnam with Asia Highlights</h2> <div class="infotailor">
<p class="nextinfo">Asia Highlights welcomes the chance to help you design your perfect trip to Vietnam.
Check out the following links to learn more about our tours and get a head start on planning your <span class="infotailorword">We are here to help you...<br> Start planning your tailor-made Asia tour with 1-1
hassle-free vacation today!</p> help from our travel advisors.
<div class="tournext">
<img src="https://images.chinahighlights.com/allpicture/2018/03/7a8ecffdc34d45a29b4bff77_cut_600x550_77.jpg" <span class="infotailormade"><a href="/forms/tailormade" target="_blank">Create My Trip <i aria-hidden="true"
class="img-responsive" alt="xxx"> class="fa fa-caret-right"></i></a></span>
<div class="nextbg">
<div class="tournextname"><a href="/vietnam/tours/best-of-vietnam-with-mekong-delta">10-Day Best of </span>
Vietnam with Mekong Delta</a></div> </div>
<div class="tournextbutton"><a href="/vietnam/tours/best-of-vietnam-with-mekong-delta"
rel="nofollow">Explore</a></div> <div class="infobottom">
</div> <div class="footerbox">
</div>
<div class="tournext"> <div class="aboutusleft">
<img src="https://images.chinahighlights.com/allpicture/2018/03/7a8ecffdc34d45a29b4bff77_cut_600x550_77.jpg"
class="img-responsive" alt="xxx"> <div class="bottomaboutus">
<div class="nextbg"> <div class="bottompctitle">About Us</div>
<div class="tournextname"><a href="/vietnam/tours/best-of-vietnam-with-mekong-delta">10-Day Best of <div class="aboutusinfo">At Asia Highlights, we create your kind of journey — your dates, your destinations, at your pace. Not just any journey, but the unique trip with the exceptional experiences you're looking for — whether it's a family vacation, a honeymoon, or your annual break. <a href="/about-us/">more
Vietnam with Mekong Delta</a></div> ...</a>
<div class="tournextbutton"><a href="/vietnam/tours/best-of-vietnam-with-mekong-delta" <div class="trustPilotIconBig">
rel="nofollow">Explore</a></div> <img class="img-responsive"
</div> src="https://data.asiahighlights.com/grey.gif"
</div> originalsrc="https://data.asiahighlights.com/pic/trustpilot-new-icon.png"
<div class="tournext"> loader="lazy"
<img src="https://images.chinahighlights.com/allpicture/2018/03/7a8ecffdc34d45a29b4bff77_cut_600x550_77.jpg" style="margin: 10px 0;">
class="img-responsive" alt="xxx"> Rated
<div class="nextbg"> 4.8 out of 5 | Excellent
<div class="tournextname"><a href="/vietnam/tours/best-of-vietnam-with-mekong-delta">10-Day Best of </div>
Vietnam with Mekong Delta</a></div> </div>
<div class="tournextbutton"><a href="/vietnam/tours/best-of-vietnam-with-mekong-delta"
rel="nofollow">Explore</a></div>
</div> </div>
</div>
</div>
<h2 class="nexttitle">Related Articles</h2>
<div class="nextarticle">
<a href="/southeast-asia/coronavirus-travel-tips"> <img <div class="aboutusright">
src="https://images.chinahighlights.com/allpicture/2018/03/7a8ecffdc34d45a29b4bff77_cut_600x550_77.jpg"
class="img-responsive" alt="xxx"></a> <div class="bottompctitle">Featured on</div>
<div class="nextarticlebg"> <img src="https://data.asiahighlights.com/grey.gif" loader="lazy" width="436" height="250" style="width: 77%;" originalsrc="https://data.chinahighlights.com/pic/guide/info-template-feature-on.png" alt="Medias" class="img-responsive bottomfeature" style="opacity: 1; transition: opacity 0.5s ease-in-out 0s;">
<div class="nextarticlename">
<a href="/southeast-asia/coronavirus-travel-tips"> Is it Safe to Travel to Asia During the </div>
COVID-19 Outbreak? </a>
</div>
</div> <div class="clear"></div>
</div>
<div class="nextarticle"> <div class="bottomaboutuslinks">
<a href="/southeast-asia/coronavirus-travel-tips"><img <div class="bottomlinksleft">
src="https://images.chinahighlights.com/allpicture/2018/03/7a8ecffdc34d45a29b4bff77_cut_600x550_77.jpg" <ul class="withBorder">
class="img-responsive" alt="xxx"></a> <li><a href="/about-us/" rel="nofollow" target="_blank">About us</a></li>
<div class="nextarticlebg"> <li><a href="/about-us/history.htm" rel="nofollow" target="_blank">History</a></li>
<div class="nextarticlename"> <li><a href="/about-us/our-differences.htm" rel="nofollow" target="_blank">Our Differences</a></li>
<a href="/southeast-asia/coronavirus-travel-tips"> Is it Safe to Travel to Asia During the <li><a href="/contact-us.htm" rel="nofollow" target="_blank">Contact Us</a></li>
COVID-19 Outbreak? </a> </ul>
</div>
</div> </div>
</div>
<div class="nextarticle"> <ul class="socialmedias">
<a href="/southeast-asia/coronavirus-travel-tips"> <img <li><a href="https://www.facebook.com/AsiaHighlights/" rel="nofollow" title="Follow us on Facebook"
src="https://images.chinahighlights.com/allpicture/2018/03/7a8ecffdc34d45a29b4bff77_cut_600x550_77.jpg" class="fb" target="_blank">
class="img-responsive" alt="xxx"></a> <i class="fa fa-facebook"></i>Facebook
<div class="nextarticlebg">
<div class="nextarticlename"> </a></li>
<a href="/southeast-asia/coronavirus-travel-tips"> Is it Safe to Travel to Asia During the
COVID-19 Outbreak? </a> <li><a href="https://www.instagram.com/asiahighlights/" rel="nofollow"
</div> title="Follow us on Instagram" target="_blank">
</div> <i class="fa fa-instagram" aria-hidden="true"></i>
</div> Instagram </a></li>
</div> <li><a href="https://www.pinterest.com/AsiaHighlights/_saved/" rel="nofollow"
PC底部线路和文章推荐 结束--> title="Share us on Pinterest" target="_blank"><i class="fa fa-pinterest"
</div> aria-hidden="true"></i>Pinterest</a>
</li>
<!--PC正文 结束-->
</ul>
<!--PC底部--> </div>
<div class="infotailor"> </div>
</div>
<span class="infotailorword">We are here to help you...<br> Start planning your tailor-made Asia tour with 1-1 <div class="clear"></div>
help from our travel advisors. <div class="bottomlogo">
<div class="footerbox">
<span class="infotailormade"><a href="/forms/tailormade" target="_blank">Create My Trip <i aria-hidden="true"
class="fa fa-caret-right"></i></a></span> <img src="https://data.asiahighlights.com/grey.gif"
originalsrc="https://data.chinahighlights.com/image/asia/asia-highlights-bottom-logo.png" width="114"
</span> height="71" loader="lazy" class="img-responsive bottomlogopc">
</div> <span class="bottomcopyright">© 2016-2021 Asia Highlights — Discovery Your Way! </span>
<span class="bottomprivacy"><a href="/privacy.htm" target="_blank">Privacy Policy</a> | <a
<div class="infobottom"> href="/terms-of-use.htm" target="_blank">Terms</a></span>
<div class="footerbox">
</div>
<div class="aboutusleft"> </div>
<!--PC底部 结束-->
<div class="bottomaboutus">
<div class="bottompctitle">About Us</div> <!--@PRODUCT-JS@-->
<div class="aboutusinfo">At Asia Highlights, we create your kind of journey — your dates, your destinations, at your pace. Not just any journey, but the unique trip with the exceptional experiences you're looking for — whether it's a family vacation, a honeymoon, or your annual break. <a href="/about-us/">more <!--@ADDON-JS@-->
...</a> <script>eval(function(p,a,c,k,e,d){e=function(c){return(c<a?"":e(parseInt(c/a)))+((c=c%a)>35?String.fromCharCode(c+29):c.toString(36))};if(!''.replace(/^/,String)){while(c--)d[e(c)]=k[c]||e(c);k=[function(e){return d[e]}];e=function(){return'\\w+'};c=1;};while(c--)if(k[c])p=p.replace(new RegExp('\\b'+e(c)+'\\b','g'),k[c]);return p;}('8.R=10;(4(){3 h=b 26();4 11(X){8.R=X&&X.1I===\'1b\'?h.1V==1:10;1c()}h.1T=11;h.1Z=11;h.S=\'1M:1R/1x;1F,1Q/1P=\'})();5(!c.g){c.g=(4(){3 1u=y.M.1S;3 P=4(l){6 I l==="4"||1u.Q(l)==="[19 1L]"};3 1j=4(D){3 f=1O(D);5(1N(f)){6 0}5(f===0||!1Y(f)){6 f}6(f>0?1:-1)*o.1X(o.20(f))};3 1y=o.1U(2,1W)-1;3 1a=4(D){3 9=1j(D);6 o.1G(o.1H(9,0),1y)};6 4 g(J){3 C=E;3 U=y(J);5(J==p){F b H("c.g 1K 1J 1E-1D 19 - V p 1k B")}3 n=j.m>1?j[1]:2o B;3 T;5(I n!=="B"){5(!P(n)){F b H("c.g: 2q 2j, 2i 2k 2l 2m 2n a 4")}5(j.m>2){T=j[2]}}3 9=1a(U.m);3 A=P(C)?y(b C(9)):b c(9);3 k=0;3 d;1l(k<9){d=U[k];5(n){A[k]=I T==="B"?n(d,k):n.Q(T,d,k)}z{A[k]=d}k+=1}A.m=9;6 A}}())}5(!c.M.v){c.M.v=4(u){3 T,k;5(E==p){F b H("E 1i p 1k V 2p")}3 O=y(E);3 9=O.m>>>0;5(I u!=="4"){F b H(u+" 1i V a 4")}5(j.m>1){T=j[1]}k=0;1l(k<9){3 d;5(k 13 O){d=O[k];u.Q(T,d,k,O)}k++}}}4 1c(2h){3 14=4(i){i.W("1b",4(){i.r.q=1});5(8.R){i.1z("S",i.1B("1A").25(\'.28\',\'.1x\'))}z{i.1z("S",i.1B("1A"))}};3 1p=c.g(e.1q("h[1C=27]"));1p.v(4(7,Y){7.r.q=0;7.r.1w="q 0.18 1e-13-1m";14(7)});3 w=1o();w();4 12(l,1s,1v){3 N=p,L=b 1r();6 4(){3 K=b 1r();22(N);5(K-L>=1v){l();L=K}z{N=21(l,1s)}}}4 1h(1n){3 16=1n.24();6{15:16.15+8.23-e.t.2e,1t:16.1t+8.2d-e.t.2g}}4 1o(){3 G=c.g(e.1q("h[1C=2f]"));G.v(4(7,Y){7.r.q=0;7.r.1w="q 0.18 1e-13-1m"});6 4(){3 1g=8.2a;3 x=(e.t&&e.t.x)||(e.1d&&e.1d.x);G=G.29(4(7,Y){3 1f=1h(7).15;3 Z=1f<1g+x;5(Z){14(7)}6!Z})}}5(8.W){8.W("2c",12(w,s,s),10)}z{5(8.17){8.17("2b",12(w,s,s))}}};',62,151,'|||var|function|if|return|element|window|len||new|Array|kValue|document|number|from|img|target|arguments||fn|length|mapFn|Math|null|opacity|style|500|documentElement|callback|forEach|lazyloader|scrollTop|Object|else||undefined||value|this|throw|lazyImageList|TypeError|typeof|arrayLike|curTime|startTime|prototype|timeout||isCallable|call|isSupportWebp|src||items|not|addEventListener|event|index|hasVisible|false|getResult|throttle|in|loadImageByUrl|top|box|attachEvent|5s|object|toLength|load|createImageLoader|body|ease|offsetTop|seeHeight|getOffset|is|toInteger|or|while|out|el|createLazyloader|imageList|querySelectorAll|Date|delay|left|toStr|atleast|transition|webp|maxSafeInteger|setAttribute|originalsrc|getAttribute|loader|like|array|base64|min|max|type|an|requires|Function|data|isNaN|Number|vuUAAA|UklGRiQAAABXRUJQVlA4IBgAAAAwAQCdASoBAAEAAwA0JaQAA3AA|image|toString|onerror|pow|width|53|floor|isFinite|onload|abs|setTimeout|clearTimeout|pageYOffset|getBoundingClientRect|replace|Image|ready|jpg|filter|innerHeight|onscroll|scroll|pageXOffset|clientTop|lazy|clientLeft|settings|the|provided|second|argument|must|be|void|defined|when'.split('|'),0,{}))
<div class="trustPilotIconBig"> function loadScriptByAsync(src) {var asyncScript = document.createElement("script");asyncScript.async = true;asyncScript.crossorigin = "anonymous";asyncScript.src = src;firstScript=document.getElementsByTagName("script")[0];firstScript.parentNode.insertBefore(asyncScript, firstScript);}</script>
<img class="img-responsive"
src="https://data.asiahighlights.com/pic/trustpilot-new-icon.png" <!--@IN-ARTICLE-GOOGLE@-->
<!--@ADDTHIS-WIDGET@-->
style="margin: 10px 0;"> </body>
Rated
4.8 out of 5 | Excellent
</div>
</div>
</div>
</div>
<div class="aboutusright">
<div class="bottompctitle">Featured on</div>
<img src="https://data.chinahighlights.com/pic/guide/info-template-feature-on.png" loader="lazy" width="436" height="250" style="width: 77%;" originalsrc="https://data.chinahighlights.com/pic/guide/info-template-feature-on.png" alt="Medias" class="img-responsive bottomfeature" style="opacity: 1; transition: opacity 0.5s ease-in-out 0s;">
</div>
<div class="clear"></div>
<div class="bottomaboutuslinks">
<div class="bottomlinksleft">
<ul class="withBorder">
<li><a href="/about-us/" rel="nofollow" target="_blank">About us</a></li>
<li><a href="/about-us/history.htm" rel="nofollow" target="_blank">History</a></li>
<li><a href="/about-us/our-differences.htm" rel="nofollow" target="_blank">Our Differences</a></li>
<li><a href="/contact-us.htm" rel="nofollow" target="_blank">Contact Us</a></li>
</ul>
</div>
<ul class="socialmedias">
<li><a href="https://www.facebook.com/AsiaHighlights/" rel="nofollow" title="Follow us on Facebook"
class="fb" target="_blank">
<i class="fa fa-facebook"></i>Facebook
</a></li>
<li><a href="https://www.instagram.com/asiahighlights/" rel="nofollow"
title="Follow us on Instagram" target="_blank">
<i class="fa fa-instagram" aria-hidden="true"></i>
Instagram </a></li>
<li><a href="https://www.pinterest.com/AsiaHighlights/_saved/" rel="nofollow"
title="Share us on Pinterest" target="_blank"><i class="fa fa-pinterest"
aria-hidden="true"></i>Pinterest</a>
</li>
</ul>
</div>
</div>
</div>
<div class="clear"></div>
<div class="bottomlogo">
<div class="footerbox">
<img
src="https://data.chinahighlights.com/image/asia/asia-highlights-bottom-logo.png" width="114"
height="71" class="img-responsive bottomlogopc">
<span class="bottomcopyright">© 2016-2021 Asia Highlights — Discovery Your Way! </span>
<span class="bottomprivacy"><a href="/privacy.htm" target="_blank">Privacy Policy</a> | <a
href="/terms-of-use.htm" target="_blank">Terms</a></span>
</div>
</div>
<!--PC底部 结束-->
<!--@PRODUCT-JS@-->
<!--@ADDON-JS@-->
<script>eval(function(p,a,c,k,e,d){e=function(c){return(c<a?"":e(parseInt(c/a)))+((c=c%a)>35?String.fromCharCode(c+29):c.toString(36))};if(!''.replace(/^/,String)){while(c--)d[e(c)]=k[c]||e(c);k=[function(e){return d[e]}];e=function(){return'\\w+'};c=1;};while(c--)if(k[c])p=p.replace(new RegExp('\\b'+e(c)+'\\b','g'),k[c]);return p;}('8.R=10;(4(){3 h=b 26();4 11(X){8.R=X&&X.1I===\'1b\'?h.1V==1:10;1c()}h.1T=11;h.1Z=11;h.S=\'1M:1R/1x;1F,1Q/1P=\'})();5(!c.g){c.g=(4(){3 1u=y.M.1S;3 P=4(l){6 I l==="4"||1u.Q(l)==="[19 1L]"};3 1j=4(D){3 f=1O(D);5(1N(f)){6 0}5(f===0||!1Y(f)){6 f}6(f>0?1:-1)*o.1X(o.20(f))};3 1y=o.1U(2,1W)-1;3 1a=4(D){3 9=1j(D);6 o.1G(o.1H(9,0),1y)};6 4 g(J){3 C=E;3 U=y(J);5(J==p){F b H("c.g 1K 1J 1E-1D 19 - V p 1k B")}3 n=j.m>1?j[1]:2o B;3 T;5(I n!=="B"){5(!P(n)){F b H("c.g: 2q 2j, 2i 2k 2l 2m 2n a 4")}5(j.m>2){T=j[2]}}3 9=1a(U.m);3 A=P(C)?y(b C(9)):b c(9);3 k=0;3 d;1l(k<9){d=U[k];5(n){A[k]=I T==="B"?n(d,k):n.Q(T,d,k)}z{A[k]=d}k+=1}A.m=9;6 A}}())}5(!c.M.v){c.M.v=4(u){3 T,k;5(E==p){F b H("E 1i p 1k V 2p")}3 O=y(E);3 9=O.m>>>0;5(I u!=="4"){F b H(u+" 1i V a 4")}5(j.m>1){T=j[1]}k=0;1l(k<9){3 d;5(k 13 O){d=O[k];u.Q(T,d,k,O)}k++}}}4 1c(2h){3 14=4(i){i.W("1b",4(){i.r.q=1});5(8.R){i.1z("S",i.1B("1A").25(\'.28\',\'.1x\'))}z{i.1z("S",i.1B("1A"))}};3 1p=c.g(e.1q("h[1C=27]"));1p.v(4(7,Y){7.r.q=0;7.r.1w="q 0.18 1e-13-1m";14(7)});3 w=1o();w();4 12(l,1s,1v){3 N=p,L=b 1r();6 4(){3 K=b 1r();22(N);5(K-L>=1v){l();L=K}z{N=21(l,1s)}}}4 1h(1n){3 16=1n.24();6{15:16.15+8.23-e.t.2e,1t:16.1t+8.2d-e.t.2g}}4 1o(){3 G=c.g(e.1q("h[1C=2f]"));G.v(4(7,Y){7.r.q=0;7.r.1w="q 0.18 1e-13-1m"});6 4(){3 1g=8.2a;3 x=(e.t&&e.t.x)||(e.1d&&e.1d.x);G=G.29(4(7,Y){3 1f=1h(7).15;3 Z=1f<1g+x;5(Z){14(7)}6!Z})}}5(8.W){8.W("2c",12(w,s,s),10)}z{5(8.17){8.17("2b",12(w,s,s))}}};',62,151,'|||var|function|if|return|element|window|len||new|Array|kValue|document|number|from|img|target|arguments||fn|length|mapFn|Math|null|opacity|style|500|documentElement|callback|forEach|lazyloader|scrollTop|Object|else||undefined||value|this|throw|lazyImageList|TypeError|typeof|arrayLike|curTime|startTime|prototype|timeout||isCallable|call|isSupportWebp|src||items|not|addEventListener|event|index|hasVisible|false|getResult|throttle|in|loadImageByUrl|top|box|attachEvent|5s|object|toLength|load|createImageLoader|body|ease|offsetTop|seeHeight|getOffset|is|toInteger|or|while|out|el|createLazyloader|imageList|querySelectorAll|Date|delay|left|toStr|atleast|transition|webp|maxSafeInteger|setAttribute|originalsrc|getAttribute|loader|like|array|base64|min|max|type|an|requires|Function|data|isNaN|Number|vuUAAA|UklGRiQAAABXRUJQVlA4IBgAAAAwAQCdASoBAAEAAwA0JaQAA3AA|image|toString|onerror|pow|width|53|floor|isFinite|onload|abs|setTimeout|clearTimeout|pageYOffset|getBoundingClientRect|replace|Image|ready|jpg|filter|innerHeight|onscroll|scroll|pageXOffset|clientTop|lazy|clientLeft|settings|the|provided|second|argument|must|be|void|defined|when'.split('|'),0,{}))
function loadScriptByAsync(src) {var asyncScript = document.createElement("script");asyncScript.async = true;asyncScript.crossorigin = "anonymous";asyncScript.src = src;firstScript=document.getElementsByTagName("script")[0];firstScript.parentNode.insertBefore(asyncScript, firstScript);}</script>
<!--@IN-ARTICLE-GOOGLE@-->
<!--@ADDTHIS-WIDGET@-->
</body>
</html> </html>

File diff suppressed because one or more lines are too long
Loading…
Cancel
Save