msTopProducts - fenom ?

Как написать данный вызов на fenom?
[[!msProducts?
&loadModels=`msTopProducts`
&sortby=`{"msTopProduct.rank":"DESC", "msProduct.menuindex":"ASC"}`
&leftJoin=`{
	"msTopProduct" : {
		"class" : "msTopProduct",
		"alias" : "msTopProduct",
		"on" : ["msTopProduct.product_id = msProduct.id", "msTopProduct.category_id = [[*id]] "]
	}
}`]]
Илья Александрович
05 августа 2019, 13:49
modx.pro
88
0

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

    Илья Александрович
    06 августа 2019, 10:56
    0
    если быть более конкретным, то меня интересует вот эта строка
    "on" : ["msTopProduct.product_id = msProduct.id", "msTopProduct.category_id = [[*id]] "]
    вот этот id
    [[*id]]
    как его переписать в этой конструкции на феном, т.к. если так оставить, то не работает.
      ElenaLelo
      06 августа 2019, 10:58
      0
      Если заменить синтаксис с [[*id]] на {$_modx->resource.id} то не работает?
        Илья Александрович
        06 августа 2019, 11:04
        0
        если так [[*id]], то вот это
        [pdoTools] Error 42000: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '[[*id]]  )  WHERE  ( `msProduct`.`class_key` = 'msProduct' AND `msProduct`.`pare' at line 1
        если так {$_modx->resource.id}, то это
        [pdoTools] Error 42000: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '>resource.id}  )  WHERE  ( `msProduct`.`class_key` = 'msProduct' AND `msProduct`' at line 1
        Илья Александрович
        06 августа 2019, 11:06
        0
        {'msProducts' | snippet : [
            'loadModels' => 'msTopProducts',
            'sortby' => '{"msTopProduct.rank":"DESC", "msProduct.menuindex":"ASC"}',
            'leftJoin' => '{
            	"msTopProduct" : {
            		"class" : "msTopProduct",
            		"alias" : "msTopProduct",
            		"on" : ["msTopProduct.product_id = msProduct.id", "msTopProduct.category_id = {$_modx->resource.id} "]
            	}
            }',
            
        	'parents' => $_modx->resource.id,
        	'sortby' => '{"menuindex":"ASC"}',
        	'limit' => 0,
        	'tpl' => '@FILE chunks/blocks/product_item.tpl',
        	'where' => '{"class_key":"msProduct"}',
        ]}
          ElenaLelo
          06 августа 2019, 11:23
          +1
          Надо законтачить символом ~, что бы соединить строчку и переменную, по моему вот как то так должно выглядеть
          ["msTopProduct.product_id = msProduct.id", "msTopProduct.category_id = " ' ~ $_modx->resource.id ~ ' "]
          и у вас идет sortby и потом опять sortby, соедените в один параметр
            Илья Александрович
            06 августа 2019, 11:30
            0
            Большое спасибо. Сработало, вот что в итоге получилось.
            {'msProducts' | snippet : [
                'loadModels' => 'msTopProducts',
                'parents' => $_modx->resource.id,
                'sortby' => '{"msTopProduct.rank":"DESC", "msProduct.menuindex":"ASC"}',
                'leftJoin' => '{
                	"msTopProduct" : {
                		"class" : "msTopProduct",
                		"alias" : "msTopProduct",
                		"on" : ["msTopProduct.product_id = msProduct.id", "msTopProduct.category_id = ' ~ $_modx->resource.id ~ ' "]
                	}
                }',
            	'limit' => 0,
            	'tpl' => '@FILE chunks/blocks/product_item.tpl',
            	'where' => '{"class_key":"msProduct"}',
            ]}
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
7