Sunday, August 23, 2009

Hack Bandwidth Adaptivity for Moodle using the Multi-Language Content filter

Aptivate's "Web Design for Low Bandwidth" states that a web page should have about 25 - 75 KB of content otherwise the user will abandon the download of the page. Of course it would be difficult to estimate this, that is why my hack leaves it to the user to determine which version of the content to use. But the instructional designer should also keep in mind the overhead of the logo, headings and blocks of a moodle page. Perhaps this approach should be combined with an appropriate low bandwidth user selected theme. It is up to the designer to determine what are the cutoff bandwidths for low, mid, and high bandwidth content.

I developed this hack because I am thinking about a mix set of students coming from around the globe; specially in developing countries where bandwidth is still low.

This hack is for Moodle administrators who know where and what the moodle data folder is. You have to have access to the moodledata/lang folder to perform this hack i.e. if online you should have a Cpanel, shell or ftp access to the Moodle site. Try it first in a local test server before performing in a production server. There are no moodle files to be replaced, it only involves installing language packs which should be safe to do.

Download the language files: (3.4 KB)

These language files contain only a moodle.php, and a language.php file with parent language set to en_utf8, the default. The only relevant string customized in both files was:

 $string['thislanguage'] = 'High Bandwidth'; 

Unzip the archive to your lang folder in the moodle data folder which is usually moodledata/lang/. If you want to be able to edit these language files change the owner to the web server. In Ubuntu's Apache server this is www-data so:

open a terminal
cd to the moodledata/lang folder then,
sudo chown -R www-data:www-data *

After copying go to Moodle web site. You should see the languages Low Bandwidth (loband), Mid Bandwidth (midband) and High Bandwidth (hiband) listed in the language dropdown box. If you're using language caching it make take a while before the list gets updated.

Login as administrator. In Site Administration block ->Modules->Filters->Manage filters. If the Multi-Language Content filter is disabled (grayed out and the eye is closed), click on the eye to enable it (eye will open).

WARNING: Make sure the Multi-languge Content filter is above the Multimedia Filter if you are going to include multimedia files in the body of the content. Or make sure that the Multi-Language Content filter is above all other filters that you will use in the body of the content. Otherwise all the multimedia files will be displayed at the same time.

Go to your course and create a web page. Turn on editing and then Add a resource...->Compose a web page. Click the [<>] button in the HTML editor to enter code editing mode. Then type the following:

<span class="multilang" lang="XX">your_content_here</span>

<span class="multilang" lang="loband">Low Bandwidth Content</span>

<span class="multilang" lang="midband">Mid Bandwidth Content</span>

<span class="multilang" lang="hiband">High Bandwidth Content</span>

Because you can only change the language setting in the front site page, it would be good practice to put links to the 3 types of content as a lead list to serve as navigation aid. Add &lang=loband_utf8, &lang=midband_utf8, &lang=hiband_utf8 to the web page url e.g. let's say the url is:


then the 3 links should be:


Download file: Template content for bandwidth adaptivity in Moodle in utf-8 encoding (605 bytes)

I tested the setup with the following content:

Low bandwidth: transcript all text pdf 69.5 KB

Mid bandwidth: mp3 audio 5.9 MB

High bandwidth: avi video 95.5 MB

The content for this test is available as a scorm package at:

This hack was tested on a Moodle 1.9.4+ (Build: 20090204) installation in a local PC running in an Ubuntu Intrepid operating system. Sorry I can't show a live demo since I do not have access to the site files in my free online Moodle installation.


Aptivate. Web Design for Low Bandwidth, Introduction. Retrieved August 22, 2009, from

Multi-language content. In Moodle Docs. Retrieved August 22, 2009 from


Download the language files: (3.4 KB)

Download file: Template content for bandwidth adaptivity in Moodle in utf-8 encoding (605 bytes)

Moodle forum discussion about this hack:

1 comment:

  1. Thanks Justin. This post is part of my running review of Moodle for a future certification. See here:

    The moodle discussion post for this blog post is here:


Creative Commons License
This work is licensed under a Creative Commons Attribution-Share Alike 3.0 Unported License.