Friday 29 July 2011

Enrollment Keys

The courses I'm building will, at some point, be bought in bulk by Local Authorities (LAs) to be used by individuals.  I need to think up some relatively hassle free way of these individuals getting access to the courses that have been bought for them.

I could just keep the self enrollment method I already have set up and trust that everyone will be honest and only enroll on the courses they've been told to use (which would probably work, the computer shy users will probably not try doing anything more than they have explicit instructions for) but that's a bit lax.

Ideally I could use single use enrollment keys.  If I could set each course to have a bunch of enrollment keys that only work once, they could then be distributed by the LAs.  Unfortunately Moodle doesn't support this.

On our current system, we manually set up user accounts and then tell people their login info.  There usually a maximum of half a dozen a month so we set up the accounts on the first of the month and it takes, at most, a couple of hours.  But this means users a waiting for access and it's an administrative task that, to my mind, could be cut out.

The best solution I have come up with so far is to use group enrollment keys.

Firstly, the course in question has to have self enrollment with an enrollment key.  I mentioned how to do that in an earlier post.  Once that's done, while logged in as an admin, go to Settings > Course Administration > Edit Settings and scroll down to Groups.  Next to Group mode set that to either separate groups or visible groups.  I've choose separate groups as this means the groups can't see each other.

No go to Settings > Course Administration >Users > Groups.  Create a new group and give it an enrollment key.  When a user enrolls, they will be asked for an enrollment key.  They can use either the one defined in the course settings or the one defined in the group settings.  If they use the group key they will be put in that group when they enroll.

Now if you want fifty different enrollment keys, manually creating fifty groups is time consuming.  Instead open Excel (or whatever spreadsheet program you have) and make a spreadsheet that has one column labelled groupname and one labelled enrolmentkey (note the spelling, Moodle thinks enrollment only has one L).  The labels have to be in the top row.  In the group name column write the name of your first group e.g. group001.  Drag the bottom corner of that box down and you will see Excel wants to put group002, group003 and so on all the way down the column.  For ease I am using the group names as the enrollment key so I just copied all the group names into the enrolmentkey column.

Then save the spreadsheet as a .csv file.  Excel might try to kick up a fuss about features or whatever but just press ok.  The on the groups page in Moodle, select Import Groups.  Choose your .csv and Moodle will create as many groups as you had in your spreadsheet with the enrollment keys.

I can now give this batch of enrollment keys to the LAs to distribute as they see fit.  Of course, users could use the same enrollment key to get other people they know on the course but a quick look by an admin at the groups page will tell you if more than one person is in a group and then they can be kicked out.

I'm still looking for a way to limit the number of members in each group.  That way each group could be set to a maximum number of 1 and the enrollment keys would, in effect, be single use.

Feb 2012 update:  Just a note to add, the .csv that you import groups from can only have those two columns or it won't work.  I want to keep a record of who has what enrolment keys so I have one Excel work book with everything on and just save one worksheet with only those two columns as a .csv.

Also, say you have made fifty groups by importing a .csv and want another fifty groups.  You can use the original spreadsheet with the extra groups added and import it the same way.  Moodle will recognised the groups that already exist and produce an unsuccessful message, and add the new ones normally.

Unfortunately I still don't have a way to limit the number of groups members.

Changing Icons

The icons in Moodle are hideous.  I don't know how they have managed to design icons that look so 70s, the forum one in particular is horrible.

To change them we first have to find some replacements.  I used a set of icons call the Moodalis theme, but since I downloaded them the website seems to have changed.  You can try searching for them.  Or you can use Tango, Famfamfam or whatever you want.  The good thing about the Moodalis theme was that they were already arranged the same way Moodle icons are arranged.

However you access your Moodle server (I use FTP) you need to find /web/pix.  You will see a bunch of folders with single letter names which is where most of the icons live (note: I say most).  They are arranged thusly:
a – Icons that are not widely used
c – Calendar-related icons
f – File icons for different file types
g – Default user icons and thumbnails
i – General icons
m – Currency symbols
s – Smileys
t – General icons
u – User icons and thumbnails
y – YUI icons
As I say the Moodalis icons were all categorized in the same way to make it easy but whatever icon set you choose you just need to make sure the icon you want to use is name EXACTLY the same as the icon you want to replace, including the file extension.


So if you want to replace the edit icon:

With a new one:

Simply make sure your new one is called edit.gif and is 16x16 (most icon sets are) and overwrite the original in the i folder.  If you do manage to find a theme organised for Moodle, you would be better to overwrite the icons rather than the folder (i.e. copy new icons into i rather than copying a new i folder over the original one).  This is because, in the Moodalis theme anyway, there are more icons in the original Moodle set so overwriting a whole folder would leave you with some icons missing.

To see the new icons you'll have to clear the theme cache (Settings > Site Administration > Advanced Features > Appearance > Themes > Theme Selector).

...And the hideous forum icon is still there.

The forum icon lives in /web/mod/forum/pix.  Replace it in the same way.

The yellow question mark is still in operation too but I have yet to find where that resides.  It will be a case of changing these icons as and when you come across them.  There is talk of changing the icon set that ships with Moodle but who knows when that will be.

Wednesday 27 July 2011

Making a course self enrollable (or the art of delegation)

The highest mark I got for a piece of work at university was 79% and it was for an essay on the McDonaldization of global culture.  You could say a lot of people think McDonaldization is the same as globalization.  That would be wrong, and not just because it would be inaccurate to say a lot of people had ever thought about McDonaldization.  I forget what the conclusion of my essay was but I do remember one of the key points of McDonaldization that makes it different from Globalization is that in McDonald's the customer does a lot of the work themselves.  They go to the counter to order, they carry the food to the table and when they're done they (should) clear the table themselves.  This means McDonald's needs less staff and can make more profit.

This concept is ubiquitous online.  If you want an account with anyone you fill in the form and submit it yourself.  If Google had to manually add every user to their database it would take forever.  Except it wouldn't take forever because they would have folded as a company before they got started.

So expecting our Moodle users to sign themselves up is not a bizarre concept.

To make your course self enrollable first you need a course.  Done that?  Good.

Logged in as an admin, select the course you want.  In the Settings menu chose Users > Enrollment Methods.  From the drop down choose Self Enrollment.  On the next screen you need to make sure Allow Self Enrollment is set to Yes.  You can leave the rest alone if you don't need it (or don't know what it means).

I'm going to set an Enrollment Key because, as I mentioned in my earlier post, the payment system is still in the works and I want to keep the riff raff out.  I'm going to use a simple, logical enrollment key because my brain is full of useless information like the difference between McDonaldization and Globalization and I tend to forget things I might actually need.  Although, if I do forget it I can just come back to this page and tick the Unmask button to see what the Key is.

Congratulations!  Your users can now do your work for you.

Payment Options

Money makes the world go round and a little knowledge is a dangerous thing so we have to charge for our training course.  And we do HAVE to charge because that money will be used to pay me.

I'd thought when I first started this project that we could just use the Paypal plugin on Moodle.  There would be  fees of course but they'd be relatively low, especially compared to what the company is paying now.

Trouble is we want to offer member discounts and apparently the Paypal plugin doesn't allow this, it's one size fits all.  I googled for companies that set up the shopping cart system for you (such as Course Merchant who I found to be very helpful by the way) but they charge too and it's quite a bit.  If we had budget for that I would have used them but if we had budget for that they probably wouldn't have hired me, they would have got someone who knew what they were doing.

Luckily (or not) the company is in the process of setting up its own shopping cart and payment gateway so we can sell stuff (membership, books etc.).  This system should be up and running by the end of August (not holding my breath) and will handle member discounts as a matter of routine.  Huzzah!  One less thing for me to think about.

Now, though, I have to work out a way for Moodle and this new shopping cart to talk to each other.  If I can make it work I think this would be very helpful to others, the Moodle forums are full of people looking for an alternative to the Paypal plugin.  The way I see it working is detailed on the flowchart below.

I thought it might work through the external database enrollment plugin.  The shopping cart would update a database that Moodle calls upon.  Of course it has just occured to me that if the shopping cart is updating a database to allow access to a course it could create the user account too.  This would mean our users could buy a course from the company website they already use and then get dumped out at the Moodle page already logged in. Hmm...

A couple of hours later and I've done a new flow chart.  Forget that old one because the new one blows it out of the water.

The payment shopping cart that is being designed will have to call upon and update our existing database anyway.  I think it is an SQL database.  Or MYSQL,  I don't know the difference.  But I do know we have a new database specialist guy starting who hopefully will be able to help me with adding new fields to the database and have Moodle look at those fields.

It is a much more elegant method to have the Moodle accounts created automatically rather than have users create their own accounts and then have to leave the Moodle site to enroll on a course.  Plus our users are not super computer savvy so the fewer steps the better.

Trouble is now I can't really get the payment system any further until the shopping cart is all built and that will be at least a month if not longer.  The Moodle site as it stands now is just about ready for what I am calling 'Public Beta.'  These will be users who get courses at a discount price on the proviso they give feedback and don't kick up a fuss if the server can't handle it and dies.  To let these guys in I think I'm going to have to use a course enrollment key.  This can be distributed to the testers and they can sign themselves up via self enrollment.

Monday 25 July 2011

Automated Emails

One of the current problems I'm having is trying the customise the automated emails Moodle sends.  The company has a visual style and wants emails to be in Arial, size 10, dark blue and preferably with a promotional signature that changes every couple of months.  On top of that I would like all emails to display some thing like Portal Admin in the from box and have my email in the 'if you need any help' link.

Under Site Administration > Server > Email there is an option for Support Name, Support Email and Support Page.  These options are for so-called 'help emails' which includes the initial emails new users get when they sign up for an account on your Moodle site and should also include any emails about passwords.  In the Support Name I put (Company Name) Portal Admin as this will be the first email users get and having my name show up on their email won't mean anything to them.  I used my email for the support email and left the Support Page blank as I haven't set one up yet.  Eventually I intend to have an FAQ page that I will put in here.

So that's the help emails sorted but when I tested it the emails received still had the IT man's name and email.  Given his lack of customer service skills I thought perhaps his was not the best email to give users.  The only way I could find to fix this was to remove him as admin (Site Administration > Advanced Features > Users > Site Administrators) so I was the only admin listed.  I then changed the last name on my profile to include the suffix (Admin) so users know who I am.

The only drawback with this method is that I have removed admin privileges from the IT man and when I re-add him as an admin he gets put above me in the list as does anyone else I try to make admin.  When I use a test account to enroll on a course no email comes at all. 

I have a post on the Moodle forums begging for any help.

I've searched EVERYWHERE for a way to add HTML to emails.  There is an option for users to receive plain text or 'Fancy HTML' versions of emails so there must be a way to put fancy HTML in emails.  The closest I can find to an answer is editing the PHP, which I am hesitant to do because I don't know PHP but will ask the IT man.  There's also a mention of automated emails using the servers email settings so I'll ask IT Man about that as well.

Friday 22 July 2011

Google Analytics with Moodle 2.0

I wanted to use Google Analytics with the Moodle site because further down the line I know people are going to want to see those numbers.  Plus, you know, I can use it to improve the site.

Implementing the tracking code is easy enough but like everything with Moodle I had to search around for information on how to do it.

Firstly you have to sign up with Google and register for Analytics (search for Google Analytics and follow the steps until you get to the Tracking Code section.)

Copy the generated Tracking Code, then on your Moodle site go to:

Site Administration > Appearance > Additional HTML

Paste the code into the 'Within Head' box and click Save Changes.  Return to the Google Analytics page and click Save and Finish.

Now wait for the hits to roll in.

Here is where I am now

I started work on this project in May 2011.  I know some web design, some graphic design, some media/marketing theory and I had been working for the company for about 8 months so I knew what they needed.  I had never used Moodle or done any training/online teaching before.

I should have started this blog back then... but I didn't.  C'est la vie.

The Moodle site looks like this at the moment.



The theme is a customised version of the Anomaly theme that is included in 2.0.  The images are stock images from the company's stash and the colours are their company colours.

If anyone finds this post and wants to know how I did something just leave a note in the comments and I'll help if I can. Part of the reason for this blog is that I forget how I did things so hopefully recording it will at least give me a clue when I inevitably have to change something.

The Portal (as we're calling it) is currently being tested by various people in the office so I can get some initial feedback on useability and design.  The project started as a vague idea to generate some more income so there was no design brief or real plan, I've just jumped in and got started.  This might not be the best way to work but I figured it was the quickest.

Marketing have decided that we do need some sort of plan, at least for how we're going to roll this portal out so one of the next stages will be to meet with them and discuss that.  This is a bit of an issue because the training department just want to get on with things and think marketing will try and throw a spanner in the works.  I previously worked with the marketing team so I will have to use my famous diplomacy skills to smooth the process over.  My current plan is to keep the two sides apart as much as possible.

I'm getting some initial feedback from this testing, most of it typos and little errors like that which are relatively easy to fix although I find the whole process to be quite annoying.  The lesson editing process in Moodle doesn't make things straight forward and I find it really easy to get distracted by some other thing I've spotted and forget what I was doing in the first place.

Some other points have been raised which I am working on meeting but I will write about these in their own posts.

First things First

So this blog is acting as a kind of project diary for me as I build a new website for my company.  We had to do a blog/project diary for a project at uni and I found it quite a helpful way to organise thoughts and keep track of what was happening.

I've decided to make it public because as I've been learning the Moodle system I have relied on what information I can find online.  I thought it only fair that I make what I have learned available to others in the same position.  Hopefully some poor soul will stumble across this blog whilst desperately Googling a problem and they can find an answer.