Запомнить положение в списке при переходе на страницу товара

Добрый день. Такая проблема появилась. Есть список товаров на сайте с подгрузкой ajaxMode=button. если пользователь перешёл на страницу товара, а потом нажал стрелку назад в браузере, надо чтобы подгружались аяксом все товары, которые были подгружены перед переходом к товару и страница прокручивалась к тому товару. Активация параметра ajaxHistory результатова не дала, только появилась пагинация в дополнение к кнопке «загрузить еще». Параметр cache тоже не приводит к нужному результату.

Сейчас список товаров выводится таким образом:
[[!pdoPage?
      &element=`msProducts`
      &tpl=`productMini--cost-per-square-meter`
      &parents=`26`
      &limit=`12`
      &sortby=`article`
      &ajax=`1`
      &ajaxMode=`button`
      &ajaxElemMore=`.load-more`
      &ajaxTplMore=`buttonLoadMore`
  ]]
Есть ли стандартный функционал для таких целей или может есть готовое решение?
Олег
14 марта 2022, 11:48
modx.pro
434
0

Вывод цветов msOptionsColor в меню pdoMenu конкретного родителя

Всем привет, при использовании компонента msOptionsColor, вывожу цвета в меню, в разделе Межкомнатные двери — но цвета выводятся и те, что в Входных дверях. Скриншот: prnt.sc/lZxjwY2D0fjk
Чанк вывода цветов: prnt.sc/SEiaEpuTiOZM
В параметр where добавлял «parent=»:75,
Так же добавлял сам параметр &parents=`75`
Но pdoResources игнорирует, та как выводит не ресурсы, а цвета «class»: «msProductOption»
Константин
14 марта 2022, 09:17
modx.pro
463
0

Создание большого количества ресурсов >100000 через MODX API

Здравствуйте!
Необходимо создать большое количество ресурсов через API, написал следующий скрипт:
<?php
$q = $modx->newQuery('modResource');
// условие по необходимости
$q->where(array('pagetitle:LIKE' => '%Ремонт двигателя%', 'template' => '5', 'id:>' => 0, 'id:<' => 1000));
$resources = $modx->getIterator('modResource', $q);
$array = [
 ['Замена клапана',1200,'zamena-klapana'],
['Замена клапанной крышки',3800,'zamena-klapannoj-kryishki'],
['Замена натяжителя цепи',6800,'zamena-natyazhitelya-czepi'],
['Замена опоры двигателя',2490,'zamena-oporyi-dvigatelya'],
['Замена коленчатого вала двигателя',4200,'zamena-kolenchatogo-vala-dvigatelya' ],
['Замена поддона картера двигателя',3800,'zamena-poddona-kartera-dvigatelya' ],
['Замена прокладок свечных колодцев',2400,'zamena-prokladok-svechnyix-kolodczev' ],
['Ремонт коленчатого вала двигателя',4200,'remont-kolenchatogo-vala-dvigatelya' ],
['Замена прокладки ГБЦ',3000,'zamena-prokladki-gbcz' ],
['Замена прокладки клапанной крышки',3800,'zamena-prokladki-klapannoj-kryishki' ],
['Замена радиатора охлаждения',4900,'zamena-radiatora-oxlazhdeniya' ],
['Регулировка клапанов',4100,'regulirovka-klapanov' ],
['Замена верхнего рычага подвески',800,'zamena-verxnego-ryichaga-podveski' ],
['Замена передней стойки стабилизатора',490,'zamena-perednej-stojki-stabilizatora' ],
['Замена сайлентблока заднего рычага',590,'zamena-sajlentbloka-zadnego-ryichaga' ],
['Замена сайлентблоков нижнего рычага',690,'zamena-sajlentblokov-nizhnego-ryichaga' ],
['Замена сайлентблоков переднего рычага',880,'zamena-sajlentblokov-perednego-ryichaga' ],
['Замена сайлентблоков продольного рычага',1200,'zamena-sajlentblokov-prodolnogo-ryichaga' ],
['Замена сайлентблоков развального рычага',1100,'zamena-sajlentblokov-razvalnogo-ryichaga' ],
['С/у двигателя',13900,'s/u-dvigatelya'],

['Замена ГБЦ',3900,'zamena-gbcz'],
['Замена маслосъемных колпачков',2400,'zamena-maslosemnyix-kolpachkov'],
['Ремонт клапанов',900,'remont-klapanov'],
['Ремонт форсунок',900,'remont-forsunok'],

['Замена вкладышей коленвала',4000,'zamena-vkladyishej-kolenvala'],
['Замена гидрокомпенсаторов',4900,'zamena-gidrokompensatorov' ],
['Замена головки блока цилиндров',3900,'zamena-golovki-bloka-czilindrov' ],
['Замена двигателя',14900,'zamena-dvigatelya'],
['Замена заднего сальника коленвала (при снятой КПП)',700,'zamena-zadnego-salnika-kolenvala-(pri-snyatoj-kpp)'],
['Замена направляющих втулок клапанов',3200,'zamena-napravlyayushhix-vtulok-klapanov' ],
['Замена переднего сальника коленвала',5500,'zamena-perednego-salnika-kolenvala' ],
['Замена поддона картера',900,'zamena-poddona-kartera' ],
['Замена подушек двигателя',1100,'zamena-podushek-dvigatelya'],
['Замена поршневой группы',2490,'zamena-porshnevoj-gruppyi'],
['Замена поршневых колец',1985,'zamena-porshnevyix-kolecz' ],
['Замена приводного ремня',980,'zamena-privodnogo-remnya' ],
['Замена распредвала',4990,'zamena-raspredvala' ],
['Замена сальника коленвала',4290,'zamena-salnika-kolenvala' ],
['Замена сальника распредвала',3290,'zamena-salnika-raspredvala'],
['Замена турбины',2990,'zamena-turbinyi' ],
['Замена цепи ГРМ',7800,'zamena-czepi-grm' ],
['Капитальный ремонт двигателя',39900,'kapitalnyij-remont-dvigatelya'],
['Переборка двигателя',12000,'pereborka-dvigatelya' ],
['Ремонт блока цилиндров',9890,'remont-bloka-czilindrov'],
['Ремонт ГБЦ',24900,'remont-gbcz'],
['Ремонт и замена коленчатого вала (коленвала)',4990,'remont-i-zamena-kolenchatogo-vala-(kolenvala)' ],
['Ремонт и замена масляного насоса',4990,'remont-i-zamena-maslyanogo-nasosa' ],
['Ремонт радиатора охлаждения',4990,'remont-radiatora-oxlazhdeniya'],
['Ремонт системы охлаждения',2000,'remont-sistemyi-oxlazhdeniya' ],
['Ремонт турбины',1000,'remont-turbinyi' ],
['Снятие/установка/замена форсунок высокого давления',1900,'snyatie/ustanovka/zamena-forsunok-vyisokogo-davleniya']
];
foreach($resources as $resource) {
    $id = $resource->get('id');
   foreach($array as $v){
       $resource2 = $modx->getObject ('modResource', array('pagetitle'=>$v['0'], 'parent' => $id));
    
if(!$resource2){
  $response = $modx->runProcessor('resource/create', array(
    'template' => 17,
    'isfolder' => 0,
    'tvs' => 1,
    'tv41' => $v[1]+round(rand(10, 90), -1),
    'published' => 0,
    'createdby' => 1,
    'parent' => $id,
    'pagetitle' => $v['0'],
    'createdon' => date("Y-m-d H:i:s" , 1646952099),
    'class_key' => 'modDocument',
  ));
  if ($response->isError()) {
      return $modx->error->failure($response->getMessage());
    }
    $modx->cacheManager->clearCache();
}
       
   }
}
суть скрипта в следующем, находим родительские ресурсы по условию и создаем в них дочерние из списка.

Проблема в том что приходится запускать несколько раз скрипт с условием отбора родительских ресурсов:
'id:>' => 0, 'id:<' => 1000
затем
'id:>' => 1000, 'id:<' => 1500
и тд так как если без этого условия скрипт просто зависает. Возможно ли как-то обойти это и оптимизировать скрипт, чтобы создать ресурсы за один проход?

PS скрипт запускаю через modx console, видимо происходит остановка скрипта из-за длительности его выполнения
Вячеслав Варов
12 марта 2022, 12:59
modx.pro
750
0

Sortby в pdomenu

Здравствуйте!

Вывожу список ресурсов в 1ом меню таким образом:
[[pdoMenu?
    &parents=`95`
    &showHidden=`0`
    &showUnpublished=`0`
    &useWeblinkUrl=`0`
    &outerClass=`child`
    &innerClass=`child`
    &parentClass=`has-child`
    &levelClass=`level-`
    &firstClass=`0`
    &lastClass=`0`
    &tplOuter=`@INLINE [[+wrapper]]`
    &tplCategoryFolder=`@INLINE <li [[+classes]]><span>[[+menutitle]]</span><span class="toggler"></span>[[+wrapper]]</li>`
    &tplParentRow=`@INLINE <li [[+classes]]><a href="[[+link]]" [[+attributes]]>[[+menutitle]]</a><span class="toggler"></span>[[+wrapper]]</li>`
    &resources=`114,106,121,2011,132,141,1335,128,137,1831,1965,1995,5093,5127,5160,5172,5218,5221,5224,5227,5261,5451,5601,5564,`
 ]]
steve.kon
11 марта 2022, 16:57
modx.pro
1 007
0

Кастомизация поля input[type=number] или поля количество

В интернет много всяких решений, но часть из них обладают избыточной функциональностью, часть требует сторонние библиотеки, типа jQuery, а простые и лёгкие решения мне не попадались, это наверное потому что я искать не умею))) В общем как бы там ни было, пусть в интернете появится ещё одно решение, вдруг кому-то пригодится. Все подробности о том, как пользоваться в репозитории.
Артур Шевченко
10 марта 2022, 23:29
modx.pro
4
1 295
+2

Ошибка в minishop2 action.php после переноса сайта

Добрый день.
После переноса сайта при добавлении товара в корзину возникают ошибки
Warning: dirname() expects exactly 1 parameter, 2 given in /var/www/u1613500/data/www/spklinker.ru/assets/components/minishop2/action.php on line 12

Warning: require(/index.php): failed to open stream: No such file or directory in /var/www/u1613500/data/www/spklinker.ru/assets/components/minishop2/action.php on line 12

Fatal error: require(): Failed opening required '/index.php' (include_path='.:') in /var/www/u1613500/data/www/spklinker.ru/assets/components/minishop2/action.php on line 12
Также происходит ошибка в админке когда я пытаюсь зайти Пакеты -> minishop2 -> Настройки:

Fatal error: require_once(): Failed opening required '/manager.class.php' (include_path='.:') in /var/www/u1613500/data/www/spklinker.ru/core/components/minishop2/controllers/mgr/settings.class.php on line 4

Наверное это как то связано, хз.

У кого-нибудь есть хоть какие-нибудь предположения в чем может быть проблема?
Олег
09 марта 2022, 11:48
modx.pro
1 006
0

Вывод цен в зависимости от производителя

Всем привет, как сделать вывод текста «Цена по запросу» только по определенным производителям?
К примеру, если бренд Nokia или iphone, то цена по запросу, если Xiaomi, то цена та, что в карточке.
Пробую сделать условие, не получается…

{if $_pls['vendor.name']: 'nokia' ,'iphone'}
Цена по запросу
{else}
[[+price]]
{/if}
Константин
09 марта 2022, 08:25
modx.pro
531
0

Как добавить коэффициент умножения на цены miniShop2 и msOptionsPrice2

Нужно чтобы в минишоп попадали уже цены умноженные на этот коэффициент. Часть товаров с опциями msop2.
Еще на сайте есть текстовые цены на доп услуги, их тоже как-то менять надо на этот коэффициент.
Фарит
08 марта 2022, 21:25
modx.pro
936
0

Компонент Tagger и htaccess на TimeWeb

Всем добрый день.

Пытаюсь заставить компонент Tagger выдавать «красивые» ссылки на теги. Но на хостинге TimeWeb не работает запись в htaccess вида:
RewriteRule ^vyvod-tegov/(.*)$ vyvod-tegov/?tag=$1 [L]
Ссылки в чанке формируются следующим образом:
<a href="[[~145]][[+alias]]">[[+tag]]</a>
Как я понимаю, правило в htaccess должно подхватывать значение «alias» и подставлять его в преобразованные урл после «tag=». Но ничего не срабатывает.

Может ли кто-то подсказать, где я допустил ошибку в правиле? Или может у кого-то есть опыт настройки этого под TimeWeb?
Валерий
08 марта 2022, 11:57
modx.pro
664
0

StaticElementsLive

Дополнение позволяет автоматически создавать элементы Modx на основании статических файлов созданных в определенных директориях, что позволяет ускорить разработку сайтов в IDE.

Видео-обзор

Prihod
07 марта 2022, 16:01
modx.pro
1
1 469
+15