Всего 123 803 комментария

Dan
Dan
16 мая 2023, 16:02
0
Вообще запрос возвращает итоговое количество товаров, но не их id. Не уверен, но такой костыль должен сработать.
1) Так как сделать 301 с помощью js нельзя, а придется как минимум юзать php, то создаешь по адресу assets/components/msearch2/js/web/ файл custom.js
2) Копируешь в него код из default.js, находящегося в той же папке
3) Придется каким-то образом выводить id товара в карточке. Например в data-атрибуте или еще как-нибудь.
4) В созданном файле находишь строчку mSearch2.setTotal(response['data']['total']); и добавляешь следующий код после нее:
if (response['data']['total'] == 1) {
   let product_id = //получаешь id единственного товара в результатах. Как получить - зависит от реализации 3-го пункта. 
   $.post(document.location.href, {action: 'sendRedirect', id:product_id}, function(data) {
      console.log(data);             
   });                    
}
5) Создаешь сниппет с любым названием и вызываешь его некешированным на странице каталога, там где вызван mFilter2.
<?php
if (empty($_SERVER['HTTP_X_REQUESTED_WITH']) || $_SERVER['HTTP_X_REQUESTED_WITH'] != 'XMLHttpRequest') {return;}
if (empty($_POST['action'])) {return;}

switch ($_POST['action']) {
	case 'sendRedirect':
                $url = $modx->makeUrl($_POST['id']);
		header("Location: ".$url."", true, 301);
                exit();

		break;
}
Павел Романов
16 мая 2023, 13:05
+1
Создайте в настройках каждого контекста параметр id_category и укажите там соответствующий ID.
В возможных значениях у TV пропишите:
@EVAL
if(!$res =  $modx->getObject('modResource', $_GET['id'])) return;
if(!$setting = $modx->getObject('modContextSetting', array('context_key' => $res->get('context_key'), 'key' => 'id_category'))) return;
$docid = $setting->get('value');

return $modx->runSnippet('pdoResources',array(
    'parents' => $docid ,
    'limit' => 0,
    'tpl' => '@INLINE [[+pagetitle]] ([[+id]])==[[+id]]',
    'outputSeparator' => '||'
));
Алексей
16 мая 2023, 05:43
0
Спасибо все работает!!!
Дмитрий
15 мая 2023, 21:51
0
спасибо за совет, попробую
Артур Шевченко
15 мая 2023, 17:34
0
Напишите автору, он добрый, может скинуть пакет.
Гарри
15 мая 2023, 17:32
+1
"classname":"MyProd",
вместо
"classname":"myProd",

"getlistsort":"resource_id",
вместо
"getlistsort":"resurce_id",
Василий Одинцов
15 мая 2023, 17:31
0
Похоже, уже нигде. Автор с прошлого года не появлялся: modx.pro/news/22817
Дмитрий
15 мая 2023, 16:50
0
подскажите, а где можно скачать oneBooking? на модсторе нет его(
Артур Шевченко
15 мая 2023, 16:10
0
Можете, надо только понимать что такое шаблон, чанк, сниппет и как это всё работает
Максим
13 мая 2023, 11:34
0
Поставил модуль, но почему-то не сраббатывает и пишет OptiPic еще не нашел изображения на вашем сайте
Николай Савин
13 мая 2023, 10:19
0
Это значит, что у меня не хватает времени в принципе заниматься этой версией.
Я, как и все работаю на зарплате. Какое-то количество свободного времени конечно есть, но чаще всего находятся задачи, которые выглядят более важными.
К примеру ребята присылают обновления для minishop2 практически каждую неделю. Это все нужно внимательно проверить, оттестировать, где-то отправить на доработку, где-то влить и оформить релиз.
Релизы у нас часто — каждый месяц. И почти всегда что-то крупное, интересное.
Это кстати сама по себе тоже причина (Частые крупные релизы). Потому как в идеальном мире, нужно успевать все это перетаскивать еще и в MiniShop3.
Николай Савин
13 мая 2023, 10:07
0
Да особо никак не решить. Наверное только перебирать по очереди все, что может обращаться к заказу. Какой-то из компонентов вероятно криво собран или очень старый.
Alexey
13 мая 2023, 09:33
0
Я бы вначале предложил вывести в лог данные офферов из плагина(название, к примеру), чтобы в принципе понять, попадают ли они всё на это событие.

По поводу mSyncBeforeProductOffers не берусь сказать, использовал только mSyncOnProductOffers — нужно было остатки по складам раскидать — всё норм было.
Vladimir
13 мая 2023, 09:00
0
Я тоже не знаю, в офферах есть товаров допустим 20, и 15 из них с нулевым количеством, и на событие mSyncBeforeProductOffers я получаю количество и снимаю с публикации товар, и из этих 15 товаров с нулевым количеством обрабатывается только 1
Alexey
13 мая 2023, 01:04
0
docs.modx.pro/komponentyi/msync/sobyitiya-i-plaginyi#mSyncOnProductOffers

Событие mSyncOnProductOffers отрабатывает для каждого торгового предложения, впрочем, как и mSyncBeforeProductOffers, поэтому непонятно, почему у вас один раз срабатывает?
Александр
12 мая 2023, 17:06
0
На днях столкнулся с похожей проблемой. В логах появляется:
pdofetch.class.php : 178) [pdoTools] Error 42S22: Unknown column 'p.price' in 'order clause'
Не могу найти что именно вызывает эту ошибку. Просмотрел все вызовы и чанки. Подскажите как решить этот вопрос.
Алексей
12 мая 2023, 14:42
-1
Здравствуйте.
Подскажите пожалуйста по minishop'у есть какие-нибудь предположительные сроки выхода для modx 3?
Дмитрий
12 мая 2023, 13:19
0
А для MODX 3 подойдет компонент или он только с 2.8 работает?