Tailoring Moodle to Your Own Needs:
A Workshop for LMS Administrators, Developers, & Teachers
JALTCALL 2007
Waseda University, Tokyo / Room: / 8-408
Date: / 2nd June 2007
Time: / 13:00 - 14:30
Don Hinkelman, Sapporo Gakuin University
Thomas Robb, Kyoto Sangyo University
Paul Daniels, Kochi University of Technology
Andy Johnson, Sapporo Gakuin University
Gordon Bateson, Kanazawa Gakuin University
Peter Ruthven-Stuart, Hakodate Future University
Presentation and handout files available from:

Abstract

Learning management systems (LMS) that are open source make it possible for teachers to modify standard packages. Foreign language teachers in particular need custom-built formats for language learning activities, such as drag-and-drop quiz questions or voice-recording tasks. One popular LMS, called “Moodle”, is especially easy to modify with plug-in activity modules and quiz question types. This workshop gives “how-to” approaches for teachers to modify code and visual themes, and demonstrates custom-built modules and blocks developed by foreign language teachers in Japan over the past four years.

A panel of teacher/developers will describe how they could develop new modules, reconfigure permissions/roles, hide or add bits of code, and install these mods with step-by-step instructions. In many cases, it was possible for teachers with no skills in computer programming to build these modifications, by carefully describing learner actions and interface design to a hired PHP programmer. With the ease of modifying open source code, the question now is no longer, “how do you use Moodle?”, but rather “how have you changed Moodle?”

Community discussions on Moodle for Language Teaching:

The presenters will explain and demonstrate the following plug-ins and modifications:

Modules / Tom Robb, Don Hinkelman, Peter Ruthven-Stuart
1.Hot Potatoes: teachers can integrate Hot Potatoes and TexToys quizzes into a Moodle course
2. Lecture Feedback: students can submit questions and summaries to teacher via desktop or mobile phone
3. Project Module: project-based learning (brainstorm, select, submit files, self-assess, and peer-assess)
4. Self-Study: students can create their own questions and quizzes using 'smart lists' of questions
Modules / Paul Daniels
5. Presentation: teacher's PowerPoint presentations are converted to Flash for viewing online via Moodle
6. Media Blog: new functions (voice recording, media support and a blog search) added to Moodle's blog
7. Seating Chart: teachers can collect data such as attendance and participation in their classroom
8. FreeMail: students can add content to Moodle by sending commandsvia email messages
Plug-ins / Tom Robb, Andy Johnson
9. Word Ordering Question Type: challenges students to select the correct order for several items
10. Split Screen Quiz Type: teachers can split a quiz screen and "fix" the left hand side
11. Content Choice Question Type: question type in which answers are included as part of question text
12. Seat Numbers & Nicknames: students can add nicknames, teachers can assign seat numbers
Blocks / Tom Robb, Don. Hinkelman
13. Lab Attendance: show students attendance at lab
14. Blogger Links: show list of bloggers links
15. Highest Quiz Scores: show highest scores on quizzes
Tweaks / Gordon Bateson
16. Standard Romaji: standardizes the Romanization of a user’s first name, last name and city
17. Cellphone Addresses: users can signup to Moodle using (cell phone) email addresses
18. Language Menu: adds a language menu to every Moodle page
19. Multilang Filter: allows nested <lang> and <span> tags in multi-languagetext
20. Show/Hide Activities: adds a toggle switch to hide and display specified activities on the course page
21. Useful Links: combines the useful links from several other blocks into one single block
22. Rotating Banners: displays a rotating selection of images in an html block
Custom / Peter Ruthven-Stuart, Don Hinkelman
23. Themes: introduction to tapping the power of Moodle's themes
24.Roles: introduction to Moodle's roles with examples and demonstrations
25. Language: instructions on why and how to modify Moodle's messages

If time allows, the presenters will field questions from participants at the end of the demonstrations.

Moodle Modules / Tom Robb & Don Hinkelman
Kyoto Sangyo University
Sapporo Gakuin University

1. Hot Potatoes

What it will do: One of the first language learning modules added to Moodle. Allows authoring in the Hot Potatoes software and integration of resulting content into a Moodle course.

How to install it: Comes standard in every Moodle download.

Where to get help and information: See moodle.org. Maintained by Gordon Bateson.

2. Lecture Feedback Module

What it will do: Students in large lectures submit questions and summaries to teacher via desktop or mobile phone. Teacher can categorize and produce feedback summary.

How to install it: Not available publicly. Maintained by Narumi Sekiya.

Where to get help and information: Contact Don Hinkelman

3. Project Module

What it will do: A package of five modules to facilitate project-based language learning. Students can brainstorm, select, submit files, self-assess, and peer-assess their projects.

How to install it: See readme.txt. Download at

Where to get help and information: See moodle.org. Maintained by Gordon Bateson.

Moodle Modules / Peter Ruthven-Stuart
Hakodate Future University

4. SelfStudy Project (a work in progress)

What it will do:

The main aim of this project is to encourage Autonomous Learning. Originally the project was envisioned as a single activity module that would allow students to create their own questions and quizzes. However, due to the underlying complexities of this goal we had to break the project into three main developmental phases. First, an activity module is being created that will permit students to make their own questions. It will be possible for teachers to add these questions to Moodle quizzes. The second phase will allow students to create their own quizzes consisting of questions made by themselves and their peers. The final phase will be to make it possible for both teachers and students to generate customised quizzes from ‘smart lists’ of questions. The programmer for this development is Jamie Pratt, a freelance web programmer, with a special interest in PHP, Flash and Moodle.

How to install it:

As a work in progress it is not yet ready to install. However, the changes to the Question Bank that have been necessitated by this project are expected to be available in Moodle 1.9. Once the beta version of Phase 1 has been created we will be looking for people to test it. Contact Peter Ruthven-Stuart or check URL below to see when the beta version is available.

Where to get information and help about the SelfStudy Project:

Selfstudy Project:

Peter Ruthven-Stuart:

Jamie Pratt’s web site:

Moodle Modules / Paul Daniels
Kochi University of Technology

All of the Moodle modules described below can be downloaded from:

5. Presentation Module

This module allows teachers and students to upload Microsoft PowerPoint presentations to Moodle. The PowerPoint files are then converted to Flash for viewing online. Student can add comments to presentations and/or upload a revised presentation. Requires FlashSpring Server 2.0

6. Media Blog

New functions were added to Moodle's blog, such as, voice recording, media support and a blog search. Moodle's media blog allows students to record and save voice files directly to the Moodle blog from within the browser. Flash Media Server is required to record and save audio files. Users can also post text and/or media to their blog using a mobile phone or other mobile device if FreeMial module is also installed.

7. Seating Chart

Version 1: "network version of Flash" Using this classroom management application, teachers can collect data such as attendance and participation in their classroom using a handheld computer and submit the data to a Moodle course.

Version 2: "local version of Flash" Teacher can download a local version of the seating chart application to their hard drive. Teachers can collect data such as attendance and participation in their classroom and submit the data when a network connection is available.

8. FreeMail

Students can add content to their Moodle course by sending email messages with commands to the Moodle server. Available features:

- Add or change images in Personal Profile

- Add images and text, video or sound to a Moodle Blog

- Upload photos and comments into Gallery 2 (Gallery is not part of Moodle but can be partially integrated using the Moodle & Gallery 2 Integration on this page.

Lecture Questions

This module allows teachers to import Moodle quiz questions for use as lecture questions. Students can answer the lecture questions on-line or by email working individually or in groups. Once the questions are answered, all responses can be viewed on a single page allowing students/teacher to compare answers.

HOTFLASH Module

The HOTFLASH module allows you to display Hot Potatoes quizzes in a Flash environment. It was designed to work together with the HOTPOT module in Moodle. Not all of the Hot Potatoes functions are available in Flash.

Attendance

Attendance block displays data on student attendance for days chosen.

Display Data

This module allows teachers to upload student data in CSV (spreadsheet) format. Students can view only their own data, while the teacher can view all data.

Mail Quiz Module

Students can sign up for a study interest and receive study content and multiple choice questions via a user-defined email schedule. Students reply to the questions by email. The module checks students email responses, send feedback, and tracks correct/incorrect responses and average quiz scores.

Moodle & Gallery 2 Integration

Adds Moodle users to Gallery 2 and creates course and user albums. The module also passes login information from Moodle to Gallery 2 so once students login to Moodle they don't have to login to Gallery 2. Students can upload text, images, audio and video to Gallery 2 if the FreeMail module is also installed.

Moodle Grades

An extra function that allows teachers to edit and upload Moodle course grades from an Excel or CSV file.

Moodle Plugins / Thomas Robb
Kyoto Sangyo University

9. Word Ordering Quiz type

What it will do: challenges students to select the correct order for several items

Screenshot: /
Moodle Plugins / Andy Johnson
Sapporo Gakuin University

This section covers 3 plugins created by a teacher (me) collaborating with a non-teacher programmer.

10. Split Screen Quiz Mode (Moodle 1.6/1.7)

What it will do: This Moodle hack modifies your quizzes so teachers have the option of making the left side of the screen fixed. This is useful when you have many questions about a single piece of content (i.e. a video, a reading passage, audio clip, etc.). This way students can scroll through and answer all the questions while keeping the content the quiz is based on always on the screen.

Screenshot: /

Moodle versions: 1.6 & 1.7

Download:

Most recent filename: splitmode-NEW-ver1.6.2-1.7.2.zip (March 13, 2007)

Moodle forums:

11. Content-Choice Quiz Question (Moodle 1.6/1.7)

What it will do: The content choice question type is used when answers are included as part of a sentence or passage of text found within the question. One common use of the question type would be like in the screenshot.

Screenshot: /

Moodle versions: 1.6 & 1.7

Download:

Most recent filename: contentchoice_2007_03_13-M1.6_M1.7.zip (March 14, 2007)

Moodle forums:

12. Seat Numbers/Nicknames Addition (Moodle 1.7)

What it will do: This hack does several things: a) all users can add a nickname into their profile, b) teachers can add seat numbers to students at the course level (i.e. students can have different seat numbers for different courses), and c) quiz and assignment score results display the nicknames and seat numbers plus scores can be sorted by these new columns

Screenshot: /

Moodle version: 1.7

Download:

Updates:

Moodle forums: none yet

Moodle Tweaks / Gordon Bateson
Kanazawa Gakuin University

This presentation will describe seven “tweaks”, or modifications, to Moodle which were implemented on a live Moodle site at Kanazawa Gakuin University. The modifications were made in response to requests by teachers to make the site easier to maintain and navigate and more visually appealing.

16. / Standardize Romaji
This modification standardizes the Romanization of a user’s first name, last name and city and converts any double-byte roman letters, spaces and punctuation to single-byte equivalents
How to install it
1. / download the following javascript file:

2. / on a non-unicode site, you may also need the following file:

3. / put the javascript file(s) into the "login" folder on your Moodle site
4. / Open the following files with a text editor:
• login/signup_form.html
• user/edit.html
5. / append the following line:
<script type="text/javascript" language="javascript" src="<?php print "$CFG->wwwroot/login/two-byte-".(empty($CFG->unicodedb) ? 'euc' : 'utf8').'.js' ?>"</script>
6. / save the modified files
References:
17. / Cell phone email address
This modification allows users to signup to Moodle using (cell phone) email addresses, which can contain “invalid” character combinations:
• repeated full-stops, “..”
• a full-stop just before the at-sign, “.@”
• e.g.
How to install it
1. / open “lib/weblib.php” with a text editor
2. / locate the “validate_email” function (around line 1100)
3. / change this:
return (ereg('^[-!#$%&\'*+\\/0-9=?A-Z^_`a-z{|}~]+'.
'(\.[-!#$%&\'*+\\/0-9=?A-Z^_`a-z{|}~]+)*'.
to this
return (ereg('^[-!#$%&\'*+\\/0-9=?A-Z^_`a-z{|}~.]+'.
4. / save the modified file
References:
18. / Language Menu
This modification adds a language menu to every page which has a Moodle header
How to install it
1. / open “theme/standard/header.html” in a text editor
2. / change this (around line 35)
<?php if ($navigation) { // This is the navigation table with breadcrumbs ?>
to this
<?php if ($navigation) { // This is the navigation bar with breadcrumbs
$uri = $_SERVER['REQUEST_URI'];
if (strpos($uri, '/login/')===false) {
$uri = preg_replace('/&?lang=\w+/', '', $uri);
if (strpos($uri, '?')===false) {
$uri .= '?lang='; // new query string
} else {
$uri .= '&lang='; // append to existing query string
}
$button .= popup_form(
$uri, get_list_of_languages(),
'chooselang', current_language(),
'', '', '', true
);
} ?>
3, / save the modified file
References:
19. / Multilang filter
This modification allows nested <lang> and <span> tags in multilang blocks. This is useful because in some browsers the html editor uses <span> to set text to bold or italic, but the </span> tag for the text effect terminates a multilang block in the standard multilang filter.
How to install it
1. / open up “filter/multilang/filter.php” in a text editor
2. / change this (around line 46):
$search = '/(<(?:lang|span) lang="[a-zA-Z0-9_]*".*?>.+?<\/(?:lang|span)>\s*)+/is';
to this:
$search = '/(<(lang|span) lang="[a-zA-Z0-9_-]*".*?>.+?<\/\2>\s*)+/is';
3. / change this (around line 61):
$searchtosplit = '/<(?:lang|span) lang="([a-zA-Z0-9_-]*)".*?>(.+?)<\/(?:lang|span)>/is';
to this:
$searchtosplit = '/<(lang|span) lang="([a-zA-Z0-9_-]*)".*?>(.+?)<\/\1>/is';
4. / change this (around line 65):
foreach ($rawlanglist[1] as $index=>$lang) {
$lang = ...;
$langlist[$lang] = $rawlanglist[2][$index];
}
to this:
foreach ($rawlanglist[2] as $index=>$lang) {
$lang = ...;
$langlist[$lang] = $rawlanglist[3][$index];
}
5. / save your modified file
References:
20. / Show/Hide activities
This modification adds a toggle switch to hide and display specified activities on the course page, thus making the display of sections containing many activities more manageable.
How to install it
1. / put the "show-hide-activities.js" file on your server
2. / add the following <script> tags, somewhere on your page, e.g. in the summary of section 0
<script type="text/javascript" src="
3. / add the following html in the summary of the section containing the activities you wish to show/hide.
<script type="text/javascript">
insert_showhide_button('showhide_activities_01');
</script>
Note: "showhide_activities_01" is the identifier for the (possibly non-contiguous) block of activities you wish to show / hide.
4. / add the following html a new label just BEFORE the first activity you wish to hide:
<span id="showhide_activities_01_start"</span>
5. / add the following html to a new label just AFTER the last activity you wish to hide:
<span id="showhide_activities_01_stop"</span>
<script type="text/javascript">
showhide_activities('showhide_activities_01', true);
</script>
21. / Useful links block
This modification combines the useful links from several other blocks into one single block. Different links can be shown depending on whether the user is a teacher or student. Text can be shown in the user's preferred language.
How to install it
1. / put the "useful-links.js" file on your server
2. / add the following <script> tags, somewhere on your page, e.g. in the summary of section 0
<script type="text/javascript" src="
3. / add a new HTML block and insert the following <script> tags
<script type="text/javascript">
print_useful_links('<lang lang="en">en</lang<lang lang="ja">ja</lang>');
</script>
22a. / Rotating banners
This modification displays a rotating selection of images in an html block on Moodle site
How to install it
1. / download "imagerotator":

2. / install "imagerotator" into the directory on your server which holds the banners
3. / put the "banners.js" file on your server
4. / add the following <script> tag, somewhere on your page, e.g. in one of the HTML blocks
<script type="text/javascript" src="
5. / insert each banner as an <img> tag
<img src=" onload="init_rotate(this,5000)" />
Note: to add a start/stop button (e.g. for testing) use:
<img src=" onload="init_rotate(this,5000,'button_01')" />
then to add a button
<script type="text/javascript" language="javascript">
// start/stop button for the rotating banner
document.write('<br /<button style="display:none" id="button_01"</button>');
</script>
References:


• /


22b. / Rotating banners and links
This modification displays a rotating selection of banners in an html block on Moodle site. Each banner can also be a link to an external site.
How to install it
1. / put the "banners-and-links.js" file on your server
2. / add the following <script> tag, somewhere on your page, e.g. in one of the HTML blocks
<script type="text/javascript" src="
3. / insert each banner as a <script> block
<script type="text/javascript">
// define the links and images for the rotating images
rimages['TOP'] = new rimage(
new Array(
new simage('image01.jpg', ' 'click here to go to the company0website!'),
new simage('image02.jpg', ' 'click here to go to the company0website!'),
new simage('image03.jpg', ' 'click here to go to the company0website!')
),
5000 // image changes every seconds
);
// write the html for the TOP link and image and start the rotation
write_rimage('TOP');
</script>

Presenters’ Biodata: