Перестал работать счётчик

Добрый день
На сайте имеется рандомный показатель цифр из заданного диапазона.
В разделе Ресурсы — ДопПоля — Счётчик — можно было ввести диапазон Х, У и при каждом обновлении сайта цифры менялись.
Теперь при изменении диапазона Х, У — цифры остаются одни и те же: 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.js
function 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))}
Valera
15 сентября 2023, 10:45
modx.pro
728
0

Комментарии: 3

Артур Шевченко
15 сентября 2023, 12:26
0
А в консоли браузера ошибки есть?
    Valera
    15 сентября 2023, 13:56
    0
    Если я правильно понял, то вот ошибки из консоли:

    Скриншот:


    Копия:
    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
      Valera
      15 сентября 2023, 14:06
      0
      Походу всё работает — сейчас проверил цифры поменялись в заданном диапазоне
      В сниппете 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);
      Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
      3