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
218
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