Está en la página 1de 32

Develop a block for Moodle

Project Context
Speakers
Proj. Context Moodle Intention Discoveries Tools Outcomes My Block Potential

Michael de Raadt Yajuvendrasinh V Mahida (Masters student)

Moodle Trial Project Moodle as new StudyDesk Independent Studies Mini-project


Develop a block for Moodle

2 of 32

Project Context
Proj. Context Moodle Intention Discoveries Tools Outcomes My Block Potential

Semester 1 March 2008 - CSC8480 Computing Complementary Studies Supervisor Mr. Michael de Raadt I went with proposal of E-Commerce Portal I was asked to develop block for Moodle In initial findings about Moodle I found it interesting and decided to develop block for Moodle
3 of 32

Moodle
Proj. Context Moodle Intention Discoveries Tools Outcomes My Block Potential

I found that Moodle is really revolutionary e-learning platform Moodle is modular. It is having potential for keeping up with the time and new technologies Development of Moodle is on going process by diffused network of commercial and noncommercial users which are streamlined by the Moodle company based in Perth, Western Australia The following Moodle Statistics are success story of Moodle http://moodle.org/stats/
4 of 32

Moodle Statistics
Proj. Context Moodle Intention Discoveries Tools Outcomes My Block Potential

5 of 32

Intentions

Proj. Context Moodle Intention Discoveries Tools Outcomes My Block Potential

The project was divided in two phases 1.Research work on Moodle and Block
To find out what is Moodle, how it works, what is the file structure etc Finding a way for creating a block, what is block, how it works and understanding what you find

2.Creating a block
Carving the research work to develop block
6 of 32

Discoveries
Proj. Context Moodle Intention Discoveries Tools Outcomes My Block Potential

The first difficulty was to find exact information regarding to the development The http://docs.moodle.org have very useful documentation for Developer under MoodleDocs. I used this documents as secondary source for the information I feel that there is a need of more detailed and practical documentation work for Developer as the current documentation is inadequate

7 of 32

Discoveries
Proj. Context Moodle Intention Discoveries Tools Outcomes My Block Potential

For my development work I downloaded the blocks developed by developer from the Moodle websites Modules and plugins section I studied them and tried the Trial and Error method and also used the MoodleDocs for block development Many times my Moodle Software was crashed and I learned lot of things through this I found that already developed blocks are the best source for developer as starting point
8 of 32

Discoveries
After all these findings I developed the simple Ajax Google Search block
Proj. Context Moodle Intention Discoveries Tools Outcomes My Block Potential

It was just simple block which was showing the Google Web Search results I showed to supervisor Mr. Michael de Raadt and he advised me for adding more customization through the Instance Configuration and Global Configuration I downloaded and studied the block that have configurations. And I used that finding to add customization feature to my block
9 of 32

Tools
1. Eclipse with PHP plugin
Proj. Context Moodle Intention Discoveries Tools Outcomes My Block Potential

It is really good IDE with powerful features You can connect to the CVS repository http://cvs.moodle.org I found that it is very complex and not easy to start with The setting up Eclipse for Moodle development is good guide to start with
http://docs.moodle.org/en/Development:Setting_up_Eclipse 10 of 32

Tools
2. fabFORCE DBDesigner 4
Proj. Context Moodle Intention Discoveries Tools Outcomes My Block Potential

DBDesigner 4 is a open source visual database design system that integrates database design, modeling, creation and maintenance into a single, seamless environment I used this tool to explore the Moodle database system This is really good tool for playing around the MySQL database of Moodle
http://www.fabforce.net/dbdesigner4/downloads.php
11 of 32

Tools
3. NuSphere PHP IDE
Proj. Context Moodle Intention Discoveries Tools Outcomes My Block Potential

It is really good IDE with powerful features like friendly user interface, debugger, code navigator etc I used this IDE is as a real time editor for my block http://www.nusphere.com/ The other features can be useful but I have never needed to use it

12 of 32

Outcomes
Finally I developed the fully customizable Google Search Services block
Proj. Context Moodle Intention Discoveries Tools Outcomes My Block Potential

I submitted this block on the Moodles Modules and Plugins section which was accepted as valid block and can be found at
http://moodle.org/mod/data/view.php?d=13&rid=1608

Till todays date I have received some general queries regarding to the block from the Moodle community and some few users across the community have given me positive feedback about the working of the block
13 of 32

Outcomes
Proj. Context Moodle Intention Discoveries Tools Outcomes My Block Potential

Through this course and project I had chance for the experience with the real world development I learnt lot of things in terms of academic and professional skills My supervisor Michael de Raadt kept me on the right track during the project work. This was really important as sometime one can easily lost during the track in absence of proper guidance

14 of 32

Outcomes
Proj. Context Moodle Intention Discoveries Tools Outcomes My Block Potential

I have learnt the theoretical aspects of the PHP, HTML, CSS, AJAX through my academic learning With this project I put all these theoretical skills into the professional and real world development This course has proved worthwhile for me.

15 of 32

Moodle Google Block


Proj. Context Moodle Intention Discoveries Tools Outcomes My Block Potential

16 of 32

Moodle Google Block File Structure


Cascade Style Sheet Directory Images necessary for Block Lang directory

Proj. Context Moodle Intention Discoveries Tools Outcomes My Block Potential

Global Configuration HTML File Instance Configuration HTML File

Main Block File

17 of 32

Blocks Language File Structure


Language File

Proj. Context Moodle Intention Discoveries Tools Outcomes My Block Potential

HTML Help files to use with Blocks help buttons

18 of 32

Main Block File block_moodle_google.php

Proj. Context Moodle Intention Discoveries Tools Outcomes My Block Potential

19 of 32

Language File block_moodle_google.php

Proj. Context Moodle Intention Discoveries Tools Outcomes My Block Potential

20 of 32

Global Configuration Source-Code

Proj. Context Moodle Intention Discoveries Tools Outcomes My Block Potential

config_global.html

21 of 32

Blocks Global Configuration


Proj. Context Moodle Intention Discoveries Tools Outcomes My Block Potential

Global Configuration can be accessed by Site Administration Block This parameters are loaded from the config_global.html file

22 of 32

Instance Configuration Source-Code

Proj. Context Moodle Intention Discoveries Tools Outcomes My Block Potential

config_instance.html

23 of 32

Blocks Instance Configuration


Proj. Context Moodle Intention Discoveries Tools Outcomes My Block Potential
Press the edit button for Instance Configuration

This parameters are loaded from the config_instance.html file 24

of 32

Integrated Help Function


Proj. Context Moodle Intention Discoveries Tools Outcomes My Block Potential

The help functionality is implemented using the Moodle function helpbutton. This function is defined in weblib.php library.
helpbutton($page, $title, $module='moodle', $image=true, $linktext=false, $text='', $return=false,$imagetext='')

Help button using helpbutton function

25 of 32

Integrated Help Function


Proj. Context Moodle Intention Discoveries Tools Outcomes My Block Potential

When you press this button help page (html) is called from the directory \moodle\lang\en_utf8\help\moodle_google_help

Help Page is displayed as pop up

26 of 32

Integrated Help Function


I found all these functions very late during work
Proj. Context Moodle Intention Discoveries Tools Outcomes My Block Potential

These functions are described with all arguments and required parameters. This can be said the Moodle APIs This is really very smart APIs and with few lines of code one can achieve big functionalities within the Moodle Use of these functions makes the development work very easy
27 of 32

Integrated Help Function


Proj. Context Moodle Intention Discoveries Tools Outcomes My Block Potential

The Moodle Community have defined all these various Moodle functions under various library on http://xref.moodle.org/nav.html?index.html

28 of 32

Potential for Future Students


Undergraduates
Proj. Context Moodle Intention Discoveries Tools Outcomes My Block Potential

Advanced/later-year programming undergrads JavaScript in Block Simple blocks modifications Simple DB access

Postgrads
Some groundwork but still steep learning curve Block development Modifications to existing Moodle code

Project Clients
Pseudo-client University (lower priority feature requests) Moodle Student Projects
29 of 32

Useful Links
1. Moodle Docs - Developer Documents for Moodle Developer
Proj. Context Moodle Intention Discoveries Tools Outcomes My Block Potential

http://docs.moodle.org/en/Developer_documentation 2. PHP Cross Reference of Moodle 1.9 - Moodle Functions References and other Stuff http://xref.moodle.org 3. The CVS archive - This archive contains all the source code for Moodle http://cvs.moodle.org/
30 of 32

Useful Links
Proj. Context Moodle Intention Discoveries Tools Outcomes My Block Potential

4. Moodle Documentation Development:Block Step by step guide to Creating Blocks http://docs.moodle.org/en/Development:Blocks 5. Moodle Google Block This blocks source codes have the comments for each piece of the code. I have tried to explain each piece of code and what it does This makes easy for any newbie to start developing block http://moodle.org/mod/data/view.php?d=13&rid=1608
31 of 32

Thank you very much..


Proj. Context Moodle Intention Discoveries Tools Outcomes My Block Potential

32 of 32

También podría gustarte