Вывод каждого второго (третьего) ресурса

Подскажите как грамотно вывести ресурсы по колонкам? То есть имеется ресурс-родитель, в нем допустим 6 дочерних ресурсов.
Их нужно разнести в 3 колонки и сделать возможность добавления ресурсов, так чтобы они распределялись по колонкам хоть по параметру menuindex. То есть по сути в верстке я хотел сделать 3 вызова pdoResources, чтобы в каждом была выборка по параметру menuindex:0,3,6,9 и т.д, menuindex:1,4,7,10 и т.д, menuindex:2,5,8,11 и т.д, но не могу составить условие where.
или использовать conditionalTpl, но какой при этом оператор взять?
Евгений
03 июня 2017, 09:30
modx.pro
1
1 348
0

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

t.g
t.g
03 июня 2017, 18:30
1
+1
Не уверен решит ли это вашу задачу, но можно попробовать церез css это реализовать.
css-tricks.com/almanac/properties/c/columns/
div {
    -webkit-column-count: 3; /* Chrome, Safari, Opera */
    -moz-column-count: 3; /* Firefox */
    column-count: 3;
}
    DocentBF
    03 июня 2017, 19:05
    +1
    Могу предложить проверять условием деления на 3 без остатка.
    Для первого столбца:
    WHERE menuindex % 3 = 0
    для второго столбца:
    WHERE (menuindex-1) % 3 = 0
    для третьего столбца:
    WHERE (menuindex-2) % 3 = 0
    п.с.: ошибся веткой)
      Евгений
      07 июня 2017, 17:02
      0
      Идея вроде хорошая. правда не пойму почему не работает:
      {$_modx->runSnippet('pdoResources',[
                               'parents' => 9,
                               'tpl' => '@FILE chunks/main/AdvantagesItem.html',
                               'where' => '{"menuindex:%3":0}'])}
        DocentBF
        08 июня 2017, 14:31
        0
        'showLog'=>1, в помощь) Смотрите какой sql выходит.
          Евгений
          08 июня 2017, 19:16
          0
          0.0001481: pdoTools loaded
          0.0000310: xPDO query object created
          0.0032089: Added selection of modResource: SQL_CALC_FOUND_ROWS `id`, `type`, `contentType`, `pagetitle`, `longtitle`, `description`, `alias`, `link_attributes`, `published`, `pub_date`, `unpub_date`, `parent`, `isfolder`, `introtext`, `richtext`, `template`, `menuindex`, `searchable`, `cacheable`, `createdby`, `createdon`, `editedby`, `editedon`, `deleted`, `deletedon`, `deletedby`, `publishedon`, `publishedby`, `menutitle`, `donthit`, `privateweb`, `privatemgr`, `content_dispo`, `hidemenu`, `class_key`, `context_key`, `content_type`, `uri`, `uri_override`, `hide_children_in_tree`, `show_in_tree`, `properties`
          0.0005391: Processed additional conditions
          0.0008328: Added where condition: id:%3=0, modResource.parent:IN(9,10,12,13,14,15), modResource.published=1, modResource.deleted=0
          0.0001030: Sorted by modResource.menuindex, ASC
          0.0000050: Limited to 10, offset 0
          0.0003409: SQL prepared "SELECT SQL_CALC_FOUND_ROWS `modResource`.`id`, `modResource`.`type`, `modResource`.`contentType`, `modResource`.`pagetitle`, `modResource`.`longtitle`, `modResource`.`description`, `modResource`.`alias`, `modResource`.`link_attributes`, `modResource`.`published`, `modResource`.`pub_date`, `modResource`.`unpub_date`, `modResource`.`parent`, `modResource`.`isfolder`, `modResource`.`introtext`, `modResource`.`richtext`, `modResource`.`template`, `modResource`.`menuindex`, `modResource`.`searchable`, `modResource`.`cacheable`, `modResource`.`createdby`, `modResource`.`createdon`, `modResource`.`editedby`, `modResource`.`editedon`, `modResource`.`deleted`, `modResource`.`deletedon`, `modResource`.`deletedby`, `modResource`.`publishedon`, `modResource`.`publishedby`, `modResource`.`menutitle`, `modResource`.`donthit`, `modResource`.`privateweb`, `modResource`.`privatemgr`, `modResource`.`content_dispo`, `modResource`.`hidemenu`, `modResource`.`class_key`, `modResource`.`context_key`, `modResource`.`content_type`, `modResource`.`uri`, `modResource`.`uri_override`, `modResource`.`hide_children_in_tree`, `modResource`.`show_in_tree`, `modResource`.`properties` FROM `5ZFkOonepRdS_site_content` AS `modResource` WHERE  ( `modResource`.`id` %3 0 AND `modResource`.`parent` IN (9,10,12,13,14,15) AND `modResource`.`published` = 1 AND `modResource`.`deleted` = 0 )  ORDER BY modResource.menuindex ASC LIMIT 10 "
          0.0004470: Could not process query, error #1064: 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 '0 AND `modResource`.`parent` IN (9,10,12,13,14,15) AND `modResource`.`published`' at line 1
          0.0052440: Total time
          2 097 152: Memory usage
          Видимо where неправильно так в запросе. пробовал на id. Может сможете подсказать, что по логу не так?
            DocentBF
            10 июня 2017, 00:00
            +1
            Как минимум нет знака = между %3 и 0. Попробуйте написать в квадратных скобках чистый sql.
            'where'=>'[" menuindex % 3 = 0 "]'
    Евгений
    07 июня 2017, 17:02
    0
    Просто верстка уже есть. не хотелось бы переделывать.
    Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
    8