introduction to moodle development

27
Introduction to Moodle Development Jonathan Moore Founder

Upload: moorejon

Post on 22-Jan-2018

672 views

Category:

Education


4 download

TRANSCRIPT

Page 1: Introduction to Moodle Development

Introduction to Moodle Development

Jonathan MooreFounder

Page 2: Introduction to Moodle Development

Oklahoma Moot 2010 Edition

Page 3: Introduction to Moodle Development

Background and context

● Managed thousands of Moodle sites● Managed millions of Moodle user accounts● Over 10 years experience with Moodle● Dozens of Moodle dev and reporting projects● Tuning, scalability, and performance expert● Author of Moodle Module Development

Page 4: Introduction to Moodle Development

Things you need

● Local Moodle installation

– https://download.moodle.org/macosx/– https://download.moodle.org/windows/

● Text editor● Thinking cap!

Page 5: Introduction to Moodle Development

Format / objectives

● Create a 'Hello World' block● Use language files for localization● Implement capabilities● Scheduled execution● Ask questions!● Share your tips

Page 6: Introduction to Moodle Development

Getting to know you

● How many new developers?● How technical are you?● Are you new to Moodle?● Does anyone know PHP already?

Page 7: Introduction to Moodle Development

Getting to know you

● What are you hoping to learn today?● What is your ultimate goal?

Page 8: Introduction to Moodle Development

What is a block?

Page 9: Introduction to Moodle Development

Moodle source folder

Page 10: Introduction to Moodle Development

Finding your source folder

Page 11: Introduction to Moodle Development

Hands-on

● Install local Moodle● Find source code folder

Page 12: Introduction to Moodle Development

Minimal block requirements

● Choose a block name (ex helloworld)● Block folder in /block (ex /block/helloworld)● block_name.php (ex block_helloworld.php)

– Extend block class

– Define init()

– Define get_content() function

● Create language file

Page 13: Introduction to Moodle Development

Language files

● Moodle supports unicode for localization / multi-language support

● Stored in /lang folder of module● Each language gets its own folder

ex/lang/en_utf8● Assigns to global $string hash

Page 14: Introduction to Moodle Development

Hands-on

● Download newblock template– https://github.com/danielneis/moodle-

block_newblock

● Rename references from newblock to helloworld● Install into Moodle

Page 15: Introduction to Moodle Development

Settings

● Stores individual block instance configuration● Requires

– Settings.php– edit_form.php

Page 16: Introduction to Moodle Development

Hands-on

● Create configuration option to set block text

Page 17: Introduction to Moodle Development

Hands-on

● Display user's firstname in block

Page 18: Introduction to Moodle Development

Capabilities

● Define access limits / powers for users● Modules can check for capabilities and limit access● Can use built-in and custom created capabilities

Page 19: Introduction to Moodle Development

Hands-on

● Add capability to view block

Page 20: Introduction to Moodle Development

Scheduling execution● Update init() function

– $this->cron = 5; //where 5 is minutes between runs● Define cron() function

Page 21: Introduction to Moodle Development

Hands-on

● Add a cron call for our block

Page 22: Introduction to Moodle Development

Developer tools

Page 23: Introduction to Moodle Development

PhpStorm IDE

Page 24: Introduction to Moodle Development

More tools

● Git – code management

– see github and bitbucket services● Xdebug – debugger● Code checker – style checker● PHP Unit – code level testing● Behat – browser automation

Page 25: Introduction to Moodle Development

And more dev tools

● Moodle Development KIT (MDK)● MOOSH● XHProf● GRUNT – Bootstrap tool● Shifter – Javascript compiling

Page 26: Introduction to Moodle Development

What we do

● Expert advice and eLearning program review● Evangelism and training● Instructional design● Custom development● Reporting● System tuning● Performance assessment

Page 27: Introduction to Moodle Development

Questions?

● http://elearningconsultancy.com● [email protected]● Twitter: @moorejon● Skype: moorejon07