Skip to content

Instantly share code, notes, and snippets.

@Ibochkarev
Forked from Sentinel-7/MIGX fenom
Created March 15, 2019 05:01
Show Gist options
  • Save Ibochkarev/ab3a69ba1900e374aeffba9d331c80d3 to your computer and use it in GitHub Desktop.
Save Ibochkarev/ab3a69ba1900e374aeffba9d331c80d3 to your computer and use it in GitHub Desktop.
MIGX fenom
{foreach $_modx->resource['adv.Index'] | fromJSON as $item}
<div class="col-xs-12 col-sm-6 col-md-4">
<div class="icon-box left media p-0 mb-40">
<div class="media-left pull-left"><i class="{$item['icon']} text-theme-colored"></i></div>
<div class="media-body">
<p class="media-heading heading h5">{$item['title']}</p>
<p>{$item['desc']}</p>
</div>
</div>
</div>
{/foreach}
======================================================
если у сниппета getImageList указывается id ресурса родителя &docid=`20`
{set $rows = 20 | resource : 'configurator' | fromJSON}
{foreach $rows as $row}
<h2>Конфигуратор</h2>
<div class="tm-firmware-panel">
<div class="tm-firmware-panel-title">
<div class="">
<h3>{$row.title}</h3>
<p>{$row.introtext}</p>
</div>
<div class="tm-firmware-panel-buttons">
<a href="{$row.zip}" class="uk-button uk-button-primary tm-icon-zip"></a>
<a href="{$row.rar}" class="uk-button uk-button-primary tm-icon-rar"></a>
</div>
</div>
<div class="tm-firmware-panel-info">
<p>{$row.info1}</p>
</div>
<div class="tm-firmware-panel-warning">
<p>{$row.info2}</p>
</div>
</div>
{/foreach}
======================================================
А как в данном варианте прописать дополнительные условия работы цикла?
Например, выводить только 2 первые записи, или пропустить первые 5 проходок?
Самое простое через ключ массива.
{*Первые два*}
{foreach $rows as $idx => $row}
{if $idx < 2}
<div>{$idx} - {$row.title}</div>
{/if}
{/foreach}
{*С пятой строки*}
{foreach $rows as $idx => $row}
{if $idx > 4}
<div>{$idx} - {$row.title}</div>
{/if}
{/foreach}
{*Чересстрочная вакханалия*}
{foreach $rows as $idx => $row}
<div{$idx is odd ? ' class="odd"' : ''>{$idx} - {$row.title} и два тикета туДаблин</div>
{/foreach}
======================================================
если нет ни одного option тогда фраза скажем «опций нет», т.е. значение по default
{set $rows = json_decode($_modx->resource.options, true)}
{if $rows?}
{foreach $rows as $row}
{if $row.active == '1'}
<option value="{$row.alt}">{$row.alt}</option>
{/if}
{/foreach}
{else}
<option value="">Вакансий нет</option>
{/if}
{*Первые два*}
{foreach $rows as $idx => $row}
{if $idx < 2}
<div>{$idx} - {$row.title}</div>
{/if}
{/foreach}
{*С пятой строки*}
{foreach $rows as $idx => $row}
{if $idx > 4}
<div>{$idx} - {$row.title}</div>
{/if}
{/foreach}
{*Чересстрочная вакханалия*}
{foreach $rows as $idx => $row}
<div{$idx is odd ? ' class="odd"' : ''>{$idx} - {$row.title} и два тикета туДаблин</div>
{/foreach}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment