售 价:¥
温馨提示:数字商品不支持退换货,不提供源文件,不支持导出打印
为你推荐
Moodle 1.9 Extension Development
Table of Contents
Moodle 1.9 Extension Development
Credits
About the Authors
About the Reviewer
Preface
Approach
What this book covers
Who this book is for
Conventions
Reader feedback
Customer support
Errata
Piracy
Questions
1. Moodle Architecture
Understanding the stack
Database
Operating system
Web server
Directory and system structure
Moodle code
Moodle database
Moodle data
Installing Moodle
Moodle program execution
Executing config.php
Including Moodle libraries
Getting our data
Displaying in Moodle
Configuring Moodle
Setting configuration variables
Moodle's API
Other important libraries
PEAR
ADOdb
YUI
XMLDB
Access control, logins, and roles
Moodle permission contexts
Capabilities
Moodle roles
Assigning roles
Summary
2. Creating and Modifying Blocks
Creating a block from scratch
Assigning content to our block
Adding a language file
Working with capabilities
Testing for built-in capabilities
Hiding a block based on capabilities
Adding your own capability
Checking for our new capability
Adding instance configuration
Capturing your configuration content
Displaying your content
Adding scheduled actions to our block
Reviewing a real world block
Reviewing block_instructor_contact.php
Configuring the instructor contact block
Using a block as a code container
Creating a block stub for our container
Creating capabilities for our container
Summary
3. Creating and Modifying Filters
How a filter works
Building a filter
Getting started
Creating the language file
Creating the filter code
Activating the filter
Adding configuration settings
Using our settings
Summary
4. Creating and Modifying Activity Modules
The scope of creating an activity module
Our module—activity Foo!
Getting started with the NEWMODULE template
Completing mod_form.php
Defining input values
Using common form elements
Making version.php
Setting icon.gif
Generating install.xml
Using the XMLDB editor
Defining our activity database
Defining the foo_responses table
Defining log types
Creating access.php
Updating index.php
Adding clean language strings
Looking up response data
Displaying our table of activities
Displaying course sections
Committing output
Finishing view.php
Including submit_form.php
Your code goes here
Context control
Developing a form
Cancel option
Submitted data
Setting grades
Displaying submission form
Displaying submissions
Group support
Coding lib.php
Function add_instance
Function foo_delete_instance
Function foo_user_outline
Function foo_user_complete
Function foo_get_participants
Function reset_course_form_definition
Function foo_reset_course_form_defaults
Function foo_reset_userdata
Inserting grades into the gradebook
Using grade_update
Setting the grade type
Upgrading our activity database
Using the XMLDB editor for database upgrades
Updating upgrade.php
Creating backup and restore support
Exploring backuplib.php functions
Common backup functions
Internal backup functions
Exploring restorelib.php functions
Common restore functions
Internal restore functions
Summary
5. Customizing the Look and Feel
Themes
How themes work
Headers and footers
header.html
footer.html
Project 1: Changing the navigation breadcrumbs
Creating our own theme
Adding the category link
The navigation string
Project 2: Adding a standard footer with site links
Creating the code
Running the code
Course formats
How course formats work
Creating our own course format
Creating the course format language file
Modifying our course format function
Changing the forum display
Summary
6. Developer's Guide to the Database
The database structure
Maintaining Moodle tables
install.xml
upgrade.php
Maintaining local database customization
The XMLDB editor
Using the Moodle database in your code
Retrieving data
Query by parameters
Query by "where" string
Query by full SQL
Storing data
set_field and set_field_select
insert_record and update_record
Common tables and relationships
Course and module relationships
Programming best practices
Take only what you need
Limiting your returned data
Using recordsets
Optimizing carefully with joins
Testing on more than one database engine
Summary
7. Developing Pluggable Core Modules
Assignment types
What is an assignment type
Identifying assignment types
Assignment type basics
Building our own assignment type
Getting started
Planning our data
Adding custom settings
Making it do something useful
Viewing the journal
Getting the submission
Adding an entry
Viewing a submission
Reviewing students' entries
Backup and restore functions
Finishing up
Resource types
What is a resource type?
Identifying resource types
Resource type basics
Question types
What is a question type?
Identifying question types
Question type basics
The main class
The editing form
The main language file
Other important question constructs
Grading
Backup and restore functions
Import and export function support
CSS and JavaScript support
Where to get more help
Summary
8. Creating Moodle Reports
Creating course reports
Defining the non-participants report
Getting started
Updating mod.php
Controlling access
Language strings
Changes to Moodle's API
Exploring the People block
Setting $select
Setting $from
Setting $where
Making the query call
Modifying index.php
Making text substitutions
Changing the logical structure
Tracking active users using a hash array
Displaying the report
Cleaning up the final display
Using flexible_table
An exercise for you
Creating gradebook reports
Required components
Creating our report folder
Creating access.php
Assigning language strings
index.php requirements
Using version.php
Using the grade_report class
Fixing the outcomes report
Digging into the code
Reviewing our new report
Creating administrator reports
Generating the Hello World administrator report
Tweaking index.php
Viewing our administrator report
An exercise for you
Other output formats
Summary
9. Integrating Moodle with Other Systems
Built-in services and plugins
Batch upload
Built-in authentication plugins
Manual/Internal authentication
LDAP/Active directory authentication
External database authentication
E-mail account based authentication plugins
Built-in enrollment plugins
LDAP enrollment plugin
External database enrollment plugin
E-commerce based enrollment plugins
Web services
Activity plugin as an integration bridge
Creating user authentication plugins
Exploring authentication requirements
Looking at auth.php
Making the language file
Testing simple authentication
Adding optional functionality to authentication
Creating the RLLDAP authentication plugin
Coding RLLDAP
Changing LDAP string to RLLDAP
Mass change auth/ldap to auth/rlldap
Mass change 'ldap' to 'rlldap'
Mass change role assignment
Updating and renaming the auth_plugin class
Creating our language file
Modifying config.html
Storing administrator group
Implementing Single Sign On
Creating a URL-based SSO
Digging into the code
Finding the user's account
Confirming that the login criteria have been met
Completing login
Redirecting the user to the correct location
Testing the URL SSO
Creating user enrollment plugins
Reviewing plugin requirements
Creating enrol.php
Creating the setup_enrolments function
Making the language file
Other requirements
Making the 'simple' enrollment plugin
Using optional enrollment functions
Assigning enrollment plugins to courses
Grade or completion passing
Working with the built-in import/export plugins
Creating grade import/export plugins
An exercise for you
Summary
10. Writing Secure Code
User access issues
Making sure that a user has logged in
Making sure that the user's session is the current one
Making sure that the user has appropriate capabilities
SQL issues
Taking a look at vulnerable code
Quote protection
Database API
Use of addslashes
Form issues
The Moodle formslib library
Specifying a type
Validation rules
'param' functions
File system issues
Course file areas
User file areas
Other file areas
Getting a file URL
Screen output issues
The p() and s() functions
The format_text() and format_string() functions
Logging your actions
Summary
11. Sending Notifications to Users
Requirements
Setup
Using e-mail
Send e-mail API
Creating the subject text
Creating the message text
Sending the e-mail
Using Moodle messaging
Moodle messaging internals
Creating the message
Sending the message
Using RSS feeds
Setup
Creating the RSS XML file
Viewing the RSS feed
Summary
12. Constructing and Displaying Pages by Using the pagelib Library
Introduction to pagelib
Class page_base
Class page_course
Class page_generic_activity
Core modules that use pagelib
Using pagelib factory functions
page_import_types
page_create_instance
page_create_object
page_map_class
page_base member functions
page_base() and construct()
get_id()
get_body_class()
get_body_id()
edit_always()
init_quick()
init_full()
user_allowed_editing()
user_is_editing()
print_header()
get_type()
get_format_name()
url_get_path()
url_get_parameters()
blocks_get_positions()
blocks_default_position()
blocks_get_default()
blocks_move_position()
Meeting pagelib requirements
Looking at page setup
Examining requirements by reviewing quiz's view.php
Working with quiz blocks
Investigating quiz page display
Converting activity Foo! to pagelib
Creating a local pagelib.php
Updating view.php
Initializing $PAGE
Outputting blocks
Outputting the middle column
Viewing the results
Related libraries
weblib
blocklib
graphlib
Summary
13. Building Forms with formslib
Using formslib
Form definition and elements
addElement and createElement
Buttons
Button function
Submit, reset, and cancel functions
add_action_buttons function
Checkboxes
Checkbox function:
Advanced checkbox and checkbox controller
Uploading and/or choosing a file
choosecoursefile function
Date and time
date_selector function
date_time_selector function
htmleditor, textarea, and text
htmleditor function
text function
modgrade
password and passwordunmask
radio
select, multi-select, and selectyesno
hidden, html, and static text
Groups
Rules and validation
Rules
addRule
registerRule
Validation
Summary
14. Development for the Adventuresome: Web Services
Using Remote-Learner Web Services
Advantages
Disadvantages
Installation
Server-side setup
Client setup
Testing with ppdemo_trace.php
Setting up your Web Services connection
Debugging setup
Managing users
Creating users
Processing arguments
Connecting to Web Services
Using edit_user() to create a new account
Updating users
Deleting users
Creating a Web Services based Single Sign On
Creating our HTML wrapper
Web service connection setup
Processing SSO parameters
Using authenticate_user()
Closing wrapper
Enrollment management
Creating enrollstudent.php
Using enrol_students()
Creating unenrollstudent.php
Grade passing
Creating the CSV grade script
Generating the header line
Course loop
Using Moodle Networking
Advantages
Disadvantages
What is XML-RPC?
MNet XML-RPC supported service types
MNet XML-RPC security model
Using MNet in activity modules
Using MNet in auth/enrol plugins
MNet SSO model
Summary
Index
买过这本书的人还买过
读了这本书的人还在读
同类图书排行榜