Алексей Шумаев · 02 февраля 2018, 13:58 Ваш вопрос слишком объёмный, т.к. ответ на него будет порождать несколько новых вопросов… Можно делать примерно так: I. Сначала читаем про расширение товаров, добавляем новое поле для оптовой цены, например optPrice. II. 1. Читаем заметку 2. Создаём плагин, в нём проверяем пользователя. Примерно так: case 'pdoToolsOnFenomInit': $fenom->addAccessorSmart("site", "data", Fenom::ACCESSOR_PROPERTY); # определить принадлежность к группе оптовых $optGroupe = 2; # ваша группа оптовых $ws = 0; # пока это обычный юзер $user = $modx->user; $usergroups = $user->getUserGroups(); if ($user->get('id') && in_array($optGroupe, $usergroups)) { $ws = 1; # а теперь - оптовик } $fenom->data = [ 'ws' => $ws ]; break;Теперь ВЕЗДЕ у вас есть переменная $.site.ws. Fenom: {if $.site.ws == 1} {$optPrice} {else} {$price} {/if}III. В том же плагине на событие msOnBeforeAddToCart добавляем изменение цены для оптовиков, если оптовик. Вроде всё. Но нюансов может быть множество ) Вопросы / Дилерский раздел на MODX 7 0 2
Алексей · 16 января 2018, 20:50 Добрый вечер! На странице списка товаров вызываю снипет так [[!getRemains:toPlaceholder=`remains`? id=`[[+id]]`]] [[+remains:lt=`1`:then=`нет`:else=`[[+remains]] шт.`]] Постоянно выдается первый вариант «Нет». Списко товаров вызывается при помощи сниппета mfilter2. Если добавляю в него такую конструкцию 'leftJoin' => [ 'Remains' => [ 'class' => 'msprRemains', 'on' => 'msProduct.id = Remains.product_id AND Remains.remains > 0' ] ], 'groupby' => 'msProduct.id', 'select' => [ 'msProduct' => '*', 'Remains' => 'SUM(Remains.remains) as remains' ], То остатки выводятся правильно, но перестает работать сортировка. При нажатии на сортировку все товары исчезают. Не подскажете в чем может быть причина. Заранее спасибо! Вот полностью вызов сниппета {'!mFilter2' | snippet: [ 'paginator' => 'pdoPage', 'element' => 'msProducts', 'class' => 'msProduct', 'parents'=>$modx->resource->id, 'depth' => 10, 'filters'=> 'ms|price:number' 'tplFilter.outer.default'=>'mfilter-slider.tpl' 'tplFilter.row.default'=>'mfilter-number.tpl' 'tpl' => 'category-product.tpl', 'tplOuter' => 'mFilter2-outer.tpl', 'leftJoin' => [ 'Remains' => [ 'class' => 'msprRemains', 'on' => 'msProduct.id = Remains.product_id AND Remains.remains > 0' ] ], 'groupby' => 'msProduct.id', 'select' => [ 'msProduct' => '*', 'Remains' => 'SUM(Remains.remains) as remains' ], 'limit' => 18, 'maxLimit' => 200, 'pageLimit' => 12, 'tplPage' => '@INLINE {$pageNo}', 'tplPageActive' => '@INLINE {$pageNo}', 'tplPageWrapper' => '@INLINE {$pages}', 'tplPagePrev' => '@INLINE <', 'tplPageNext' => '@INLINE >', 'tplPageSkip' => '@INLINE ...</span', 'tplPagePrevEmpty' => '@INLINE <<', 'tplPageNextEmpty' => '@INLINE >>', 'sortby' => '{«menuindex»:«ASC»}', 'where' => '{«template»:«4»}' ]} Новые дополнения и их версии / [msProductRemains] Компонент учёта остатков товара 179 0 1
Николай · 29 декабря 2017, 13:36 Ну и в целом как обезопасить себя от подобных неприятностей? Ставить пароль на папки manager connectors и core (https://modhost.pro/help/nginx). А так же была большая статья про безопасность где-то на сайте. Вопросы / Взлом сайта 13 0 1
Дмитрий · 26 декабря 2017, 14:17 вот и мне интересно, уверен что я что то не так делаю просто, тк впервые пользуюсь именно этим методом. у меня есть шаблон категорий товара в самом шаблоне я вызываю msProducts в параметре — element, с помощью метода — pdoPage, он выводит все товары в нужной мне категории товаров, там в качестве шаблона вывода прописан чанк, который оформляет именно блоки этих товаров и в нем я инициализировал вот эту конструкцию [[!msProductOptions? &product=`[[+id]]`]] интересно что если вместо плейсхолдера вставить любой id из выведенного товара опции именного этого товара спокойно появляются Вопросы / вывод опций товара в категории minishop2 12 0 1
Павел Степанов · 25 декабря 2017, 20:14 Вроде у меня аналогично настроено Вопросы / Актуален ли урок Василия по созданию компонентов для текущей версии modExtra ? 39 0 1
Баха Волков · 02 декабря 2017, 08:08 Может вместо этого: [[pdoField?&id=`{$product.parent}`&field=`pagetitle`]] Сделать вот так: {$product.parent | resource : 'pagetitle'} ? Вопросы / Вывести название категории товара в корзине minishop2 4 0 1
Володя · 30 ноября 2017, 18:45 а чего его бороть? в ajax заверни и все. Вопросы / msMiniCart 34 запроса 10 +1 1
Илья Уткин · 02 ноября 2017, 20:07 Не знаю, получится ли так или нет, но попробуй заменить квадратные скобки на HTML-сущности [[$MyChunk:replace=`[==[`]]Ну или в сниппете получить контент чанка с помощью xPDO и заменить их функцией str_replace Вопросы / Отключить парсинг чанка 4 0 1
Воеводский Михаил · 12 августа 2017, 10:44 Только значения Наполнителей будут товарами.В этом свои преимущества, как я написал — изменение цены такого наполнителя в одном месте, а не в каждом товаре по отдельности. родилось вот такое решениеКак ни крути, любые варианты решения задач полезны. Не исключаю. что в некоторых случаях такое решение будет рациональнее, чем приплетать msAddLinked. Пошаговые инструкции / msOptionsPrice2 и составной товар 43 +1 1
Баха Волков · 07 августа 2017, 11:23 Добавь: &tpl=`@INLINE <li><a href="[[+link]]" [[+attributes]] [[+classes]]>[[+menutitle]]</a>[[+wrapper]]</li>` Вопросы / pdoMenu 8 0 1
UiCMPGenerator дополнение для создания пакетов Ближе к сентябрю, основная загвоздка это создание нормальной документации и видео обзора, а так пакет как бы уже готов
Checkbox для модального окна Они не отключены, они платные, чтобы писали только те, кому действительно очень надо. Когда бесплатно люди начинают думать, что я им должен.
[SendIt 2.6.0] Анализ поведения пользователя для защиты от спама (невидимая капча)... Здравствуйте. Делаю личный кабинет на Sendit и со сбросом пароля возникли проблемы. Можете подсказать, в чем ошибка? Список вопросов в одноименном разделе на modx.pro пока пуст, и,...
Minishop + честный знак (продажа маркированной продукции) В нашем случае мы решили убрать всю логику по маркировке сайта.
MiniShop3 - Не выводятся товары дополнительных категорий @SYAN ваша указанная проблема исправлена еще до версии 1.2.3 @Павлик Мышкин завел: github.com/modx-pro/MiniShop3/issues/480 github.com/modx-pro/MiniShop3/issues/481Исправим в б...
MobileDetect 2.0.0-pl функция "планшеты как стандартные браузеры не работает" в 2.1.0-pl баг исправлен
msImportExport не сохраняет родителя по умолчанию Компонент не понимает кирилические домены при загрузку фото. пример: Error download. Url : https://антаресдвери.рф/upload/iblock/a50/a50b2ef45305a3c18f6e298f1e134880.jpg. Message...
Можно делать примерно так:
I. Сначала читаем про расширение товаров, добавляем новое поле для оптовой цены, например optPrice.
II.
1. Читаем заметку
2. Создаём плагин, в нём проверяем пользователя. Примерно так:
Теперь ВЕЗДЕ у вас есть переменная $.site.ws.
Fenom:
III. В том же плагине на событие msOnBeforeAddToCart добавляем изменение цены для оптовиков, если оптовик.
Вроде всё. Но нюансов может быть множество )
[[!getRemains:toPlaceholder=`remains`? id=`[[+id]]`]]
[[+remains:lt=`1`:then=`нет`:else=`[[+remains]] шт.`]]
Постоянно выдается первый вариант «Нет».
Списко товаров вызывается при помощи сниппета mfilter2. Если добавляю в него такую конструкцию
'leftJoin' => [
'Remains' => [
'class' => 'msprRemains',
'on' => 'msProduct.id = Remains.product_id AND Remains.remains > 0'
]
],
'groupby' => 'msProduct.id',
'select' => [
'msProduct' => '*',
'Remains' => 'SUM(Remains.remains) as remains'
],
То остатки выводятся правильно, но перестает работать сортировка. При нажатии на сортировку все товары исчезают. Не подскажете в чем может быть причина. Заранее спасибо!
Вот полностью вызов сниппета
{'!mFilter2' | snippet: [
'paginator' => 'pdoPage',
'element' => 'msProducts',
'class' => 'msProduct',
'parents'=>$modx->resource->id,
'depth' => 10,
'filters'=> 'ms|price:number'
'tplFilter.outer.default'=>'mfilter-slider.tpl'
'tplFilter.row.default'=>'mfilter-number.tpl'
'tpl' => 'category-product.tpl',
'tplOuter' => 'mFilter2-outer.tpl',
'leftJoin' => [
'Remains' => [
'class' => 'msprRemains',
'on' => 'msProduct.id = Remains.product_id AND Remains.remains > 0'
]
],
'groupby' => 'msProduct.id',
'select' => [
'msProduct' => '*',
'Remains' => 'SUM(Remains.remains) as remains'
],
'limit' => 18,
'maxLimit' => 200,
'pageLimit' => 12,
'tplPage' => '@INLINE {$pageNo}',
'tplPageActive' => '@INLINE {$pageNo}',
'tplPageWrapper' => '@INLINE {$pages}',
'tplPagePrev' => '@INLINE <',
'tplPageNext' => '@INLINE >',
'tplPageSkip' => '@INLINE ...</span',
'tplPagePrevEmpty' => '@INLINE <<',
'tplPageNextEmpty' => '@INLINE >>',
'sortby' => '{«menuindex»:«ASC»}',
'where' => '{«template»:«4»}'
]}
у меня есть шаблон категорий товара в самом шаблоне я вызываю msProducts в параметре — element, с помощью метода — pdoPage, он выводит все товары в нужной мне категории товаров, там в качестве шаблона вывода прописан чанк, который оформляет именно блоки этих товаров и в нем я инициализировал вот эту конструкцию
[[!msProductOptions? &product=`[[+id]]`]]
интересно что если вместо плейсхолдера вставить любой id из выведенного товара опции именного этого товара спокойно появляются
Сделать вот так:
?
Ну или в сниппете получить контент чанка с помощью xPDO и заменить их функцией str_replace
Как ни крути, любые варианты решения задач полезны. Не исключаю. что в некоторых случаях такое решение будет рациональнее, чем приплетать msAddLinked.