kinglozzer / silverstripe-columnedlist
An SS_ListDecorator to facilitate stacking data vertically in columns
Installs: 1 956
Dependents: 0
Suggesters: 0
Security: 0
Stars: 6
Watchers: 2
Forks: 1
Open Issues: 0
Type:silverstripe-vendormodule
Requires
- silverstripe/framework: ^4 || ^5
Requires (Dev)
- phpunit/phpunit: ^5.7
README
An SS_ListDecorator
to facilitate stacking data vertically in columns. Supports left and right “weighting”.
Example:
use Kinglozzer\SilverStripeColumnedList\ColumnedList; use SilverStripe\CMS\Model\SiteTree; class Page extends SiteTree { public function ColumnData() { return ColumnedList::create($this->SomeDataList()); } }
<% loop ColumnData.Stacked(3) %> <div style="float: left"> <h3>Column {$Pos}</h3> <ul> <% loop Children %> <li>Item {$Pos}</li> <% end_loop %> </ul> </div> <% end_loop %>
Assuming SomeDataList()
contains 5 items, the output would be:
Column 1 | Column 2 | Column 3 |
---|---|---|
Item 1 | Item 3 | Item 5 |
Item 2 | Item 4 | . |
“Right-heavy” stacking:
Using the same above example:
<% loop ColumnData.Stacked(3, 'Children', 0) %> <div style="float: left"> <h3>Column {$Pos}</h3> <ul> <% loop Children %> <li>Item {$Pos}</li> <% end_loop %> </ul> </div> <% end_loop %>
Assuming SomeDataList()
contains 5 items, the output would be:
Column 1 | Column 2 | Column 3 |
---|---|---|
Item 1 | Item 2 | Item 4 |
. | Item 3 | Item 5 |