условие where для TV
Подскажите, что делаю неправильно.
Есть вывод ресурсов
Но сниппет ничего не возвращает. Поиск по этому вопросу привел меня сначала на эту страницу
modx.pro/help/2991/
2014 года, где говорится что да, TV не могут участвовать в where. Затем на эту, где говорит автор, что после версии pdoTools 1.8 все исправлено
modx.pro/help/2847/
Но у меня самая последняя версия pdo, значит я делаю что-то не так?
Спасибо.
Есть вывод ресурсов
[[!pdoPage?
&element=`pdoResources`
&parents=`[[*id]]`
&depth=`0`
&tpl=`tpl.products_office_collection`
&includeTVs=`warehouse_for_collection`
&where=`{"warehouse_for_collection":"На заказ"}`
]]
С поиском по TV полю. Поле существует, передается и выводится в шаблоне и имеет именно такое значение — На заказ. Поле задано как radio, поэтому ошибиться в вводе невозможно.Но сниппет ничего не возвращает. Поиск по этому вопросу привел меня сначала на эту страницу
modx.pro/help/2991/
2014 года, где говорится что да, TV не могут участвовать в where. Затем на эту, где говорит автор, что после версии pdoTools 1.8 все исправлено
modx.pro/help/2847/
Но у меня самая последняя версия pdo, значит я делаю что-то не так?
Спасибо.
Комментарии: 9
Изучайте документацию, там все есть.
[[!pdoPage?
&element=`pdoResources`
&parents=`[[*id]]`
&depth=`0`
&tpl=`tpl.products_office_collection`
&includeTVs=`warehouse_for_collection`
&tvFilters=`warehouse_for_collection==На заказ`
]]
Да, Вы правы.
Спасибо.
Спасибо.
Кирилл, ну что-то совсем у меня руки не оттуда.
Сделал фильтрацию по &tvFilters и снова ничего.
Вот результат вызова pdoResources без фильтрации и с пустым tpl
Вызываю тот же pdoResources с условием
Ткните носом где я еще туплю. Строковые значения на складе и на заказ заменял на числовые 0 и 1, не помоголо.
Сделал фильтрацию по &tvFilters и снова ничего.
Вот результат вызова pdoResources без фильтрации и с пустым tpl
[content_type] => 1
[uri] => kabinetyi-rukovoditelya/kabinet-4/
[uri_override] => 0
[hide_children_in_tree] => 0
[show_in_tree] => 1
[properties] =>
[tv.warehouse_for_collection] => На заказ
То есть лежит в warehouse_for_collection строка На заказВызываю тот же pdoResources с условием
[[!pdoResources?
&parents=`[[*id]]`
&depth=`0`
&tpl=`tpl.products_office_collection`
&includeTVs=`warehouse_for_collection`
&limit=`9`
&tvFilters=`warehouse_for_collection==На заказ`
]]
и результат 0 строк.Ткните носом где я еще туплю. Строковые значения на складе и на заказ заменял на числовые 0 и 1, не помоголо.
Добавьте &showLog=`1` и посмотрите sql запрос, попробуйте его в phpmyadmin выполнить. Ну и тут напишите вывод логов, может понятнее станет.
вот полный showlog
0.0001380: pdoTools loaded
0.0000291: xPDO query object created
0.0000350: Added TVs filters
0.0004351: Included list of tvs: warehouse_for_collection, prestig_collection, img_block_collection, country_collection, price_collection, old_price_collection
0.0002379: leftJoined modTemplateVarResource as TVwarehouse_for_collection
0.0002091: leftJoined modTemplateVarResource as TVprestig_collection
0.0003119: leftJoined modTemplateVarResource as TVimg_block_collection
0.0002148: leftJoined modTemplateVarResource as TVcountry_collection
0.0002050: leftJoined modTemplateVarResource as TVprice_collection
0.0002019: leftJoined modTemplateVarResource as TVold_price_collection
0.0004241: Added selection of modResource: SQL_CALC_FOUND_ROWS `id`, `type`, `contentType`, `pagetitle`, `longtitle`, `description`, `alias`, `link_attributes`, `published`, `pub_date`, `unpub_date`, `parent`, `isfolder`, `introtext`, `richtext`, `template`, `menuindex`, `searchable`, `cacheable`, `createdby`, `createdon`, `editedby`, `editedon`, `deleted`, `deletedon`, `deletedby`, `publishedon`, `publishedby`, `menutitle`, `donthit`, `privateweb`, `privatemgr`, `content_dispo`, `hidemenu`, `class_key`, `context_key`, `content_type`, `uri`, `uri_override`, `hide_children_in_tree`, `show_in_tree`, `properties`
0.0000112: Added selection of modTemplateVarResource: IFNULL(`value`, 'На заказ') AS `tv.warehouse_for_collection`
0.0000081: Added selection of modTemplateVarResource: IFNULL(`value`, 'Бизнес-класс') AS `tv.prestig_collection`
0.0000069: Added selection of modTemplateVarResource: IFNULL(`value`, '') AS `tv.img_block_collection`
0.0000072: Added selection of modTemplateVarResource: IFNULL(`value`, '') AS `tv.country_collection`
0.0000072: Added selection of modTemplateVarResource: IFNULL(`value`, '') AS `tv.price_collection`
0.0000069: Added selection of modTemplateVarResource: IFNULL(`value`, '') AS `tv.old_price_collection`
0.0000410: Replaced TV conditions
0.0002632: Processed additional conditions
0.0005989: Added where condition: 0=`TVwarehouse_for_collection`.`value` LIKE 'На заказ', modResource.parent:IN(30), modResource.published=1, modResource.deleted=0
0.0000360: Replaced TV conditions
0.0001481: Sorted by modResource.publishedon, DESC
0.0000019: Limited to 9, offset 0
0.0002871: SQL prepared "SELECT SQL_CALC_FOUND_ROWS `modResource`.`id`, `modResource`.`type`, `modResource`.`contentType`, `modResource`.`pagetitle`, `modResource`.`longtitle`, `modResource`.`description`, `modResource`.`alias`, `modResource`.`link_attributes`, `modResource`.`published`, `modResource`.`pub_date`, `modResource`.`unpub_date`, `modResource`.`parent`, `modResource`.`isfolder`, `modResource`.`introtext`, `modResource`.`richtext`, `modResource`.`template`, `modResource`.`menuindex`, `modResource`.`searchable`, `modResource`.`cacheable`, `modResource`.`createdby`, `modResource`.`createdon`, `modResource`.`editedby`, `modResource`.`editedon`, `modResource`.`deleted`, `modResource`.`deletedon`, `modResource`.`deletedby`, `modResource`.`publishedon`, `modResource`.`publishedby`, `modResource`.`menutitle`, `modResource`.`donthit`, `modResource`.`privateweb`, `modResource`.`privatemgr`, `modResource`.`content_dispo`, `modResource`.`hidemenu`, `modResource`.`class_key`, `modResource`.`context_key`, `modResource`.`content_type`, `modResource`.`uri`, `modResource`.`uri_override`, `modResource`.`hide_children_in_tree`, `modResource`.`show_in_tree`, `modResource`.`properties`, IFNULL(`TVwarehouse_for_collection`.`value`, 'На заказ') AS `tv.warehouse_for_collection`, IFNULL(`TVprestig_collection`.`value`, 'Бизнес-класс') AS `tv.prestig_collection`, IFNULL(`TVimg_block_collection`.`value`, '') AS `tv.img_block_collection`, IFNULL(`TVcountry_collection`.`value`, '') AS `tv.country_collection`, IFNULL(`TVprice_collection`.`value`, '') AS `tv.price_collection`, IFNULL(`TVold_price_collection`.`value`, '') AS `tv.old_price_collection` FROM `office_site_content` AS `modResource` LEFT JOIN `office_site_tmplvar_contentvalues` `TVwarehouse_for_collection` ON `TVwarehouse_for_collection`.`contentid` = `modResource`.`id` AND `TVwarehouse_for_collection`.`tmplvarid` = 7 LEFT JOIN `office_site_tmplvar_contentvalues` `TVprestig_collection` ON `TVprestig_collection`.`contentid` = `modResource`.`id` AND `TVprestig_collection`.`tmplvarid` = 5 LEFT JOIN `office_site_tmplvar_contentvalues` `TVimg_block_collection` ON `TVimg_block_collection`.`contentid` = `modResource`.`id` AND `TVimg_block_collection`.`tmplvarid` = 9 LEFT JOIN `office_site_tmplvar_contentvalues` `TVcountry_collection` ON `TVcountry_collection`.`contentid` = `modResource`.`id` AND `TVcountry_collection`.`tmplvarid` = 10 LEFT JOIN `office_site_tmplvar_contentvalues` `TVprice_collection` ON `TVprice_collection`.`contentid` = `modResource`.`id` AND `TVprice_collection`.`tmplvarid` = 11 LEFT JOIN `office_site_tmplvar_contentvalues` `TVold_price_collection` ON `TVold_price_collection`.`contentid` = `modResource`.`id` AND `TVold_price_collection`.`tmplvarid` = 12 WHERE ( `TVwarehouse_for_collection`.`value` LIKE 'На заказ' AND `modResource`.`parent` IN (30) AND `modResource`.`published` = 1 AND `modResource`.`deleted` = 0 ) ORDER BY modResource.publishedon DESC LIMIT 9 "
0.0006509: SQL executed
0.0000570: Total rows: 0
0.0000091: Rows fetched
0.0000181: Prepared and processed TVs
0.0000012: Returning processed chunks
0.0044119: Total time
6 553 600: Memory usage
Выполнение данного SQL запроса в PMA вернул MySQL вернула пустой результат (т.е. ноль строк). (Запрос занял 0.0009 сек.)
Ни по одному из передаваемых TV фильтрация не идет, возвращает ноль строк.
При всем при этом tv поля отлично отображаются в шаблоне.
При всем при этом tv поля отлично отображаются в шаблоне.
Доступ к тестовому:
s9969.h8.modhost.pro/manager/
s9969
QVaIGxhuRKsB
Вывод pdoPage s9969.h8.modhost.pro/index.php?id=55
В админке ресурс так и называется pdopage.
Все корректно фильтрует.
s9969.h8.modhost.pro/manager/
s9969
QVaIGxhuRKsB
Вывод pdoPage s9969.h8.modhost.pro/index.php?id=55
В админке ресурс так и называется pdopage.
Все корректно фильтрует.
Спасибо, что Вы так ответственно подошли.
Сложно сказать, что это был за глюк.
Оказывается, как ответил Василий Наумкин, то и where должно работать с TV полями.
Я на следующий день раскоментировал вызов сниппета с условиями where? который ничего не находил и вдруг о чудо — он стал возвращать результаты. Хотя ничего на сайте не менялось.
Я уже сталкивался с подобным полгода назад на одном проекте, который делали другие люди.
Это вот описано в моем вопросе modx.pro/help/11402/
Проект этот делал не я, он проработал несколько лет и вдруг начал выдавать ерунду в страницы. Перестало работать where. Прошло несколько дней и все само вернулось назад.
Сложно сказать, что это был за глюк.
Оказывается, как ответил Василий Наумкин, то и where должно работать с TV полями.
Я на следующий день раскоментировал вызов сниппета с условиями where? который ничего не находил и вдруг о чудо — он стал возвращать результаты. Хотя ничего на сайте не менялось.
Я уже сталкивался с подобным полгода назад на одном проекте, который делали другие люди.
Это вот описано в моем вопросе modx.pro/help/11402/
Проект этот делал не я, он проработал несколько лет и вдруг начал выдавать ерунду в страницы. Перестало работать where. Прошло несколько дней и все само вернулось назад.
Это какие-то глюки pdoResources
getResources прекрасно фильтрует.
getResources прекрасно фильтрует.
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.