Installing MyStuff

Installing MyStuff

MyStuff is developed as a standard Moodle module and it is installed like any other Moodle Module.

The exception is that the MyStuff module only needs to be installed and does not need to be added as a module instance to the Moodle site or course for it to work.

The MyStuff module adds global features to a Moodle site as a whole application rather than sepcific to a Moodle course.

MyStuff pre-requisites

MyStuff requires the following technical infrastructure:

  • PHP version 5 and above
  • PHP XML extension enabled
  • PHP XSLT extension enabled
  • PHP EXIF extension enabled (this can be made optional with a small code modification)
  • MySQL (version 4 and above) or Postgress (version 8 and above)

The latest version of MyStuff has been built and tested against version 1.9 of Moodle.

In theory, MyStuff should work with Moodle 1.7 and above, but there may be some Moodle code libraries which are in version 1.9 and missing in earlier versions. For this reason, additional steps may be required for earlier versions of Moodle earlier than 1.9. At a later date, we may post instructions for installing MyStuff on versions below 1.9 depending on community interest.

Installing MyStuff on Moodle version 1.9

The MyStuff code build (dated 9 september 2008) can be downloaded at: MyStuff.

Assuming you have a correctly installed Moodle, simply extract the content of the ZIP file into the Moodle “mod” folder such that you have the following folder and files from the zip within: /mod/portfolio

Thereafter, goto your Moodle admin page to install the MyStuff module.  If its the first time install of MyStuff, you will see a confirmation page of all the MyStuff database tables being created; the success confirmation of this transaction means MyStuff is correctly installed.

If the MyStuff module installs correctly, goto MyStuff by going to:


MyStuff Users, Roles and Permissions

MyStuff uses Moodle’s user registration system and Moodle’s roles and capabilities system to control user access and permissions.

To add new users:

1) Ensure the various roles that users will be assigned to is given the MyStuff specific role capabilities;

2) Create a Moodle user as normal and assign the roles from step 1 to the new user.

MyStuff uses global roles in practice, but in theory course roles if configured correctly can also be used.

User Help and Guidance

MyStuff installation comes with online user help and guidance which can be found under the Help tab once you access MyStuff.

The help section covers common processes a user may engage in from within MyStuff, the terminologies and concepts that underpin MyStuff and also include movies that walk users through key steps.

Technical Help

The development team is actively writing developer documentation for MyStuff to support community developers to improve MyStuff and also add their own extensions to MyStuff.

As the documents become available, they will be posted on this blog. 


The development team will endeavour to support queries as people install and use MyStuff but please understand that we have internal development priorities and cannot always respond to queries as quickly as you may expect or require.

Please make use of these two pages to post specific questions:

If you encounter any issues or bugs whilst using MyStuff which is significant, please do inform us so we can judge its severity and fix it if required.  Please log them here.


If you encounter a blank page when trying to access MyStuff, this is a clear indication of a PHP error.  Usually turning debugging to full in Moodle admin will indicate the PHP error to help you find a resolution.  If you still see a blank page after turning on debugging from Moodle admin, then try this hack:

$CFG->debug = E_ALL; in config.php just before lib/setup.php is called

Making this manual change will help display the PHP error which otherwise might not be visible.

33 Responses to “Installing MyStuff”

  1. ian lake Says:

    For those of you trying to download the file the link has been incorrectly entered. This is what it should be

    [link removed by editor as the page has been corrected]


  2. Thanh Says:

    Thank you Ian for identifying the broken link. I’ve updated the link.

  3. Trang Says:

    Thanks to the MyStuff team for the latest release – huge leap forward with the help files etc.
    Has anyone managed to work out the MyStuff specific role configuration please? I’ve created a global role for MyStuff users, but the only role that can operate the portfolio is the Admin role. All else is working.

  4. Thanh Says:

    Hi Trang,

    If you use any other roles other than admin, then you need to edit those roles’ capabilities and and enable the specific capabilities for that role related to MyStuff.

    If you edit a role, you will see a list of capabilities. Scroll down the capabilties list and look for the MyStuff set.

  5. Trang Says:

    Thanks Thanh
    I’ve enabled the MyStuff roles ok, but still can’t get a user to access their portfolio unless I set the global mystuff role as teacher (edit/non-edit). I don’t want users to be able to do too much – I’ve worked through the roles and made sure relevant parts are enabled. A list of which additional roles need enabling so that they can access, upload files etc would be useful. I’m probably misunderstanding how global roles are applied.
    Sorry to be a nuisance.
    Thanks for your time.

  6. Thanh Says:

    As a closure to Trang’s query, I believe it is now resolved. Although I’m not exactly clear as to what the resolution was, with my support being a reiteration of my advice above.

  7. Trang Says:

    Thanks Thanh
    I’m not sure how I resolved the problem. I created a new ‘mystuff’ role and basically reproduced the permissions from the standard ‘student’ role. For some reason this seemed to resolve the problem; there may be some system settings that influenced this as we were making wider changes at the time and I’ve not been able to isolate these.
    Sorry for the delay in replying but work is a bit chaotic at present.

  8. Shaun Price Says:

    Will the module work on a windows platform?

    The module installed the database ok, however when i go to /mod/portfolio I get a 404 error even though the file is there.

    I noticed if you go into module configuration it removes : and \ from the repository data store if you enter one and save. It then gets an error when going to /mod/portfolio


  9. Thanh Says:

    Hi Shaun,

    Yes, the MyStuff module should work on a windows platform. We have been using XAMPP on windows and developing MyStuff from that platform successfully.

    Your error message suggest to me your web server is not configured to correctly translate “mod/portfolio/” to loading “mod/portfolio/index.php”; could you try using the url ….mod/portfolio/index.php to access MyStuff.


  10. Shaun Price Says:

    First thing I tried :)

    /mod/portfolio/view.php comes up ok (complains but does reach it)

    I know it can get to index.php as I did the classic exit(“HERE”); at the start which comes up. Just in the process of moving through the code to see where it get up to before it gives me the 404


  11. Shaun Price Says:

    I did have a thought though…

    My moodledata folder is outside of wwwroot for security reason, would this be an issue?

  12. Thanh Says:

    Hi Shaun,

    Location of moodledata outside of wwwroot is not an issue. We have the same setup for secuirty reasons.

    Let me do a clean installation of the code from my end to verify if I can duplicate the issue.

    Will get back to you today.


  13. Thanh Says:

    Hi Shaun,

    I’ve just tested a clean installation of XAMPP (xampp-win32-1.6.6a) on windows and install the latest Moodle 1.9.2 from onto the XAMPP platform using MySQL.

    I did not encounter any error with this clean installation and my browser correctly launched MyStuff using …mod/portfolio with no issues.

    Is there something outside of MyStuff that your Moodle page is trying to locate and not finding and reporting the 404 error?


  14. Huw Says:

    I have installed MyStuff of Moodle 1.9.2 and I get the following message when trying to access MyStuff:

    Fatal error: Class ‘DOMDocument’ not found in /srv/www/htdocs/moodle/mod/portfolio/portlets/portletv2items.class.php on line 1356

    Can anyone help?

  15. Thanh Says:

    Hi Huw,

    Your error message implies your PHP server does nto have the PHP XML extension enabled.

    You need to enable this as MyStuff extensively uses the XML/XSL library extension provided y PHP 5.


  16. Huw Says:

    Thanks for the quick response, that fixed the problem.

  17. Huw Says:

    Another question, I can link directly to MyStuff but it doesn’t appear in the activities drop down menu, is it supposed to?

  18. Thanh Says:

    Hi Huw,

    In previous versions of MyStuff it did appear in the drop down activities list.

    In the version you’ve installed, it is hidden away deliberately. We made the choice of not displaying MyStuff as a course activity because conceptually it sits at the site level available to users regardless of course.

    This setting can be easily changed in code if you desire it to be visible.


  19. John Mendes Says:

    Hi, I have problem when I try Upload a file . Upload a picture . Upload an audio file . Upload a video. If I just wrote some information and not select a file, the save process works. But, if I select a file, a blank page is displayed.

    Someone could help me please?


  20. Shaun Price Says:

    Is there any issues with Mystuff working with IIS?

  21. Shaun Price Says:

    When saving we are getting the following error

    Warning: DOMXPath::evaluate() [function.DOMXPath-evaluate]:
    Invalid predicate in C:\Inetpub\wwwroot\moodle\mod\portfolio
    \xforms\xformProcessorPostMerger.class.php on line 158

    Warning: DOMXPath::evaluate() [function.DOMXPath-evaluate]:
    Invalid expression in C:\Inetpub\wwwroot\moodle\mod\portfolio
    \xforms\xformProcessorPostMerger.class.php on line 158

    Fatal error: Call to a member function item() on a non-object in
    \xforms\xformProcessorPostMerger.class.php on line 158

    I have the PHP 5.2.5 installed with XSL & EXIF libraries enabled.

  22. Thanh Says:

    In response to Huaw’s question dated July 30th, 2008 at 2:15 pm:

    The latest and previous release of MyStuff has now been coded to not appear in the Moodle activities drop down listing.

    MyStuff is designed to be a site-wide module with only one running instance. For this reason, we felt it was meaningless to give the impression that you can create instances of MyStuff in courses when there is only ever one MyStuff module instance.

    You can change this default behaviour in code and I can provide instructions if required; although conceptually it is nor recommended.

  23. Thanh Says:

    In resposne to Huw dated July 30th, 2008 at 11:41 am;

    I too have recently noted this error on the latest build of XAMP:

    Fatal error: Class ‘DOMDocument’ not found…

    Does anyone know whether the latest version of PHP 5.2.6 has changed the XML library such that DOMDocument class now behaves differently?

  24. Thanh Says:

    In response to Shaun Price dated August 13th, 2008 at 10:40 am:

    MyStuff has not been tested on Microsoft IIS. Thus far it has been a Linux/Apache deployment.

    I welcome feedback from anyone who has tried and whether the attempt has been successful.

  25. Chris Says:

    Very interested in this for our school moodle but download page link fails every time.

  26. Thanh Says:

    In response to Chris:

    I have just tested the link and it appears to be working ok.


  27. ray Says:

    I really like the idea of this block and have installed it on 1.9, but for some reason the language files are not able to be read. Is anyone else having this problem?

  28. Thanh Says:

    With ref: to ray’s comment; can you clarify the issue as I dont quite understand what you are saying.

  29. Jonathan Konrad Says:

    I receive the following error when attempting to install on XAMP with Moodle 1.9.4

    1071: Specified key was too long; max key length is 1000 bytes

    ADOConnection._Execute(CREATE INDEX mdl_stat_modsubpre_ix ON mdl_statements (modelid, subject, predicate), false) % line 891, file:
    ADOConnection.Execute(CREATE INDEX mdl_stat_modsubpre_ix ON mdl_statements (modelid, subject, predicate)) % line 89, file: dmllib.php
    execute_sql(CREATE INDEX mdl_stat_modsubpre_ix ON mdl_statements (modelid, subject, predicate), true) % line 2277, file: dmllib.php
    execute_sql_arr(Array[13]) % line 635, file: ddllib.php
    install_from_xmldb_file(C:\moodle_local\server\moodle/mod/portfolio/db/install.xml) % line 390, file: adminlib.php

    Any thoughts?

  30. Nik Taylor Says:

    I’m haveing the same error.

    1071: Specified key was too long; max key length is 1000 bytes

    Help? :)

  31. Sharon Betts Says:

    I would like to see a MyStuff module in action or at least documented pictures of it. Does anyone have such documentation or demo site?

  32. Al Says:

    I receive the following error when attempting to install on LINUX Moodle 1.9.9

    1071: Specified key was too long; max key length is 1000 bytes

    ADOConnection._Execute(CREATE INDEX mdl_stat_modsubpre_ix ON mdl_statements (modelid, subject, predicate), false) % line 891, file:
    ADOConnection.Execute(CREATE INDEX mdl_stat_modsubpre_ix ON mdl_statements (modelid, subject, predicate)) % line 89, file: dmllib.php
    execute_sql(CREATE INDEX mdl_stat_modsubpre_ix ON mdl_statements (modelid, subject, predicate), true) % line 2302, file: dmllib.php
    execute_sql_arr(Array[13]) % line 635, file: ddllib.php
    install_from_xmldb_file(/var/www/moodle/mod/portfolio/db/install.xml) % line 390, file: adminlib.php


  33. Thanh Says:

    The error 1071 implies you have encountered a database limit with ref: to creating table indexes. You can fix this by editing install.xml in the portfolio/db folder and remove some of the indexes attached to mdl_statements table. This will ensure the tables are created correctly. You can subsequenlt manually re-create the indexes to see which one is causing you the original problem.

    This is a known issue and you can find comments on it at:

Leave a Reply