Не могу составить запрос where в PdoResources

Хочу выводить на каждой странице похожие материалы-миниатюры страниц, которые я сам укажу в дополнительном поле.
Соответственно создал дополнительное поле(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
dima.kazuto
01 мая 2015, 12:57
modx.pro
1
3 499
-1

Комментарии: 5

Павел Романов
01 мая 2015, 18:10
+1
&tvFilters=`view_page==%[[*pagetitle]]%`
    dima.kazuto
    01 мая 2015, 19:24
    0
    в том то и проблема что pagetitle нужно брать не от текущей страницы.Пробовал написать [[+pagetitle]] и другие варианты, но такая запись не воспринимается.
    Кстати есть задумка через свой сниппет сделать, но опять же не могу передать туда значения pagetitle искомых страниц(в моем случае все страницы дочерние контейнеру 8).
    В запросе where написать что то типа
    &where=`{"[[snippet? &pole1=`[[*view_page]]` &pole2=`[[+pagetitle]]`]]":"True"}`
    ну и в сниппете соответственно возвращать false или true, в зависимости от того есть ли такой pagetitle в view_page или нет.
      Павел Романов
      01 мая 2015, 19:41
      1
      +1
      Если Вы хотите на какой-то (целевой) странице выводить какие-то другие, то есть два варианта.

      1. Сделать у целевой страницы TV, где указывать через запятую просто ID нужных страниц. Ну а дальше просто через &resources их и выводить.
      Для удобства TV можно сделать типа «Множественный выбор» с возможными значениями, задаваемыми, к примеру, через EVAL:
      @EVAL return $modx->runSnippet('pdoResources',array('parents'=>8,'depth'=>0,'limit'=>0,'sortby'=>'{"pagetitle":"ASC"}','tpl'=>'@INLINE [[+pagetitle]]==[[+id]],','outputSeparator'=>'||'));

      2. У выводимых страниц сделать TV c указанием на каких целевых их выводить. В этом случае через EVAL будет то же самое, только шаблон другой:
      @EVAL return $modx->runSnippet('pdoResources',array('parents'=>ID_родителя,'depth'=>0,'limit'=>0,'sortby'=>'{"pagetitle":"ASC"}','tpl'=>'@INLINE [[+pagetitle]]==[[+pagetitle]]','outputSeparator'=>'||'));
      Тогда, как я и написал в предыдущем комменте, нужно на целевой странице вызывать их через:
      &tvFilters=`view_page==%[[*pagetitle]]%`
        dima.kazuto
        01 мая 2015, 21:18
        0
        спасибо.Первый вариант то что нужно)
        Отпишу нюансы с которыми столкнулся, может кому понадобится.
        -у создаваемого поля в возможных значениях получился такой код
        @EVAL return $modx->runSnippet('pdoResources',array('parents'=>8,'limit'=>0,'sortby'=>'{"menuindex":"ASC"}','tpl'=>'@INLINE [[+pagetitle]]==[[+id]]','outputSeparator'=>'||'));
        В параметрах вывода нужно указать -разделитель и поставить запятую, иначе значения поля которое нужно будет указать в pdoresources будут разделены ||.
        -код вызова pdoresources
        [[!pdoResources? &limit=`0` &tpl=`menu2_1` &depth=`0` &parents=`8` &resources=`[[*view_page]]` &sortdir=`ASC` &includeTVs=`kart,text_ca,zag`]]
          Павел Романов
          02 мая 2015, 08:53
          +1
          Все верно.
          У меня запятая стоит прямо в шаблоне после [[+id]]:
          ......'tpl'=>'@INLINE [[+pagetitle]]==[[+id]],'......
          Но можно и в параметрах вывода.
    Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
    5