Андрей

Андрей

Был в сети 01 июля 2019, 01:45
Заказы принимаю
Если не против, напишу и я о проблеме здесь. Думал можно на github написать, но там отключены Issues. Только что установил последнюю версию MS2, выставил в настройках источник файлов MS2, но при создании товара все равно Filesystem. У всех так?

Насчет корзины. На старой версии 2.2 я так и не поборол проблему с добавлением товара. Через Ajax отправлял данные на кастомный сниппет, и стандартным кодом из документации добавлял товар. В консоли выводил состояние корзины, видно что все ок. Захожу в корзину, там пусто. И так через раз-два.
Не не ) Уточняю — у каждого товара 2 цены, два TV — price и price2. Мне нужно вывести один слайдер, который возьмет минимальное значение от TV price, максимальное значение от TV price2. Передвигая ползунок, скрипт должен проверять, указанная цена входит ли в диапазон значений товара — price, price2.
Кастомную обработку начал писать, пока не получилось корректно фильтровать.
Он сохраняется, кнопку «Сохранить» я ессно нажимаю. Но заказ не пересчитывается. Захожу снова в «Покупки», редактирование этого добавленного товара, нажимаю 'Сохранить' — заказ пересчитался. Т.е. апдейт срабатывает только после редактирования.
Ну вот как-то так набросал на скорую руку. -)

Создал плагин, повесил на событие OnDocFormSave.

<?php
if ($modx->event->name == 'OnDocFormSave') {

	$parentIds = $modx->getParentIds($id, 4, array('context' => 'web'));   // Получаем id всех родителей ресурса
	$res = $modx->getObject('modResource',$id);
	$curAlias = $res->get('alias');   // Алиас текущего ресурса

	$cnt = count($parentIds);  // Количество родителей

	if($cnt > 2) { 

		$aliases = array();   // Массив для всех найденных алиасов

		foreach($parentIds as $v) {
			if($v == 22 || $v == 0) continue;  // Если родитель - контейнер Shop(22) или главный родитель (0) - пропускаем.

			$obj = $modx->getObject('modResource', $v);
			$alias = $obj->get('alias');
			$aliases[] = $alias;
		}

		$resource->set('uri', implode('/',array_reverse($aliases)) . '/' . $curAlias);

	} else {
		$resource->set('uri', $curAlias);
	}

	$resource->set('uri_override', true);
        $resource->save();

}
Можно еще добавить условие, чтобы урл, таким образом, формировался только для новых ресурсов. Мне пока не нужно.

if ($mode == 'new') {
    // код выше
}
Можно и так. Я ищу, так сказать, более универсальный способ. Заказчик захочет добавить категорию, и мне нужно будет ему объяснять, что нужно еще поставить галочку там то, и дописать url. Хотя… появилась мысль подкрутить компонент CustomUrls. Попробую.