fusionary/groupby-craft

This package is abandoned and no longer maintained. The author suggests using the timkelty/craft-groupby package instead.
There is no license information available for the latest version (1.1) of this package.

A Craft plugin (Twig filter) for grouping entries.

Installs: 14

Dependents: 0

Suggesters: 0

Security: 0

Stars: 24

Watchers: 2

Forks: 1

Open Issues: 0

Type:craft-plugin

1.1 2016-08-25 14:13 UTC

This package is auto-updated.

Last update: 2022-02-01 12:41:57 UTC


README

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.

{% 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