Skip to content

Instantly share code, notes, and snippets.

@bartholomej
Last active October 8, 2015 13:28
Show Gist options
  • Star 1 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save bartholomej/983de8db43dc77ae1859 to your computer and use it in GitHub Desktop.
Save bartholomej/983de8db43dc77ae1859 to your computer and use it in GitHub Desktop.
MODX columnizer
<?php
/* columnizer
*
* Getresources output into columns
*
* PARAMETERS:
* &idx: always should be [[+idx]]
* &total: always should be [[+total]]
* &columns: number of columns (1 -6)
* &startTpl: html for column (can use chunk)
* &endTpl: html for ending of column (can use chunk)
*
* EXAMPLES:
* [[columnizer? &idx=`[[+idx]]` &total=`[[+total]]` &columns=`2` &startTpl=`<div class="medium-4 columns">` &endTpl=`</div>`]]
*
* AUTHOR:
* Bartholomej <https://github.com/bartholomej>
*
*/
$idx = $modx->getOption('idx', $scriptProperties);
$total = $modx->getOption('total', $scriptProperties);
$columns = $modx->getOption('columns', $scriptProperties, '2');
$startTpl = $modx->getOption('startTpl', $scriptProperties);
$endTpl = $modx->getOption('endTpl', $scriptProperties, '</div>');
$break = round(($total / $columns) + 1);;
if ($idx == 1) { return $startTpl; } // first column
if ($idx % $break === 0) {
return $endTpl . $startTpl;
}
return false;
[[columnizer? &idx=`[[+idx]]` &total=`[[+total]]` &columns=`2` &startTpl=`<div class="medium-4 columns">` &endTpl=`</div>`]]
<div itemscope itemtype="http://schema.org/LocalBusiness">
<h5 itemprop="name">[[+pagetitle]]</h5>
<p>
<span itemprop="address" itemscope itemtype="http://schema.org/PostalAddress">
<span itemprop="streetAddress">[[+tv.streetAddress]]</span><br />
<span itemprop="postalCode">[[+tv.postalCode]]</span> <span itemprop="addressLocality">[[+tv.addressLocality]]</span>[[+tv.streetAddress:!empty=`, `]]<span itemprop="addressCountry">[[+tv.addressCountry]]</span><br />
</span>
<span itemprop="telephone">[[+tv.phone]]</span><br />
<span itemprop="url"><a href="[[+tv.url]]" target="_blank">[[+tv.url]]</a></span>
</p>
</div>
[[+idx:is=`[[+total]]`:then=`</div>`]]
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment