Как можно вывести перечень ресурсов в два дива?

Добрый день!
Как можно вывести список ресурсов в два столбца по 6 шт?
<div class="col-md-6">   
                <ul>
                    <li><a href="">Пункт1</a></li>
                    <li><a href="">Пункт2</a></li>
                    <li><a href="">Пункт3</a></li>
                    <li><a href="">Пункт4</a></li>
                    <li><a href="">Пункт5</a></li>
                    <li><a href="">Пункт6</a></li>
                </ul>
            </div>
            <div class="col-md-6">
                <ul>
                    <li><a href="">Пункт7</a></li>
                    <li><a href="">Пункт8</a></li>
                    <li><a href="">Пункт9</a></li>
                    <li><a href="">Пункт10</a></li>
                    <li><a href="">Пункт11</a></li>
                    <li><a href="">Пункт12</a></li>
                </ul>
            </div>
? под катом детали

Сейчас пробую два вызова:
{'pdoMenu' | snippet : [
                        'limit' => '6',
                        'level' => '1',
                        'tvPrefix' => '',
                        'resources' => $_modx->resource.link_ids,
                        'sortby' => '{ "menuindex":"ASC" }',
                        'tplWrapper' => '@INLINE <ul>{$wrapper}</ul>',
                        'tpl' => '@INLINE <li><a href="{$uri}">{$menutitle}</a></li>',
                        ]}
 {'pdoMenu' | snippet : [
                        'resources' => $_modx->resource.link_ids,
			'offset' => '6',
                        'limit' => '6',
                        'level' => '1',
                        'tvPrefix' => '',
                        'sortby' => '{ "menuindex":"ASC" }',
                        'tplWrapper' => '@INLINE <ul>{$wrapper}</ul>',
                        'tpl' => '@INLINE <li><a href="{$uri}">{$menutitle}</a></li>',
                        ]}
Первый то отрабаывает, но второй не верно выводит информацию.

Еще каким образом можно запретить вывод если в моем случае в ТВ не будут перечислены через запятую айди ресурсов для вывода?
Sergey Leleko
04 сентября 2017, 07:52
modx.pro
1 648
0

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

Алексей Ерохин
04 сентября 2017, 12:56
+1
Скорее всего pdoMenu пытается построить дерево из ресурсов, которые вы указали, поэтому вам не нравится результат. Используйте pdoResources в данном случае
    Sergey Leleko
    04 сентября 2017, 13:05
    0
    Спасибо. Тоже уже задумался о том чтобы использовать pdoResources, но все равно не то выводит.
    <ul>
                            {'pdoResources' | snippet : [
                            'limit' => '6',
                            'level' => '1',
                            'tvPrefix' => '',
                            'includeTVs' => '{$link_ids}',
                            'resources' => '{$link_ids}',
                            'tpl' => '@INLINE <li><a href="/{$uri}">{$pagetitle}</a></li>',
                            'sortdir' => 'ASC'
                            ]}
                    </ul>
                </div>
                <div class="col-md-6">
                    <ul>
                    {'pdoResources' | snippet : [
                            'offset' => '6',
                            'limit' => '6',
                            'level' => '1',
                            'tvPrefix' => '',
                            'includeTVs' => '{$link_ids}',
                            'resources' => '{$link_ids}',
                            'tpl' => '@INLINE <li><a href="/{$uri}">{$pagetitle}</a></li>',
                            'sortdir' => 'ASC'
                            ]}
                    </ul>
    Такое ощущение что просто выводит все что есть в этом родителе, игнорируя то что перечислено в параметре resources
      Алексей Ерохин
      04 сентября 2017, 13:08
      +1
      'parents'=>0
      и не level, а depth
        Павел Гвоздь
        04 сентября 2017, 13:29
        0
        Смотрите:
        Во-первых, выше уже сказано, что для pdoResources привычен параметр depth.
        Во-вторых, вы не совсем верно указываете параметры переменными. Надо:
        'resources' => $link_ids,
        , а у вас:
        'resources' => '{$link_ids}',
        В-третьих, если ничего не поможет — попробуйте некешированный вызов.
          Sergey Leleko
          04 сентября 2017, 13:40
          0
          про depth да, не заметил сразу, но это не помогло.
          Некешированный вызов тоже не помог.
          Привел к такому виду:
          <div class="col-md-6">
                          <ul>
                                  {'!pdoResources' | snippet : [
                                  'parents' => '0',
                                  'limit' => '6',
                                  'depth' => '1',
                                  'tvPrefix' => '',
                                  'includeTVs' => 'link_ids',
                                  'resources' => $link_ids,
                                  'tpl' => '@INLINE <li><a href="/{$uri}">{$pagetitle}</a></li>',
                                  'sortdir' => 'ASC'
                                  ]}
                          </ul>
                      </div>
                      <div class="col-md-6">
                          <ul>
                          {'!pdoResources' | snippet : [
                                  'parents' => '0',
                                  'offset' => '6',
                                  'limit' => '6',
                                  'depth' => '1',
                                  'tvPrefix' => '',
                                  'includeTVs' => 'link_ids',
                                  'resources' => $link_ids,
                                  'tpl' => '@INLINE <li><a href="/{$uri}">{$pagetitle}</a></li>',
                                  'sortdir' => 'ASC'
                                  ]}
                          </ul>
                      </div>
          Но такой вариант выводит только то что и находится в самом верхнем уровне. resources все равно игнорируется
            Павел Гвоздь
            04 сентября 2017, 13:42
            0
            А что в переменной $link_ids?
              Sergey Leleko
              04 сентября 2017, 13:45
              0
              это ТВ в котором перечислены ресурсы в таком виде: 169,171,173,154,180
                Павел Гвоздь
                04 сентября 2017, 13:47
                0
                Эм. А вы уверены, что переменная $link_ids что-то содержит? Я вот, почему-то, не видя сайт и не имея возможности дебага, склоняюсь к тому, что в переменной $link_ids пустота…
                  Sergey Leleko
                  04 сентября 2017, 14:25
                  1
                  0
                  Вы абсолютно правы! Спасибо за помощь Вам, Алексею Ерохину.
                  А так же отдельное огромное спасибо Илье Уткину. С учетом всего и вся получился вот такой результат:
                  {if $_modx->resource.link_ids}	
                          <h2>разновидности</h2>
                          <div class="row different">
                                  <div class="col-md-6" style="min-height: 200px;">
                                    <ul>
                                        {'!pdoResources' | snippet : [
                                        'parents' => '0',
                                        'limit' => '12',
                                        'depth' => '1',
                                        'tvPrefix' => '',
                                        'includeTVs' => 'link_ids',
                                        'resources' => $_modx->resource.link_ids,
                                        'tpl' => '@INLINE <li><a href="/{$uri}">{$pagetitle}</a></li>
                                              {if $idx == 6}</ul></div>
                                              <div class="col-md-6" style="min-height: 200px;"><ul>{/if}',
                                        'sortdir' => 'ASC'
                                        ]}
                                    </ul>
                                    </div>
                              {/if}
                  Это решение подразумевает:
                  1) Один вызов pdoResources, если кол-во перечисленных айди больше 6 то выводится вторая колонка.
                  2) Если TV вообще пустой то блок не выводится
      Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
      9