TL;DR: When is Sitecore template item configuration enough and when is additional configuration in the Web.config necessary? Is there a clear division and what's the thought behind it?
When creating a new component based on standard Page List component, I didn't get it to work with pagination.
I had my controller inherit Sitecore.XA.Foundation.RenderingVariants.Controllers.Base.PaginableController
, my rendering variant inherits the IPagination and IPaginable templates, set the List Signature for both the components, but still pagination wouldn't work:
Luckily I found a saving angel who pointed me to this bit of config that I had to add my component to in order to get it to work with pagination:
<configuration xmlns:patch="http://www.sitecore.net/xmlconfig/">
<sitecore>
<experienceAccelerator>
<!-- List of renderings that support pagination. -->
<paginationEnabledRenderings>
<rendering id="{2E991AA4-4B08-43D2-AD2B-17C11E69A499}" name="Page List"/>
</paginationEnabledRenderings>
</experienceAccelerator>
</sitecore>
</configuration>
This wasn't the first time I encountered this kind of double configuration, either; dynamic placeholders likewise have to be configured both in Sitecore templates and config patch files.
This leads me to wonder; When is Sitecore template item configuration enough and when is additional configuration in the Web.config necessary? Is there a clear division and what's the thought behind it?
There is a pretty clear page on the Helix site about it, but that mainly covers Web.configs and only states the difference between setting and configuration. But a lot of configuration for SXA can be done perfectly well in Sitecore in stead of Web.config. It is still separated from settings by residing in, for instance, the sitecore/templates/Feature folder and can interact just nicely with SXA foundation functionality by inheriting templates. So why do we need extra Web.config configuration for some things and not for others?