MyStuff is an ePortfolio tool developed by Open Univeristy. Although MyStuff was originally developed as a module for Moodle, Open University hopes for this tool to also be compatible with other learning content management systems (LCMS) or virtual learning environments (VLE) such as ATutor.
This module is an attempt at integrating the MyStuff ePortfolio as an ATutor module. It is still in its development stages and is currently on hold until further improvements are seen in the abstraction of Moodle from MyStuff. The current module is being developed with ATutor 1.6.1 and the April 2008 release of MyStuff.
The current module (as of July 25, 2008) can be downloaded here.
In order to reduce MyStuff's dependency on one particular VLE such as Moodle, a file called MoodleConnector.class.php (under /lib) is used to provide an abstract mapping of all the Moodle library functions that MyStuff uses. In theory, this file can act as a bridge for MyStuff to other environments like ATutor. Therefore, most of the work needed in integrating MyStuff is in rewriting this file. For more information please refer to the MyStuff Developer document at http://www.open.ac.uk/blogs/MyStuff-info/?page_id=40
Unfortunately, much of the behaviour of MyStuff and MoodleConnector.class.php still follows very closely with Moodle's architecture. Moodle variables such as $CFG, $USR, and $SITE are being used, therefore need to be mimicked in the module for ATutor. This may pose a problem of ATutor having to go through unnecessary overhead in order to behave like Moodle in order to accomodate MyStuff.
In addition, there are still certain variables required by MyStuff (and offered by Moodle) that are not availabe in ATutor. One such variable is the ATutor URL, which is required in the $CFG->wwwroot variable. This value gets returned with $CFG from the 'getMoodleCFG' function and is used in several places. ATutor normally uses $_SERVER['PHP_SELF'] to get its URL however it cannot be used for this module as the value is affected by the implementation of virtual URLs in MyStuff. For now, a config variable ($_config['atutor_url']) is being added along with the module to make it work.
Another file that requires editing is moodleHeaderV2.php (under /includes). There exist lines that search for the Moodle config file or call Moodle functions directly (without going through the MoodleConnector.class.php) so they need to be commented out or redefined in MoodleConnector.class.php. The value $portfolioStyleHeader (for writing the style header for MyStuff) can be copied to $_custom_head which can be displayed from ATutor's header (which is simply ATutor's header.inc.php copied over to /includes/atutorHeader.inc.php).
Another requirement for making MyStuff work with ATutor is for the source code to be installed under /mod/portfolio in ATutor (as seen in ContextHelper.class.php - line 233). This poses an issue with ATutor standards as all external modules are normally installed under the /mods folder (note the ending 's') so that it can be properly detected and installed dynamically by ATutor's module handler.
Summary of Issues and Plan for Next Stages
- In the present state, MoodleConnector.class.php is still not fully rewritten nor optimized for the ATutor. Much of the behaviour is still very similar to the original Moodle connector and several functions have been copied over from Moodle such as 'redirect' and 'me'. More work still needs to be done to clean up the code.
- The current module has not been fully tested however it already displays noticeable slow response times for displaying MyStuff. Possible reasons can be the large overhead caused by MoodleConnector.class.php or leaks in the current code.
- Some files assume that MyStuff is installed under /mod/portfolio, where this path is currently hardcoded. This should be a simple fix for Open University and would certainly make things easier for integrating with ATutor as well as other VLEs.
- There appears to be a certain amount of dependence on Moodle array variables (such as $CFG, $SESSION, $USER, $COURSE, $FULLME, $SITE), though this might not be the case when the MoodleConnector.class.php code gets cleaned up.
- MyStuff's use of virtual URLs might be affected when ATutor's new 'pretty_url' feature is enabled. This has not been tested yet and should be investigated.
- Some Moodle functions have been copied and pasted to the bottom of the MoodleConnector.class.php code to simply make the script work. When properly cleaning the code and making the class function more fitted for ATutor, these added functions can be removed.