We want to support all core content entity types!

This issue is to add a 'PanelizerEntity' plugin to provide support for 'message' entities. However, we didn't this entity type didn't exist in D7 and is a little unusual, so we need to decide if we should support it.

The main thing that's unusual about this entity type is that it has a special view mode 'mail', which it uses to render to e-mails. This would be a little rough to support via Panelizer. We could either (a) attempt to support it, (b) assume users won't enable Panelizer on the 'mail' view mode or (c) actively prevent users from enabling Panelizer on this view mode.

Here's a rough idea of the process if we decide to support it:

  • Create the plugin class in src/Plugin/PanelizerEntity/ directory
  • See src/Plugin/PanelizerEntity/PanelizerNode.php for an example!
  • If the entity has a 'view_builder', look at it's code for anything that makes the entity special
  • If this entity needs any special blocks for it's default display, for example, like the 'node links' block, create issues in the CTools queue (so Page Manager could use them, if it wanted)
  • Check for a hook_entity_extra_field_info() which could have some things that need special blocks
  • Check for a hook_ENTITY_TYPE_view_alter() for other rendering wierdness we might need to replicate
  • Check the support code in Panelizer for D7 (and CTools for D7, for special blocks) to see if we did anything special there that makes sense in D8 too

Comments

dsnopek created an issue. See original summary.

dsnopek’s picture