Categories
Ebooks
-
Business and economy
- Bitcoin
- Businesswoman
- Coaching
- Controlling
- E-business
- Economy
- Finances
- Stocks and investments
- Personal competence
- Computer in the office
- Communication and negotiation
- Small company
- Marketing
- Motivation
- Multimedia trainings
- Real estate
- Persuasion and NLP
- Taxes
- Social policy
- Guides
- Presentations
- Leadership
- Public Relation
- Reports, analyses
- Secret
- Social Media
- Sales
- Start-up
- Your career
- Management
- Project management
- Human Resources
-
For children
-
For youth
-
Education
-
Encyclopedias, dictionaries
-
E-press
- Architektura i wnętrza
- Biznes i Ekonomia
- Home and garden
- E-business
- Finances
- Personal finance
- Business
- Photography
- Computer science
- HR & Payroll
- Computers, Excel
- Accounts
- Culture and literature
- Scientific and academic
- Environmental protection
- Opinion-forming
- Education
- Taxes
- Travelling
- Psychology
- Religion
- Agriculture
- Book and press market
- Transport and Spedition
- Healthand beauty
-
History
-
Computer science
- Office applications
- Data bases
- Bioinformatics
- IT business
- CAD/CAM
- Digital Lifestyle
- DTP
- Electronics
- Digital photography
- Computer graphics
- Games
- Hacking
- Hardware
- IT w ekonomii
- Scientific software package
- School textbooks
- Computer basics
- Programming
- Mobile programming
- Internet servers
- Computer networks
- Start-up
- Operational systems
- Artificial intelligence
- Technology for children
- Webmastering
-
Other
-
Foreign languages
-
Culture and art
-
School reading books
-
Literature
- Antology
- Ballade
- Biographies and autobiographies
- For adults
- Dramas
- Diaries, memoirs, letters
- Epic, epopee
- Essay
- Fantasy and science fiction
- Feuilletons
- Work of fiction
- Humour and satire
- Other
- Classical
- Crime fiction
- Non-fiction
- Fiction
- Mity i legendy
- Nobelists
- Novellas
- Moral
- Okultyzm i magia
- Short stories
- Memoirs
- Travelling
- Narrative poetry
- Poetry
- Politics
- Popular science
- Novel
- Historical novel
- Prose
- Adventure
- Journalism, publicism
- Reportage novels
- Romans i literatura obyczajowa
- Sensational
- Thriller, Horror
- Interviews and memoirs
-
Natural sciences
-
Social sciences
-
School textbooks
-
Popular science and academic
- Archeology
- Bibliotekoznawstwo
- Cinema studies
- Philology
- Polish philology
- Philosophy
- Finanse i bankowość
- Geography
- Economy
- Trade. World economy
- History and archeology
- History of art and architecture
- Cultural studies
- Linguistics
- Literary studies
- Logistics
- Maths
- Medicine
- Humanities
- Pedagogy
- Educational aids
- Popular science
- Other
- Psychology
- Sociology
- Theatre studies
- Theology
- Economic theories and teachings
- Transport i spedycja
- Physical education
- Zarządzanie i marketing
-
Guides
-
Game guides
-
Professional and specialist guides
-
Law
- Health and Safety
- History
- Road Code. Driving license
- Law studies
- Healthcare
- General. Compendium of knowledge
- Academic textbooks
- Other
- Construction and local law
- Civil law
- Financial law
- Economic law
- Economic and trade law
- Criminal law
- Criminal law. Criminal offenses. Criminology
- International law
- International law
- Health care law
- Educational law
- Tax law
- Labor and social security law
- Public, constitutional and administrative law
- Family and Guardianship Code
- agricultural law
- Social law, labour law
- European Union law
- Industry
- Agricultural and environmental
- Dictionaries and encyclopedia
- Public procurement
- Management
-
Tourist guides and travel
- Africa
- Albums
- Southern America
- North and Central America
- Australia, New Zealand, Oceania
- Austria
- Asia
- Balkans
- Middle East
- Bulgary
- China
- Croatia
- The Czech Republic
- Denmark
- Egipt
- Estonia
- Europe
- France
- Mountains
- Greece
- Spain
- Holand
- Iceland
- Lithuania
- Latvia
- Mapy, Plany miast, Atlasy
- Mini travel guides
- Germany
- Norway
- Active travelling
- Poland
- Portugal
- Other
- Russia
- Romania
- Slovakia
- Slovenia
- Switzerland
- Sweden
- World
- Turkey
- Ukraine
- Hungary
- Great Britain
- Italy
-
Psychology
- Philosophy of life
- Kompetencje psychospołeczne
- Interpersonal communication
- Mindfulness
- General
- Persuasion and NLP
- Academic psychology
- Psychology of soul and mind
- Work psychology
- Relacje i związki
- Parenting and children psychology
- Problem solving
- Intellectual growth
- Secret
- Sexapeal
- Seduction
- Appearance and image
- Philosophy of life
-
Religion
-
Sport, fitness, diets
-
Technology and mechanics
Audiobooks
-
Business and economy
- Bitcoin
- Businesswoman
- Coaching
- Controlling
- E-business
- Economy
- Finances
- Stocks and investments
- Personal competence
- Communication and negotiation
- Small company
- Marketing
- Motivation
- Real estate
- Persuasion and NLP
- Taxes
- Guides
- Presentations
- Leadership
- Public Relation
- Secret
- Social Media
- Sales
- Start-up
- Your career
- Management
- Project management
- Human Resources
-
For children
-
For youth
-
Education
-
Encyclopedias, dictionaries
-
History
-
Computer science
-
Other
-
Foreign languages
-
Culture and art
-
School reading books
-
Literature
- Antology
- Ballade
- Biographies and autobiographies
- For adults
- Dramas
- Diaries, memoirs, letters
- Epic, epopee
- Essay
- Fantasy and science fiction
- Feuilletons
- Work of fiction
- Humour and satire
- Other
- Classical
- Crime fiction
- Non-fiction
- Fiction
- Mity i legendy
- Nobelists
- Novellas
- Moral
- Okultyzm i magia
- Short stories
- Memoirs
- Travelling
- Poetry
- Politics
- Popular science
- Novel
- Historical novel
- Prose
- Adventure
- Journalism, publicism
- Reportage novels
- Romans i literatura obyczajowa
- Sensational
- Thriller, Horror
- Interviews and memoirs
-
Natural sciences
-
Social sciences
-
Popular science and academic
-
Guides
-
Professional and specialist guides
-
Law
-
Tourist guides and travel
-
Psychology
- Philosophy of life
- Interpersonal communication
- Mindfulness
- General
- Persuasion and NLP
- Academic psychology
- Psychology of soul and mind
- Work psychology
- Relacje i związki
- Parenting and children psychology
- Problem solving
- Intellectual growth
- Secret
- Sexapeal
- Seduction
- Appearance and image
- Philosophy of life
-
Religion
-
Sport, fitness, diets
-
Technology and mechanics
Videocourses
-
Data bases
-
Big Data
-
Biznes, ekonomia i marketing
-
Cybersecurity
-
Data Science
-
DevOps
-
For children
-
Electronics
-
Graphics/Video/CAX
-
Games
-
Microsoft Office
-
Development tools
-
Programming
-
Personal growth
-
Computer networks
-
Operational systems
-
Software testing
-
Mobile devices
-
UX/UI
-
Web development
-
Management
Podcasts
E-book details
Log in, If you're interested in the contents of the item.
Moodle 1.9 Extension Development. By writing Moodle plugins, you can make this open source learning platform fit your needs precisely, and this book shows you how with a step-by-step approach that takes you from the basics to advanced techniques
Michael Churchward, Jonathan Moore
Ebook
Moodle gives you the power to create and customize feature-rich plug-ins. If you can write Moodle plug-ins, you can make it do just about anything. From making the site easier to administer, to new features, to completely changing the way it looks; plug-ins are the method Moodle offers to customize and extend its functionality. This book will show you how to build all sorts of Moodle plug-ins: admin plug-ins, Blocks, Activities, Grading components, Reports, Fliters that change the way your site works and looks. You will develop standard Moodle plug-ins such as Activities, Filters, and Blocks by creating functioning code that you can execute in your own Moodle installation. Writing modular plug-ins for Moodle will be a large focus of this book.This book will take you inside Moodle and provide you with the ability to develop code the “Moodle way”.This book will expose you to all of the core code functions in Moodle, in a progressive, understandable way. You will learn what libraries are available, what the API calls are, how it is structured and how it can be expanded beyond the plug-in system.You will begin by getting an understanding of the basic architecture that Moodle uses to operate in. Next you will build your first plug-in; a block. You will carry on building other Moodle plug-ins, gaining knowledge of the “Moodle way” of coding, before plunging deeper into the API and inner libraries. Lastly, you will learn how to integrate Moodle with other systems using a variety of methods.When you have completed, you will have a solid understanding of Moodle programming and knowledge of how to extend its functionality in whatever way you want.
- 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
- Moodles API
- Other important libraries
- PEAR
- ADOdb
- YUI
- XMLDB
- Access control, logins, and roles
- Moodle permission contexts
- Capabilities
- Moodle roles
- Assigning roles
- Summary
- Understanding the stack
- 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
- Creating a block from scratch
- 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 moduleactivity Foo!
- Getting started with the NEWMODULE template
- Completing mod_form.php
- Defining input values
- Using common form elements
- Completing mod_form.php
- 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
- Using grade_update
- 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
- Exploring backuplib.php 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
- Themes
- 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
- Retrieving data
- 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
- Assignment types
- 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
- Required components
- Creating administrator reports
- Generating the Hello World administrator report
- Tweaking index.php
- Viewing our administrator report
- An exercise for you
- Other output formats
- Summary
- Creating course reports
- 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
- Changing LDAP string to RLLDAP
- Coding RLLDAP
- Exploring authentication requirements
- 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 a URL-based 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
- Reviewing plugin requirements
- Grade or completion passing
- Working with the built-in import/export plugins
- Creating grade import/export plugins
- An exercise for you
- Summary
- Built-in services and plugins
- 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
- The Moodle formslib library
- 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
- User access issues
- 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
- Introduction to pagelib
- 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
- Buttons
- addElement and createElement
- Rules and validation
- Rules
- addRule
- registerRule
- Validation
- Rules
- 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 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
- Creating the CSV grade script
- 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
- Using Remote-Learner Web Services
- Index
- Title: Moodle 1.9 Extension Development. By writing Moodle plugins, you can make this open source learning platform fit your needs precisely, and this book shows you how with a step-by-step approach that takes you from the basics to advanced techniques
- Author: Michael Churchward, Jonathan Moore
- Original title: Moodle 1.9 Extension Development. By writing Moodle plugins, you can make this open source learning platform fit your needs precisely, and this book shows you how with a step-by-step approach that takes you from the basics to advanced techniques.
- ISBN: 9781847194251, 9781847194251
- Date of issue: 2010-04-29
- Format: Ebook
- Item ID: e_3cjg
- Publisher: Packt Publishing