Comment 0 for bug 1521418

Revision history for this message
Aaron Wells (u-aaronw) wrote :

Mahara blocktypes that display a particular type of artefact, typically live "underneath" that artefact. For instance the "image" blocktype, for displaying images, lives under htdocs/artefact/file/blocktype/image

This causes us a lot of coding headaches, because whenever we're locating a plugin we have to take this special case into account. And, it doesn't give us much in the way of benefit. It can act as a kind of crude dependency/package-management, and it makes a certain conceptual organizational sense, but that's about it.

So, I think it would help us straighten out our code base if we refactored the code to get rid of "live-in" blocktypes. My proposal is:

1. Move all the live-in blocktypes to the htdocs/blocktype directory
2. Remove the code that handles their special location
3. Add a sanity check that tries to detect if a live-in blocktype is present, when installing a new artefact (in order to tell people that their plugins need to be upgraded)
4. (Optionally) Add a dependency management system to the standard plugin/version.php file

Adding item #4 would help to address the one bit of functionality we lose. But it would be a big job, so it would be best to file that as a separate bug.