К содержанию

выборка в migx из resourcelist

Подскажите как сделать выборку из ресурсов например по заданному шаблону или родителю?
А то, судя по всему ресурсов стало так много что при нажатии кнопки добавить элемент открывается окно с Loading и на этом все…
[
  {
    "caption": "Заголовок",
    "fields": [
      {
        "field": "document",
        "caption": "Статья",
        "inputTVtype":"resourcelist"
      }
    ]
  }
]
Евгений
Евгений
06 июля 2020, 03:04
modx.pro
3 031
Реклама

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

Павел Романов
Павел Романов Проверенный
06 июля 2020, 09:05
Сделайте TV типа «Список (одиночный выбор)», в котором в поле «Возможные значения» получайте нужные ресурсы через @EVAL.
Можно прямым запросом в базу, или (если хочется сортировки, настройки вывода, фильтрации) через сниппет, например:

@EVAL return '---==||'.$modx->runSnippet('pdoResources',array(
'parents' => 13,
'templates' => 10,
'limit' => 0,
'sortby'=>'{  "parent":"ASC", "pagetitle":"ASC"  }',
'tpl'=>'@INLINE [[#[[+parent]].pagetitle]] » [[+pagetitle]] ([[+id]])==[[+id]]',
'showUnpublished' => 1,
'outputSeparator'=>'||'
));

И уже эту TV укажите в качестве источника MIGX:

[
  {
    "caption": "Заголовок",
    "fields": [
      {
        "field": "document",
        "caption": "Статья",
        "inputTV":"tvname"
      }
    ]
  }
]
    Евгений
    Евгений Старожил
    07 июля 2020, 02:08
    если прикрепить TVшку к ресурсу то все ок
    а если вставить в MIGX
    то при нажатии на «добавить элемент» вижу такое

    с чем это может быть связано?
      Павел Романов
      Павел Романов Проверенный
      07 июля 2020, 13:00
      К шаблонам и ресурсам ее прицеплять не нужно.
      Покажите, что в «Возможных значениях».
        Евгений
        Евгений Старожил
        07 июля 2020, 14:36
        @EVAL return '---==||'.$modx->runSnippet('pdoResources',array(
        'parents' => 11,
        'templates' => 2,
        'limit' => 0,
        'sortby'=>'{  "parent":"ASC", "pagetitle":"ASC"  }',
        'tpl'=>'@INLINE [[#[[+parent]].pagetitle]] » [[+pagetitle]] ([[+id]])==[[+id]]',
        'showUnpublished' => 1,
        'outputSeparator'=>'||'
        ));
        да я просто для проверки подключал к шаблону
          Павел Романов
          Павел Романов Проверенный
          07 июля 2020, 14:44
          А в консоли браузера есть ошибки какие-то?
            Евгений
            Евгений Старожил
            07 июля 2020, 18:45
            нет
        Антон Тарасов
        Антон Тарасов Проверенный
        23 сентября 2021, 09:47
        если прикрепить TVшку к ресурсу то все ок
        а если вставить в MIGX
        то при нажатии на «добавить элемент» вижу такое
        с чем это может быть связано?
        у меня такое происходило также, но только потому что в MIGX после вызова сниппет через EVAL не была указана точка с запятой, в противном случае все отлично:

        {"field":"category", "caption":"category", "inputTVtype":"listbox",
             "inputOptionValues":"@EVAL return $modx->runSnippet('getCategoryList');"}

        Ну и на всякий случай сниппет getCategoryList, хотя тут выбирается список категорий.

        <?php
        $result = array();
        $c = $modx->newQuery('modCategory');
        $c->sortby('category','ASC');
        $categories = $modx->getCollection('modCategory',$c);
        foreach($categories as $category){
           $result[] = $category->get('category')."==".$category->get('category');
        }
        return implode("||", $result);
      Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
      7