NikName
Добрый день всем. Подскажите пожалуйста решение. Показать товар в разных категориях? Я пытаюсь через tv поле , может у кого лучше способ
NikName
Артур
нет
А выводишь товары как?
Алексей
шоб показать один и тот же товар в разных категориях через ТВ, то в ТВ нужно указать эти паренты и сделать вывод с where
NikName
я так и делал
NikName
пагинация ухожит
NikName
или же выводит только оидн мой товар
Артур
Я думаю, что лучше только установить minishop2. Или свой компонент сделать, который добавит отдельную таблицу и поле в форму товара.
Алексей
ну вывод вы же покажите свой?
Алексей
тк мы не видим то что видите вы\
NikName
Алексей
нет
Алексей
в личку не нужно ничего
Алексей
я тут не один
Алексей
и уже ухожу )))
NikName
Артур
Спугнул специалиста)))
NikName
хм, ну ок, tv поле categories-dop
Алексей
короче, не хватает статьи - как сделать мультикатегории для modx через TV )))
NikName
даа, в точку
NikName
где ее взять
Алексей
Так напиши)))
точно. я как-то и не подумал. ))))))))))))))))))))
Артур
хм, ну ок, tv поле categories-dop
Я бы разбил в массив и использовал IN. Но я бы на fenom писал)))
NikName
Я бы разбил в массив и использовал IN. Но я бы на fenom писал)))
ну тогда сайт переделывать надо будет, а он уже и так работает
Алексей
Я бы разбил в массив и использовал IN. Но я бы на fenom писал)))
нее.. там это не так работает. нужно запросить из БД все что нужно
Артур
ну тогда сайт переделывать надо будет, а он уже и так работает
Ну можно свой сниппет написать который разобьёт в массив и вернёт плейсхолдер.
alexey1m
К товару тв поле-список множественный выбор
alexey1m
Туда цепляешь категории
Алексей
NikName
ну смысла и в сниппете нет делается на pdoRes с кучей LIKE
Вот запрос, вывод был выше в категории
alexey1m
По шаблону нельзя категории получить?
NikName
и в товаре выбираю категорию
alexey1m
вот. а хранятся там у тебя IDы
NikName
вот. а хранятся там у тебя IDы
через where, проблема в том, что пагицация исчезает или же выводится только мой товар
alexey1m
'where'=>tv.value:IN'=>[12,23,34]'
NikName
1
alexey1m
обманул
Алексей
короче, на недельке статью сделаю.
alexey1m
'where'=>['category_id:IN'=>'[tv]']
alexey1m
вот так пробуй
Алексей
'where'=>['category_id:IN'=>'[tv]']
у ресурсов данные из мультиселекта храняться с разделителем || те 32||77||99
Misha
Друзья подскажите по галерее минишопа, сначалаошибку выдавал : Не могу сохранить файл не был сохранён (см. системный журнал).: Array ( [file] => даже папку не создавалась products минишопом. Создал папку, картинку зарузить удалось, но миниатюры не содаются. С правами чёто где то. Подскажите где посмотреть. Модхост
alexey1m
можно задать разделитель запятую
Алексей
Говорю ж - смотрите в БД на предмет как храняться данные
alexey1m
http://skrinshoter.ru/s/060622/5fyhzOG1?a вроде работало у меня
Алексей
Говорю ж - смотрите в БД на предмет как храняться данные
ну и просто подумать как через LIKE все варианты записать.\
Алексей
http://skrinshoter.ru/s/060622/5fyhzOG1?a вроде работало у меня
БД и админка - разные мужики тут параметры ВЫВОДА через php
alexey1m
на выходе в pdo то будет через запятую - как раз то что надо
Алексей
мы же должны найти в БД ресурсы в БД...
alexey1m
ok
alexey1m
set $ids = ''|resource:'tv.field'|split:'||'
alexey1m
set $mas = $ids[1]|split:'||'
alexey1m
'where' => ['id:IN' => $mas],
alexey1m
так сработает
Иван
set $mas = $ids[1]|split:'||'
Есть же в настройках тв возможность задать разделитель
Ilya
Добрый день господа товарищи. Бьюсь вторые сутки с MiniShop, а именно с выводом другой цены из Tv поля, имею вот такой код <?php if($modx->event->name != 'msOnGetProductPrice') return; if($modx->user && $modx->user->isMember('OptUsers')){ $values = & $modx->event->returnedValues; $resource = $modx->getObject('msProduct', $product->id); $wholesale_price = $resource->getTVValue('opt_price'); $modx->log(1, $wholesale_price); $values['price'] = $wholesale_price; $modx->log(1, $values['price']); } В логах пишется все отлично, что цена по ТВ есть, и цена уходит в валуес, я так же ее оттуда по логам получаю, но в конечном итоге, магазин как пишет цену основную, так ее и пишет, та, которая в поле price по стандарту, так есть не выводит нужную мне цену. Еще раз повторюсь, сумма записывается в $values['price'], но не выводит ее на самой странице. Пользователь состоит в группе OptUsers
Ilya
Был бы очень премного благодарен кто подскажет куда капнуть ps если прям весь путь пройдете, с меня ПИВО!!!
Ilya
Не просто вывести, а заменить ее с поля msproduct price
Ilya
Если быть точнее, заменить просто текст, для вывода ее для определеной группы пользователей
Ilya
И чтобы потом эта цена бегала по корзине, по заказу… и так далее, так как пользователь в группе OptUsers
Артур
Я бы просто в шаблоне проверял что за пользователь смотрит страницу и показывал бы нужную цену. Ещё написал бы плагин на добавление в корзину и там бы так же проверял что за пользователь и менял бы цену, если надо.
Ilya
Я может чего то не понимаю, тогда пните меня... Но это и есть плагин что я выше скинул, который при формировании цены, перед ее выводом, можешь поменять ее.. или я чего то не поменяю...
Ilya
не понимаю*
Артур
Господа, у кого был опыт по прикручиванию стандартного менеджера файлов к своему полю поделитесь. Или если есть идеи как это сделать расскажите.
Ilya
Не, это не то событие. Надо msOnAddToCart
спасибо добр человек, настрочил такой код, все работает изумительно:
Ilya
<?php switch ($modx->event->name) { case 'msOnChangeInCart': case 'msOnAddToCart': case 'msOnRemoveFromCart': if($modx->user && $modx->user->isMember('OptUsers')){ $tmp = $cart->get(); //Получаем информацию о козине - т.е. список товаров foreach ($tmp as $key1 => $value) { $resource = $modx->getObject('msProduct', $value['id']); $wholesale_price = $resource->getTVValue('opt_price'); $modx->log(1, $wholesale_price); $tmp[$key1]['price'] = $wholesale_price; $cart->set($tmp); } } break; }
Ilya
но есть одно но, я сейчас поковырялся, изза вот этой строки: $wholesale_price = $resource->getTVValue('opt_price');, он мне на добавление первого товара выдает ошибку в правом верхнем углу, до этого ее не было, если плагин вырубить, то все ок
Ilya
как ее побороть не подскажете ли?