万本电子书0元读

万本电子书0元读

顶部广告

Moodle 1.9 Extension Development电子书

售       价:¥

0人正在读 | 0人评论 9.8

作       者:Jonathan Moore

出  版  社:Packt Publishing

出版时间:2010-04-29

字       数:417.2万

所属分类: 进口书 > 外文原版书 > 电脑/网络

温馨提示:数字商品不支持退换货,不提供源文件,不支持导出打印

为你推荐

  • 读书简介
  • 目录
  • 累计评论(0条)
  • 读书简介
  • 目录
  • 累计评论(0条)
The author’s experience as a Moodle developer enables him to combine a simple, de*ive how-to approach with enthusiastic insights into the rich potential of customizing Moodle according to your needs. The chapters gradually build up your skills and by the end of the book you will be confident enough to customize Moodle on your own. This book is written for technologists who are interested in expanding Moodle's functions through programming, either for their own organizations or to contribute to the open source project. You should be familiar with Moodle's basic technologies: PHP, MySQL ,and HTML/CSS.
目录展开

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

累计评论(0条) 3个书友正在讨论这本书 发表评论

发表评论

发表评论,分享你的想法吧!

买过这本书的人还买过

读了这本书的人还在读

回顶部