
Learn to add JavaScript to a Moodle plugin page, load core components with require, and implement a search button using month and year URL parameters to refresh and preserve selections.
Learn to build a Moodle plugin page to view, add, and edit rates with a rates table, a rates form, and a Mustache template for display.
Create a Moodle PHP plugin page grader details to show a grader's monthly itemized grades, with a mustache template, linking from search results and handling month, year, and grader id.
Create a Moodle PHP plugin to calculate staff grade totals using year and month rates. Retrieve grade items, distinguish assignments and quizzes, compute grade values, and display results.
Learn to validate data in SQL scripts and ensure security while exploring Moodle plugin functions. Download and modify the plugin code, and consult Moodle docs for secure development.
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.
I will see you in the course.
Chris Richter