Moodle 3.x developer's guide /
Ian Wild.
- First edition
- Birmingham : Packt Publishing, 2017.
- 354 p.
Preface What this book covers What you need for this book Who this book is for Conventions Reader feedback Customer support Downloading the example code Downloading the color images of this book Errata Piracy Questions Getting to Grips with the Moodle 3 Architecture Understanding Moodle More on Moodle plugins Running a local Moodle Moodle architecture - the LAMP/WAMP stack Installing WampServer WampServer and Skype Setting up an Integrated Development Environment (IDE) Configuring the Eclipse IDE Configuring remote debugging Installing and configuring Moodle Introducing the project Planning is everything Agile software development Version control Moodle Internals - Application Programming Interfaces (APIs) An object-oriented philosophy Types of APIs Our first plugin - a custom string manager The user story The development process Step 1: Understanding the problem Step 2: Researching potential solutions Moodle plugin directory Moodle community forums Moodle Tracker String API Step 3: Implementing the solution Standard plugin features Summary Moodle Plugins - What Can I Plug In? Managing users Authentication Enrolment Learner competencies Managing courses Course layout Course content Resources Activities Quiz plugins Assignment plugins Where to find course interaction plugins Other important course plugin types Blocks Editor plugins Text filters Reporting and analytics Look and feel Other major plugin types What cannot be done with plugins? Summary Internal Interfaces Adding configuration settings Wireframing Moodle application layers Storing configuration data Creating an admin settings page Updating the get_string function Plugin language strings System APIs Events API Plugin data and services Form API File Storage API Cache API Output renderers Summary Course Management Course formats GPS location - background to the project Obtaining device location Device location - security issues Configuring SSL on WampServer Understanding renderers Finding a user's location with the Geolocation API Including JavaScript Specifying location settings Displaying sections based on location Try it yourself Course blocks Configuring the QR Code block Including the QR Code library Manipulating files with the File API Serving files from the file store Try it yourself Text filters Subscribing to a text changed event Try it yourself Summary Creative Teaching - Developing Custom Resources and Activities Teaching interactions Developing a Resource plugin Rendering a three-dimensional model Module configuration More on file handling Plugin library callbacks Rendering the Model More on JavaScript Asynchronous Module Definition (AMD) API Reporting events Other files Installation scripts XMLDB editor Allowing user comments More on file handling Styling Backup and Restore API Backup API Restore API Roles and permissions Preparing for release Minimising JavaScript Taking things further Activities Enhanced choice Editing choices Summary Managing Users - Letting in the Crowds Authentication Authentication - general principles Getting logged in Single sign on WordPress to Moodle - SSO options Calling WordPress code directly Cookie authentication Links from WordPress to Moodle External Web Services APIs OAuth overview Installing the WordPress OAuth 1.0a server Creating a new Moodle auth plugin Configuration Handling OAuth calls Handling the Moodle login event Taking things further Course Enrolment A WordPress course enrolment plugin Taking things further Management of Competencies Creating a new admin tool plugin Synchronisation settings Connecting to external databases Taking things further - Moodle CLI scripts Summary Creating a Dashboard - Developing a Learner Homepage The client's requirement Addicted to learning Course progress block Including graphics libraries JavaScript Object Notation (JSON) Converting progress data to JSON Constructing a progress chart Creating a chart Making the chart clickable Taking things further Dashboard progress overview Taking things further Encouraging learners to start a course Implementing a new course availability block Determining progress Creating the Description page Taking things further Summary Creating a New Skin Theme plugin structure Page layout Theme library functions Taking things further - updating the theme screen grab Renderers Creating a plugin renderer Overriding a component renderer Custom styling Including images in CSS Taking things further - styling button icons Page layouts Taking things further - doing more with page layouts Templates Mustache Overriding templates in a theme Theme responsiveness Summary Moodle Analytics Reporting Report plugin structure Grabbing data Reporting learner success Determining certificates issued EXPLAIN a query Saving data Creating spreadsheets Taking things further Displaying activity data - a bubble chart example Accessing the report Building the block Extracting the data Including D3.js libraries Rendering a bubble chart Further improvements Web Services Developing a new external API A hello world API Building a new API Encrypting data Decrypting data in PHP Decrypting data in C# Summary Appendix Testing PHPUnit Behat Describing a scenario Step definitions Moodle guidelines General guidelines Describing functions and methods Whitespaces and indentation Configuring Eclipse indentation SQL query coding style The code checking tool C# client Installing Visual Studio Creating a new project Creating a test harness Connecting to an XML-RPC API Decrypting data Decompressing data Final testing Source control with GitHub Installing Git Configuring SSH Committing changes Atomised commits
; ; ; ;
9781786467119
Computer-assisted instruction -- Authoring programs Open source software Internet in education Moodle