Development Personal

Moodle Development: getting started.


NOTE: This post first appeared in eLearning World last year: Since then Simple Lesson has been published in the Moodle Plugins database:
Moodle plugins directory: Simple lesson

Moodle Bites for Developers Level 1 starts February 1st 2019.

As a user, teacher and lecturer of programming languages from FORTRAN IV to Java I’ve long been interested in the topic of Moodle programming, but every time I have started I’ve hit some kind of wall:

  • Lack of (or outdated) documentation
  • Lack of detailed PHP knowledge
  • Lack of help and support
  • Difficulty in understanding the source code

Then in frustration I’ve given up.

This last year I published my first Moodle plugin to the database and I’m deep into my second.  I’m still not a fully-fledged developer but I do understand a lot more than before.  So much so that I’m helping to facilitate a MoodleBites course in the subject[1].


One of the things needed to bring about this change was motivation.  I’d been working with people who were developing Moodle courses making extensive use of the Lesson Activity in Moodle.  It’s not a bad activity but it does suffer one serious shortcoming – you cannot use questions from the question bank in a lesson.

I began to Google around and pretty soon discovered that this had occurred to people before and they had not been able to solve it yet, mostly through lack of time.  Being in my late 60’s time is not as much of a luxury as it used to be for me.


Stuart at HRDNZ knew that I was interested and offered me a place on Justin Hunt’s MoodleBites for Developers Level 1 course.   Justin is “the POODLL guy” – the smart Moodle Developer of that Swiss-army knife of Moodle improvements, especially good for language learning[2].

Although the course covers much of the basics of Moodle programming (by no means all) it also teaches the value of persistence – or should I say without persistence you will find it hard to complete.  This is not the nature of the course material or the skill of the facilitator, rather it is the nature of the challenge.


Persistence for me was, when faced with a challenge, not going first to the forums and getting the answer but working back and finding out where I had strayed from the path.  Experienced Moodle Developers have all sorts of tools at their disposal.  All I had was echo and var_dump.  Echo allows you to print things at your console (you can also log messages to your error log). Var_dump allows you to see the “guts” of an object and work out what you should be doing with it.

Armed with these simple tools I would go back over my code and figure it out for myself, resulting in those wonderful “ah hah” moments.  When you have those, by the way, don’t forget top put them in your Evernote or whatever you use for a log.

I’ve sometimes puzzled for days over some piece of code and this has led to a broader and deeper understanding of Moodle structure and coding norms.  Even some of the documentation at Moodle org started to make sense.


There is, of course, an endless amount of knowledge already on the internet about Moodle, PHP, JavaScript and other technologies.  So much in fact that you sometimes have to be pretty skilled to find the missing piece you are looking for.

Obvious sites are:

  • The Moodle General Developer forum[3]
  • Stack Overflow[4]
  • The Developer documentation[5]

Less obvious routes include looking at GitHub for Moodle HQ and other developer’s accounts and studying the code of any plugin somewhat similar to the one you are trying to build. 

The Moodle database will also help you understand what variables/properties belong to which classes/objects and gain a deeper understanding of what your code is actually producing.  I have found this especially useful when trying to understand how my plugins store media files.

For a really quick but excellent overview of Moodle architecture, you can read Tim Hunt’s excellent guide[6].


As many people will tell you, learning by doing Moodle development is better and more effective than learning by reading about Moodle Development.  In fact Moodle is built on the philosophy of social constructionism[7].

If you see an error message as an example of feedback on your learning, a challenge to be googled, rather than as an obstacle to your progress you will learn more effectively.


We’ve already mentioned personal traits such as persistence to which we can add optimism and a sense of humour.  However, you will also need:

  • A sound knowledge of programming (preferably in PHP, preferably Object Orientated)
  • A good understanding of SQL and relational databases
  • A good understanding of html and css.
  • An understanding of JavaScript.

It’s true that if you are not familiar with all of the above technologies you can learn as you go.  A good source of basic knowledge is at the W3Schools website[8] which may help if you have some gaps.

Good luck!









eLearning Perspectives LMS

When SCORM can be problematic.

I recently worked on a project requiring some SCORM-based assessment activities to be updated within a Moodle course (to reflect changes in the law).  The original developer was gone, as were the original files that produced the SCORM export.

In this case the SCORM assessment was not doing anything that could not have been handled in a Moodle quiz. The site owner and administrator had neither the time, inclination or expertise to learn to use an interactive tool but could certainly edit Moodle quiz questions given a simple guide.

This experience got me thinking as to the need (if any) for SCORM objects in Moodle courses.  As a person that works extensively with both Moodle course design and Articulate Storyline development it has made me think carefully about what a client might really need – as opposed to what they might think they need.

Articulate Storyline
Although there are other packages around Storyline seems to be, by consensus, the easiest tool to learn to produce HTML 5 compliant SCORM packages that can easily be inserted into a Moodle course for both Mobile and desktop access.  If you are not designing for mobile by the way (no Flash!) where have you been hiding away recently?

If you have used PowerPoint, Keynote or similar presentation software then you will find Storyline layers on top of that quite nicely.  There are significant things to learn but at least you start with familiar concepts and, in the case of PowerPoint, a similar look and feel. Here’s an example in case you are wondering what a good presentation looks like (and also in case you’re planning to cook a turkey in the near future).

In this open course (log on as a guest) I have considered a range of free and non-free SCORM tools and given examples of what can be produced.

Some pros of SCORM
The graphic nature of the tool and the interactive experience are certainly attractive and advantageous to learners.  Most designers also believe that it is more engaging for learners and that therefore they will retain more of the content.

A carefully designed course can also encourage learner autonomy which we know is important in increasing engagement. In the case of Moodle, which supports the SCORM 1.2 standard, grades from SCORM packages can be transferred to the Moodle gradebook very easily. Finally, SCORM objects follow a standard so that if you do need to change your training or learning platform you should be able to transfer the packages seamlessly.

Some cons of SCORM
First and foremost the cost might well be a consideration.  An authoring package is typically 1400 – 1700 NZD per user.  This is significant for a small business. Secondly, as my client discovered, you may be locked into an authoring tool or even one developer who has the original files. Thirdly, it might just be used to provide superficial glitter or “polish a turd” to use a common phrase. Finally, it will take to time to learn or train designers to get the most out of the tool.

Moodle supports SCORM but, as of the time of writing only SCORM 1.2.  That said the newer SCORM 2004 has not been very widely adopted, and with the advent of the Tin Can API may well never be. Moodle itself has a wide range of core learning activities as well as third-party additions that are available.  Therefore, these other activities should not be ignored when designing courses.

In particular, the quiz activity is very powerful, with drag and drop now supported.  One of the common issues with quiz activities is slavish adherence to multiple choice with very basic feedback.  The use of varied question types, the addition of meaningful and well-designed feedback and features such as Certainty Based Marking can make Moodle quizzes very engaging.

The recently re-vamped Moodle Lesson (for version 3) is also a very flexible tool for scenario-based assessment and learning activities.  It is sadly neglected at present and I have seen it used merely as a linear presentation of text only pages which does it no favours at all.

If you do want just a linear progression of pages, with the ability to insert questions from the question bank see my third-party plugin Simple Lesson.

Caveat: Of course it is difficult to be definitive on (almost any) design issue and there are multiple possibilities depending on what you are trying to achieve. However, I would say, when you are trying to decide whether you need SCORM objects in a Moodle course, look through the other end of the telescope first.

That is, can I achieve my learning objectives with Moodle activities only?  If not, why not and what is it about SCORM that makes it the compelling choice? If you are a client, learn from my opening cautionary tale and make sure you have contractual rights to the original files used to produce SCORM activities.

Additional reading
To SCORM or not to SCORM:

Authoring tools compared:

Moodle: and


Richard Jones

Professional Background

Started life as a geologist and geophysicist and from there, during a bust in the oil industry moved into mathematical modelling of fluidized bed combustion and other research for a few years.

Eventually became a teacher in an international school and have worked in Portugal, Singapore, New Zealand, Australia and China.

I worked for many years as an examiner for the International Baccaluareate Organisation.

Since 2003 I have been an eLearning Manager and have developed Moodle courses for Te Wananga o Aotearoa, Dulwich College Beijing and Moodle workshops for the IBO.

I have also developed online workshops as a complement to traditional f2f events (blended learning).

In 2013 I completed a 3 1/2 year contract with the Southport School, Queensland, Australia as eLearning Coordinator developing more Moodle resources and other initiatives.

These days I’m working from my home in Pirongia, New Zealand. Past projects include Articulate Storyline training and development for Geneva Healthcare and TANZ eCampus, working on innovations in practice for tertiary educators and proposing solutions for EBRD.

Current projects include remote Moodle Administration, course development and Moodle plugin development with three plugins in the Moodle plugins database and courses in Moodle Development for Moodle partner HRDNZ.  I also undertake testing for Moodle Org.


  • B Sc Geology, London, 1974
  • M Sc Marine Earth Science, London, 1978
  • MA Education (Educational Management), Bath, UK, 1996
  • Certificate in Online Education, USQ, Australia, 2002
  • Certificate in Designing and Facilitating eLearning, Open Polytechnic, New Zealand, 2014
LMS Schools

Do you have an LMS problem?

How is the take up of the LMS in your organisation?  Is it:

  • Virtually defunct – the virtual spindleweed rolling through the deserted courses?
  • Used for content storage – just in case someone might want it.
  • Vibrant and healthy – students go there every day and find something new?

Somewhere in between perhaps. Maybe it is time to re-invigorate.  Here is one idea that was implemented at The Southport School using a small grant from the Australian Government Quality Teacher Program, supervised by Independent Schools Queensland.

We held an Elearning Leaders Professional Learning Day at a local resort (total cost less than AUD 1000 plus need for cover): The proposed outcomes of the eLearning Leaders project as funded by ISQ/AGQTP: “Teachers are now capable and confident in the processes involved in making resources available online.  The focus this year on pedagogy will remind them that online content, while useful, is not the full story. The planned activities will lead to wider use of the LMS to promote pedagogical change in the classroom, the development in students and teachers of, what have been labelled, 21st century skills.  By this, we mean the Higher Order Skills (Bloom) of creativity, evaluation and analysis. These are the skills that students need to succeed in both the Queensland Core Skills Test, in tertiary study and the modern workplace. The issue of devices in years 9 and 12 is an important part of this program.”

The purposes of the Big Day Out are:

  • Sharing of classroom activities and practices and some preliminary evaluation
  • Defining the functions and priorities of eLearning leaders in their departments
  • Careful consideration of the implications that the introduction of mobile technology into the classroom brings for the personal and professional development plans of teachers.

Participants Where possible, participants should:

  • Have entered some brief account of what they have researched or tried to the LMS wiki (or Google Doc, whatever).
  • Be prepared to discuss and/or present something about the above.
  • Bring a wireless device of some kind – laptop or iPad – a projector will be provided.
  • Bring a recording device if you have one handy and take plenty of photos and videos to share 

Proposed  activities (sample program)

Time Activity
08:15 – 08:45 Tea and coffee
08:45 – 09:00 Welcome and general announcements
09:00 – 09:15 Ideas in a box – what is an eLearning leader – what do they do?
09:15 – 09:40 Turnitin and Moodle
09:40 – 10:00 Research at TSS
10:00 – 10:15 Morning tea
10:15 – 10:25 A developmental model for PL – the personal development cycle.
10:25 – 12:00 Share key points from Term 1 activities.  Review the “ideas box” – define the purpose of the team.
12:00 – 12:45 Lunch
12:45 – 13:20 Activity: Plan a school visit, what questions will you ask.  Pairs then combined groups until we have 5 essential questions – or so.
13:20 – 14:40 Priority setting activity – Term 2 – might be as for Term 1 – this is for your faculty.  Solo or group-based as appropriate.
14:40 -15:00 Lightning Presentation on priorities.
15:00 – 15:15 Afternoon tea

The opportunity to get teachers out of the school for the day was priceless in some respects.  In this case we were not able to offer money (less than ideal as a motivator anyway) or extra time (the ideal solution) for the leaders but having the chance to think, reflect and share practice was great.

I believe also that the making of a “special” day in a very pleasant location (The Radisson Resort on the Gold Coast was 15 minutes from the school) made all the difference. Some results of our LMS and BYOD program: