Its time to advertise about Minted IMS Enterprise enrolment plugin 2.1 for Moodle 1.7 and Moodle 1.8. This adds data mappings and configuration variables, which give the ability to update courses and users from ims-e data, do snapshot unenrol of users and configure name mappings from the ims-e format. For more information see here.
Cheers,
Paolo
I don't know if this is the right forum for this question. I have been using the Minted Course Profile plugin and I really like the ability to customize course layouts for each category. It works great when I create a course manually.
Sometimes I do course creation in bulk using the Bulk Course and Category Creation Tool (Upload CSV) http://moodle.org/mod/data/view.php?d=13&rid=395 that I found in this site. However when I do that the Course Profile doesn't seem to work. Do you have any ideas or suggestions on how to do a bulk course upload while maintaining the customized layouts from the Minted Course Profile?
Thanks,
Great - glad you like it...
In later versions of Moodle I am hoping everything that creates courses will call the create_course function, which I should be able to get to reference the defaults. What version of Moodle are you using?
Cheers,
Paolo
Thanks for your quick reply. We are using Moodle 1.7, we are moving to 1.72+ on June and we'll stay put for while, maybe until December.
Take care,
Dante
I replied to your question here:
http://moodle.org/mod/forum/discuss.php?d=66977#p320271
Ciao,
Paolo
This forum post has been removed
Nice work on this! It's almost what we're looking for.

Are there plans to add support for subcategory inheritance?
We are considering a course category structure with department names at the top level, then terms for the subcategories - e.g. Biology/Fall 2007, Biology/Spring 2008, etc. We would like to be able to set up course defaults at the department level and have the profiles apply to courses created in the subcategories.
For instance, if we set up a course profile for the Biology category, courses created in Biology/Fall 2007 do not see those defaults - we must duplicate the course profile in each of the Biology subcategories.
Also, on the Add New Course page, switching categories doesn't load the course defaults for that category.
Thanks!
-Ann
On your first point, it makes a lot of sense what you are saying. It does inherit from the Miscellaneous category, but I agree, subcategory inheritance would be even better. I hadn't thought of that.
Moodle.com have gone quiet on me so until I hear from them again to tell me exactly what it needs to get in to Moodle 1.9 I am not going to develop anything.
On your second point, it certainly should and was. I'll look again and get back to you.
Thanks for your support,
Paolo
That and snapshot unenroll does not work either.
This bug is similar to one reported as patched in 1.8 & 1.9 HERE.
I don't know whether this is an bug in the IMS Enterprise or the LDAP module.
Any assistance would be appreciated.
bye
ian
Sorry for the wasted bandwidth.
ian
The plugin is now configurable and therefore more usable. I hope you agree.
Thanks,
Jon Howard
Paolo
Re: Minted IMS Enterprise enrolment plugin for moodle 1.9
Best wishes,
Paolo
Attached is a sample of the XML data feed I'm processing using the Minted IMS Enterprise enrolment plugin 2.1 on Moodle 1.9beta.
The input file is processed OK except that the import process seems to fail to identify correctly the membership node boundaries.
The example data feed includes five person records, five group records and 5 membership records (each with 5 member records).
The log file generated when this data is imported into moodle reveals that the 5th course gets 5 enrolments, the 4th gets 10, the 3rd gets 15, the 4th gets 20 and the 5th gets 25 enrolments!
It seems that when the enrolment plugin gets to the first course it proceeds to enroll all the subsequent members (not just the ones belonging to that membership node.
The effect with this dataset is not important because moodle seems to just display 5 distinct enrolments per course (I haven't yet checked the database for duplicate enrolment records) but with real data including several hundred users, everybody gets enrolled in the first-listed course and the enrolments get progressively more accurate until the last-listed course which just gets it's own correct enrolment.
To my eyes (and several XML validators) the data seems correct.
Either there's something wrong with my data that I can't see or there's something wrong with the plugin's enrolment script that is causing it to travers the membership nodes as it processes members.
Any suggestions would be appreciated.
BTW, it took me a while to get the XSLT data transform right (if I have got it right, that is) that groups the member nodes under the membership nodes from a standard rectangular table generated form the source database. When this is working I'll post the script and XSLT that did the trick.
bye
ian
hi Ian,
I think your xml is slightly wrong. I remember we made a similar mistake originally too. Each membership record for any one course starts with <membership> and ends with </membership>. It then goes on to the next course and start a new <membership> tag.
Hope that helps, Paolo
P.s. By the way, has the editor on Moodle.org gone screwy for everyone or it just me? The carriage return doesn't work and keep having to go into html mode using Firefox 2.0.0.12 on a Mac. I think it is the default text style being blank.
I did notice a different error where I was writing the idtype value between tags rather than as an attibute to a self-closing idtype tag. I've fixed that but it made no difference to the problem I'm trying to fix. :-(
As you can see in the example below, I've tried supplying cohort data just in case the module doesn't like the singleton tags that the XML::SAX::Writer libraries generate when the cohort data is null -didn't seem to make a difference.
Any suggestions would be appreciated!
Here's a excerpt of membership/member data with deletions marked with snip singletons:
<snip />
<membership recstatus='1'>
<sourcedid>
<source>MyUni</source>
<id>AU_MYUNI_TEST_04</id>
</sourcedid>
<member>
<sourcedid>
<source>MyUni</source>
<id>7777771</id>
</sourcedid>
<idtype idtype='1' />
<role roletype='01'>
<status>1</status>
</role>
<extension>
<cohort>2008</cohort>
</extension>
</member>
<snip />
<member>
<sourcedid>
<source>MyUni</source>
<id>7777775</id>
</sourcedid>
<idtype idtype='1' />
<role roletype='01'>
<status>1</status>
</role>
<extension>
<cohort>2008</cohort>
</extension>
</member>
</membership>
<membership recstatus='1'>
<sourcedid>
<source>MyUni</source>
<id>AU_MYUNI_TEST_05</id>
</sourcedid>
<member>
<sourcedid>
<source>MyUni</source>
<id>7777771</id>
</sourcedid>
<idtype idtype='1' />
<role roletype='01'>
<status>1</status>
</role>
<extension>
<cohort>2008</cohort>
</extension>
</member>
<snip />
<member>
<sourcedid>
<source>MyUni</source>
<id>7777775</id>
</sourcedid>
<idtype idtype='1' />
<role roletype='02'>
<status>1</status>
</role>
<extension>
<cohort>2008</cohort>
</extension>
</member>
</membership>
<snip />
Could it be that we're experiencing a (not uncommon) problem of greedy regexp matching? That would explain the results I'm getting.
I must try feeding the module a formatted feed on Monday and see if the results are different.
I think white space *should* be irrelevant but welcome correction.
bye
ian
If I format my IMS EP01-compliant data with line breaks and tabs as is usual for human consumption, the IMs Enterprise plug handles the enrolments correctly.
It would seem that the enrol.php script relies on linebreaks at some point to find the proximate closing tag for the the current membership node. I think there must be some greedy regexp pattern matching.
I don't think this is really correct behaviour but I'm relieved to have found a workaround.
bye
ian
The white space doesn't matter but the line breaks might do! Now you come to mention it I can see why that may be unexpected. If Moodle was for PHP 5.0 I am sure Dan (who wrote the bulk of the module) would have used simplexml, but instead it relies on a lot of pregmatches. Its performance is still pretty remarkable anyway I think.
have you still got the problem you mentioned in the general forum?
Paolo

I want to move towards automation now. What's the command I need to run (and ultimately set up with crontab)?
I think this must be documented somewhere but I can't find it.

bye
ian
ciao, Paolo
Paolo,
First, thanks for all of the great work you've already done and the support you provide via this forum.
I sent an email to you yesterday but then thought this might also be a good question for the forum.
What version of the IMS Enterprise specifications is currently supported by the Minted IMS Enterprise enrolment plugin?
As version 2.0 of the IMS Enterprise specifications is currently under development, are you, or anyone else on this forum, taking an active role to ensure an updated plugin is available once the specs are released? If so, do you have any idea when this might occur?
V/R
Les Amidon, Senior Learning Architect
I'd like to "throw in" that I am working on an initiative at the University where I work. Critical to that is a feature full IMS XML import function like minted provides.
I have been vocal in my resistance to using plugins in moodle due to support issues, but this plugin is indispensable. Thanks to Paolo and those that worked on this!
I REALLY hope that Minted can find its way into Moodle.
2. I also have a complimentary script that takes a flat file (txt file) output from a database and builds the import.xml file. this allows moodle to sync with our student information system. we are using Datatel (collegue) but the php could be modified for any institutions database sis system. how can i contribute this to moodle or the ims minted plug-in. oh all this executes on cron.
However, last week we had to run them. On our test system all went well. On our production system the tool reported/reports:
---------------------------------------------------------------------- IMS Enterprise enrol cron process launched at Tuesday, 17 June 2008, 09:22 AM Found file /data/ausa/MyUniToMoodle_IMS-EP01.xml File modification time is not more recent than last update - skipping processing. Notification email sent to administrator.The first thing to bnote is that the date/time in that message is *not* correct -it lags current time (and server system time) by 30 minutes.
Now, I understand that the plugin performs two checks before processing:
- To ensure that the data feed post-dates the last processing; &
- To ensure that the data feed checksums as different to the last data feed processed.
Moodle is set to use server time as its time.
Both our development and production servers are running the same Linux build (RHE 2.6.18-92.el5), they are ntp-time-synced, they have the same php version (5.1.6)...
Any suggestions would be appreciated.
bye
ian
Re: Minted IMS Enterprise enrolment plugin 2.2 roletype issue
if(preg_match('{<role\s+roletype=["\'](.+?)["\'].*?>}is', $mmatch[1], $matches)){
to the following:
if(preg_match('{<role\s+roletype\s+=\s+["\'](.+?)["\'].*?>}is', $mmatch[1], $matches)){
due to extra spaces between the "=", e.g.
<role roletype = "04">
<status>1</status>
This is due to the export format of Sunguard/Banner 8.
Regards,
John
Is there anywhere I can find out if this module is being updated for version 2.0 of moodle or if this is the basis for the "experimental" ims common cartridge feature included in new moodle version.
If it is being updated, is there a timeline?
Thanks,
Morgan
Hi,
Any updates re: IMS Enterprise enrolment plugin with Moodle 2, please?
Thanks
Dorian
There is work being carried out on the standard IMS Enterprise plugin. Some of the function from the Minted Plugin appear to have been included.
However, there are still a few issues with the plugin and I wouldn't recommend it myself at this point in time. Checkt he Moodle Tracker for more info. MDL-26385
Hi Paolo,
We've been using the Minted plugin for a few months now, and I really enjoy the added functionality it has added. However, I needed a few extra fields configured, so I have merged and tweaked a bit of the code from others into the enrol.php file. Changes include;
Default Course settings used from Moodle for new courses.
- Format
- Number of sections
- Hidden Section behaviour
- Number of newsitems
- Showing of grades
- Max file size
I also needed to set my courses to non-enrollable, as we do this with the IMS load. These changes are 'around' lines 550.
I also made a couple of edits around line 800, to set our default auth to ldap, as well as the country code and town. I've commented these out, as they aren't necessary, they just suit my needs.
I hope this is of some use.
NOTE: Moodle 1.9.x, with Minted plugin installed. This is not my creation, just modification of the plugin.
Cheers,
Adam
Will this be upgraded for Moodle 2.0?
It will be upgraded - or at least I will be using my customised version of it in Moodle 2 I imagine. And its great to know so many people are finding it useful so when I do upgrade it I'll think seriously about making a release.
It will be an early development in my Moodle 2 preparations, but I am not sure how early and we are not thinking of upgrading before 2012.
I am sure we all agree IMS Enterprise really does need a Moodle core developer to support it, because in every release its had the minimum alterations.
Paolo
To see the the ways in which our Moodle is integrated with our central systems see our blog post on making moodle a scaleable enterprise solution
Paolo
We have used a modified version of your Minted IMS enrolment module. See http://help.thunderbird.edu/content/enhanced-ims-xml-enrollment-module
I have a working version for Moodle 2, where the only thing mising is snapshot unenrol. I can share that if you wish...
Johan
Thunderbird School of Global Management
There have been many changes to the default IMS Enterprise module for Moodle 2.2. One of the biggest improvements is the setting of course defualt from Moodle's existing course defaults.
There is also the ability to set short and long names independantly.