Blackboard Moodle Converter

From Cor ad Cor
Jump to navigation Jump to search

Written by Kathrin Braungardt, Ruhr-Universität Bochum.

The purpose of this page is to clarify the documentation from Github.

What BMC can and cannot do

Version: 3.1 Beta

Source: Blackboard 9.1 SP 14

Target: Moodle 3.1.1

BMC converts documents, content from text elements, links, YouTube mashups, and tests.

All question types will be converted except for "Calculated Formulas" and "Quiz Bowls."

A description in German of 17 types of Blackboard questions.

Blackboard folders are converted into Moodle sections.

Blackboard folders can be nested inside each other. Moodle sections cannot be nested.


Install PHP scripts

- Put all files in one directory on a webserver. This directory should be writeable by the webserver.
I used "bmc" on my system as my "main converter dir."
- Install files of PhpConcept Library - Zip Module 2.8.
- Download the zip file.
- Extract pclzip.lib.php and put it in your main converter dir with the other php files.
- Define variables $uploaddir and $downloadlink in uploaddir.php
$uploaddir = '/var/www/html/bmc/';//absolute path to main converter dir
$downloadlink = "";//url for export files

Make Directories

- Make a directory called “uploads” in your main converter dir that is writeable by the webserver.
- Make a directory called “exports” in your main converter dir that is writeable by the webserver.
- Make directory called “activities_src” containing the files grades.xml, inforef.xml, roles.xml.
- Make a directory called “moodle_src” in your main converter dir.
- In “moodle_src”, make two directories, one called "course" and the other called "sections."

After you have obtained section directories with xml files in them from a dummy Moodle course and copied them to the sections directory (see the next set of instructions on this page for details), the final result should look like this:

BMC tutorial 01.png

Generate and place xml files

- Make a dummy course in Moodle. I made it with seven sections. I copied all of the section folders generated by the dummy course to moodle_src/sections.
- Archive it in an mbz file.
- The mbz file is in tar.gz format. Use an unzip program to untar and unzip the contents.
- The original documentation says to copy grades.xml, inforef.xml, roles.xml from the unzipped activity directory to activities_src. I copied all the xml files I found in the activity folder to activities_src.
- The original documentation says to copy gradebook.xml, groups.xml, outcomes.xml, roles.xml, scales.xml to moodle_src. I copied all the xml files that I found along with these to moodle_src.

Using the converter

In Blackboard:

Control Panel -> Packages and Utilities -> Export/Archive Course -> Export Package

Save the zip file that is exported from Blackboard.

Browse to "upload.php" in your main converter dir.

Use the two buttons on the first screen to select the Blackboard zip file and then to upload it to your server.

If and when the script completes, it will provide a download link for a zip file.

Upload that zip file to Moodle:

Site Administration --> Courses --> Restore Course ...

Preliminary results

The basic outline of the course was translated.

Links to YouTube videos and external files were preserved.

Links to files internal to the course were broken--the files were not transferred from the Blackboard zip to the zip file output by BMC. I see notices and warnings about various and sundry defects in the code. I do not know enough about the structure of Blackboard to fix what ails the code. I'm stuck on $bildobjekt[3]=$arr_files_embedded_label; in regex.php. It is not defined. It needs to be an object that is initialized with four or five correct parameters. I can't find the information I need to define it correctly. This causes a cascade of breakdowns later on in the code. I'm defeated. I think I'm defeated. I guess I've thought of another debugging technique I might use to get unstuck. ...

Quiz questions were intact, but need a lot of re-editing.

It is better than re-creating a course by hand, but not a completely automated system.