Как сделать условие выборки для article.

Создал для быстрой вставки товаров в тело любой страницы, хочу чтобы не него можно было вносить назания товара (Артикль). Раньше было сделано по id ресурса через resources
вызов такой:
{include 'file:chunks/blocks/pdo_project.tpl' $resources='212,207,197'}
Код чанка такой:
{set $params = [
'depth' => '0',
'resources' => $resources,
'element' => 'msProducts',
'tpl' => '@FILE chunks/cards/card.tpl',
'includeThumbs' => 'medium',
'limit' => 80,
'includeTVs' => 'price1,area',
'tvPrefix' => '',
'parents' =>  0 ,
]}
<div class="rows row row-cols-1 row-cols-sm-2 row-cols-md-3 catalog mt-2">
    {'!pdoPage' | snippet : $params}
</div>
Сейчас пытаюсь через where заменить
'resources' => $resources
на
'where'=> '{"article:IN":$articles}',
но ничего не работает.
Артикли на кириллице
Miša Bulic
07 апреля 2021, 18:02
modx.pro
643
0

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

Артур Шевченко
07 апреля 2021, 19:58
0
А если так
'where' => ['article:IN' => $articles]
И ещё ты должен быть уверен в том, что в $articles массив, и среди $resources есть подходящие под условие в where. Ну и на мой взгляд, лучше параметр resources убрать.
    Miša Bulic
    07 апреля 2021, 20:03
    0
    Ошибка падает
    [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 ''Сириус' AND `msProduct`.`published` = 1 AND `msProduct`.`deleted` = 0 )  ' at line 1
    Вызов такой:
    {include 'file:chunks/blocks/pdo_project.tpl' $articles='Сириус'}
      Артур Шевченко
      07 апреля 2021, 20:11
      0
      ты должен быть уверен в том, что в $articles массив
        Miša Bulic
        07 апреля 2021, 20:15
        0
        сделал 2 артикля, результат тот же
          Артур Шевченко
          07 апреля 2021, 20:41
          0
          Покажи.
            Miša Bulic
            07 апреля 2021, 20:43
            0
            {include 'file:chunks/blocks/pdo_project.tpl' $articles='Сириус,Удача'}
            Ошибка
            [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 ''[Сириус,Удача]' AND `msProduct`.`published` = 1 AND `msProduct`.`del' at line 1
              Артур Шевченко
              07 апреля 2021, 20:48
              0
              Вот так выглядит массив ['Сириус','Удача']
                Miša Bulic
                07 апреля 2021, 20:50
                0
                {include 'file:chunks/blocks/pdo_project.tpl' $articles=['Сириус','Удача']}
                Падает ошибка
                [pdoTools] Error 42S22: Unknown column 'msProduct.article' in 'where clause'
                  Артур Шевченко
                  07 апреля 2021, 21:27
                  0
                  showLog сделай
                    Miša Bulic
                    07 апреля 2021, 21:30
                    0
                    0.0002980: pdoTools loaded
                    0.0000529: Created inline "modChunk" with name "f7da63f2d337d08ca9dcacc531069c1e"
                    0.0020502: Loaded "modSnippet" with name "msProducts"
                    0.0079439: Created inline "modChunk" with name "e6747421ac951eec87076a3f44c6a184"
                    0.0103621: Total time
                    4 194 304: Memory usage
                      Артур Шевченко
                      07 апреля 2021, 21:32
                      0
                      я правильно понимаю вызов внутри pdo_project.tpl?
                      Miša Bulic
                      07 апреля 2021, 21:33
                      0
                      {set $params = [
                      'ajaxMode' => 'default',
                      'depth' => '0',
                      'element' => 'msProducts',
                      'tpl' => '@FILE chunks/cards/card.tpl',
                      'includeThumbs' => 'square',
                      'limit' => 6,
                      'includeTVs' => 'size,pro,price1,area',
                      'where' => ['article:IN' => $articles]
                      'tvPrefix' => '',
                      'parents' => 0,
                      'showLog' => 1,
                      ]}
                      <div class="rows row row-cols-1 row-cols-sm-2 row-cols-md-3 catalog mt-2">
                          {'!pdoPage' | snippet : $params}
                      </div>
                      Артур Шевченко
                      07 апреля 2021, 21:36
                      0
                      Это код расположен внутри чанка?
                      Miša Bulic
                      07 апреля 2021, 21:37
                      0
                      да
                      Артур Шевченко
                      07 апреля 2021, 21:39
                      0
                      А ты уверен что там есть $articles, я не встречал такого способа передачи параметров как у тебя?
                      Miša Bulic
                      07 апреля 2021, 21:42
                      0
                      {include 'file:chunks/blocks/pdo_project.tpl' $resources='250,251'}
                      {set $params = [
                      'depth' => '0',
                      'resources' => $resources,
                      'element' => 'msProducts',
                      'tpl' => '@FILE chunks/cards/card-project.tpl',
                      'includeThumbs' => 'medium',
                      'limit' => 80,
                      'includeTVs' => 'size,pro,price1,area,projectname',
                      'tvPrefix' => '',
                      'parents' =>  0 ,
                      ]}
                      <div class="rows row row-cols-1 row-cols-sm-2 row-cols-md-3 catalog mt-2">
                          {'!pdoPage' | snippet : $params}
                      </div>
                      Вот такой работает, я и хотел узнать как сделать чтобы можно было не айдишник искать, а по названию выводить
                      Артур Шевченко
                      07 апреля 2021, 22:05
                      0
                      Попробуй прописать параметры напрямую без переменных
                  Роман
                  08 апреля 2021, 09:39
                  0
                  Пишет, что неизвестный столбец.
                  Data.article:IN
                    Miša Bulic
                    08 апреля 2021, 09:41
                    0
                    Так заработало, спасибо!
    Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
    19