CollaborationHubContent currently hardcodes supported subcontent types. This should not be the case. There should be two modes:
- Main page: A hub page containing simple list of subpages with its own special handling, which renders the index of pages (features) in the project
- If subpages are collaborationhub pages, it just fetches the content according to their content type contentmodel
- If subpages are arbitrary other contentmodels, it gets the contentmodel from mw and reuses the same functions as the above to actually include/render the content on the index page
- Subpage with arbitrary content: a hubpage with any other type of page embedded within it
- This uses the 'content' field to store content of any kind, as it should still all be text of some kind, regardless of what it is
- The contentmodel to use for this is stored as a 'content type' field (not necessarily the name used in practice, but you get the idea), and the appropriate contenthandler is used to render it within the hub
This will require a significant rewrite of how it currently handles content, but is needed.