Перестал работать счётчик
Добрый день
На сайте имеется рандомный показатель цифр из заданного диапазона.
В разделе Ресурсы — ДопПоля — Счётчик — можно было ввести диапазон Х, У и при каждом обновлении сайта цифры менялись.
Теперь при изменении диапазона Х, У — цифры остаются одни и те же: 20, 10, 5, 2, 19
Если в разделе Допполя менять названия полей — они обновляются.
В чём может быть проблема?
Только разбираюсь — уровень новичок — попробую приложить всё, что на мой взгляд имеет отношение.
Если чего-то не хватает моу ещё прислать
сайт
раздел с полями в панели управления
код из шаблона
На сайте имеется рандомный показатель цифр из заданного диапазона.
В разделе Ресурсы — ДопПоля — Счётчик — можно было ввести диапазон Х, У и при каждом обновлении сайта цифры менялись.
Теперь при изменении диапазона Х, У — цифры остаются одни и те же: 20, 10, 5, 2, 19
Если в разделе Допполя менять названия полей — они обновляются.
В чём может быть проблема?
Только разбираюсь — уровень новичок — попробую приложить всё, что на мой взгляд имеет отношение.
Если чего-то не хватает моу ещё прислать
srk35.ru
счётчик на сайтераздел с полями в панели управления
код из шаблона
<section class="counters">
<div class="polygon-wrap pg2"><div class="polygon"></div></div>
<div class="container">
{$_modx->runSnippet('!AjaxForm@ajaxform', [
'form'=>'form1.form',
'hooks'=>'email',
'emailSubject'=>$_modx->resource.form_01,
'validate'=>'phone:required,name,extra:blank',
'emailTpl'=>'emailTpl',
'emailTo'=>$_modx->resource.manager,
'emailFromName'=>$sn,
])}
{'!setRandom' | snippet}
<div class="counters-group flex-wrapper flex-hl-space-btw flex-vl-top">
<div class="counter-item i1">
<div class="item-content">
<p class="digit" id="dig1">{$_modx->getPlaceholder('r1')}</p>
<p>{$_modx->resource.count_01_text}</p>
</div>
</div>
<div class="counter-item i2">
<div class="item-content">
<p class="digit" id="dig2">{$_modx->getPlaceholder('r2')}</p>
<p>{$_modx->resource.count_02_text}</p>
</div>
</div>
<div class="counter-item i3">
<div class="item-content">
<p class="digit" id="dig3">{$_modx->getPlaceholder('r3')}</p>
<p>{$_modx->resource.count_03_text}</p>
</div>
</div>
<div class="counter-item i4">
<div class="item-content">
<p class="digit" id="dig4">{$_modx->getPlaceholder('r4')}</p>
<p>{$_modx->resource.count_04_text}</p>
</div>
</div>
<div class="counter-item i5">
<div class="item-content">
<p class="digit" id="dig5">{$_modx->getPlaceholder('r5')}</p>
<p>{$_modx->resource.count_05_text}</p>
</div>
</div>
</div>
</div>
</section>
код сниппета setRandom <?php
function saveOpt($modx, $opt, $val){
$d = explode(',',$val);
$value = rand($d[0], $d[1]);
$Setting = $modx->getObject('modSystemSetting', $opt);
$Setting->set('value', $value);
$Setting->save();
return $value;
}
$time = 0;
$r_time = (int)$modx->getOption('r_time');
$r_1= (int)$modx->getOption('r1');
if(time() > $r_time || (int)$r_1 == 0 || $r_time == 0){
$t = time();
$r1 = $modx->resource->getTVvalue(36);
$r2 = $modx->resource->getTVvalue(38);
$r3 = $modx->resource->getTVvalue(40);
$r4 = $modx->resource->getTVvalue(42);
$r5 = $modx->resource->getTVvalue(44);
saveOpt($modx, 'r1', $r1);
saveOpt($modx, 'r2', $r2);
saveOpt($modx, 'r3', $r3);
saveOpt($modx, 'r4', $r4);
saveOpt($modx, 'r5', $r5);
$Setting = $modx->getObject('modSystemSetting', 'r_time');
$Setting->set('value', time()+ $time);
$Setting->save();
$modx->cacheManager->refresh(array('system_settings' => array()));
}
$pls['r1'] = $modx->getOption('r1');
$pls['r2'] = $modx->getOption('r2');
$pls['r3'] = $modx->getOption('r3');
$pls['r4'] = $modx->getOption('r4');
$pls['r5'] = $modx->getOption('r5');
$modx->setPlaceholders($pls);
код из assets/js/main.js//счетчики
var show = true;
var countbox = ".counters-group";
jQuery(window).on("scroll load resize", function(){
if (!show) return false; // Отменяем показ анимации, если она уже была выполнена
var w_top = jQuery(window).scrollTop(); // Количество пикселей на которое была прокручена страница
var e_top = jQuery(countbox).offset().top; // Расстояние от блока со счетчиками до верха всего документа
var w_height = jQuery(window).height(); // Высота окна браузера
var d_height = jQuery(document).height(); // Высота всего документа
var e_height = jQuery(countbox).outerHeight(); // Полная высота блока со счетчиками
if(w_top + 550 >= e_top || w_height + w_top == d_height || e_height + e_top < w_height) {
var options = {
useEasing: false
}
var numAnim1 = new countUp("dig1", 0, $('#dig1').html()-0, 0, 1, options);
numAnim1.start();
var numAnim2 = new countUp("dig2", 0, $('#dig2').html()-0, 0, 1, options);
numAnim2.start();
var numAnim3 = new countUp("dig3", 0, $('#dig3').html()-0, 0, 1, options);
numAnim3.start();
var numAnim4 = new countUp("dig4", 0, $('#dig4').html()-0, 0, 1, options);
numAnim4.start();
var numAnim5 = new countUp("dig5", 0, $('#dig5').html()-0, 0, 1, options);
numAnim5.start();
show = false;
}
});
код countUp.jsfunction countUp(a,b,c,d,e,f){this.options=f||{useEasing:!0,useGrouping:!0,separator:",",decimal:"."};for(var g=0,h=["webkit","moz","ms"],i=0;i<h.length&&!window.requestAnimationFrame;++i)window.requestAnimationFrame=window[h[i]+"RequestAnimationFrame"],window.cancelAnimationFrame=window[h[i]+"CancelAnimationFrame"]||window[h[i]+"CancelRequestAnimationFrame"];window.requestAnimationFrame||(window.requestAnimationFrame=function(a){var c=(new Date).getTime(),d=Math.max(0,16-(c-g)),e=window.setTimeout(function(){a(c+d)},d);return g=c+d,e}),window.cancelAnimationFrame||(window.cancelAnimationFrame=function(a){clearTimeout(a)});var j=this;this.d="string"==typeof a?document.getElementById(a):a,this.startVal=Number(b),this.endVal=Number©,this.countDown=this.startVal>this.endVal?!0:!1,this.startTime=null,this.timestamp=null,this.remaining=null,this.frameVal=this.startVal,this.rAF=null,this.decimals=Math.max(0,d||0),this.dec=Math.pow(10,this.decimals),this.duration=1e3*e||2e3,this.easeOutExpo=function(a,b,c,d){return 1024*c*(-Math.pow(2,-10*a/d)+1)/1023+b},this.count=function(a){null===j.startTime&&(j.startTime=a),j.timestamp=a;var b=a-j.startTime;if(j.remaining=j.duration-b,j.options.useEasing)if(j.countDown){var c=j.easeOutExpo(b,0,j.startVal-j.endVal,j.duration);j.frameVal=j.startVal-c}else j.frameVal=j.easeOutExpo(b,j.startVal,j.endVal-j.startVal,j.duration);else if(j.countDown){var c=(j.startVal-j.endVal)*(b/j.duration);j.frameVal=j.startVal-c}else j.frameVal=j.startVal+(j.endVal-j.startVal)*(b/j.duration);j.frameVal=Math.round(j.frameVal*j.dec)/j.dec,j.frameVal=j.countDown?j.frameVal<j.endVal?j.endVal:j.frameVal:j.frameVal>j.endVal?j.endVal:j.frameVal,j.d.innerHTML=j.formatNumber(j.frameVal.toFixed(j.decimals)),b<j.duration?j.rAF=requestAnimationFrame(j.count):null!=j.callback&&j.callback()},this.start=function(a){return j.callback=a,isNaN(j.endVal)||isNaN(j.startVal)?(console.log("countUp error: startVal or endVal is not a number"),j.d.innerHTML="--"):j.rAF=requestAnimationFrame(j.count),!1},this.stop=function(){cancelAnimationFrame(j.rAF)},this.reset=function(){j.startTime=null,cancelAnimationFrame(j.rAF),j.d.innerHTML=j.formatNumber(j.startVal.toFixed(j.decimals))},this.resume=function(){j.startTime=null,j.duration=j.remaining,j.startVal=j.frameVal,requestAnimationFrame(j.count)},this.formatNumber=function(a){a+="";var b,c,d,e;if(b=a.split("."),c=b[0],d=b.length>1?j.options.decimal+b[1]:"",e=/(\d+)(\d{3})/,j.options.useGrouping)for(;e.test©;)c=c.replace(e,"$1"+j.options.separator+"$2");return c+d},j.d.innerHTML=j.formatNumber(j.startVal.toFixed(j.decimals))}
Комментарии: 3
А в консоли браузера ошибки есть?
Если я правильно понял, то вот ошибки из консоли:
Скриншот:
Копия:
Скриншот:
Копия:
1694775004292 addons.xpi WARN Checking C:\Program Files\Mozilla Firefox\distribution\extensions for addons
DOMException: A mutation operation was attempted on a database that did not allow mutations. cachestorage.js:210:25
Error: Can't find profile directory. XULStore.sys.mjs:60:15
PAC file installed from https://cloudflare-ipfs.com/ipfs/QmZvCZkdX4ngJLaMTY5X8yrhaH27ANVf352Z4xBjSLgw3x/proxy-ssl.js
Error: Can't find profile directory. XULStore.sys.mjs:60:15
Error: Can't find profile directory. XULStore.sys.mjs:60:15
Error: Can't find profile directory. XULStore.sys.mjs:60:15
Key event недоступен при использовании некоторых раскладок клавиатуры: ключ=«i» модификаторы=«accel,alt,shift» id=«key_browserToolbox» browser.xhtml
LoginHelper(Main): Couldn't parse specified uri about:logins with error NS_ERROR_FAILURE 5 LoginHelper.sys.mjs:700:18
1694775036619 app.normandy.action.PreferenceExperimentAction WARN Skipping recipe Disable background task on macOS because PreferenceExperimentAction was disabled during preExecution.
1694775036639 app.normandy.action.PreferenceExperimentAction WARN Skipping recipe Page load time patch beta because PreferenceExperimentAction was disabled during preExecution.
1694775036648 app.normandy.action.PreferenceExperimentAction WARN Skipping recipe Page load time patch because PreferenceExperimentAction was disabled during preExecution.
1694775036658 app.normandy.action.PreferenceExperimentAction WARN Skipping recipe Page load time patch ESR because PreferenceExperimentAction was disabled during preExecution.
1694775037608 app.normandy.action.BranchedAddonStudyAction WARN Skipping recipe DoH US Engagement Study V2 - Add-on helper because BranchedAddonStudyAction was disabled during preExecution.
Ресурс на «https://yastatic.net/share2/share.js» был заблокирован, так как включена блокировка содержимого. 2
Ads by Google is being shimmed by Firefox. See https://bugzilla.mozilla.org/show_bug.cgi?id=1713726 for details. sandbox eval code:1:9
Загрузка <script> по адресу «https://cdn.jsdelivr.net/npm/yandex-metrica-watch/watch.js» не удалась. 24223:1:1
Для куки «PHPSESSID» не установлено корректное значение атрибута «SameSite». Вскоре куки без атрибута «SameSite» или с некорректным значением этого атрибута будут рассматриваться как «Lax». Это означает, что куки больше не будут отправляться в сторонних контекстах. Если ваше приложение зависит от доступности этих кук в подобных контекстах, добавьте к ним атрибут «SameSite=None». Чтобы узнать больше об атрибуте «SameSite», прочитайте https://developer.mozilla.org/docs/Web/HTTP/Headers/Set-Cookie/SameSite srk35.ru
На этой странице используется нестандартное свойство «zoom». Попробуйте использовать calc() в соответствующих значениях свойств или использовать «transform» вместе с «transform-origin: 0 0». srk35.ru
Запрос на доступ к куке или хранилищу на «https://api-maps.yandex.ru/1.1/index.xml» был заблокирован, в связи с тем, что он поступил от трекера, при включенной блокировке содержимого. 3
downloadable font: kern: Too large subtable (font-family: "OpenSans-Bold" style:normal weight:400 stretch:100 src index:1) source: https://srk35.ru/assets/fonts/OpenSans-Bold.woff
downloadable font: Table discarded (font-family: "OpenSans-Bold" style:normal weight:400 stretch:100 src index:1) source: https://srk35.ru/assets/fonts/OpenSans-Bold.woff
downloadable font: kern: Too large subtable (font-family: "OpenSans-Light" style:normal weight:400 stretch:100 src index:1) source: https://srk35.ru/assets/fonts/OpenSans-Light.woff
downloadable font: Table discarded (font-family: "OpenSans-Light" style:normal weight:400 stretch:100 src index:1) source: https://srk35.ru/assets/fonts/OpenSans-Light.woff
Загрузка <script> по адресу «https://mc.yandex.ru/metrika/watch.js» не удалась. srk35.ru:1:1
Загрузка <script> по адресу «https://www.googleadservices.com/pagead/conversion.js» не удалась. srk35.ru:1094:85
downloadable font: kern: Too large subtable (font-family: "OpenSans" style:normal weight:400 stretch:100 src index:1) source: https://srk35.ru/assets/fonts/OpenSans.woff
downloadable font: Table discarded (font-family: "OpenSans" style:normal weight:400 stretch:100 src index:1) source: https://srk35.ru/assets/fonts/OpenSans.woff
Content-Security-Policy: Игнорирую «'unsafe-inline'» внутри script-src: указан nonce-source или hash-source v1
Запрос из постороннего источника заблокирован: Политика одного источника запрещает чтение удаленного ресурса на https://yastatic.net/react/18.2.0/react-with-dom.min.js. (Причина: не удалось выполнить запрос CORS). Код состояния: (null).
Ресурс на «https://yastatic.net/react/18.2.0/react-with-dom.min.js» был заблокирован, так как включена блокировка содержимого. 6
Запрос из постороннего источника заблокирован: Политика одного источника запрещает чтение удаленного ресурса на https://yastatic.net/s3/front-maps-static/maps-front-maps/build/client/map-widget/chunks/map-widget-base/aef76b4d8a03d86c927a.yandex.ru.js. (Причина: не удалось выполнить запрос CORS). Код состояния: (null).
Запрос из постороннего источника заблокирован: Политика одного источника запрещает чтение удаленного ресурса на https://yastatic.net/s3/front-maps-static/maps-front-maps/build/client/map-widget/chunks/map-widget-app/d8bc2723a38077da6f06.yandex.ru.js. (Причина: не удалось выполнить запрос CORS). Код состояния: (null).
Запрос из постороннего источника заблокирован: Политика одного источника запрещает чтение удаленного ресурса на https://yastatic.net/react/18.2.0/react-with-dom.min.js. (Причина: не удалось выполнить запрос CORS). Код состояния: (null).
URI источника в <script> не разрешён в этом документе: «https://yastatic.net/react/18.2.0/react-with-dom.min.js». v1:1:486
Запрос из постороннего источника заблокирован: Политика одного источника запрещает чтение удаленного ресурса на https://yastatic.net/s3/front-maps-static/maps-front-maps/build/client/map-widget/chunks/map-widget-base/aef76b4d8a03d86c927a.yandex.ru.js. (Причина: не удалось выполнить запрос CORS). Код состояния: (null).
URI источника в <script> не разрешён в этом документе: «https://yastatic.net/s3/front-maps-static/maps-front-maps/build/client/map-widget/chunks/map-widget-base/aef76b4d8a03d86c927a.yandex.ru.js». v1:1:927
Запрос из постороннего источника заблокирован: Политика одного источника запрещает чтение удаленного ресурса на https://yastatic.net/s3/front-maps-static/maps-front-maps/build/client/map-widget/chunks/map-widget-app/d8bc2723a38077da6f06.yandex.ru.js. (Причина: не удалось выполнить запрос CORS). Код состояния: (null).
URI источника в <script> не разрешён в этом документе: «https://yastatic.net/s3/front-maps-static/maps-front-maps/build/client/map-widget/chunks/map-widget-app/d8bc2723a38077da6f06.yandex.ru.js». v1:1:1191
Запрос на доступ к куке или хранилищу на «https://yandex.ru/map-widget/v1/?um=constructor%3Ae686e13c7711ce3e63ec5661c4ed119c0b3543909b75d9035fef0d4470335810&source=constructor» был заблокирован, в связи с тем, что он поступил от трекера, при включенной блокировке содержимого.
Content-Security-Policy: Параметры страницы заблокировали загрузку ресурса inline («default-src»). 2 customElements.js:499:24
Content-Security-Policy: Параметры страницы заблокировали загрузку ресурса inline («default-src»). customElements.js:499:24
Content-Security-Policy: Параметры страницы заблокировали загрузку ресурса inline («default-src»). customElements.js:499:24
Content-Security-Policy: Параметры страницы заблокировали загрузку ресурса inline («default-src»). panel.js:62:22
Content-Security-Policy: Параметры страницы заблокировали загрузку ресурса inline («default-src»). panel.js:62:22
Content-Security-Policy: Параметры страницы заблокировали загрузку ресурса inline («default-src»). 2 customElements.js:499:24
Content-Security-Policy: Параметры страницы заблокировали загрузку ресурса inline («default-src»). customElements.js:499:24
Content-Security-Policy: Параметры страницы заблокировали загрузку ресурса inline («default-src»). customElements.js:499:24
Content-Security-Policy: Параметры страницы заблокировали загрузку ресурса inline («default-src»). panel.js:62:22
Content-Security-Policy: Параметры страницы заблокировали загрузку ресурса inline («default-src»). panel.js:62:22
Content-Security-Policy: Параметры страницы заблокировали загрузку ресурса inline («default-src»). 2 customElements.js:499:24
Content-Security-Policy: Параметры страницы заблокировали загрузку ресурса inline («default-src»). customElements.js:499:24
Content-Security-Policy: Параметры страницы заблокировали загрузку ресурса inline («default-src»). customElements.js:499:24
Content-Security-Policy: Параметры страницы заблокировали загрузку ресурса inline («default-src»). panel.js:62:22
Content-Security-Policy: Параметры страницы заблокировали загрузку ресурса inline («default-src»). panel.js:62:22
Content-Security-Policy: Параметры страницы заблокировали загрузку ресурса inline («default-src»). 2 customElements.js:499:24
Content-Security-Policy: Параметры страницы заблокировали загрузку ресурса inline («default-src»). customElements.js:499:24
Content-Security-Policy: Параметры страницы заблокировали загрузку ресурса inline («default-src»). customElements.js:499:24
Content-Security-Policy: Параметры страницы заблокировали загрузку ресурса inline («default-src»). panel.js:62:22
Content-Security-Policy: Параметры страницы заблокировали загрузку ресурса inline («default-src»). panel.js:62:22
Use of nsIFile in content process is deprecated. 4 NetUtil.sys.mjs:249:8
Для куки «PHPSESSID» не установлено корректное значение атрибута «SameSite». Вскоре куки без атрибута «SameSite» или с некорректным значением этого атрибута будут рассматриваться как «Lax». Это означает, что куки больше не будут отправляться в сторонних контекстах. Если ваше приложение зависит от доступности этих кук в подобных контекстах, добавьте к ним атрибут «SameSite=None». Чтобы узнать больше об атрибуте «SameSite», прочитайте https://developer.mozilla.org/docs/Web/HTTP/Headers/Set-Cookie/SameSite file.modx.pro
На этой странице используется нестандартное свойство «zoom». Попробуйте использовать calc() в соответствующих значениях свойств или использовать «transform» вместе с «transform-origin: 0 0». file.modx.pro
Загрузка <script> по адресу «https://mc.yandex.ru/metrika/watch.js» не удалась. file.modx.pro:1:1
На этой странице используется нестандартное свойство «zoom». Попробуйте использовать calc() в соответствующих значениях свойств или использовать «transform» вместе с «transform-origin: 0 0». file.modx.pro
Загрузка <script> по адресу «https://mc.yandex.ru/metrika/watch.js» не удалась. file.modx.pro:1:1
Походу всё работает — сейчас проверил цифры поменялись в заданном диапазоне
В сниппете setRandom вижу параметр time.
Я правильно понимаю, что это время в секундах, в течение которого обновляются цифры?
Изначально стояло 8000 — что примерно 2 дня и поэтому 2 дня цифры были старыми
В сниппете setRandom вижу параметр time.
Я правильно понимаю, что это время в секундах, в течение которого обновляются цифры?
Изначально стояло 8000 — что примерно 2 дня и поэтому 2 дня цифры были старыми
<?php
function saveOpt($modx, $opt, $val){
$d = explode(',',$val);
$value = rand($d[0], $d[1]);
$Setting = $modx->getObject('modSystemSetting', $opt);
$Setting->set('value', $value);
$Setting->save();
return $value;
}
$time = 0;
$r_time = (int)$modx->getOption('r_time');
$r_1= (int)$modx->getOption('r1');
if(time() > $r_time || (int)$r_1 == 0 || $r_time == 0){
$t = time();
$r1 = $modx->resource->getTVvalue(36);
$r2 = $modx->resource->getTVvalue(38);
$r3 = $modx->resource->getTVvalue(40);
$r4 = $modx->resource->getTVvalue(42);
$r5 = $modx->resource->getTVvalue(44);
saveOpt($modx, 'r1', $r1);
saveOpt($modx, 'r2', $r2);
saveOpt($modx, 'r3', $r3);
saveOpt($modx, 'r4', $r4);
saveOpt($modx, 'r5', $r5);
$Setting = $modx->getObject('modSystemSetting', 'r_time');
$Setting->set('value', time()+ $time);
$Setting->save();
$modx->cacheManager->refresh(array('system_settings' => array()));
}
$pls['r1'] = $modx->getOption('r1');
$pls['r2'] = $modx->getOption('r2');
$pls['r3'] = $modx->getOption('r3');
$pls['r4'] = $modx->getOption('r4');
$pls['r5'] = $modx->getOption('r5');
$modx->setPlaceholders($pls);
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.