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

hotfix/paypal-note
candice 5 years ago
commit 78af537cec

@ -935,6 +935,15 @@ class Information extends CI_Controller
$breadcrumb_structured_data_content,
$template);
$tour_form_content = $this->load->view(
$template_path . '-gh-tour-form',
array('information' => $information),
true);
$template = str_replace(
'<!--@TOUR-FORM-TAG@-->',
$tour_form_content,
$template);
//替换模板中的标签
$template = str_replace('<!--@TITLE@-->', $information->ic_seo_title, $template);
$template = str_replace('<!--@DESCRIPTION@-->', $information->ic_seo_description, $template);

@ -155,72 +155,75 @@ height="0" width="0" style="display:none;visibility:hidden"></iframe></noscript>
<div class="form_content_bg"></div>
<div class="form_content">
<div class="formtitle">
<h2>Why Travel with Global Highlights</h2>
<ul>
<li class="tailormade"><strong>Tailor-made experience:</strong> All of your ideas/needs will be carefully considered to create your ideal trip.</li>
<li class="worryfree"><strong>Worry-free planning: </strong>Every step of your trip, you will be looked after by your 1:1 travel consultant based in Asia.</li>
<li class="norisk"><strong>No-risk booking:</strong> We refund as much as we can and adapt flexibly to unexpected changes.</li>
</ul>
</div>
<div class="ghwhyus">
<form action="/form/save" id="booking_form_inquiry" method="post" name="booking_form_inquiry">
<div class="InquiryFormBox">
<div class="FieldSet">
<p><input class="FullName" data-required="Please enter your fullname" id="realname" name="realname" placeholder="Full name" required="" type="text" value=""> <span class="hidden" id="realname_errmsg"></span></p>
<p><input class="EmailAddress" data-required="Please enter your e-mail address" data-pattern="Expecting an e-mail address" id="email" name="email" pattern="^[\w\-\.]+@[\w\-\.]+(\.\w+)+$" placeholder="Email" required="" type="text" value=""> <span class="hidden" id="email_errmsg"></span></p>
<p><input class="InquiryCalendar hasDatepicker" data-min-date="7" id="starting_date" name="starting_date" placeholder="Starting date" required="" type="date" value="" min="2021-11-02"> <span class="hidden" id="starting_date_errmsg"></span></p>
<p><input class="Inquiryphone hasDatepicker" name="phone" placeholder="Phone or other ways to contact you" required="" type="text" value=""> </p>
<textarea id="additionalrequirements" name="additionalrequirements" placeholder="How many people, hotel style and changes to make... " style="margin-bottom:20px;"></textarea>
<input name="nullemail" placeholder="Your alternative email?" type="hidden" value="">
<input name="cli_no" type="hidden" value="">
<input name="cli_sn" type="hidden" value="">
<input id="url" name="url" type="hidden" value="file:///D:/globalhighlights.com/design/top-nav.html">
<input id="sourcetype" name="sourcetype" type="hidden" value="32113">
<button class="sendButton" id="submit_booking_form_inquiry" name="booking_form_inquiry_list" type="submit">
Send My Inquiry
</button>
</div>
<div class="form_content">
<div class="formtitle">
<h2>Why Travel with Global Highlights</h2>
<ul>
<li class="tailormade"><strong>Tailor-made experience:</strong> All of your ideas/needs will be carefully
considered to create your ideal trip.</li>
<li class="worryfree"><strong>Worry-free planning: </strong>Every step of your trip, you will be looked
after by your 1:1 travel consultant based in Asia.</li>
<li class="norisk"><strong>No-risk booking:</strong> We refund as much as we can and adapt flexibly to
unexpected changes.</li>
</ul>
</div>
<div class="ghwhyus">
<form action="/form/save" method="post">
<div class="InquiryFormBox">
<div class="FieldSet">
<p><input class="FullName" data-required="Please enter your fullname" id="realname" name="realname"
placeholder="Full name" required="" type="text"></p>
<p><input class="EmailAddress" data-required="Please enter your e-mail address"
data-pattern="Expecting an e-mail address" id="email" name="email" pattern="^[\w\-\.]+@[\w\-\.]+(\.\w+)+$"
placeholder="Email" required type="text"></p>
<p><input class="InquiryCalendar" data-min-date="7" id="starting_date" name="starting_date"
placeholder="Starting date" required type="date"></p>
<p><input class="Inquiryphone" name="phone" placeholder="Phone or other ways to contact you"
type="text"> </p>
<textarea id="additionalrequirements" name="additionalrequirements"
placeholder="How many people, hotel style and changes to make... " style="margin-bottom:20px;"></textarea>
<input name="nullemail" placeholder="Your alternative email?" type="hidden">
<input id="url" name="url" type="hidden">
<input id="sourcetype" name="sourcetype" type="hidden" value="32113">
<button class="sendButton" type="submit">
Send My Inquiry
</button>
</div>
</div>
</form>
<script>
(function() {
String.prototype.lpad = function(padString, length) {
var str = this;
while (str.length < length)
str = padString + str;
return str;
}
document.getElementById("url").value = (window.location.href);
const dateOffset = document.getElementById('starting_date').dataset.minDate;
const today = new Date();
const startMinDate = new Date(today.setDate(today.getDate() + parseInt(dateOffset)));
const minDateStr = startMinDate.getFullYear() + '-' + (startMinDate.getMonth() + 1).toString().lpad('0', 2) + '-' + startMinDate.getDate().toString().lpad('0', 2);
document.getElementById('starting_date').setAttribute("min", minDateStr);
const required_fields = document.querySelectorAll(":required");
required_fields.forEach(element => {
element.addEventListener("input", function(event) {
if (element.validity.valueMissing) {
element.setCustomValidity(element.dataset.required);
} else if (element.validity.patternMismatch) {
element.setCustomValidity(element.dataset.pattern);
} else {
element.setCustomValidity("");
}
});
});
})();
</script>
</div>
</div>
</div>
</div>
<script>
(function () {
String.prototype.lpad = function (padString, length) {
var str = this;
while (str.length < length)
str = padString + str;
return str;
}
document.getElementById("url").value = (window.location.href);
const dateOffset = document.getElementById('starting_date').dataset.minDate;
const today = new Date();
const startMinDate = new Date(today.setDate(today.getDate() + parseInt(dateOffset)));
const minDateStr =
startMinDate.getFullYear() + '-' +
(startMinDate.getMonth() + 1).toString().lpad('0', 2) + '-' +
startMinDate.getDate().toString().lpad('0', 2);
document.getElementById('starting_date').setAttribute("min", minDateStr);
const required_fields = document.querySelectorAll(":required");
required_fields.forEach(element => {
element.addEventListener("input", function(event) {
if (element.validity.valueMissing) {
element.setCustomValidity(element.dataset.required);
} else if (element.validity.patternMismatch) {
element.setCustomValidity(element.dataset.pattern);
} else {
element.setCustomValidity("");
}
});
});
})();
</script>
</div>
@ -312,28 +315,30 @@ height="0" width="0" style="display:none;visibility:hidden"></iframe></noscript>
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>
<link rel="javascript" href=" https://data.globalhighlights.com/js/swiper-bundle-7.0.9.min.js">
<script>
((doc, buttonId, contentId) => {
doc.addEventListener('DOMContentLoaded', () => {
var moreButton = doc.getElementById(buttonId);
var contentDiv = doc.getElementById(contentId);
if (moreButton === null || contentDiv === null) {
console.error('CHECK MORE config error');
return;
}
moreButton.addEventListener('click', () => {
moreButton.classList.add('gh-animate-fade-out');
setTimeout(() => {
moreButton.classList.add('gh-display-none');
}, 80);
contentDiv.classList.remove('gh-display-none');
setTimeout(() => {
contentDiv.classList.remove('gh-animate-slide-down');
contentDiv.classList.add('gh-animate-slide-up');
}, 0);
});
});
})(document, 'checkMoreButton', 'moreContentDiv');
</script>
((doc, buttonId, contentId, lastContentId) => {
doc.addEventListener('DOMContentLoaded', () => {
var moreButton = doc.getElementById(buttonId);
var contentDiv = doc.getElementById(contentId);
var lastContentDiv = doc.getElementById(lastContentId);
if (moreButton === null || contentDiv === null || lastContentDiv === null) {
console.warn('CHECK MORE config error');
return;
}
moreButton.addEventListener('click', () => {
moreButton.classList.add('gh-animate-fade-out');
setTimeout(() => {
moreButton.classList.add('gh-display-none');
}, 80);
contentDiv.classList.remove('gh-display-none');
lastContentDiv.classList.add('normal_content');
setTimeout(() => {
contentDiv.classList.remove('gh-animate-slide-down');
contentDiv.classList.add('gh-animate-slide-up');
}, 0);
});
});
})(document, 'checkMoreButton', 'moreContentDiv', 'lastContentDiv');
</script>
<!--@IN-ARTICLE-GOOGLE@-->
<!--@ADDTHIS-WIDGET@-->
<script type="application/ld+json">

@ -0,0 +1,69 @@
<div class="form_content">
<div class="formtitle">
<h2>Why Travel with Global Highlights</h2>
<ul>
<li class="tailormade"><strong>Tailor-made experience:</strong> All of your ideas/needs will be carefully
considered to create your ideal trip.</li>
<li class="worryfree"><strong>Worry-free planning: </strong>Every step of your trip, you will be looked
after by your 1:1 travel consultant based in Asia.</li>
<li class="norisk"><strong>No-risk booking:</strong> We refund as much as we can and adapt flexibly to
unexpected changes.</li>
</ul>
</div>
<div class="ghwhyus">
<form action="/form/save" method="post">
<div class="InquiryFormBox">
<div class="FieldSet">
<p><input class="FullName" data-required="Please enter your fullname" id="realname" name="realname"
placeholder="Full name" required="" type="text"></p>
<p><input class="EmailAddress" data-required="Please enter your e-mail address"
data-pattern="Expecting an e-mail address" id="email" name="email" pattern="^[\w\-\.]+@[\w\-\.]+(\.\w+)+$"
placeholder="Email" required type="text"></p>
<p><input class="InquiryCalendar" data-min-date="7" id="starting_date" name="starting_date"
placeholder="Starting date" required type="date"></p>
<p><input class="Inquiryphone" name="phone" placeholder="Phone or other ways to contact you"
type="text"> </p>
<textarea id="additionalrequirements" name="additionalrequirements"
placeholder="How many people, hotel style and changes to make... " style="margin-bottom:20px;"></textarea>
<input name="nullemail" placeholder="Your alternative email?" type="hidden">
<input id="url" name="url" type="hidden">
<input id="sourcetype" name="sourcetype" type="hidden" value="32113">
<button class="sendButton" type="submit">
Send My Inquiry
</button>
</div>
</div>
</form>
</div>
</div>
<script>
(function () {
String.prototype.lpad = function (padString, length) {
var str = this;
while (str.length < length)
str = padString + str;
return str;
}
document.getElementById("url").value = (window.location.href);
const dateOffset = document.getElementById('starting_date').dataset.minDate;
const today = new Date();
const startMinDate = new Date(today.setDate(today.getDate() + parseInt(dateOffset)));
const minDateStr =
startMinDate.getFullYear() + '-' +
(startMinDate.getMonth() + 1).toString().lpad('0', 2) + '-' +
startMinDate.getDate().toString().lpad('0', 2);
document.getElementById('starting_date').setAttribute("min", minDateStr);
const required_fields = document.querySelectorAll(":required");
required_fields.forEach(element => {
element.addEventListener("input", function(event) {
if (element.validity.valueMissing) {
element.setCustomValidity(element.dataset.required);
} else if (element.validity.patternMismatch) {
element.setCustomValidity(element.dataset.pattern);
} else {
element.setCustomValidity("");
}
});
});
})();
</script>

@ -116,72 +116,74 @@ height="0" width="0" style="display:none;visibility:hidden"></iframe></noscript>
<!--移动底部-->
<div class="form_content">
<div class="formtitle">
<h2>Why Travel with Global Highlights</h2>
<ul>
<li class="tailormade"><strong>Tailor-made experience:</strong> All of your ideas/needs will be carefully considered to create your ideal trip.</li>
<li class="worryfree"><strong>Worry-free planning: </strong>Every step of your trip, you will be looked after by your 1:1 travel consultant based in Asia.</li>
<li class="norisk"><strong>No-risk booking:</strong> We refund as much as we can and adapt flexibly to unexpected changes.</li>
</ul>
</div>
<div class="ghwhyus">
<form action="/form/save" id="booking_form_inquiry" method="post" name="booking_form_inquiry">
<div class="InquiryFormBox">
<div class="FieldSet">
<p><input class="FullName" data-required="Please enter your fullname" id="realname" name="realname" placeholder="Full name" required="" type="text" value=""> <span class="hidden" id="realname_errmsg"></span></p>
<p><input class="EmailAddress" data-required="Please enter your e-mail address" data-pattern="Expecting an e-mail address" id="email" name="email" pattern="^[\w\-\.]+@[\w\-\.]+(\.\w+)+$" placeholder="Email" required="" type="text" value=""> <span class="hidden" id="email_errmsg"></span></p>
<p><input class="InquiryCalendar hasDatepicker" data-min-date="7" id="starting_date" name="starting_date" placeholder="Starting date" required="" type="date" value="" min="2021-11-02"> <span class="hidden" id="starting_date_errmsg"></span></p>
<p><input class="Inquiryphone hasDatepicker" name="phone" placeholder="Phone or other ways to contact you" required="" type="text" value=""> </p>
<textarea id="additionalrequirements" name="additionalrequirements" placeholder="How many people, hotel style and changes to make... " style="margin-bottom:20px;"></textarea>
<input name="nullemail" placeholder="Your alternative email?" type="hidden" value="">
<input name="cli_no" type="hidden" value="">
<input name="cli_sn" type="hidden" value="">
<input id="url" name="url" type="hidden" value="file:///D:/globalhighlights.com/design/top-nav.html">
<input id="sourcetype" name="sourcetype" type="hidden" value="32113">
<button class="sendButton" id="submit_booking_form_inquiry" name="booking_form_inquiry_list" type="submit">
Send My Inquiry
</button>
</div>
<div class="formtitle">
<h2>Why Travel with Global Highlights</h2>
<ul>
<li class="tailormade"><strong>Tailor-made experience:</strong> All of your ideas/needs will be carefully
considered to create your ideal trip.</li>
<li class="worryfree"><strong>Worry-free planning: </strong>Every step of your trip, you will be looked
after by your 1:1 travel consultant based in Asia.</li>
<li class="norisk"><strong>No-risk booking:</strong> We refund as much as we can and adapt flexibly to
unexpected changes.</li>
</ul>
</div>
<div class="ghwhyus">
<form action="/form/save" method="post">
<div class="InquiryFormBox">
<div class="FieldSet">
<p><input class="FullName" data-required="Please enter your fullname" id="realname" name="realname"
placeholder="Full name" required="" type="text"></p>
<p><input class="EmailAddress" data-required="Please enter your e-mail address"
data-pattern="Expecting an e-mail address" id="email" name="email" pattern="^[\w\-\.]+@[\w\-\.]+(\.\w+)+$"
placeholder="Email" required type="text"></p>
<p><input class="InquiryCalendar" data-min-date="7" id="starting_date" name="starting_date"
placeholder="Starting date" required type="date"></p>
<p><input class="Inquiryphone" name="phone" placeholder="Phone or other ways to contact you"
type="text"> </p>
<textarea id="additionalrequirements" name="additionalrequirements"
placeholder="How many people, hotel style and changes to make... " style="margin-bottom:20px;"></textarea>
<input name="nullemail" placeholder="Your alternative email?" type="hidden">
<input id="url" name="url" type="hidden">
<input id="sourcetype" name="sourcetype" type="hidden" value="32113">
<button class="sendButton" type="submit">
Send My Inquiry
</button>
</div>
</div>
</form>
<script>
(function() {
String.prototype.lpad = function(padString, length) {
var str = this;
while (str.length < length)
str = padString + str;
return str;
}
document.getElementById("url").value = (window.location.href);
const dateOffset = document.getElementById('starting_date').dataset.minDate;
const today = new Date();
const startMinDate = new Date(today.setDate(today.getDate() + parseInt(dateOffset)));
const minDateStr = startMinDate.getFullYear() + '-' + (startMinDate.getMonth() + 1).toString().lpad('0', 2) + '-' + startMinDate.getDate().toString().lpad('0', 2);
document.getElementById('starting_date').setAttribute("min", minDateStr);
const required_fields = document.querySelectorAll(":required");
required_fields.forEach(element => {
element.addEventListener("input", function(event) {
if (element.validity.valueMissing) {
element.setCustomValidity(element.dataset.required);
} else if (element.validity.patternMismatch) {
element.setCustomValidity(element.dataset.pattern);
} else {
element.setCustomValidity("");
}
});
});
})();
</script>
</div>
</div>
</div>
</div>
<script>
(function () {
String.prototype.lpad = function (padString, length) {
var str = this;
while (str.length < length)
str = padString + str;
return str;
}
document.getElementById("url").value = (window.location.href);
const dateOffset = document.getElementById('starting_date').dataset.minDate;
const today = new Date();
const startMinDate = new Date(today.setDate(today.getDate() + parseInt(dateOffset)));
const minDateStr =
startMinDate.getFullYear() + '-' +
(startMinDate.getMonth() + 1).toString().lpad('0', 2) + '-' +
startMinDate.getDate().toString().lpad('0', 2);
document.getElementById('starting_date').setAttribute("min", minDateStr);
const required_fields = document.querySelectorAll(":required");
required_fields.forEach(element => {
element.addEventListener("input", function(event) {
if (element.validity.valueMissing) {
element.setCustomValidity(element.dataset.required);
} else if (element.validity.patternMismatch) {
element.setCustomValidity(element.dataset.pattern);
} else {
element.setCustomValidity("");
}
});
});
})();
</script>
<footer>
@ -259,28 +261,30 @@ height="0" width="0" style="display:none;visibility:hidden"></iframe></noscript>
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>
<script>
((doc, buttonId, contentId) => {
doc.addEventListener('DOMContentLoaded', () => {
var moreButton = doc.getElementById(buttonId);
var contentDiv = doc.getElementById(contentId);
if (moreButton === null || contentDiv === null) {
console.error('CHECK MORE config error');
return;
}
moreButton.addEventListener('click', () => {
moreButton.classList.add('gh-animate-fade-out');
setTimeout(() => {
moreButton.classList.add('gh-display-none');
}, 80);
contentDiv.classList.remove('gh-display-none');
setTimeout(() => {
contentDiv.classList.remove('gh-animate-slide-down');
contentDiv.classList.add('gh-animate-slide-up');
}, 0);
});
});
})(document, 'checkMoreButton', 'moreContentDiv');
</script>
((doc, buttonId, contentId, lastContentId) => {
doc.addEventListener('DOMContentLoaded', () => {
var moreButton = doc.getElementById(buttonId);
var contentDiv = doc.getElementById(contentId);
var lastContentDiv = doc.getElementById(lastContentId);
if (moreButton === null || contentDiv === null || lastContentDiv === null) {
console.warn('CHECK MORE config error');
return;
}
moreButton.addEventListener('click', () => {
moreButton.classList.add('gh-animate-fade-out');
setTimeout(() => {
moreButton.classList.add('gh-display-none');
}, 80);
contentDiv.classList.remove('gh-display-none');
lastContentDiv.classList.add('normal_content');
setTimeout(() => {
contentDiv.classList.remove('gh-animate-slide-down');
contentDiv.classList.add('gh-animate-slide-up');
}, 0);
});
});
})(document, 'checkMoreButton', 'moreContentDiv', 'lastContentDiv');
</script>
<!--@PRODUCT-JS@-->
<!--@ADDON-JS@-->
<!--@IN-ARTICLE-GOOGLE@-->

Loading…
Cancel
Save