Updated: Comment #37
Note to committers: Please give @tim.plunkett commit credit as I merged in his code from
Some block types could possibly expose a large number of block derivatives. As the Block UI now lists all blocks, this would result in UI problems. It can also result in better UX in general.
The other blocks that use derivatives are:
- Aggregator Feed
- Aggregator Category
- Language switcher (content, user interface, ...)
- Custom blocks
Remove derivatives where it is useful. That means aggregator feed and category blocks right now.
Decide if other blocks should be converted too. The only questionable one IMHO is custom_blocks, not sure what the goal is there with the UX/UI.
Possibly alter admin labels of the changed blocks.
User interface changes
Instead of Something feed, Whatever feed,
See screenshots in. Instead of a list of blocks to add, there's a only one and you configure it then on the add block form.
This issue now fixes (or makes unnecessary) 3 other major issues:
* - Merged, bug fixed, with tests
* - Noticed bug too, different implementation resolves that, no tests at all for category blocks. Maybe change the other issue to a add tests task?
* - Removes the block configuration that the other issue wants to change to a boolean completely. We *could* also do that and have them not show up in the select, not sure if that's necessary.
Original report by @catch
The blocks as plugins patch set up most core blocks which can have multiple versions (menus, aggregator feeds etc.) to be derivatives. This means that a block exists in the library UI for each item.
An alternative would be to provide a single block (i.e. 'feed'), then when this is selected, as part of the configuration get the user to select which feed will show in the block.
This means less blocks shown initially, but an extra required step after selecting a block, if it's a multiple/reference block.
IMO a block for each items was only done in < 8.x because we didn't have block instances. Now block instances are there, there doesn't seem much reason to do that any more.
PASSED: [[SimpleTest]]: [MySQL] 59,195 pass(es).
FAILED: [[SimpleTest]]: [MySQL] 58,814 pass(es), 4 fail(s), and 3 exception(s).
PASSED: [[SimpleTest]]: [MySQL] 58,566 pass(es).