Developer Area/Specifications in Development/Text box block attachments and inline images
From Mahara Wiki
< Developer Area | Specifications in DevelopmentRevision as of 11:45, 12 April 2012 by Richard
We currently have functionality to add attachments and inline images to blog posts, but nowhere else in Mahara. This proposal is to add the functionality to do this wherever it makes sense to attach file artefacts to other artefacts. This involves converting the textblock into an artefact in its own right.
Textblocks as artefacts (completed in version 1.5)
Something that has been discussed within the Mahara development team for awhile is to start making some content types more reusable. At the moment there are blocks in Mahara that can be added to Views, but not reused. These include the Textbox, as well as Youtube videos, RSS feeds, and indeed all external content. The requirement to add attachments and inline images to the textbox block forces us to convert it into an artefact to fit in with Mahara's attachment infrastucture.
This involves creating a new Artefact plugin called "notes" and writing a migration script to move all instances of the textbox block to notes, and then update their block config to point to the appropriate artefact.
There will be a new second level tab under "My Portfolio", called "My notes", where users can add, edit and delete notes. The existing textbox block will be updated to either allow you to select an existing note or create a new one. When selecting a new one, you can edit it inline, and have the option to save it, overwriting the existing one, or writing a new one (save vs save as)
Attaching files to notes and embedding images
This is currently implemented in the blog post code. However, we are overwriting the image button in tinymce to only be able to put in a Mahara image artefact, which isn't ideal. We propose creating a new tinymce plugin instead, that allows to possibly do all three of: a) embed an existing Mahara image artefact, b) upload a new image and create a Mahara artefact, and c) embed an internal image.