18 сентября 2013, 22:02 Да! Хабрапак очень классный) Продолжайте в том же духе! p.s. эх, их бы чуть побольше (буквально раза в 2)), шоп ретина, все дела… да svg… мечты-мечты =) Вопросы / habrapack 5 0
18 сентября 2013, 18:35 Понял, спасибо) p.s. я как в доки экста захожу — у меня глаза округляются — ни хрена не понимаю с какого боку к нему подойти xD Поэтому, если что-то с экстом делаю, то только по аналогии с уже написанным в самом modx. Дальше не хожу) Вопросы / Подключить свою вкладку в табы extjs 4 0
18 сентября 2013, 11:11 Круто-круто! Спасибо огромное! А вот это: /* Ext.apply(this, { activeTab: 0 ,stateful: true ,stateId: \'modx-user-tabs\' ,stateEvents: [\'tabchange\'] ,getState: function() { return { activeTab:this.items.indexOf(this.getActiveTab()) }; } }); */, на сколько я понимаю, для того, чтобы активную вкладку запоминать? И где-то есть метод. который в это куку записывает? p.s. интересный способ вывода скриптов через массив и implode) Возьму на заметку)) Вопросы / Подключить свою вкладку в табы extjs 4 0
16 сентября 2013, 07:26 А, ёлки! Вот этого сразу не увидел) Тогда буду по твоему примеру делать — разбираться с кэшем ниахота =) Спасибо! Вопросы / Вопрос по процессору на создание Тикета 4 0
16 сентября 2013, 07:06 Что-то я не пойму — там же вызывается родительский beforeSet, который вызывает setFieldDefaults, который всё-равно устанавливает эти поля. Если сбрасывался кэш из-за установки этих полей… Но поля-то эти всё-равно в родительском процессоре устанавливаются… Как это так?) Вопросы / Вопрос по процессору на создание Тикета 4 0
05 сентября 2013, 22:49 Интересно, а массовая рассылка чего-либо (новости, акции) СВОИМ подписчикам (не из какой-нибудь купленной базы) считается спамом? Ну т.е. обратят ли почтовики повышенное внимание к почтовой активности нашего сервера? Хостинг / Настройка DKIM и SPF на Ubuntu 12.04 + Sendmail 23 0 1
05 сентября 2013, 22:26 А я вот всё-таки сделал такой пакетик. Работающий правильно и не требующих никаких танцев с бубнами. Решил его сделать платным (но не дорогим), потому что только истинные оптимизаторы понимают ценность такой вещи. Написал в SimpleDream с предложением добавить его в репозиторий, но они ничего не ответили… Вопросы / last-modified + MS2 15 0
03 сентября 2013, 18:13 Да, про это слышал. Кастомный селект — значит только PDO :-) Спасибо ещё раз! Вопросы / Пара вопросов о процессорах в своём компоненте 6 0
03 сентября 2013, 17:59 1. Конечно, нет) Кстати, тут у меня ещё один волнующий меня вопрос назрел. Как быть в ситуации, когда пользователю надо показать не все поля из строки таблицы компонента? Т.е. юзеру одной группы показывать часть полей строки, юзеру другой группы — другую часть. Какие мысли приходят мне: 1. Создать свою политику. 2. Создать настройку, в которой указать список необходимых полей. 3. Назначить политику нужной группе. 4. В 'list'-процессоре проверять эту политику и отдавать либо все данные, либо только указанные в настройке. 5. Ну и проверку этой политики во всех остальных нужных процессорах. Может есть какие-то best practice по такому вопросу? Вопросы / Пара вопросов о процессорах в своём компоненте 6 0
03 сентября 2013, 16:55 1. А если всё-таки дублировать классы, то у них и названия классов должны быть разными? Надо проверить. По остальным пунктам — спасибо большое! Вопросы / Пара вопросов о процессорах в своём компоненте 6 0
29 августа 2013, 12:03 Всё-таки такую работу должен делать дизайнер. Ситуация в идеале: 1. именно дизайнер должен нарисовать мокапы (это та картинка, ссылку на которую вы привели). 2. затем дизайнер уже с разработчиком (как я понимаю — с вами) должен обговорить структуру будущего сайта, возможно ли сделать то, что он (дизайнер) задумал с технической точки зрения и возможностей выбранной cms (modx в данном случае). 3. с учётом ваших правок дизайнер рисует (хм..) дизайн из полученных мокапов. 4. дальше вы знаете. Если у вас нету опыта в продумывании структуры, каких-то функциональных элементов — лучше не беритесь. Отдайте это всё сразу дизайнеру. К тому же, если вашу работу потом будет проверять заказчик, который, как я понимаю, даже сам ещё не знает чего он хочет, ибо структуру и содержание будущего сайта он доверил продумывать вам, отдельно, без своего участия. Если это так, то, по опыту говорю, 90% вероятности, что проект затянется надолго. А потом он ещё и ещё несколько раз скажет вам, что надо «ещё чуть-чуть вот здесь изменить» и всё это может продлиться очень долго. Так что — лучше не мучайтесь и отдайте это всё дизайнеру. Сразу. Вопросы / Анализ существующей ситуации 2 0
25 августа 2013, 19:11 Класс! Спасибо огромное! Вопросы / Конфликт при вызове msProduct внутри pdoResource 11 0
25 августа 2013, 17:55 В принципе, именно это и видно в конечном html. Вопросы / Конфликт при вызове msProduct внутри pdoResource 11 0
25 августа 2013, 17:51 А в системном журнале на эту тему пусто Вопросы / Конфликт при вызове msProduct внутри pdoResource 11 0
25 августа 2013, 17:50 Не-не-не! Я пользуюсь, ток в этот раз у меня из-за вёрстки лог уехал, я его сразу не увидел… Ну протупил в общем. Вот лог, который выдаёт pdoResource: 0.0090439: xPDO query object created 0.0002632: leftJoined msProductData as Data 0.0002358: leftJoined msVendor as Vendor 0.0012491: leftJoined msProductFile as x220 0.0000131: Grouped by msProduct.id 0.0000689: Added selection of msProduct: SQL_CALC_FOUND_ROWS `msProduct`.`id`, `msProduct`.`type`, `msProduct`.`contentType`, `msProduct`.`pagetitle`, `msProduct`.`longtitle`, `msProduct`.`description`, `msProduct`.`alias`, `msProduct`.`link_attributes`, `msProduct`.`published`, `msProduct`.`pub_date`, `msProduct`.`unpub_date`, `msProduct`.`parent`, `msProduct`.`isfolder`, `msProduct`.`introtext`, `msProduct`.`content`, `msProduct`.`richtext`, `msProduct`.`template`, `msProduct`.`menuindex`, `msProduct`.`searchable`, `msProduct`.`cacheable`, `msProduct`.`createdby`, `msProduct`.`createdon`, `msProduct`.`editedby`, `msProduct`.`editedon`, `msProduct`.`deleted`, `msProduct`.`deletedon`, `msProduct`.`deletedby`, `msProduct`.`publishedon`, `msProduct`.`publishedby`, `msProduct`.`menutitle`, `msProduct`.`donthit`, `msProduct`.`privateweb`, `msProduct`.`privatemgr`, `msProduct`.`content_dispo`, `msProduct`.`hidemenu`, `msProduct`.`class_key`, `msProduct`.`context_key`, `msProduct`.`content_type`, `msProduct`.`uri`, `msProduct`.`uri_override`, `msProduct`.`hide_children_in_tree`, `msProduct`.`show_in_tree`, `msProduct`.`properties` 0.0000310: Added selection of Data: `Data`.`article`, `Data`.`price`, `Data`.`old_price`, `Data`.`weight`, `Data`.`image`, `Data`.`thumb`, `Data`.`vendor`, `Data`.`made_in`, `Data`.`new`, `Data`.`popular`, `Data`.`favorite`, `Data`.`tags`, `Data`.`color`, `Data`.`size`, `Data`.`source` 0.0000250: Added selection of Vendor: `Vendor`.`name` AS `vendor.name`, `Vendor`.`resource` AS `vendor.resource`, `Vendor`.`country` AS `vendor.country`, `Vendor`.`logo` AS `vendor.logo`, `Vendor`.`address` AS `vendor.address`, `Vendor`.`phone` AS `vendor.phone`, `Vendor`.`fax` AS `vendor.fax`, `Vendor`.`email` AS `vendor.email`, `Vendor`.`description` AS `vendor.description`, `Vendor`.`properties` AS `vendor.properties` 0.0000191: Added selection of x220: `x220`.`url` as `x220` 0.0002918: Added where condition: class_key=msProduct, published=1, hidemenu=0, deleted=0, parent:IN(65,66,67,68,69,70,71,72,73,121,122,123) 0.0000160: Sorted by RAND(), ASC. 0.0000081: Limited to 1, offset 0. 0.0005081: SQL prepared "SELECT SQL_CALC_FOUND_ROWS `msProduct`.`id`, `msProduct`.`type`, `msProduct`.`contentType`, `msProduct`.`pagetitle`, `msProduct`.`longtitle`, `msProduct`.`description`, `msProduct`.`alias`, `msProduct`.`link_attributes`, `msProduct`.`published`, `msProduct`.`pub_date`, `msProduct`.`unpub_date`, `msProduct`.`parent`, `msProduct`.`isfolder`, `msProduct`.`introtext`, `msProduct`.`content`, `msProduct`.`richtext`, `msProduct`.`template`, `msProduct`.`menuindex`, `msProduct`.`searchable`, `msProduct`.`cacheable`, `msProduct`.`createdby`, `msProduct`.`createdon`, `msProduct`.`editedby`, `msProduct`.`editedon`, `msProduct`.`deleted`, `msProduct`.`deletedon`, `msProduct`.`deletedby`, `msProduct`.`publishedon`, `msProduct`.`publishedby`, `msProduct`.`menutitle`, `msProduct`.`donthit`, `msProduct`.`privateweb`, `msProduct`.`privatemgr`, `msProduct`.`content_dispo`, `msProduct`.`hidemenu`, `msProduct`.`class_key`, `msProduct`.`context_key`, `msProduct`.`content_type`, `msProduct`.`uri`, `msProduct`.`uri_override`, `msProduct`.`hide_children_in_tree`, `msProduct`.`show_in_tree`, `msProduct`.`properties`, `Data`.`article`, `Data`.`price`, `Data`.`old_price`, `Data`.`weight`, `Data`.`image`, `Data`.`thumb`, `Data`.`vendor`, `Data`.`made_in`, `Data`.`new`, `Data`.`popular`, `Data`.`favorite`, `Data`.`tags`, `Data`.`color`, `Data`.`size`, `Data`.`source`, `Vendor`.`name` AS `vendor.name`, `Vendor`.`resource` AS `vendor.resource`, `Vendor`.`country` AS `vendor.country`, `Vendor`.`logo` AS `vendor.logo`, `Vendor`.`address` AS `vendor.address`, `Vendor`.`phone` AS `vendor.phone`, `Vendor`.`fax` AS `vendor.fax`, `Vendor`.`email` AS `vendor.email`, `Vendor`.`description` AS `vendor.description`, `Vendor`.`properties` AS `vendor.properties`, `x220`.`url` as `x220` FROM `modx_site_content` AS `msProduct` LEFT JOIN `modx_ms2_products` `Data` ON `msProduct`.`id`=`Data`.`id` LEFT JOIN `modx_ms2_vendors` `Vendor` ON `Data`.`vendor`=`Vendor`.`id` LEFT JOIN `modx_bunny_lovems2_product_files` `x220` ON `x220`.`product_id` = `msProduct`.`id` AND `x220`.`parent` != 0 AND `x220`.`path` LIKE '%/x220/' WHERE ( `msProduct`.`class_key` = 'msProduct' AND `msProduct`.`published` = 1 AND `msProduct`.`hidemenu` = 0 AND `msProduct`.`deleted` = 0 AND `msProduct`.`parent` IN (65,66,67,68,69,70,71,72,73,121,122,123) ) GROUP BY msProduct.id ORDER BY RAND() ASC LIMIT 1 " 0.0013440: SQL executed 0.0000958: Total rows: 3 0.0000262: Rows fetched 0.0000079: Returning raw data 0.0028591: Returning processed chunks 0.0059109: Returning processed chunks 0.0220170: Total time 15 728 640: Memory usageА вот лог, который отдаёт msProduct: 0.0090680: xPDO query object created 0.0002520: leftJoined msProductData as Data 0.0002151: leftJoined msVendor as Vendor 0.0012698: leftJoined msProductFile as x220 0.0000222: Grouped by msProduct.id 0.0000679: Added selection of msProduct: SQL_CALC_FOUND_ROWS `msProduct`.`id`, `msProduct`.`type`, `msProduct`.`contentType`, `msProduct`.`pagetitle`, `msProduct`.`longtitle`, `msProduct`.`description`, `msProduct`.`alias`, `msProduct`.`link_attributes`, `msProduct`.`published`, `msProduct`.`pub_date`, `msProduct`.`unpub_date`, `msProduct`.`parent`, `msProduct`.`isfolder`, `msProduct`.`introtext`, `msProduct`.`content`, `msProduct`.`richtext`, `msProduct`.`template`, `msProduct`.`menuindex`, `msProduct`.`searchable`, `msProduct`.`cacheable`, `msProduct`.`createdby`, `msProduct`.`createdon`, `msProduct`.`editedby`, `msProduct`.`editedon`, `msProduct`.`deleted`, `msProduct`.`deletedon`, `msProduct`.`deletedby`, `msProduct`.`publishedon`, `msProduct`.`publishedby`, `msProduct`.`menutitle`, `msProduct`.`donthit`, `msProduct`.`privateweb`, `msProduct`.`privatemgr`, `msProduct`.`content_dispo`, `msProduct`.`hidemenu`, `msProduct`.`class_key`, `msProduct`.`context_key`, `msProduct`.`content_type`, `msProduct`.`uri`, `msProduct`.`uri_override`, `msProduct`.`hide_children_in_tree`, `msProduct`.`show_in_tree`, `msProduct`.`properties` 0.0000300: Added selection of Data: `Data`.`article`, `Data`.`price`, `Data`.`old_price`, `Data`.`weight`, `Data`.`image`, `Data`.`thumb`, `Data`.`vendor`, `Data`.`made_in`, `Data`.`new`, `Data`.`popular`, `Data`.`favorite`, `Data`.`tags`, `Data`.`color`, `Data`.`size`, `Data`.`source` 0.0000250: Added selection of Vendor: `Vendor`.`name` AS `vendor.name`, `Vendor`.`resource` AS `vendor.resource`, `Vendor`.`country` AS `vendor.country`, `Vendor`.`logo` AS `vendor.logo`, `Vendor`.`address` AS `vendor.address`, `Vendor`.`phone` AS `vendor.phone`, `Vendor`.`fax` AS `vendor.fax`, `Vendor`.`email` AS `vendor.email`, `Vendor`.`description` AS `vendor.description`, `Vendor`.`properties` AS `vendor.properties` 0.0000188: Added selection of x220: `x220`.`url` as `x220` 0.0002890: Added where condition: class_key=msProduct, published=1, hidemenu=0, deleted=0, parent:IN(65,66,67,68,69,70,71,72,73,121,122,123) 0.0000150: Sorted by RAND(), ASC. 0.0000081: Limited to 1, offset 0. 0.0004871: SQL prepared "SELECT SQL_CALC_FOUND_ROWS `msProduct`.`id`, `msProduct`.`type`, `msProduct`.`contentType`, `msProduct`.`pagetitle`, `msProduct`.`longtitle`, `msProduct`.`description`, `msProduct`.`alias`, `msProduct`.`link_attributes`, `msProduct`.`published`, `msProduct`.`pub_date`, `msProduct`.`unpub_date`, `msProduct`.`parent`, `msProduct`.`isfolder`, `msProduct`.`introtext`, `msProduct`.`content`, `msProduct`.`richtext`, `msProduct`.`template`, `msProduct`.`menuindex`, `msProduct`.`searchable`, `msProduct`.`cacheable`, `msProduct`.`createdby`, `msProduct`.`createdon`, `msProduct`.`editedby`, `msProduct`.`editedon`, `msProduct`.`deleted`, `msProduct`.`deletedon`, `msProduct`.`deletedby`, `msProduct`.`publishedon`, `msProduct`.`publishedby`, `msProduct`.`menutitle`, `msProduct`.`donthit`, `msProduct`.`privateweb`, `msProduct`.`privatemgr`, `msProduct`.`content_dispo`, `msProduct`.`hidemenu`, `msProduct`.`class_key`, `msProduct`.`context_key`, `msProduct`.`content_type`, `msProduct`.`uri`, `msProduct`.`uri_override`, `msProduct`.`hide_children_in_tree`, `msProduct`.`show_in_tree`, `msProduct`.`properties`, `Data`.`article`, `Data`.`price`, `Data`.`old_price`, `Data`.`weight`, `Data`.`image`, `Data`.`thumb`, `Data`.`vendor`, `Data`.`made_in`, `Data`.`new`, `Data`.`popular`, `Data`.`favorite`, `Data`.`tags`, `Data`.`color`, `Data`.`size`, `Data`.`source`, `Vendor`.`name` AS `vendor.name`, `Vendor`.`resource` AS `vendor.resource`, `Vendor`.`country` AS `vendor.country`, `Vendor`.`logo` AS `vendor.logo`, `Vendor`.`address` AS `vendor.address`, `Vendor`.`phone` AS `vendor.phone`, `Vendor`.`fax` AS `vendor.fax`, `Vendor`.`email` AS `vendor.email`, `Vendor`.`description` AS `vendor.description`, `Vendor`.`properties` AS `vendor.properties`, `x220`.`url` as `x220` FROM `modx_bunny_lovesite_content` AS `msProduct` LEFT JOIN `modx_ms2_products` `Data` ON `msProduct`.`id`=`Data`.`id` LEFT JOIN `modx_ms2_vendors` `Vendor` ON `Data`.`vendor`=`Vendor`.`id` LEFT JOIN `modx_ms2_product_files` `x220` ON `x220`.`product_id` = `msProduct`.`id` AND `x220`.`parent` != 0 AND `x220`.`path` LIKE '%/x220/' WHERE ( `msProduct`.`class_key` = 'msProduct' AND `msProduct`.`published` = 1 AND `msProduct`.`hidemenu` = 0 AND `msProduct`.`deleted` = 0 AND `msProduct`.`parent` IN (65,66,67,68,69,70,71,72,73,121,122,123) ) GROUP BY msProduct.id ORDER BY RAND() ASC LIMIT 1 " 0.0022249: SQL executed 0.0009580: Total rows: 3 0.0000651: Rows fetched 0.0000088: Returning raw data 0.0029361: Returning processed chunks 0.0179609: Total time 15 728 640: Memory usage Т.е. в итоге pdoResource формирует запрос, который должен формировать msProduct! Логи я включал по отдельности, так что это на самом деле так. Вопросы / Конфликт при вызове msProduct внутри pdoResource 11 0
24 августа 2013, 17:51 Точно, забыл, что скобки в этом случае надо писать самостоятельно :-) Спасибо! Вопросы / pdoResource - проблема с NULL в &where=`` 12 0
24 августа 2013, 17:50 Всё, отбой! Заработало! В яваскрипте ж нету значения NULL, есть только null. Написал вот так: &where=`[{«TVshow_in_main.value:!=»: «1», «OR:TVshow_in_main.value:IS»: null]}` и всё ок — и вложенность соблюдается и условие IS NULL прописывается правильно. Только если просто писать название заинклюденного tv-параметра, то в конечном запросе получается modResource.show_in_main. Поэтому TVshow_in_main.value. Вопросы / pdoResource - проблема с NULL в &where=`` 12 0
24 августа 2013, 17:43 Ту статью до этого не видел, но да, проверка на NULL нужна именно из-за того, что там написано. Попробовал написать так, как ты предложил — ничего не вышло, но заработал вот такой вариант: &where=`["TVshow_in_main.value != 1 OR TVshow_in_main.value IS NULL"]`Т.е. теперь условие формируется верно, но опять «но» — xpdo не соблюдает вложенность при таком варианте. Получается вот так: <...> AND TVshow_in_main.value != 1 OR TVshow_in_main.value IS NULL <...>хотя должны были быть скобки: <...> AND (TVshow_in_main.value != 1 OR TVshow_in_main.value IS NULL) <...>Попробовал в &where=`` сделать вложенный массив: &where=`[["TVshow_in_main.value != 1 OR TVshow_in_main.value IS NULL"]]`Результата не принесло — условия снова без скобок. Даже и не знаю… p.s. в статье была ошибка — json-условия были написаны без массива, т.е. без '[]'. А тестировал я как положено. Статью поправил. Вопросы / pdoResource - проблема с NULL в &where=`` 12 0
Возможно ли реализовать возможность предоплаты за доставку на сайте? У меня Робокасса, у них вроде есть docs.robokassa.ru/ru/iframe
Редизайн сообщества На больших экранах основной текст статьи я бы сделал 18 px. Да и текст комментариев можно таким сделать. Для меня лично 16 — мелковато на больших экранах (в комментариях вообще 15 ...
MiniShop3 1.11.0 при клике на radio идет пересчет итоговой суммы в orderUI, в зависимости от способов(оплаты доставки) я так поняла. попробуй код запуска события поставить ниже чем orderUI, после
ImageOptimizer - WebP/AVIF и responsive <picture> для MODX 3 Дополнение доступно modstore.pro/packages/photos-and-files/imageoptimizer
Localizator3 для MODX 3: перевод полей и TV без отдельного context на язык, Vue 3 + PrimeV... Добавил localizator3_default_language
msInShopNotify Начиная с версии 3.0.0-beta добавлена поддержка MiniShop3 Минимальные требования: PHP 8.4 MODX 3.2 MiniShop3
MaxNotify Обновление 1.2.0-pl (03.07.2026) — добавлены уведомления о заявках FormIt через hook-сниппет `maxNotifyFormIt`; — добавлены уведомления о заявках SendIt через hook-...
[msBonus2] 1.3.0 Бонус-коды, уведомления о сгорании и совместимость с msMultiCurre... Да, планируется. Даже чуть больше, чем просто бонусная система)
Продолжайте в том же духе!
p.s. эх, их бы чуть побольше (буквально раза в 2)), шоп ретина, все дела… да svg… мечты-мечты =)
p.s. я как в доки экста захожу — у меня глаза округляются — ни хрена не понимаю с какого боку к нему подойти xD
Поэтому, если что-то с экстом делаю, то только по аналогии с уже написанным в самом modx. Дальше не хожу)
А вот это:
, на сколько я понимаю, для того, чтобы активную вкладку запоминать? И где-то есть метод. который в это куку записывает?
p.s. интересный способ вывода скриптов через массив и implode) Возьму на заметку))
Тогда буду по твоему примеру делать — разбираться с кэшем ниахота =)
Спасибо!
Если сбрасывался кэш из-за установки этих полей… Но поля-то эти всё-равно в родительском процессоре устанавливаются… Как это так?)
Решил его сделать платным (но не дорогим), потому что только истинные оптимизаторы понимают ценность такой вещи.
Написал в SimpleDream с предложением добавить его в репозиторий, но они ничего не ответили…
Спасибо ещё раз!
Кстати, тут у меня ещё один волнующий меня вопрос назрел.
Как быть в ситуации, когда пользователю надо показать не все поля из строки таблицы компонента?
Т.е. юзеру одной группы показывать часть полей строки, юзеру другой группы — другую часть.
Какие мысли приходят мне:
1. Создать свою политику.
2. Создать настройку, в которой указать список необходимых полей.
3. Назначить политику нужной группе.
4. В 'list'-процессоре проверять эту политику и отдавать либо все данные, либо только указанные в настройке.
5. Ну и проверку этой политики во всех остальных нужных процессорах.
Может есть какие-то best practice по такому вопросу?
Надо проверить.
По остальным пунктам — спасибо большое!
Ситуация в идеале:
1. именно дизайнер должен нарисовать мокапы (это та картинка, ссылку на которую вы привели).
2. затем дизайнер уже с разработчиком (как я понимаю — с вами) должен обговорить структуру будущего сайта, возможно ли сделать то, что он (дизайнер) задумал с технической точки зрения и возможностей выбранной cms (modx в данном случае).
3. с учётом ваших правок дизайнер рисует (хм..) дизайн из полученных мокапов.
4. дальше вы знаете.
Если у вас нету опыта в продумывании структуры, каких-то функциональных элементов — лучше не беритесь. Отдайте это всё сразу дизайнеру.
К тому же, если вашу работу потом будет проверять заказчик, который, как я понимаю, даже сам ещё не знает чего он хочет, ибо структуру и содержание будущего сайта он доверил продумывать вам, отдельно, без своего участия. Если это так, то, по опыту говорю, 90% вероятности, что проект затянется надолго. А потом он ещё и ещё несколько раз скажет вам, что надо «ещё чуть-чуть вот здесь изменить» и всё это может продлиться очень долго.
Так что — лучше не мучайтесь и отдайте это всё дизайнеру. Сразу.
Вот лог, который выдаёт pdoResource:
А вот лог, который отдаёт msProduct:
Т.е. в итоге pdoResource формирует запрос, который должен формировать msProduct!
Логи я включал по отдельности, так что это на самом деле так.
Спасибо!
В яваскрипте ж нету значения NULL, есть только null.
Написал вот так:
&where=`[{«TVshow_in_main.value:!=»: «1», «OR:TVshow_in_main.value:IS»: null]}`
и всё ок — и вложенность соблюдается и условие IS NULL прописывается правильно.
Только если просто писать название заинклюденного tv-параметра, то в конечном запросе получается modResource.show_in_main. Поэтому TVshow_in_main.value.
Попробовал написать так, как ты предложил — ничего не вышло, но заработал вот такой вариант:
Т.е. теперь условие формируется верно, но опять «но» — xpdo не соблюдает вложенность при таком варианте. Получается вот так:
хотя должны были быть скобки:
Попробовал в &where=`` сделать вложенный массив:
Результата не принесло — условия снова без скобок. Даже и не знаю…
p.s. в статье была ошибка — json-условия были написаны без массива, т.е. без '[]'. А тестировал я как положено. Статью поправил.