[РЕШЕНО] Помогите пожалуйста переписать pdoPage WHERE на Fenom

Вопрос решен, как всегда спасибо Василию, ответ здесь: modx.pro/help/9814#comment-67066

Если кратко, то where пишем просто «в чистом виде» вместо массива:

{$_modx->runSnippet('!pdoResources', [
    'parents' => 0,
    'includeTVs' => 'test',
    'where' => ["1 = 1 AND FIND_IN_SET("~$_modx->resource.id~", replace(test, '||', ','))"],
    'showLog' => 1
])}

Вопрос был такой:

Уважаемые коллеги. Сломал всю голову, сказывается плохое знание окавычивания всего и вся в MODX :))) Как переписать этот кусок кода на Fenom?

[[!pdoPage?
                &limit=`107`
                &parents=`3178`
                &includeTVs=`linkto_platform`
                &where=`["1=1 AND FIND_IN_SET('[[*id]]', replace(linkto_platform, '||', ','))"]`
                &tpl=`@INLINE [[+pagetitle]]
`
                &showLog=1
            ]]

Собственно, закавыка только в строке

&where=`["1=1 AND FIND_IN_SET('[[*id]]', replace(linkto_platform, '||', ','))"]`

Я там совсем запутался в кавычках.

Пробовал так:


{$_modx->runSnippet('!pdoResources', [
                'parents' => 3178,
                'includeTVs' => 'linkto_platform',
                'where' => [
                    "1" => 1,
                    "linkto_platform:FIND_IN_SET" => "({$_modx->resource.id}, replace(linkto_platform, '||', ','))",
                ],
                'tplWrapper' => '@INLINE <ul>[[+output]]</ul>',
                'tpl' => '@FILE chunks/news/news_row_simple.tpl',
                'toPlaceholder' => 'games_list',
                'showLog' => 1,
            ])}

Но лог запроса выдает какую-то ересь, вместо работающего запроса в первом случае:

Рабочее условие, выводит нужные ресурсы:

WHERE  ( 1=1 AND FIND_IN_SET('3211', replace(`TVlinkto_platform`.`value`, '||', ','))

Мой код на Fenom, не выводит ничего, потому что генерится кривой where:

WHERE  ( `TVlinkto_platform`.`value` FIND_IN_SET '(3211, replace(linkto_platform, \'||\', \',\'))'

Тут как бы НУПОЧТИ :) Не понимаю, как отключить \' в моем коде, и как закавычить 3211, тогда наверное что-то и будет. Ну и 1=1 куда-то делся, а он нужен, согласно заметки pdoFetch поиск в TV-полях с разделителем ||
Азамат
04 октября 2018, 07:14
modx.pro
903
0

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

Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
0