Because we're on a bit of a usability crusade, I'd really like to implement it for ocPortal. However, when I actually think about it, it is not a model that actually works for anything but trivial cases. Whilst we're trying to make ocPortal user friendly, we're not trying to dumb it down – flexibility is still a very important goal.
A few examples of why it would not work:
- These tools let you set up a grid and drag stuff into it. What if your blocks don't fit in a grid? There are lots of ways to lay out a page, and a strict grid is not what you want in most cases. There's nothing to say the blocks are all going to have the same width and height.
- What about fluid layouts?
- How will it degrade to look on a mobile phone?
- The layout tools often render the block, with a toolbar attached. Simple templating/CSS could easily completely corrupt how the toolbar renders.
- What if some blocks only show for some users? There's no way to put more advanced contextual coding on, such as permissions.
- The tools will often have a little edit button that flips them over in a fancy way, to represent an edit form. However, ocPortal blocks can be quite advanced, with more options than could fit on the size of the block.
- What if you want more than one instance of the same block. These tools usually work on the basis of you dragging them into the page from a pool, then they disappear from the pool.
- The demos for these systems usually have great looking pages, where the blocks all flow into each other in a really pretty way. If you just drag blocks around, starting from a clean slate, there's no way it would look so good in reality. It's always going to require careful design of how things come together from components into a whole.
- What about authoring accessibility? A pure drag and drop system is not accessible to quite a few users.
So, with a heavy heart, it's not something I think we can practically do. Some of these issues can be worked around, but the end result would be useful to nobody. It's a shame, because these systems look so cool!