Как можно вывести перечень ресурсов в два дива?
Добрый день!
Как можно вывести список ресурсов в два столбца по 6 шт?
Сейчас пробую два вызова:
Еще каким образом можно запретить вывод если в моем случае в ТВ не будут перечислены через запятую айди ресурсов для вывода?
Как можно вывести список ресурсов в два столбца по 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>',
]}
Первый то отрабаывает, но второй не верно выводит информацию.Еще каким образом можно запретить вывод если в моем случае в ТВ не будут перечислены через запятую айди ресурсов для вывода?
Комментарии: 9
Скорее всего pdoMenu пытается построить дерево из ресурсов, которые вы указали, поэтому вам не нравится результат. Используйте pdoResources в данном случае
Спасибо. Тоже уже задумался о том чтобы использовать 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 'parents'=>0
и не level, а depth
Смотрите:
Во-первых, выше уже сказано, что для pdoResources привычен параметр depth.
Во-вторых, вы не совсем верно указываете параметры переменными. Надо:
Во-первых, выше уже сказано, что для pdoResources привычен параметр depth.
Во-вторых, вы не совсем верно указываете параметры переменными. Надо:
'resources' => $link_ids,
, а у вас: 'resources' => '{$link_ids}',
В-третьих, если ничего не поможет — попробуйте некешированный вызов.
про 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 все равно игнорируется
А что в переменной $link_ids?
это ТВ в котором перечислены ресурсы в таком виде: 169,171,173,154,180
Эм. А вы уверены, что переменная $link_ids что-то содержит? Я вот, почему-то, не видя сайт и не имея возможности дебага, склоняюсь к тому, что в переменной $link_ids пустота…
Вы абсолютно правы! Спасибо за помощь Вам, Алексею Ерохину.
А так же отдельное огромное спасибо Илье Уткину. С учетом всего и вся получился вот такой результат:
1) Один вызов pdoResources, если кол-во перечисленных айди больше 6 то выводится вторая колонка.
2) Если TV вообще пустой то блок не выводится
А так же отдельное огромное спасибо Илье Уткину. С учетом всего и вся получился вот такой результат:
{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 вообще пустой то блок не выводится
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.