This post contains affiliate links. If you use these links to buy something we may earn a commission.

With 15 years of experience using Moodle as a developer I have used  courses and online resources to perfect my Moodle content. Throughout these years I have used some not so great courses but I have also found some amazing courses that I really think you should know about. In finding these courses I also created my own courses along way that answers the questions of many of my peers and students from other areas of my Moodle career.

Let’s jump right into my TOP 10 Moodle courses for PHP Developers. (I have put them into categories based on specific needs in a course).

Installing Moodle

How to install an Open Source LMS – Part 1

Course by – DarwinOS OpenSharing

In this training, you will learn how to set up an Open Source educational platform. Dissemination of knowledge has never been easier. Whether in a school, a company, an organisation, etc., install a Learning Management System (LMS) easily.

This training is not a course on the use of these LMS, its sole purpose to help you install them and ensure their proper operation.

How to install an Open Source LMS – Part 2

Course by – DarwinOS OpenSharing

Installing an LMS on a LAMP stack, whether with a physical or even virtual server, can take a long time.Use DevOps tools to save time and resources in setting up your test or development environment. With Vagrant, Docker and Ansible, install an Open Source LMS, such as Chamilo, Claroline, Moodle and Opigno, in just a few minutes and a single command.

This training is not a course on the usage of these LMS, its sole purpose is to help you automate their installation and ensure their proper operation.

Programming in Moodle

How to create a block for Moodle using PHP

 

Course by – Chris Richter

This course will take you through the complete process of developing a Moodle block. A ‘block’ is a special type of plugin used in Moodle that can be added to pages, dashboards and other display areas in Moodle. A ‘block’ has a unique set of requirements when developing in Moodle that will be covered in this course.

It is highly recommended that you have PHP, HTML, JavaScript and CSS experience before attempting to create a block in Moodle but it is not essential that you have worked in Moodle before.

This course will teach you the basic structure and requirements of a ‘block’, then take you through the actual process of:

  • Creating a fully functioning block
  • Adding the core files
  • Managing versions
  • Adding the access file
  • Adding instance configuration options
  • Adding global config options
  • Adding the language file for the block
  • Completing a YouTube playlist RSS reader function to demonstrate the block

The block process is recorded using Moodle 3.9 but the code can be used in Moodle 3.7.2+

How to create a plugin for Moodle using PHP

 

Course by – Chris Richter

This course will take you through the complete process of developing your first Moodle plugin.

It is highly recommended that you have PHP, HTML, JavaScript and CSS experience before attempting to create a plugin in Moodle but it is not essential that you have worked in Moodle before.

This course will teach you the basic structure and requirements of a plugin, then take you through the actual process of:

  • creating the plugin
  • adding the core files
  • managing versions
  • adding templates
  • adding JavaScript
  • a new database table for your plugin
  • create, read and update data using forms
  • provide data to templates
  • access the Moodle database
  • Export data to CSV and PDF
  • Secure your pages

By the end of this course you will be ready to answer that question….

“Can Moodle do THIS?”

And you will be able to answer…

“Sure, let me write a plugin that will do it.”

The plugin process is recorded using Moodle 3.9 but the code can be used in Moodle 3.7.2+

This course does get deep into coding but I am sure you will enjoy it and learn so much that will save you searching for days on the internet to find the solution to creating your own first plugin.

Make Your Own Custom Block in Moodle

Course by – Brian Kremer

In this course you will learn to make your very own custom block in Moodle. Whether you’re a teacher, a trainer, a Moodle administrator, or an IT professional, if you want to learn how to customize Moodle, then this course is for you! This course assumes you’ve never even seen PHP or HTML before… I will show you everything you need to know to get through your first project.

I will walk you through setting up your own Moodle test environment. We’ll write a base plugin, install it, and add it to the Moodle dashboard. Then we’ll start to add functionality to your plugin: When this project is finished, it will show different messages in the block for each user who logs in, based on which cohort they belong to.

We’re going to learn about three key database tables in Moodle and how to query data from those tables. I will introduce you to the $DB and $USER global objects in Moodle and how to use Moodle’s built in functions to display data, including get_records_select(), get_string(), and more.

We’re also going to learn some PHP: conditional statements, foreach statements, case statements, string concatenation, and more. I’ll explain versioning and how to update your plugin, how to control security for your plugin, and how to add custom strings to your plugin’s language file.

Again, even if you’ve never written any code before, I will walk you through every detail, and you will have access to complete versions all of the plugin files every step of the way. So, if you would like to dive into the world of Moodle customizations, this course is a great place to start.

MySQL, PHP, and Moodle Schema

 

Course by – Brian Kremer

This class is all about querying the database: Writing MySQL queries from within the PHPMyAdmin web application, and writing PHP code to utilize functions within Moodle’s data manipulation API. Along the way we’re going to learn about 10 database tables in Moodle, centering around Moodle users, roles, capabilities and contexts.

Make Your Own Custom Block in Moodle

Course by – Brian Kremer

In this course you will learn to make your very own custom block in Moodle. Whether you’re a teacher, a trainer, a Moodle administrator, or an IT professional, if you want to learn how to customize Moodle, then this course is for you! This course assumes you’ve never even seen PHP or HTML before… I will show you everything you need to know to get through your first project.

I will walk you through setting up your own Moodle test environment. We’ll write a base plugin, install it, and add it to the Moodle dashboard. Then we’ll start to add functionality to your plugin: When this project is finished, it will show different messages in the block for each user who logs in, based on which cohort they belong to.

We’re going to learn about three key database tables in Moodle and how to query data from those tables. I will introduce you to the $DB and $USER global objects in Moodle and how to use Moodle’s built in functions to display data, including get_records_select(), get_string(), and more.

We’re also going to learn some PHP: conditional statements, foreach statements, case statements, string concatenation, and more. I’ll explain versioning and how to update your plugin, how to control security for your plugin, and how to add custom strings to your plugin’s language file.

Again, even if you’ve never written any code before, I will walk you through every detail, and you will have access to complete versions all of the plugin files every step of the way. So, if you would like to dive into the world of Moodle customizations, this course is a great place to start.

Make Your Own Custom Report in Moodle

Course by – Brian Kremer

In this course you will learn to make your very own custom report in Moodle. Whether you’re a teacher, a trainer, a Moodle administrator, or an IT professional, if you want to learn how to customize Moodle, then this course is for you! This course assumes you’ve never even seen PHP or HTML before… and I will walk you through this project step by step.

This will include learning about three database tables in Moodle and how to query data from those tables. I’ll show you how to use some of Moodle’s built in functions to display data. We’re also going to learn some PHP: Conditional statements, foreach statements, string functions, and more.

We are going to make a report template, install it, and access it through the admin menu. I’m also going to show you how to add language support: I’ll be adding support for English and Spanish, and you can add support for any languages you would like.

Even if you’ve never written any code before, I will walk you through all the details, and you will have access to complete versions all of the report files every step of the way. So, are you ready to learn about Moodle customization? Join me, and let’s get started.

 

Theme Development

How to create a child theme for Moodle

Course by – Chris Richter

In this course I will take you step by step through the process to create a child theme based on the Moodle Boost theme.

We will cover:

  • How to create the child theme
  • How to install the child theme
  • Making theme development easier
  • Testing the child theme
  • How to add CSS to the child theme
  • How to override templates

This course will be presented using Moodle 3.7 and will use the Boost theme as a basis for the Moodle child theme.

The concept of this course is for you to learn quickly and put your learning into practice straight away. As a result, there will be technical terminology that you may not understand and there will be some information that is not explained in detail because it requires its own course. In these cases I will try to provide you with additional information or a place to find the additional information so that you can move on quickly to achieving your goals of learning how to create a child theme.

Make Your Own Custom Theme in Moodle

Course by – Brian Kremer

In this course, you will learn how to add some excitement to your boring old Moodle site. This includes making changes to the front page settings, theme settings, changing your theme, downloading and installing a new theme, cloning a theme, and customizing a theme’s CSS.

Regardless of your current skill level, there’s something in this course for you. If you’re a Moodle administrator or IT professional who wants to change the look of your Moodle site, this is the perfect course for you. Even if you’ve never written a line of computer code, don’t worry! You will learn how to make startling changes to your Moodle site without ever touching the database or files on the server.

And if you’re a more advanced user: maybe you have a lot of experience using CSS on other platforms but you’re wondering how to write your own stylesheets in Moodle, you will learn how to clone an existing theme and add your own custom stylesheet… then you can apply your CSS skills to take your Moodle site as far as you want.

Watch the video below