Илья
ну если много будет, тогда не вариант канеш
Камиль
на первый взгляд - должно работать
``` `dltv_CATEGORY_2`.`value` IN (8,9) ``` вот так должно работать, а наоборот я не уверен
Dmytro
а пробовал?
Камиль
угу
Dmytro
в принципе, replace вернет это дело как строку "2,5,8" - так что получится in ("2,5,8")
Камиль
как то не так рабоатет
Anonymous
А я банально создаю таблицу, по которой можно полноценно where = /IN делать 😊
Камиль
А я банально создаю таблицу, по которой можно полноценно where = /IN делать 😊
да блин вот вот сдавать и блят говорит что категорий должно быть несколько
Камиль
у позиции
Камиль
не переделывать же всё
Dmytro
find_in_set не юзал?
Камиль
пофиг сделал REGEXP
Камиль
find_in_set не юзал?
нет вообще не слышал
Камиль
а не слышал гг
Anonymous
Ну так быстро вфигачь вот это решение: http://modx.im/blog/addons/374.html
Камиль
Ну так быстро вфигачь вот это решение: http://modx.im/blog/addons/374.html
да не у меня свои фильтр, всё поплывёт ещё
Anonymous
Да не должно поплыть от одного левого запроса с получением всех нужных id
Камиль
find_in_set не юзал?
сейчас попробую
Камиль
find_in_set не юзал?
не значю почему in не работал, но вот так сработало FIND_IN_SET( 4, REPLACE( `dltv_CATEGORY_2`.`value`, '||', ',' ) )
Камиль
Dmytro
попробуй еще 4 взять в одинарные кавычки, чтобы 100% проверяло строку
Камиль
@Pathologic93 в DL paginationMeta с getCache отрабатывает один раз при создании кеша и всё 😓
Камиль
запихну его в prepareWrap
Камиль
запихнул в плейсхолдер) так проще
Andrey
Нифига вы тут нахуевертили))) И всё полезности.
Senya
Всем добрый день, у меня такая задача - в интернет магазине(Shopkeeper) реализовать оптовые цены в зависимости от выбранного количества товара, нашел один плагин , в корзине все работает, увеличиваю количество - цена берется из нужного tv, но если я возвращаюсь к тому же товару который добавлен в корзину и снова добавляю его, он добавляется как новый т.к. его цена не изменилась.Как мне после увиличения количества товара менять значение price на другое и в корзине и в карточке товара , и в списке товаров? Вот сам плагин$e = $modx->Event; if ($e->name == 'OnSHKcalcTotalPrice'){ if(isset($_SESSION['purchases'])){ $purchases = unserialize($_SESSION['purchases']); //print_r($purchases); if(sizeof($purchases)>0) foreach ($purchases as $kk => $val){ $price1 = '1-4'; $price2 = '5-30'; if ($val[1] < 5) $sk = 'price'; if ($val[1] > 4 && $val[1] < 8) $sk = $price1; if ($val[1] > 8) $sk = $price2; if ($val[0] > 0){ $tv = $modx->getTemplateVarOutput(array($sk) , $val[0]); print_r($price); $price = $tv[$sk]; } if ($price > 0) $purchases[$kk][2] = $price; //$prod_price = $modx->db->getValue('Select value from '.$modx->getFullTableName('site_tmplvar_contentvalues').' where contentid='.$val[0].' and tmplvarid=5'); // Здесь 10 - ИД ТВ-параметра с ценой //print_r($prod_price); } $_SESSION['purchases']=serialize($purchases); $e->params['purchases'] = $purchases; } }
EVO bot Лёшка
Всем добрый день, у меня такая задача - в интернет магазине(Shopkeeper) реализовать оптовые цены в зависимости от выбранного количества товара, нашел один плагин , в корзине все работает, увеличиваю количество - цена берется из нужного tv, но если я возвращаюсь к тому же товару который добавлен в корзину и снова добавляю его, он добавляется как новый т.к. его цена не изменилась.Как мне после увиличения количества товара менять значение price на другое и в корзине и в карточке товара , и в списке товаров? Вот сам плагин$e = $modx->Event; if ($e->name == 'OnSHKcalcTotalPrice'){ if(isset($_SESSION['purchases'])){ $purchases = unserialize($_SESSION['purchases']); //print_r($purchases); if(sizeof($purchases)>0) foreach ($purchases as $kk => $val){ $price1 = '1-4'; $price2 = '5-30'; if ($val[1] < 5) $sk = 'price'; if ($val[1] > 4 && $val[1] < 8) $sk = $price1; if ($val[1] > 8) $sk = $price2; if ($val[0] > 0){ $tv = $modx->getTemplateVarOutput(array($sk) , $val[0]); print_r($price); $price = $tv[$sk]; } if ($price > 0) $purchases[$kk][2] = $price; //$prod_price = $modx->db->getValue('Select value from '.$modx->getFullTableName('site_tmplvar_contentvalues').' where contentid='.$val[0].' and tmplvarid=5'); // Здесь 10 - ИД ТВ-параметра с ценой //print_r($prod_price); } $_SESSION['purchases']=serialize($purchases); $e->params['purchases'] = $purchases; } }
http://docs.evo.im/04_extras/if.html http://docs.evo.im/04_extras/shopkeeper.html
Senya
Или может это раелизуется по другому, если кто сталкивался с подобным , подскажите как можно решить. Результат должен быть как на сайте "super-opt"
Aliaksandr
А у вас событие модификации общей суммы в корзине, например для купона или скидки от общей суммы
Senya
Надо использовать событие onSHKgetProductPrice для модификации цены товара
Спасибо, т.е. мне оба события нужно использовать для модификации цены товара и его цены в корзине или достаточно onSHKgetProductPrice?
Aliaksandr
Спасибо, т.е. мне оба события нужно использовать для модификации цены товара и его цены в корзине или достаточно onSHKgetProductPrice?
Для модификации цены конкретного товара нужно только одно. Сумму оно и само посчитает
Aliaksandr
$e->output(25);
Senya
Спасибо ! Буду пробовать
Senya
Для модификации цены конкретного товара нужно только одно. Сумму оно и само посчитает
Не подскажите почему не берет tv текущего документа? вот так -$tv = $modx->getTemplateVarOutput(array('1-4')); $output = $tv['1-4']; , работает только если указывать конкретный id документа
Dmytro
для текущего документа есть $modx->documentObject[$tv]
Ilya
для текущего документа есть $modx->documentObject[$tv]
если он существует, его может и не быть)
Dmytro
+ getTemplateVarOutput только для опубликованых
Dmytro
если он существует, его может и не быть)
для этого создана кривизна извилин. чтобы добавить проверку)
Andrey
А кстати, для будущего дока можно как-то узнать его будущий Parent?
Senya
Спасибо!
Ilya
для этого создана кривизна извилин. чтобы добавить проверку)
я к тому что при использовании в плагине метод может быть еще не доступен, тогда можно прибегнуть к getTemplateVarOutput
Ilya
А кстати, для будущего дока можно как-то узнать его будущий Parent?
если создаете через modx api то метод save вернёт id, как и любой insert собственно
Dmytro
А кстати, для будущего дока можно как-то узнать его будущий Parent?
будущий парент сам устанавливаешь вручную, если не устанавливаеш - то 0
Andrey
Хочется в mm при создании в твшку пехать. Ну или делать плагином на сохранение, там поди есть
Andrey
Заказчику так надо.
Andrey
Скажем, фильтровать структуру каталога ефильтром, и нужен фильтр по родителю. Переделывать в multicategories не вариант.
Andrey
так он же фильтрует, не?
Эт как например?
Dmytro
про efilter ничего не знаю, но пихать парент в тв - это глупость
Andrey
Молодец. Это так охуенно, когда не знаешь, но говоришь =)
Ilya
Ilya
Эт как например?
ну внатуре не фильтрует, глянул исходник. Гляди. ты из eFilter получаешь список id которые пихаются в DocLister, так ты повесь на него &addWhereList=parent=(int)$_GET['parent']
Ilya
ну понятно что не так топорно, но смысл ты понял
Andrey
Проще сделать как я сделал)
Сергей
Эт как например?
делай делай, нормально всё. Делаешь виртуальный раздел, в нём указываешь парент и параметры фильтрации, и выводишь товары. Товары красные Товары синие сео урлы, вся фигня.
Andrey
Да если б можно было сразу, я бы все товары сунул в 1 раздел и фильтровал по всяким сеокатегориям. Работаем с имеющейся структурой.
Ilya
Проще сделать как я сделал)
не люблю костыли, но вцелом наверное проще
Сергей
Только товары тогда лучше не в site_content хранить
Andrey
Т.е. если я заведу ТВ-параметр, суну туда слово "хуй", это норма. А если я заведу ТВ-параметр и суну туда цифры, означающую его родителя — это ай-ай-ай.
Senya
если он существует, его может и не быть)
Кстати пробую вашим плагином (кажется) решить задачу с ценой в зависимости от количества. http://modx.im/blog/questions/2934.html Как вы в итоге сделали ?)
Ilya
не помню как, но как-то решил, это точно))
Andrey
Для фильтра.
Ilya
брым брым... там по-моему в куках хранится еще один слепок всей корзины в json, при обновлении любой позиции его надо забрать, пересчитать и засунуть обратно
Ilya
что-то в этом духе
Dmytro
Для фильтра.
ну лично бы я подумал, как фильтровать по паренту без доп.тв ))
Andrey
Подумай. Допиши в ефильтр, зашли пул, все будут очень благодарны.
Ilya
ну лично бы я подумал, как фильтровать по паренту без доп.тв ))
этот спор не имеет смысла. понятно что костыли. понятно что дублирование и лишний запрос на выборку. Но таких моментов бывает реально много на проекте. Надо делать как проще всем. Если же 1-2 К уников в день, тогда такие вопросы не встают Из плюсов полная интеграция с eFilter и простота для менеджера
Andrey
Какой он лишний то блин. Там список ТВшек загоняется в запрос и всё, добавили одну.