https://github.com/timkelty/craft-groupby
Craft plugin (Twig filter) for grouping entries.
https://github.com/timkelty/craft-groupby
Last synced: about 1 year ago
JSON representation
Craft plugin (Twig filter) for grouping entries.
- Host: GitHub
- URL: https://github.com/timkelty/craft-groupby
- Owner: timkelty
- License: mit
- Created: 2014-11-25T14:14:29.000Z (over 11 years ago)
- Default Branch: master
- Last Pushed: 2019-03-08T11:26:49.000Z (over 7 years ago)
- Last Synced: 2025-03-21T03:47:51.071Z (about 1 year ago)
- Language: PHP
- Size: 13.7 KB
- Stars: 23
- Watchers: 2
- Forks: 1
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# groupBy
A Craft plugin (Twig filter) for grouping entries.
Note: I have no plan to update this plugin for Craft 3. See https://github.com/sjelfull/craft3-collections, which can do the same thing, but also much more.
## Usage
* `param 1`: Attribute to group by, in dot notation
* `param 2`: Group un-grouped entries by a key. Defaults to `false`, meaning un-grouped items are removed. These entries are always added to the end of the returned array.
```
{% set allEntries = craft.entries.section('blog').find() %}
{% set allEntriesByCat = allEntries|groupBy('myCategoryField.slug', 'unGrouped') %}
```
## Examples
In it's simplest form, the `groupBy` filter works like [Craft's native `group` filter][1].
```
{% set allEntries = craft.entries.section('blog').find() %}
{% set allEntriesByYear = allEntries|groupBy('postDate.year') %}
```
However, `groupBy` can also group by nested objects:
```
{% set allEntriesByCat = allEntries|groupBy('myCategoryField.slug') %}
{% set allEntriesBySection = allEntries|groupBy('section.title') %}
```
And you can even get really crazy if you want:
```
{% set allEntriesByNestedCat = allEntries|groupBy('myEntriesField.myCategoryField.slug') %}
{% set allEntriesByMatrix = allEntries|groupBy('myMatrix.myEntriesField.dateField.localeDate') %}
```
## Discussion
[Motivation for plugin on StackExchange][2]
[1]: http://buildwithcraft.com/docs/templating/filters#group
[2]: http://craftcms.stackexchange.com/questions/4832/is-it-possible-to-group-entries-by-checkbox/4834#4834