Не могу составить запрос where в PdoResources
Хочу выводить на каждой странице похожие материалы-миниатюры страниц, которые я сам укажу в дополнительном поле.
Соответственно создал дополнительное поле(checkbox) и вывел в возможные значения все нужные страницы.
Теперь вызываю PdoResources.
Значение view_page включает в себя заголовки страниц (Инженерные работыО насЧип-тюнинг).
Соответственно мне нужно выбрать страницы, которые встречаются поле view_page текущей страницы.
Вот лог
Соответственно создал дополнительное поле(checkbox) и вывел в возможные значения все нужные страницы.
Теперь вызываю PdoResources.
Значение view_page включает в себя заголовки страниц (Инженерные работыО насЧип-тюнинг).
Соответственно мне нужно выбрать страницы, которые встречаются поле view_page текущей страницы.
[[pdoResources? &tpl=`menu2_1` &limit=`0` &depth=`5` &parents=`8` &select=`pagetitle` &includeTVs=`kart,text_ca,zag` &showLog=`1` &where=`{"[[*view_page]]:LIKE":"%[[+pagetitle]]%"}` ]]Проблема кажется из за того что не подставляются значения [[+pagetitle]].Вот лог
0.0001440: pdoTools loaded 0.0000319: xPDO query object created 0.0004199: Included list of tvs: kart, text_ca, zag 0.0003679: leftJoined modTemplateVarResource as TVkart 0.0003090: leftJoined modTemplateVarResource as TVtext_ca 0.0003059: leftJoined modTemplateVarResource as TVzag 0.0001671: Added selection of modResource: SQL_CALC_FOUND_ROWS `pagetitle` 0.0000100: Added selection of modTemplateVarResource: IFNULL(`value`, '') AS `tv.kart` 0.0000072: Added selection of modTemplateVarResource: IFNULL(`value`, '') AS `tv.text_ca` 0.0000072: Added selection of modTemplateVarResource: IFNULL(`value`, '') AS `tv.zag` 0.0000670: Replaced TV conditions 0.0006969: Processed additional conditions 0.0011878: Added where condition: Инженерные работыО насЧип-тюнинг:LIKE=%%, modResource.parent:IN(8,84,85,10,95,110,97,98,86,89,90,93,88,87,9,83,99,100,101,102,105,106,107,108,103,104,111,113,128,112,114,115,116,117,118,119,120,121,122,123,124,125,126,127), modResource.published=1, modResource.deleted=0 0.0000348: Replaced TV conditions 0.0001581: Sorted by modResource.publishedon, DESC 0.0002868: SQL prepared "SELECT SQL_CALC_FOUND_ROWS `modResource`.`pagetitle`, IFNULL(`TVkart`.`value`, '') AS `tv.kart`, IFNULL(`TVtext_ca`.`value`, '') AS `tv.text_ca`, IFNULL(`TVzag`.`value`, '') AS `tv.zag` FROM `modx_site_content` AS `modResource` LEFT JOIN `modx_site_tmplvar_contentvalues` `TVkart` ON `TVkart`.`contentid` = `modResource`.`id` AND `TVkart`.`tmplvarid` = 23 LEFT JOIN `modx_site_tmplvar_contentvalues` `TVtext_ca` ON `TVtext_ca`.`contentid` = `modResource`.`id` AND `TVtext_ca`.`tmplvarid` = 25 LEFT JOIN `modx_site_tmplvar_contentvalues` `TVzag` ON `TVzag`.`contentid` = `modResource`.`id` AND `TVzag`.`tmplvarid` = 24 WHERE ( `modResource`.`Инженерные работыО насЧип-тюнинг` LIKE '%%' AND `modResource`.`parent` IN (8,84,85,10,95,110,97,98,86,89,90,93,88,87,9,83,99,100,101,102,105,106,107,108,103,104,111,113,128,112,114,115,116,117,118,119,120,121,122,123,124,125,126,127) AND `modResource`.`published` = 1 AND `modResource`.`deleted` = 0 ) ORDER BY modResource.publishedon DESC " 0.0005851: Could not process query, error #1054: Unknown column 'modResource.Инженерные работыО насЧип-тюнинг' in 'where clause' 0.0041020: Total time 7 077 888: Memory usage
Комментарии: 5
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
Кстати есть задумка через свой сниппет сделать, но опять же не могу передать туда значения pagetitle искомых страниц(в моем случае все страницы дочерние контейнеру 8).
В запросе where написать что то типа
ну и в сниппете соответственно возвращать false или true, в зависимости от того есть ли такой pagetitle в view_page или нет.
1. Сделать у целевой страницы TV, где указывать через запятую просто ID нужных страниц. Ну а дальше просто через &resources их и выводить.
Для удобства TV можно сделать типа «Множественный выбор» с возможными значениями, задаваемыми, к примеру, через EVAL:
2. У выводимых страниц сделать TV c указанием на каких целевых их выводить. В этом случае через EVAL будет то же самое, только шаблон другой:
Тогда, как я и написал в предыдущем комменте, нужно на целевой странице вызывать их через:
Отпишу нюансы с которыми столкнулся, может кому понадобится.
-у создаваемого поля в возможных значениях получился такой код
В параметрах вывода нужно указать -разделитель и поставить запятую, иначе значения поля которое нужно будет указать в pdoresources будут разделены ||.
-код вызова pdoresources
У меня запятая стоит прямо в шаблоне после [[+id]]: Но можно и в параметрах вывода.