$isLowPhpVersion = version_compare(phpversion(), '8.0.0', '<');
if ($isLowPhpVersion) {
$errorMessage = 'Module require php 8.0 or higher.';
return false;
}
global $APPLICATION;
\Bitrix\Main\Localization\Loc::loadMessages(__FILE__);
$isLowPhpVersion = version_compare(phpversion(), '8.0.0', '<');
if ($isLowPhpVersion) {
$APPLICATION->ThrowException(\Bitrix\Main\Localization\Loc::getMessage('CHECK_PHP_VERSION_ERROR'));
return false;
}
&sortby = `{"CAST(replace(option_01,',',char(46)) AS DECIMAL(13,3))": "ASC"}`
<script>
// Обрабочик для отслеживания готовности страницы:
document.addEventListener('DOMContentLoaded', function() {
// Ставим на форму обработчик срабатывающий при отправке формы:
document.querySelector('form').addEventListener('submit', async function() {
var this_form = this; // Получаем ссылку на форму
event.preventDefault(); // Отменяем обычную отправку
// Блокируем нажатия по форме:
this_form.style.opacity = '0.5';
this_form.style.pointerEvents = 'none';
// Блок кода для отправки формы:
try {
// Отправляем форму без перезагрузки страницы и выводим ответ сервера на месте формы, как обычный текст:
this_form.outerHTML = await (await fetch(this_form.action, { method: 'POST', body: new FormData(this_form) })).text();
}
// Блок кода для обработки ошибок:
catch(err) {
// Вывод ошибки, если вдруг отправка неудачная:
console.error(err); this_form.outerHTML = err.toString();
// Разблокируем форму:
this_form.style.opacity = '';
this_form.style.pointerEvents = '';
}
});
});
</script>
const select = document.querySelector('[name="auto_model"]');
const groups = [...select.options].reduce((acc, n) => (
n.value && (acc[n.dataset.mark] = acc[n.dataset.mark] || []).push(n),
acc
), {});
Object.entries(groups).forEach(n => {
const optgroup = document.createElement('optgroup');
optgroup.label = n[0];
optgroup.append(...n[1]);
select.append(optgroup);
});
$("#submit").click(function(){
jQuery.post("/shop/add/",{"product_id":"380","quantity":a1}).done(function(){
jQuery.post("/shop/add/",{"product_id":"381","quantity":a2}).done(function(){
jQuery.post("/shop/add/",{"product_id":"382","quantity":a3})})});
});
@EVAL return $modx->runSnippet('snippet-name', array('key'=>'value'));
Доступ к специальному разделу должен осуществляться с главной (основной) страницы Сайта, а также из основного навигационного меню Сайта.
$(window).resize(function () {
var newWidth = $(window).width();
var newHeight = $(window).height(),
});
$(window).height(); // вернет 638
$(document).height(); // вернет 4575
Возможно, что частота обновления favicon.ico сайта зависит от часты обновления самого сайта. Чем чаще на нем появляется свежая информация, тем чаще на неё заходят разные роботы. Для сбора иконок у Яндекса существует отдельный робот. В логах его можно обнаружить примерно в таком виде:
Mozilla/5.0 (compatible; YandexFavicons/1.0; +yandex.com/bots)
По отзывам некоторых пользователей робот Яндекса для сбора favicon.ico заходит на сайты раз в 1-3 месяца.