22
Creating Moodle modules sam marshall

Creating Moodle modules sam marshall. Contents Introduction to Moodle system Introduction to modules Versions and database tables Capabilities Language

Embed Size (px)

Citation preview

Page 1: Creating Moodle modules sam marshall. Contents Introduction to Moodle system Introduction to modules Versions and database tables Capabilities Language

Creating Moodle modulessam marshall

Page 2: Creating Moodle modules sam marshall. Contents Introduction to Moodle system Introduction to modules Versions and database tables Capabilities Language

Contents

• Introduction to Moodle system• Introduction to modules• Versions and database tables• Capabilities• Language files and help files• Forms• view.php

Page 3: Creating Moodle modules sam marshall. Contents Introduction to Moodle system Introduction to modules Versions and database tables Capabilities Language

Introduction to Moodle system

• PHP • Database-driven

– Library of ‘simplifying’ database access functions– Every table has auto-increment id field

• Little persistent state– Session data exists, not heavily used

• Mainly functions, not object-oriented• Independent PHP scripts

Page 4: Creating Moodle modules sam marshall. Contents Introduction to Moodle system Introduction to modules Versions and database tables Capabilities Language

Introduction to modules

• ‘Activities’• Appear on front page of course• Add using dropdown• Update settings• Link goes to module’s own PHP files• What’s in a module?

Page 5: Creating Moodle modules sam marshall. Contents Introduction to Moodle system Introduction to modules Versions and database tables Capabilities Language
Page 6: Creating Moodle modules sam marshall. Contents Introduction to Moodle system Introduction to modules Versions and database tables Capabilities Language
Page 7: Creating Moodle modules sam marshall. Contents Introduction to Moodle system Introduction to modules Versions and database tables Capabilities Language
Page 8: Creating Moodle modules sam marshall. Contents Introduction to Moodle system Introduction to modules Versions and database tables Capabilities Language

mod/name

• db– install.xml– access.php– update.php

• version.php • lang

– en_utf8• name.php• help

– mods.html

• lib.php• mod_form.php• styles.php• view.php

Page 9: Creating Moodle modules sam marshall. Contents Introduction to Moodle system Introduction to modules Versions and database tables Capabilities Language

Database structure

• prefix_course_modules– An instance of a module in a particular course

• prefix_name– Your table. Must have id, name, course

• And index on course– $cm->instance == $name->id

• Variables– $cm, $name, $course

Page 10: Creating Moodle modules sam marshall. Contents Introduction to Moodle system Introduction to modules Versions and database tables Capabilities Language

Versions and database tables

• install.xml– Used when installing for first time– Create with horrible editor (not by hand!)

• update.php– Used after code update on existing database– Code in PHP

• version.php– Module version e.g. 2007031600

Page 11: Creating Moodle modules sam marshall. Contents Introduction to Moodle system Introduction to modules Versions and database tables Capabilities Language
Page 12: Creating Moodle modules sam marshall. Contents Introduction to Moodle system Introduction to modules Versions and database tables Capabilities Language

Capabilities

• Define capabilities for your module– Array in access.php

• Specifies available capabilities and who has them by default

– mod/name:edit, mod/name:view,…• Check capabilities

– Get context object for current module instance– has_capability(‘mod/name:edit’,$context)

Page 13: Creating Moodle modules sam marshall. Contents Introduction to Moodle system Introduction to modules Versions and database tables Capabilities Language

Language files

• All strings taken out into language files– Except system errors

• But not except user errors!– Why? Now or future contribution to community

• Language file goes in lang/en_utf8/name.php– $string[‘frogscanjump’]=‘Frogs can jump’;– $string[‘howhigh’]=‘How high? $a metres!’;

• A couple standard strings (module name)

Page 14: Creating Moodle modules sam marshall. Contents Introduction to Moodle system Introduction to modules Versions and database tables Capabilities Language

Help files

• In lang/en_utf8/help• Basic XHTML content• One standard file mods.html• Add other files • Link to them with standard help button

– For example, in forms

Page 15: Creating Moodle modules sam marshall. Contents Introduction to Moodle system Introduction to modules Versions and database tables Capabilities Language

Forms

• In case you’ve forgotten…

Page 16: Creating Moodle modules sam marshall. Contents Introduction to Moodle system Introduction to modules Versions and database tables Capabilities Language
Page 17: Creating Moodle modules sam marshall. Contents Introduction to Moodle system Introduction to modules Versions and database tables Capabilities Language

Forms

• mod_form.php• PHP QuickForm + Moodle extensions

– $mform->addElement('text', 'name', get_string('name'));

• Various types provided• Easy to add help buttons• Does formatting for you

– And accessibility (hopefully)

Page 18: Creating Moodle modules sam marshall. Contents Introduction to Moodle system Introduction to modules Versions and database tables Capabilities Language

view.php

• Your own PHP code• Can do anything

– Should use Moodle standard functions where appropriate

– Header, footer, tabs, etc.• Other PHP scripts too (as needed)

– view.php is just where the link goes

Page 19: Creating Moodle modules sam marshall. Contents Introduction to Moodle system Introduction to modules Versions and database tables Capabilities Language
Page 20: Creating Moodle modules sam marshall. Contents Introduction to Moodle system Introduction to modules Versions and database tables Capabilities Language

Conclusion

• Standard platform features need to be used– Maintaining– Administration (capabilities)– Community sharing

• Initial design is important• Skills needed

– Database – PHP– And…

Page 21: Creating Moodle modules sam marshall. Contents Introduction to Moodle system Introduction to modules Versions and database tables Capabilities Language

Bonus scare slide

• Security!!!!1!!1!!eleventy-one– Public Web application– Easy to make mistakes

• Check permission on action as well as when showing link• Avoid SQL injection

– Be careful!

Page 22: Creating Moodle modules sam marshall. Contents Introduction to Moodle system Introduction to modules Versions and database tables Capabilities Language

To end on a positive note