Counter for looping modules.
{# loop through modules to know the amount of the individual modules #}
{% set moduleCountersLength = {} %}
{% for nr, module in entry.modules %}
{% set moduleType = '' ~ module.type %}
{% if not attribute(moduleCountersLength, moduleType) is defined %}
{% set moduleCountersLength = moduleCountersLength|merge({ (moduleType) : 1 }) %}
{% else %}
{% set moduleCountersLength = moduleCountersLength|merge({ (moduleType) : moduleCountersLength[moduleType] + 1 }) %}
{% endif %}
{% endfor %}
{# loop through modules to display them #}
{% set moduleCounters = {} %}
{% for nr, module in entry.modules %}
{% set moduleType = '' ~ module.type %}
{% if not attribute(moduleCounters, moduleType) is defined %}
{% set moduleCounters = moduleCounters|merge({ (moduleType) : 1 }) %}
{% else %}
{% set moduleCounters = moduleCounters|merge({ (moduleType) : moduleCounters[moduleType] + 1 }) %}
{% endif %}
{% include ['_modules/' ~ module.type] with {
c: module,
nr: nr,
first: loop.first,
last: loop.last,
moduleNr: moduleCounters[moduleType],
modulesLength: moduleCountersLength[moduleType]
} only %}
{% endfor %}{% set moduleCounters = {} %}
{% for key, module in entry.modules %}
{% set moduleType = '' ~ module.type %}
{% if not attribute(moduleCounters, moduleType) is defined %}
{% set moduleCounters = moduleCounters|merge({ (moduleType) : 1 }) %}
{% else %}
{% set moduleCounters = moduleCounters|merge({ (moduleType) : moduleCounters[moduleType] + 1 }) %}
{% endif %}
<div class="component content-container" data-component="{{ module.type }}" id="{{ module.type }}-{{ moduleCounters[moduleType] }}">
{% include ['_modules/shared/' ~ module.type] with { c: module, nr: moduleCounters[moduleType] } only %}
</div>
{% endfor %}