Udemy
    •  
    •  
    •  
    •  
    •  
    •  
    •  
    •  
Turn what you know into an opportunity and reach millions around the world.
Learn More
Your cart is empty.
Keep shopping
Moodle developer course for beginners
Rating: 4.2 out of 5(250 ratings)
1,509 students

Moodle developer course for beginners

Install moodle and build your first plugins by writing PHP!
Created byKristian Ringer
Last updated 6/2022
English

What you'll learn

  • Moodle
  • PHP
  • Web development
  • SQL
  • Unit tests
  • Templates
  • Test driven development

Course content

13 sections52 lectures7h 58m total length
  • Moodle set up tutorial - how to install Moodle with php, apache, mysql on Ubuntu20:39

    In this video we go through the moodle set up guide to install moodle on a clean ubuntu 18.04. We configure the apache2 'document root' to look at the directory where we have our moodle code. We also install mysql and configure moodle to be able to talk to the database using moodle's config.php file. Similar steps should work on mac.

    https://docs.moodle.org/38/en/Step-by-step_Installation_Guide_for_Ubuntu

    https://support.rackspace.com/how-to/install-mysql-server-on-the-ubuntu-operating-system/


    If you want to use windows, I would recommend you try to follow the windows set up guide: 


    You can try: https://docs.moodle.org/39/en/Manual_install_on_Windows_7_with_Apache_and_MySQL


    There is even some one click installers that might work for you: https://docs.moodle.org/39/en/Complete_install_packages_for_Windows


    You can also use Xampp which creates apache, php, mariadb (basically mysql) automatically as well https://www.apachefriends.org/download.html . Then you just need to put moodle into the root folder of the web server.


    Message me if you have trouble setting up moodle so we can get coding!


    https://moodletips.org

  • Set up phpmyadmin GUI for interacting with database4:56

    Often we want to just browse through data in the database and in those situations it can be easier to have a program that lets us use the database almost like an excel spreadsheet rather than through just the CLI.

    We also can directly update fields and change schema without writing sql, letting the phpmyadmin program write that for us.


    https://moodletips.org

  • Set up Phpstorm IDE (Optional)2:18

    Phpstorm has a built in GUI like phpmyadmin so that's what I'll use instead of setting that up.

    Here I show you how to use this functionality of phpstorm and connect it to our database.

    https://www.jetbrains.com/resources/eap/


    https://moodletips.org

  • Change moodle user's password using a direct database command4:43

    In our local dev environment, there is no need to have our admin user/password credentials to be complicated and hard to remember. However, we won't be able to update it using moodle's UI or core functions because moodle will say our simple password is invalid. In this tutorial we hash a simple string 'admin', and directly insert that into the database as the admin password.


    https://moodletips.org

Requirements

  • Basic git
  • Basic command line

Description

In this course, you will learn the basics of moodle. The official documentation is pretty hard to follow and I take us through the most important parts of it.

This course will greatly accelerate your initial learning phase with Moodle, with real tips and tricks I use having worked in the Moodle developer industry for over 3 years.

You will learn how to:

  • Install Moodle, apache, mysql, PHP

  • Use the command line to run moodle scripts

  • Use SQL to alter data directly

  • Learn the Moodle directory/plugin structure

  • Create a block plugin, with settings to alter its behaviour

  • Create a custom theme based off boost, with custom css

  • Learn about overriding templates and creating our own templates

  • Learn how to override a renderer

  • Create a local plugin to display dynamic notifications to the user

  • Create new moodle pages

  • Create custom forms that users can submit. Process and store that data in custom database tables.

  • Create a web service (external function to interface with our plugin) that can delete messages using AJAX requests.

  • Create a modal popup confirm dialogue window

  • Create a new capability and add it to a role

I also go into depth about each action taken and include explanations of various parts of the codebase.

If that sounds useful, I look forward to seeing you around in the course!

Feel free to drop comments/questions and I will do my best to help you out.

All the code is available on Github and links will be shown throughout the course.

Who this course is for:

  • Beginner moodle developers looking to learn the framework