vizitka page

This commit is contained in:
merelendor 2022-08-29 11:03:14 +03:00
commit f7351a80c1
14 changed files with 345 additions and 209 deletions

View File

@ -90,6 +90,30 @@ function checkRequestIsLocal()
return false;
}
function checkRecaptchaRequest($token, $ipAddress)
{
$c = curl_init();
curl_setopt($c, CURLOPT_URL, "https://www.google.com/recaptcha/api/siteverify");
curl_setopt($c, CURLOPT_CONNECTTIMEOUT, 30);
curl_setopt($c, CURLOPT_TIMEOUT, 30);
curl_setopt($c, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($c, CURLOPT_SSL_VERIFYPEER, 0);
curl_setopt($c, CURLOPT_SSL_VERIFYHOST, 0);
curl_setopt($c, CURLOPT_POST, 1);
curl_setopt($c, CURLOPT_POSTFIELDS, [
"secret" => RECAPTCHA_SECRET_KEY,
"response" => $token,
"remoteip" => $ipAddress,
]);
$response = curl_exec($c) or die(curl_error($c));
curl_close($c);
$response_decoded = json_decode($response, true);
return $response_decoded['success'];
}
if($_SERVER['REMOTE_USER'] && strpos($_SERVER['REMOTE_USER'], "Bearer") > -1)
{
$token = str_replace("Bearer ", "", $_SERVER['REMOTE_USER']);
@ -567,11 +591,13 @@ switch($PARAM_1)
{
$ipAddress = GeoIp\Manager::getRealIp();
$result = GeoIp\Manager::getDataResult($ipAddress, "ru");
$arr = Array();
if(checkRecaptchaRequest($_REQUEST['recaptcha_token'], $ipAddress))
{
$_REQUEST['FORM_FIELD_REGION'] = $result->getGeoData()->regionName.", ".$result->getGeoData()->cityName;
$error = "";
$arr = Array();
$form_errors = Array();
$arParams['request'] = $_REQUEST;
$attach = false;
@ -706,7 +732,6 @@ switch($PARAM_1)
CFormResult::Mail($RESULT_ID);
}
//HERE
if($form_code === "FORM_LEASING_REQUESTS")
{
$url = API_HOST."/site/RequestFromSite";
@ -760,8 +785,15 @@ switch($PARAM_1)
$arr['status'] = "error";
$arr['errors'] = $form_errors;
}
$arr['request'] = $_REQUEST;
$arr['answers'] = $formAnswers;
}
else
{
$arr['status'] = "error";
$arr['message'] = "recaptcha_error";
}
print json_encode($arr);
die();

View File

@ -56,10 +56,11 @@ function form_leasing_request_submit()
formData.append("FORM_FIELD_TERM", $("#FORM_FIELD_TERM").val() ? $("#FORM_FIELD_TERM").val() : "");
formData.append("FORM_FIELD_REDEMPTION", $("#FORM_FIELD_REDEMPTION").val() ? $("#FORM_FIELD_REDEMPTION").val() : "");
$.ajax(
grecaptcha.ready(function()
{
url: "/api/forms/", type: 'POST', success: function(response)
grecaptcha.execute($("meta[name=recaptcha_site_key]").attr("content"), { action: 'submit' }).then(function(token)
{
<<<<<<< HEAD
if(response.status == "complete")
{
$("#form_leasing_process").css("display","none");
@ -81,18 +82,50 @@ function form_leasing_request_submit()
}
else if(response.status == "error")
=======
formData.append("recaptcha_token", token);
$.ajax(
>>>>>>> 096fd217ce378867757d3998e9b6669473b0db85
{
url: "/api/forms/", type: 'POST', success: function(response)
{
if(response.status === "complete")
{
$("#form_leasing_info").css("display", "none");
$("#form_leasing_process").css("display","none");
$("#form_leasing_success").css("display","flex");
$("#send_button_text").css("display", "block");
$("#send_button_spinner").css("display", "none");
leasing_form_submitting = false;
}
else if(response.status === "error")
{
for(var i in response.errors)
{
$("#form_leasing_request").find("*[name="+response.errors[i]+"]").addClass("error");
}
if(response.message === "recaptcha_error")
{
$("#form_leasing_info").css("display", "none");
$("#form_leasing_process").css("display","none");
$("#form_leasing_fail").css("display","flex").parent().css("backgroundColor", "#2C2D2E");
}
$("#send_button_text").css("display", "block");
$("#send_button_spinner").css("display", "none");
leasing_form_submitting = false;
}
}
}, data: formData,
dataType: "json",
cache: false, contentType: false, processData: false
});
});
});
}
}
}

View File

@ -84,6 +84,10 @@ $this->setFrameMode(true);
<div id="form_leasing_success" style="min-height: 400px; align-items: center; justify-content: center; display: none;">
<p style="color: #fff; font-size: 24px; line-height: 34px;">Благодарим Вас за обращение, наши специалисты свяжутся с Вами в ближайшее время.</p>
</div>
<div id="form_leasing_fail" style="background-color: #2C2D2E; min-height: 400px; align-items: center; justify-content: center; display: none;">
<p style="color: #fff; font-size: 24px; line-height: 34px;">Сожалеем, запросы, отправляемые с Вашего устройства похожи на автоматические. Пожалуйста, воспользуйтесь другим браузером/подключением или попробуйте позднее.</p>
</div>
<div id="form_leasing_info" style="position:absolute; left:10px; bottom:9px; font-size: 9px; color: #FFF; opacity: 0.5; line-height:11px;">защита от спама reCAPTCHA<br><a href="https://policies.google.com/privacy" target="_blank" style="font-size: 9px; color: #FFF; text-decoration:underline;">Конфиденциальность</a> - <a href="https://policies.google.com/terms" target="_blank" style="font-size: 9px; color: #FFF; text-decoration:underline;">Условия использования</a>
</form>
</div>
</div>

View File

@ -56,10 +56,11 @@ function form_leasing_request_submit()
formData.append("FORM_FIELD_TERM", $("#FORM_FIELD_TERM").val() ? $("#FORM_FIELD_TERM").val() : "");
formData.append("FORM_FIELD_REDEMPTION", $("#FORM_FIELD_REDEMPTION").val() ? $("#FORM_FIELD_REDEMPTION").val() : "");
$.ajax(
grecaptcha.ready(function()
{
url: "/api/forms/", type: 'POST', success: function(response)
grecaptcha.execute($("meta[name=recaptcha_site_key]").attr("content"), { action: 'submit' }).then(function(token)
{
<<<<<<< HEAD
if(response.status == "complete")
{
$("#form_leasing_process").css("display","none");
@ -81,18 +82,50 @@ function form_leasing_request_submit()
}
else if(response.status == "error")
=======
formData.append("recaptcha_token", token);
$.ajax(
>>>>>>> 096fd217ce378867757d3998e9b6669473b0db85
{
url: "/api/forms/", type: 'POST', success: function(response)
{
if(response.status === "complete")
{
$("#form_leasing_info").css("display", "none");
$("#form_leasing_process").css("display","none");
$("#form_leasing_success").css("display","flex");
$("#send_button_text").css("display", "block");
$("#send_button_spinner").css("display", "none");
leasing_form_submitting = false;
}
else if(response.status === "error")
{
for(var i in response.errors)
{
$("#form_leasing_request").find("*[name="+response.errors[i]+"]").addClass("error");
}
if(response.message === "recaptcha_error")
{
$("#form_leasing_info").css("display", "none");
$("#form_leasing_process").css("display","none");
$("#form_leasing_fail").css("display","flex").parent().css("backgroundColor", "#2C2D2E");
}
$("#send_button_text").css("display", "block");
$("#send_button_spinner").css("display", "none");
leasing_form_submitting = false;
}
}
}, data: formData,
dataType: "json",
cache: false, contentType: false, processData: false
});
});
});
}
}
}

View File

@ -55,7 +55,7 @@ $this->setFrameMode(true);
<p>Напишите на <a href="mailto:buy@evoleasing.ru">buy@evoleasing.ru</a> или заполните форму</p>
</div>
<form id="form_leasing_request">
<div id="form_leasing_process">
<div id="form_leasing_process" style="position:relative;">
<div class="form_field" id="FORM_FIELD_FIO_wrapper">
<input type="text" id="FORM_FIELD_FIO" name="FORM_FIELD_FIO" value="" placeholder="Имя *"/>
</div>
@ -84,6 +84,10 @@ $this->setFrameMode(true);
<div id="form_leasing_success" style="min-height: 400px; align-items: center; justify-content: center; display: none;">
<p style="color: #fff; font-size: 24px; line-height: 34px;">Благодарим Вас за обращение, наши специалисты свяжутся с Вами в ближайшее время.</p>
</div>
<div id="form_leasing_fail" style="background-color: #2C2D2E; min-height: 400px; align-items: center; justify-content: center; display: none;">
<p style="color: #fff; font-size: 24px; line-height: 34px;">Сожалеем, запросы, отправляемые с Вашего устройства похожи на автоматические. Пожалуйста, воспользуйтесь другим браузером/подключением или попробуйте позднее.</p>
</div>
<div id="form_leasing_info" style="position:absolute; left:10px; bottom:9px; font-size: 9px; color: #FFF; opacity: 0.5; line-height:11px;">защита от спама reCAPTCHA<br><a href="https://policies.google.com/privacy" target="_blank" style="font-size: 9px; color: #FFF; text-decoration:underline;">Конфиденциальность</a> - <a href="https://policies.google.com/terms" target="_blank" style="font-size: 9px; color: #FFF; text-decoration:underline;">Условия использования</a>
</form>
</div>
</div>

View File

@ -59,12 +59,19 @@ function form_vacancy_submit()
formData.append("FORM_FIELD_PAGE_NAME", document.title);
formData.append("FORM_FIELD_PAGE_URL", window.location.href);
grecaptcha.ready(function()
{
grecaptcha.execute($("meta[name=recaptcha_site_key]").attr("content"), { action: 'submit' }).then(function(token)
{
formData.append("recaptcha_token", token);
$.ajax(
{
url: "/api/forms/", type: 'POST', success: function(response)
{
if(response.status == "complete")
if(response.status === "complete")
{
$("#form_vacancy_info").css("display", "none");
$("#form_vacancy_process").css("display","none");
$("#form_vacancy_success").css("display","flex");
@ -73,19 +80,31 @@ function form_vacancy_submit()
vacancy_form_submitting = false;
}
else if(response.status == "error")
else if(response.status === "error")
{
for(var i in response.errors)
{
$("#form_vacancy").find("*[name="+response.errors[i]+"]").addClass("error");
}
if(response.message === "recaptcha_error")
{
$("#form_vacancy_info").css("display", "none");
$("#form_vacancy_process").css("display","none");
$("#form_vacancy_fail").css("display","flex").parent().css("backgroundColor", "#2C2D2E");
}
$("#send_button_text").css("display", "block");
$("#send_button_spinner").css("display", "none");
vacancy_form_submitting = false;
}
}
}, data: formData,
dataType: "json",
cache: false, contentType: false, processData: false
});
});
});
}
}
}

View File

@ -101,6 +101,10 @@ $this->setFrameMode(true);
<div id="form_vacancy_success" style="min-height: 400px; align-items: center; justify-content: center; display: none;">
<p style="color: #fff; font-size: 24px; line-height: 34px;">Благодарим Вас за обращение, наши специалисты свяжутся с Вами в ближайшее время.</p>
</div>
<div id="form_vacancy_fail" style="background-color: #2C2D2E; min-height: 400px; align-items: center; justify-content: center; display: none;">
<p style="color: #fff; font-size: 24px; line-height: 34px;">Сожалеем, запросы, отправляемые с Вашего устройства похожи на автоматические. Пожалуйста, воспользуйтесь другим браузером/подключением или попробуйте позднее.</p>
</div>
<div id="form_vacancy_info" style="position:absolute; left:10px; bottom:9px; font-size: 9px; color: #FFF; opacity: 0.5; line-height:11px;">защита от спама reCAPTCHA<br><a href="https://policies.google.com/privacy" target="_blank" style="font-size: 9px; color: #FFF; text-decoration:underline;">Конфиденциальность</a> - <a href="https://policies.google.com/terms" target="_blank" style="font-size: 9px; color: #FFF; text-decoration:underline;">Условия использования</a>
</form>
</div>
</div>

View File

@ -3438,3 +3438,6 @@ main .dropdown_blocks_list .dropdown_block .block_body .transaction_detail ul li
margin-right: auto;
}
}
.grecaptcha-badge {
visibility: hidden;
}

File diff suppressed because one or more lines are too long

View File

@ -3738,3 +3738,5 @@ main .dropdown_blocks_list .dropdown_block .block_body {
}
}
}
.grecaptcha-badge { visibility: hidden; }

View File

@ -81,9 +81,9 @@
<button class="close" area-label="Закрыть"></button>
<p>Мы <a href="/cookies/">используем cookies</a> для улучшения использования сайта.</p>
</div>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.6.0/jquery.min.js"></script>
<script src="https://unpkg.com/embla-carousel/embla-carousel.umd.js"></script>
<script src="https://www.google.com/recaptcha/api.js?render=<?= RECAPTCHA_SITE_KEY; ?>"></script>
<script src="/local/templates/evolution/js/rangeslider.min.js"></script>
<script src="/local/templates/evolution/js/main.js"></script>
</body>

View File

@ -49,6 +49,7 @@ IncludeTemplateLangFile(__FILE__);
<meta property="og:description" content="" />
<meta name="theme-color" content="#1C01A9" />
<meta name="recaptcha_site_key" content="<?= RECAPTCHA_SITE_KEY; ?>" />
</head>
<body>
<!-- Google Tag Manager (noscript) -->

View File

@ -51,8 +51,10 @@ document.addEventListener("DOMContentLoaded", function (event) {
let newsSliderOption = {
loop: false,
dragFree: true,
slidesToScroll: 2,
slidesToScroll: 1,
containScroll: "trimSnaps",
align: "center",
skipSnaps: false
};
const prevBtn = newsWrapper.querySelector(".prev");
const nextBtn = newsWrapper.querySelector(".next");

View File

@ -1 +0,0 @@
PHP Fatal error: require(): Failed opening required '/bitrix/header.php' (include_path='.:/usr/share/pear:/usr/share/php') in /home/bitrix/www/local/yasprav.php on line 3