Wondering whether anything like this already exists out there already. What I want to do is allow content for static blocks and CMS pages to be defined in specific content blocks that have individual fields with the content in them.
So, when editing a CMS Page, you would have a list of N content blocks which each contain their own set of fields based on the schema definition for that particular content block.
For example, imagine a page that has a hero section at the top with a hero image + title + subtitle, then below it a simple set of paragraphs, then below that a feature image set with a grid of feature images that have image + name + description.
That would look like:
- Block (hero)
- Title: (text field)
- Subtitle: (text field)
- Image: (image upload)
- Block (paragraphs)
- Content: (textarea)
- Block Set (features)
Each type of block would need to be defined in config.xml and have a template implemented by a developer. But once that work was done, the content admin should be able to put together relatively rich pages without having to touch HTML at all.
--
This is kind of similar to how I understand the Advanced Custom Fields (w/ the Repeater add-on) plugin for Wordpress to work: http://www.advancedcustomfields.com/
--
I'm guessing maybe Widgets could help with some/all of this? Not totally sure - I'm open to using them, but it would have to be relatively easy for the content admin to manage. The way that widgets are embedded within a wysiwyg like this I don't think is super friendly, especially if your page is going to be made up entirely of 5 or 10 or 20 of them: http://www.magentocommerce.com/images/uploads/kb/tutorial-creating-a-magento-widget/widget-in-wysiwyg-mode-1.png
Echoing Brendan's comments about products just being another content type, and associating attributes with pages - that's a discussion that came up in our offices recently, about how the CMS built into Magento doesn't have a good sense of hierarchy and attributes, which is why we often see people replacing it with things like WordPress. If the Magneto (or even Magento 2, at least) CMS could support this, or an extension could be written to make it happen...it would make us, and a lot of Magento users, very, very happy.