View Issue Details
|ID||Project||Category||View Status||Date Submitted||Last Update|
|0003657||Composr||core||public||2018-08-04 22:16||2018-08-05 20:38|
|Reporter||Chris Graham||Assigned To|
|Fixed in Version|
|Summary||0003657: Breadcrumb takeover|
|Description||Composr is a module-orientated CMS, meaning each module (galleries, news, etc) is a world of its own, with its own breadcrumb hierarchy. We want webmasters to be able to more easily override the native module-based breadcrumbs. Currently you need to use breadcrumbs.xml individually for any screen you're changing the breadcrumbs, which is not realistic for scenarios involving large numbers of CMS-generated screens (entries, categories).|
Have a new directive that can specify that a page-link is 'taking over parenthood' of certain other page-links.
The data would be stored into a new database table, breadcrumb_takeover:
The table would only be maintained if the URL of the screen being viewed matched the page-link given as the first directive to the parameter. This is so we know the active breadcrumbs are going to be what we need to save into the table.
This table would be queried on any screen view. If there's a match, the natural breadcrumbs for that screen would be replaced with those defined in the new table.
Through this directive we make changing of breadcrumbs between screens a templating issues. In the given example as soon as a catalogue entry responsible for certain gallery images is viewed, when those gallery images are viewed (however they're reached - which is critical - because it could be via the XML Sitemap), the breadcrumbs will show under that catalogue entry.
In the real world we're unlikely to hard-code in the templates exactly what page-links are associating. Instead we'd use Tempcode to work them out based on some kind of metadata coded into the content model.
This new feature would be optional. You'd have to enable it in the configuration, as there is a performance hit.
Document it where we document breadcrumbs and about Composr being a 'module based CMS'.
|Tags||No tags attached.|
|Time estimation (hours)||4|