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(
'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,'),
'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,'),
@ -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,'),
'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,'),
'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,'),
'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,'),
'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' => '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'),
'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')),
'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,')),
'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,')),
'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' => '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,')),
'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')),

@ -21,8 +21,10 @@ class Information extends CI_Controller
$this->load->model('InfoMetas_model');
$this->load->model('Infoauthors_model');
$this->load->model('InfoSMS_model');
$this->load->model('recommends_and_tips_model');
$this->load->library('Amplib'); //加载AMP处理类
$this->load->library('html_optimize_lib'); //加载HTML优化类
}
public function index()
@ -585,6 +587,7 @@ class Information extends CI_Controller
default:
}
//替换模板中的标签
$template = str_replace('<!--@TITLE@-->', $information->ic_seo_title, $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_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'))) {
//信息推荐 暂时不用,未来用广告系统替代
//$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);
$template = str_replace('<!--@ADDTHIS-WIDGET@-->', $addthis_widget, $template);
} else {
@ -1067,6 +1076,87 @@ class Information extends CI_Controller
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)
{
$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 = substr($destination_url, 0, strpos($destination_url, '/', 1) + 1);
//how to plan
$data['info_howtoplan'] = $this->Information_model->search_by_words($destination_url, array('how', 'plan'), $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'])) { //找不到对应信息则显示备用
$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);
}
//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'])) {
$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);
}
//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'])) {
$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);
}
//更新静态文件
//不用参数提交的原因是可能url带有特殊字符CI会报错
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->topNum = 1;
$sql_keyword=' AND ( 1=1 ';
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.=' ) ';
$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 ";
return $this->GetList();
}
@ -84,7 +99,7 @@ class Information_model extends CI_Model {
$this->topNum = $topnum;
$this->search = " AND is_parent_id =". $this->HT->escape($is_parent_id);
$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() ";
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);
}
//查询所有推荐信息
$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('bind');
$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_it_id = null;
$data['infoRecommend']->ir_urls = '';
$data['infoRecommend']->ir_rule = 'no';
$data['infoRecommend']->ir_rule = 'rule_parent';
$data['infoRecommend']->ir_datetime = time();
$data['infoRecommend']->ir_sitecode = $this->config->item('site_code');
$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' => '查询不到数据,请重试');
} else {
$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_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_id = $this->infoRecommends_model->update('infoRecommends', $infoRecommend, 'ir_id=' . $ir_id);
$data[] = array('name' => 'ok', 'value' => '保存成功!');

@ -26,6 +26,12 @@ class infoRecommends_model extends CI_Model
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){
$this->init();
$this->topnum = 1;

@ -22,6 +22,7 @@
> <span
class="pull-right glyphicon glyphicon-cog"></span></a></div>
<div class="panel-body">
<?php echo empty($recommends['Tips Right'])?'继承上级':$recommends['Tips Right']->ir_rule; ?>
</div>
</div>
</div>
@ -36,7 +37,7 @@
> <span
class="pull-right glyphicon glyphicon-cog"></span></a></div>
<div class="panel-body">
<?php echo empty($recommends['Article A'])?'继承上级':$recommends['Article A']->ir_rule.'<br/>'.$recommends['Article A']->ir_keyword; ?>
</div>
</div>
</div>
@ -48,7 +49,7 @@
> <span
class="pull-right glyphicon glyphicon-cog"></span></a></div>
<div class="panel-body">
<?php echo empty($recommends['Article B'])?'继承上级':$recommends['Article B']->ir_rule.'<br/>'.$recommends['Article B']->ir_keyword; ?>
</div>
</div>
</div>
@ -60,7 +61,7 @@
> <span
class="pull-right glyphicon glyphicon-cog"></span></a></div>
<div class="panel-body">
<?php echo empty($recommends['Article C'])?'继承上级':$recommends['Article C']->ir_rule.'<br/>'.$recommends['Article C']->ir_keyword; ?>
</div>
</div>
</div>
@ -72,7 +73,7 @@
> <span
class="pull-right glyphicon glyphicon-cog"></span></a></div>
<div class="panel-body">
<?php echo empty($recommends['Article D'])?'继承上级':$recommends['Article D']->ir_rule.'<br/>'.$recommends['Article D']->ir_keyword; ?>
</div>
</div>
</div>
@ -90,7 +91,7 @@
> <span
class="pull-right glyphicon glyphicon-cog"></span></a></div>
<div class="panel-body">
<?php echo empty($recommends['Tour A'])?'继承上级':$recommends['Tour A']->ir_rule.'<br/>'.$recommends['Tour A']->ir_keyword; ?>
</div>
</div>
</div>
@ -102,7 +103,7 @@
> <span
class="pull-right glyphicon glyphicon-cog"></span></a></div>
<div class="panel-body">
<?php echo empty($recommends['Tour B'])?'继承上级':$recommends['Tour B']->ir_rule.'<br/>'.$recommends['Tour B']->ir_keyword; ?>
</div>
</div>
</div>
@ -114,7 +115,7 @@
> <span
class="pull-right glyphicon glyphicon-cog"></span></a></div>
<div class="panel-body">
<?php echo empty($recommends['Tour C'])?'继承上级':$recommends['Tour C']->ir_rule.'<br/>'.$recommends['Tour C']->ir_keyword; ?>
</div>
</div>
</div>
@ -125,7 +126,7 @@
onclick="show_bind_info(<?php echo $information->is_id; ?>,'Tour D')">
<span class="pull-right glyphicon glyphicon-cog"></span></a></div>
<div class="panel-body">
<?php echo empty($recommends['Tour D'])?'继承上级':$recommends['Tour D']->ir_rule.'<br/>'.$recommends['Tour D']->ir_keyword; ?>
</div>
</div>
</div>
@ -151,6 +152,10 @@
</div>
</div>
<script>
/*流程说明
点击显示窗口清空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">
<div class="row">
<div class="col-md-6">
<label> <input type="radio" name="ir_rule" id="ir_rule_no" <?php echo $infoRecommend->ir_rule=='no'?'checked':''; ?>
value="no">继承上级规则</label>
<label> <input type="radio" name="ir_rule" id="ir_rule_parent" <?php echo $infoRecommend->ir_rule=='rule_parent'?'checked':''; ?>
value="rule_parent">继承上级规则</label>
</div>
<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':''; ?>
value="same_node_keyword">同节点关键词</label>
<label> <input type="radio" name="ir_rule" id="ir_rule_same_node_keyword" <?php echo $infoRecommend->ir_rule=='rule_same_node_keyword'?'checked':''; ?>
value="rule_same_node_keyword">同节点关键词</label>
</div>
<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':''; ?>
value="same_url_keyword">
<label> <input type="radio" name="ir_rule" id="ir_rule_same_url_keyword" <?php echo $infoRecommend->ir_rule=='rule_same_url_keyword'?'checked':''; ?>
value="rule_same_url_keyword">
同URL关键词</label>
</div>
<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':''; ?>
value="same_node_random">
<label> <input type="radio" name="ir_rule" id="ir_rule_same_node_random" <?php echo $infoRecommend->ir_rule=='rule_same_node_random'?'checked':''; ?>
value="rule_same_node_random">
同节点随机</label>
</div>
<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':''; ?>
value="this_node_random">
<label> <input type="radio" name="ir_rule" id="ir_rule_this_node_random" <?php echo $infoRecommend->ir_rule=='rule_this_node_random'?'checked':''; ?>
value="rule_this_node_random">
指定节点随机</label>
</div>
<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>
</div>
<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':''; ?>
value="ir_rule_show_tips">显示广告</label>
<label> <input type="radio" name="ir_rule" id="ir_rule_show_tips" <?php echo $infoRecommend->ir_rule=='rule_show_tips'?'checked':''; ?>
value="rule_show_tips">显示广告</label>
</div>
<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':''; ?>
value="no_show">不显示</label>
<label> <input type="radio" name="ir_rule" id="ir_rule_no_show" <?php echo $infoRecommend->ir_rule=='rule_no_show'?'checked':''; ?>
value="rule_no_show">不显示</label>
</div>
</div>

@ -52,7 +52,7 @@ class search extends CI_Controller{
//我们的接口相应时间
$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);
}

@ -83,7 +83,7 @@
<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/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('tools/old') ?>">老旧信息查询</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('accessmanage') ?>">权限设置</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>
</li>

@ -74,6 +74,34 @@
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>
</head>
@ -107,7 +135,7 @@
<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/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('tools/old') ?>">老旧信息查询</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('accessmanage') ?>">权限设置</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>
</li>
</ul>

@ -241,31 +241,7 @@
$("#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) {

@ -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>

@ -160,96 +160,19 @@
</header>
<!--PC头部 结束-->
<!--@HEAD_1@-->
<!--PC正文-->
<div class="main_content">
<div id="main_content_pc">
<div class="pc_content">
<!--@CUSTOM-CONENT@-->
</div>
<!--PC右侧广告 结束-->
<div class="right_tour">
<div class="ah_inforight">
<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>
<!--PC右侧广告 结束-->
<!--PC底部线路和文章推荐
<div class="nextcontext">
<h2 class="nexttitle">Visit Vietnam with Asia Highlights</h2>
<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
hassle-free vacation today!</p>
<div class="tournext">
<img src="https://images.chinahighlights.com/allpicture/2018/03/7a8ecffdc34d45a29b4bff77_cut_600x550_77.jpg"
class="img-responsive" alt="xxx">
<div class="nextbg">
<div class="tournextname"><a href="/vietnam/tours/best-of-vietnam-with-mekong-delta">10-Day Best of
Vietnam with Mekong Delta</a></div>
<div class="tournextbutton"><a href="/vietnam/tours/best-of-vietnam-with-mekong-delta"
rel="nofollow">Explore</a></div>
</div>
</div>
<div class="tournext">
<img src="https://images.chinahighlights.com/allpicture/2018/03/7a8ecffdc34d45a29b4bff77_cut_600x550_77.jpg"
class="img-responsive" alt="xxx">
<div class="nextbg">
<div class="tournextname"><a href="/vietnam/tours/best-of-vietnam-with-mekong-delta">10-Day Best of
Vietnam with Mekong Delta</a></div>
<div class="tournextbutton"><a href="/vietnam/tours/best-of-vietnam-with-mekong-delta"
rel="nofollow">Explore</a></div>
</div>
</div>
<div class="tournext">
<img src="https://images.chinahighlights.com/allpicture/2018/03/7a8ecffdc34d45a29b4bff77_cut_600x550_77.jpg"
class="img-responsive" alt="xxx">
<div class="nextbg">
<div class="tournextname"><a href="/vietnam/tours/best-of-vietnam-with-mekong-delta">10-Day Best of
Vietnam with Mekong Delta</a></div>
<div class="tournextbutton"><a href="/vietnam/tours/best-of-vietnam-with-mekong-delta"
rel="nofollow">Explore</a></div>
</div>
<!--@TIPS-RIGHT@-->
</div>
<h2 class="nexttitle">Related Articles</h2>
<div class="nextarticle">
<a href="/southeast-asia/coronavirus-travel-tips"> <img
src="https://images.chinahighlights.com/allpicture/2018/03/7a8ecffdc34d45a29b4bff77_cut_600x550_77.jpg"
class="img-responsive" alt="xxx"></a>
<div class="nextarticlebg">
<div class="nextarticlename">
<a href="/southeast-asia/coronavirus-travel-tips"> Is it Safe to Travel to Asia During the
COVID-19 Outbreak? </a>
</div>
</div>
</div>
<div class="nextarticle">
<a href="/southeast-asia/coronavirus-travel-tips"><img
src="https://images.chinahighlights.com/allpicture/2018/03/7a8ecffdc34d45a29b4bff77_cut_600x550_77.jpg"
class="img-responsive" alt="xxx"></a>
<div class="nextarticlebg">
<div class="nextarticlename">
<a href="/southeast-asia/coronavirus-travel-tips"> Is it Safe to Travel to Asia During the
COVID-19 Outbreak? </a>
</div>
</div>
</div>
<div class="nextarticle">
<a href="/southeast-asia/coronavirus-travel-tips"> <img
src="https://images.chinahighlights.com/allpicture/2018/03/7a8ecffdc34d45a29b4bff77_cut_600x550_77.jpg"
class="img-responsive" alt="xxx"></a>
<div class="nextarticlebg">
<div class="nextarticlename">
<a href="/southeast-asia/coronavirus-travel-tips"> Is it Safe to Travel to Asia During the
COVID-19 Outbreak? </a>
</div>
</div>
</div>
</div>
PC底部线路和文章推荐 结束-->
<!--@ARTICLENEXT@-->
</div>
<!--PC正文 结束-->
@ -278,8 +201,9 @@
...</a>
<div class="trustPilotIconBig">
<img class="img-responsive"
src="https://data.asiahighlights.com/pic/trustpilot-new-icon.png"
src="https://data.asiahighlights.com/grey.gif"
originalsrc="https://data.asiahighlights.com/pic/trustpilot-new-icon.png"
loader="lazy"
style="margin: 10px 0;">
Rated
4.8 out of 5 | Excellent
@ -295,7 +219,7 @@
<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;">
<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>
@ -338,9 +262,9 @@
<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">
<img src="https://data.asiahighlights.com/grey.gif"
originalsrc="https://data.chinahighlights.com/image/asia/asia-highlights-bottom-logo.png" width="114"
height="71" loader="lazy" 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>

@ -36,7 +36,7 @@
<a href="/"> <img src="https://data.asiahighlights.com/pic/ah-bottom-logo-mobile.png" alt="chinahighlights logo"
class="chinahighlightslogo img-responsive"></a>
<div class="topnavitailor">
<a href="/contactus/" class="infocustomize">Contact Us <i aria-hidden="true"
<a href="/contact-us.htm" class="infocustomize">Contact Us <i aria-hidden="true"
class="fa fa-caret-right toptailorarrow"></i></a>
<i class="fa fa-bars navimenu topnaviarrowdown action--open"></i>
</div>
@ -170,88 +170,11 @@
<!--@CUSTOM-CONENT@-->
<!--右侧广告-->
<div class="right_tour">
<div class="ah_inforight">
<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>
<!--右侧广告结束-->
<!--@TIPS-RIGHT@-->
</div>
<!--@ARTICLENEXT@-->
<!--底部推荐
<div class="nextcontext">
<h2 class="nexttitle">Visit Vietnam with Asia Highlights</h2>
<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 hassle-free vacation
today!</p>
<div class="tournext">
<img src="https://images.chinahighlights.com/allpicture/2018/03/7a8ecffdc34d45a29b4bff77_cut_600x550_77.jpg"
class="img-responsive" alt="xxx">
<div class="nextbg">
<div class="tournextname"><a href="/vietnam/tours/best-of-vietnam-with-mekong-delta">10-Day Best of Vietnam
with Mekong Delta</a></div>
<div class="tournextbutton"><a href="/vietnam/tours/best-of-vietnam-with-mekong-delta" rel="nofollow">Explore</a>
</div>
</div>
</div>
<div class="tournext">
<img src="https://images.chinahighlights.com/allpicture/2018/03/7a8ecffdc34d45a29b4bff77_cut_600x550_77.jpg"
class="img-responsive" alt="xxx">
<div class="nextbg">
<div class="tournextname"><a href="/vietnam/tours/best-of-vietnam-with-mekong-delta">10-Day Best of Vietnam
with Mekong Delta</a></div>
<div class="tournextbutton"><a href="/vietnam/tours/best-of-vietnam-with-mekong-delta" rel="nofollow">Explore</a>
</div>
</div>
</div>
<div class="tournext">
<img src="https://images.chinahighlights.com/allpicture/2018/03/7a8ecffdc34d45a29b4bff77_cut_600x550_77.jpg"
class="img-responsive" alt="xxx">
<div class="nextbg">
<div class="tournextname"><a href="/vietnam/tours/best-of-vietnam-with-mekong-delta">10-Day Best of Vietnam
with Mekong Delta</a></div>
<div class="tournextbutton"><a href="/vietnam/tours/best-of-vietnam-with-mekong-delta" rel="nofollow">Explore</a>
</div>
</div>
</div>
<h2 class="nexttitle">Related Articles</h2>
<div class="nextarticle">
<a href="/southeast-asia/coronavirus-travel-tips"> <img
src="https://images.chinahighlights.com/allpicture/2018/03/7a8ecffdc34d45a29b4bff77_cut_600x550_77.jpg"
class="img-responsive" alt="xxx"></a>
<div class="nextarticlebg">
<div class="nextarticlename">
<a href="/southeast-asia/coronavirus-travel-tips"> Is it Safe to Travel to Asia During the COVID-19
Outbreak? </a>
</div>
</div>
</div>
<div class="nextarticle">
<a href="/southeast-asia/coronavirus-travel-tips"><img
src="https://images.chinahighlights.com/allpicture/2018/03/7a8ecffdc34d45a29b4bff77_cut_600x550_77.jpg"
class="img-responsive" alt="xxx"></a>
<div class="nextarticlebg">
<div class="nextarticlename">
<a href="/southeast-asia/coronavirus-travel-tips"> Is it Safe to Travel to Asia During the COVID-19
Outbreak? </a>
</div>
</div>
</div>
<div class="nextarticle">
<a href="/southeast-asia/coronavirus-travel-tips"> <img
src="https://images.chinahighlights.com/allpicture/2018/03/7a8ecffdc34d45a29b4bff77_cut_600x550_77.jpg"
class="img-responsive" alt="xxx"></a>
<div class="nextarticlebg">
<div class="nextarticlename">
<a href="/southeast-asia/coronavirus-travel-tips"> Is it Safe to Travel to Asia During the COVID-19
Outbreak? </a>
</div>
</div>
</div>
</div>
底部推荐 结束-->
<!--MOBILE 正文 结束-->
@ -269,7 +192,9 @@
<div class="bottomlogoinfo">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="/aboutus/">more
...</a>
<img src="https://data.asiahighlights.com/pic/trustpilot-new-icon.png"
<img
src="https://data.asiahighlights.com/grey.gif"
originalsrc="https://data.asiahighlights.com/pic/trustpilot-new-icon.png" loader="lazy"
class="bottomlogocenter img-responsive">
Rated 4.8 out of 5 | Excellent
</div>
@ -310,7 +235,7 @@
<div class="clear"></div>
<div class="featureon">
<span class="followtitle">Featured on</span>
<img src="https://data.chinahighlights.com/pic/guide/info-template-feature-on.png" loader="lazy" width="436" height="250" originalsrc="https://data.chinahighlights.com/pic/guide/info-template-feature-on.png" alt="Social medias" class="img-responsive bottomfeature" style="opacity: 1; transition: opacity 0.5s ease-in-out 0s;">
<img src="https://data.asiahighlights.com/grey.gif" loader="lazy" width="436" height="250" originalsrc="https://data.chinahighlights.com/pic/guide/info-template-feature-on.png" alt="Social medias" class="img-responsive bottomfeature" style="opacity: 1; transition: opacity 0.5s ease-in-out 0s;">
</div>
</div>

Loading…
Cancel
Save