Permalink
Browse files

MDL-22153 backup: delete old, unused, 1.9 files

  • Loading branch information...
1 parent 422f68f commit c1782ec626fcb977b10e0e4f5f02f738b2b89a92 @stronk7 stronk7 committed Apr 7, 2013
View
426 backup/backuplib.php
@@ -1,426 +0,0 @@
-<?php
- //Prints course's messages info (tables message, message_read and message_contacts)
- function backup_messages ($bf,$preferences) {
- global $CFG, $DB;
-
- $status = true;
-
- /// Check we have something to backup
- $unreads = $DB->count_records ('message');
- $reads = $DB->count_records ('message_read');
- $contacts= $DB->count_records ('message_contacts');
-
- if ($unreads || $reads || $contacts) {
- $counter = 0;
- /// message open tag
- fwrite ($bf,start_tag("MESSAGES",2,true));
-
- if ($unreads) {
- $rs_unreads = $DB->get_recordset('message');
- /// Iterate over every unread
- foreach ($rs_unreads as $unread) {
- /// start message
- fwrite($bf, start_tag("MESSAGE",3,true));
- fwrite ($bf,full_tag("ID",4,false,$unread->id));
- fwrite ($bf,full_tag("STATUS",4,false,"UNREAD"));
- fwrite ($bf,full_tag("USERIDFROM",4,false,$unread->useridfrom));
- fwrite ($bf,full_tag("USERIDTO",4,false,$unread->useridto));
- fwrite ($bf,full_tag("MESSAGE",4,false,$unread->message));
- fwrite ($bf,full_tag("FORMAT",4,false,$unread->format));
- fwrite ($bf,full_tag("TIMECREATED",4,false,$unread->timecreated));
- fwrite ($bf,full_tag("MESSAGETYPE",4,false,$unread->messagetype));
- /// end message
- fwrite ($bf,end_tag("MESSAGE",3,true));
-
- /// Do some output
- $counter++;
- if ($counter % 20 == 0) {
- echo ".";
- if ($counter % 400 == 0) {
- echo "<br />";
- }
- backup_flush(300);
- }
- }
- $rs_unreads->close();
- }
-
- if ($reads) {
- $rs_reads = $DB->get_recordset('message_read');
- /// Iterate over every unread
- foreach ($rs_reads as $read) {
- /// start message
- fwrite($bf, start_tag("MESSAGE",3,true));
- fwrite ($bf,full_tag("ID",4,false,$read->id));
- fwrite ($bf,full_tag("STATUS",4,false,"READ"));
- fwrite ($bf,full_tag("USERIDFROM",4,false,$read->useridfrom));
- fwrite ($bf,full_tag("USERIDTO",4,false,$read->useridto));
- fwrite ($bf,full_tag("MESSAGE",4,false,$read->message));
- fwrite ($bf,full_tag("FORMAT",4,false,$read->format));
- fwrite ($bf,full_tag("TIMECREATED",4,false,$read->timecreated));
- fwrite ($bf,full_tag("MESSAGETYPE",4,false,$read->messagetype));
- fwrite ($bf,full_tag("TIMEREAD",4,false,$read->timeread));
- fwrite ($bf,full_tag("MAILED",4,false,$read->mailed));
- /// end message
- fwrite ($bf,end_tag("MESSAGE",3,true));
-
- /// Do some output
- $counter++;
- if ($counter % 20 == 0) {
- echo ".";
- if ($counter % 400 == 0) {
- echo "<br />";
- }
- backup_flush(300);
- }
- }
- $rs_reads->close();
- }
-
- if ($contacts) {
- fwrite($bf, start_tag("CONTACTS",3,true));
- $rs_contacts = $DB->get_recordset('message_contacts');
- /// Iterate over every contact
- foreach ($rs_contacts as $contact) {
- /// start contact
- fwrite($bf, start_tag("CONTACT",4,true));
- fwrite ($bf,full_tag("ID",5,false,$contact->id));
- fwrite ($bf,full_tag("USERID",5,false,$contact->userid));
- fwrite ($bf,full_tag("CONTACTID",5,false,$contact->contactid));
- fwrite ($bf,full_tag("BLOCKED",5,false,$contact->blocked));
- /// end contact
- fwrite ($bf,end_tag("CONTACT",4,true));
-
- /// Do some output
- $counter++;
- if ($counter % 20 == 0) {
- echo ".";
- if ($counter % 400 == 0) {
- echo "<br />";
- }
- backup_flush(300);
- }
- }
- $rs_contacts->close();
- fwrite($bf, end_tag("CONTACTS",3,true));
- }
-
- /// messages close tag
- $status = fwrite ($bf,end_tag("MESSAGES",2,true));
- }
-
- return $status;
-
- }
-
- //Print blogs info (post table, module=blog, course=0)
- function backup_blogs($bf, $preferences) {
- global $CFG, $DB;
-
- $status = true;
-
- /// Check we have something to backup
- $siteblogs = $DB->count_records('post', array('module'=>'blog', 'courseid'=>0));
-
- if ($siteblogs) {
- $counter = 0;
- /// blogs open tag
- fwrite ($bf, start_tag("BLOGS",2,true));
-
- if ($siteblogs) {
- $rs_blogs = $DB->get_records('post', array('module'=>'blog', 'courseid'=>0));
- /// Iterate over every blog
- foreach ($rs_blogs as $blog) {
- backup_blog($bf, $blog->id, 3);
-
- /// Do some output
- $counter++;
- if ($counter % 20 == 0) {
- echo ".";
- if ($counter % 400 == 0) {
- echo "<br />";
- }
- backup_flush(300);
- }
- }
- $rs_blogs-close();
- }
- /// blogs close tag
- $status = fwrite($bf, end_tag("BLOGS",2,true));
- }
-
- return $status;
- }
-
-
- function backup_blog($bf, $blogid, $level) {
- global $DB;
- $blog = $DB->get_record('post', array('module'=>'blog', 'id'=>$blogid));
-
- /// start blog
- fwrite($bf, start_tag("BLOG",$level,true));
- /// blog body
- fwrite ($bf,full_tag("ID",$level+1,false,$blog->id));
- fwrite ($bf,full_tag("MODULE",$level+1,false,$blog->module));
- fwrite ($bf,full_tag("USERID",$level+1,false,$blog->userid));
- fwrite ($bf,full_tag("COURSEID",$level+1,false,$blog->courseid));
- fwrite ($bf,full_tag("GROUPID",$level+1,false,$blog->groupid));
- fwrite ($bf,full_tag("MODULEID",$level+1,false,$blog->moduleid));
- fwrite ($bf,full_tag("COURSEMODULEID",$level+1,false,$blog->coursemoduleid));
- fwrite ($bf,full_tag("SUBJECT",$level+1,false,$blog->subject));
- fwrite ($bf,full_tag("SUMMARY",$level+1,false,$blog->summary));
- fwrite ($bf,full_tag("CONTENT",$level+1,false,$blog->content));
- fwrite ($bf,full_tag("UNIQUEHASH",$level+1,false,$blog->uniquehash));
- fwrite ($bf,full_tag("RATING",$level+1,false,$blog->rating));
- fwrite ($bf,full_tag("FORMAT",$level+1,false,$blog->format));
- fwrite ($bf,full_tag("ATTACHMENT",$level+1,false,$blog->attachment));
- fwrite ($bf,full_tag("PUBLISHSTATE",$level+1,false,$blog->publishstate));
- fwrite ($bf,full_tag("LASTMODIFIED",$level+1,false,$blog->lastmodified));
- fwrite ($bf,full_tag("CREATED",$level+1,false,$blog->created));
- fwrite ($bf,full_tag("USERMODIFIED",$level+1,false,$blog->usermodified));
-
- /// Blog tags
- /// Check if we have blog tags to backup
- if (!empty($CFG->usetags)) {
- if ($tags = tag_get_tags('post', $blog->id)) { //This return them ordered by default
- /// Start BLOG_TAGS tag
- fwrite ($bf,start_tag("BLOG_TAGS",$level+1,true));
- /// Write blog tags fields
- foreach ($tags as $tag) {
- fwrite ($bf,start_tag("BLOG_TAG",$level+2,true));
- fwrite ($bf,full_tag("NAME",$level+3,false,$tag->name));
- fwrite ($bf,full_tag("RAWNAME",$level+3,false,$tag->rawname));
- fwrite ($bf,end_tag("BLOG_TAG",$level+2,true));
- }
- /// End BLOG_TAGS tag
- fwrite ($bf,end_tag("BLOG_TAGS",$level+1,true));
- }
- }
- /// end blog
- fwrite($bf, end_tag("BLOG",$level,true));
- }
-
- //Prints course's format data (any data the format might want to save).
- function backup_format_data ($bf,$preferences) {
- global $CFG, $DB;
-
- // Check course format
- if(!($format = $DB->get_field('course','format', array('id'=>$preferences->backup_course)))) {
- return false;
- }
- // Write appropriate tag. Note that we always put this tag there even if
- // blank, it makes parsing easier
- fwrite ($bf,start_tag("FORMATDATA",2,true));
-
- $file=$CFG->dirroot."/course/format/$format/backuplib.php";
- if(file_exists($file)) {
- // If the file is there, the function must be or it's an error.
- require_once($file);
- $function=$format.'_backup_format_data';
- if(!function_exists($function)) {
- return false;
- }
- if(!$function($bf,$preferences)) {
- return false;
- }
- }
-
- // This last return just checks the file writing has been ok (ish)
- return fwrite ($bf,end_tag("FORMATDATA",2,true));
- }
-
- function backup_gradebook_categories_history_info($bf, $preferences) {
- global $CFG, $DB;
-
- $status = true;
-
- // find all grade categories history
- if ($chs = $DB->get_records('grade_categories_history', array('courseid'=>$preferences->backup_course))) {
- fwrite ($bf,start_tag("GRADE_CATEGORIES_HISTORIES",3,true));
- foreach ($chs as $ch) {
- fwrite ($bf,start_tag("GRADE_CATEGORIES_HISTORY",4,true));
- fwrite ($bf,full_tag("ID",5,false,$ch->id));
- fwrite ($bf,full_tag("ACTION",5,false,$ch->action));
- fwrite ($bf,full_tag("OLDID",5,false,$ch->oldid));
- fwrite ($bf,full_tag("SOURCE",5,false,$ch->source));
- fwrite ($bf,full_tag("TIMEMODIFIED",5,false,$ch->timemodified));
- fwrite ($bf,full_tag("LOGGEDUSER",5,false,$ch->loggeduser));
- fwrite ($bf,full_tag("PARENT",5,false,$ch->parent));
- fwrite ($bf,full_tag("DEPTH",5,false,$ch->depth));
- fwrite ($bf,full_tag("PATH",5,false,$ch->path));
- fwrite ($bf,full_tag("FULLNAME",5,false,$ch->fullname));
- fwrite ($bf,full_tag("AGGRETGATION",5,false,$ch->aggregation));
- fwrite ($bf,full_tag("KEEPHIGH",5,false,$ch->keephigh));
- fwrite ($bf,full_tag("DROPLOW",5,false,$ch->droplow));
- fwrite ($bf,full_tag("AGGREGATEONLYGRADED",5,false,$ch->aggregateonlygraded));
- fwrite ($bf,full_tag("AGGREGATEOUTCOMES",5,false,$ch->aggregateoutcomes));
- fwrite ($bf,full_tag("AGGREGATESUBCATS",5,false,$ch->aggregatesubcats));
- fwrite ($bf,end_tag("GRADE_CATEGORIES_HISTORY",4,true));
- }
- $status = fwrite ($bf,end_tag("GRADE_CATEGORIES_HISTORIES",3,true));
- }
- return $status;
- }
-
- function backup_gradebook_grades_history_info($bf, $preferences) {
- global $CFG, $DB;
- $status = true;
-
- // find all grade categories history
- if ($chs = $DB->get_records_sql("SELECT ggh.*
- FROM {grade_grades_history} ggh
- JOIN {grade_item} gi ON gi.id = ggh.itemid
- WHERE gi.courseid = ?", array($preferences->backup_course))) {
- fwrite ($bf,start_tag("GRADE_GRADES_HISTORIES",3,true));
- foreach ($chs as $ch) {
- /// Grades are only sent to backup if the user is one target user
- if (backup_getid($preferences->backup_unique_code, 'user', $ch->userid)) {
- fwrite ($bf,start_tag("GRADE_GRADES_HISTORY",4,true));
- fwrite ($bf,full_tag("ID",5,false,$ch->id));
- fwrite ($bf,full_tag("ACTION",5,false,$ch->action));
- fwrite ($bf,full_tag("OLDID",5,false,$ch->oldid));
- fwrite ($bf,full_tag("SOURCE",5,false,$ch->source));
- fwrite ($bf,full_tag("TIMEMODIFIED",5,false,$ch->timemodified));
- fwrite ($bf,full_tag("LOGGEDUSER",5,false,$ch->loggeduser));
- fwrite ($bf,full_tag("ITEMID",5,false,$ch->itemid));
- fwrite ($bf,full_tag("USERID",5,false,$ch->userid));
- fwrite ($bf,full_tag("RAWGRADE",5,false,$ch->rawgrade));
- fwrite ($bf,full_tag("RAWGRADEMAX",5,false,$ch->rawgrademax));
- fwrite ($bf,full_tag("RAWGRADEMIN",5,false,$ch->rawgrademin));
- fwrite ($bf,full_tag("RAWSCALEID",5,false,$ch->rawscaleid));
- fwrite ($bf,full_tag("USERMODIFIED",5,false,$ch->usermodified));
- fwrite ($bf,full_tag("FINALGRADE",5,false,$ch->finalgrade));
- fwrite ($bf,full_tag("HIDDEN",5,false,$ch->hidden));
- fwrite ($bf,full_tag("LOCKED",5,false,$ch->locked));
- fwrite ($bf,full_tag("LOCKTIME",5,false,$ch->locktime));
- fwrite ($bf,full_tag("EXPORTED",5,false,$ch->exported));
- fwrite ($bf,full_tag("OVERRIDDEN",5,false,$ch->overridden));
- fwrite ($bf,full_tag("EXCLUDED",5,false,$ch->excluded));
- fwrite ($bf,full_tag("FEEDBACK",5,false,$ch->feedback));
- fwrite ($bf,full_tag("FEEDBACKFORMAT",5,false,$ch->feedbackformat));
- fwrite ($bf,full_tag("INFORMATION",5,false,$ch->information));
- fwrite ($bf,full_tag("INFORMATIONFORMAT",5,false,$ch->informationformat));
- fwrite ($bf,end_tag("GRADE_GRADES_HISTORY",4,true));
- }
- }
- $status = fwrite ($bf,end_tag("GRADE_GRADES_HISTORIES",3,true));
- }
- return $status;
- }
-
- function backup_gradebook_items_history_info($bf, $preferences) {
- global $CFG, $DB;
- $status = true;
-
- // find all grade categories history
- if ($chs = $DB->get_records('grade_items_history', array('courseid'=>$preferences->backup_course))) {
- fwrite ($bf,start_tag("GRADE_ITEM_HISTORIES",3,true));
- foreach ($chs as $ch) {
- fwrite ($bf,start_tag("GRADE_ITEM_HISTORY",4,true));
- fwrite ($bf,full_tag("ID",5,false,$ch->id));
- fwrite ($bf,full_tag("ACTION",5,false,$ch->action));
- fwrite ($bf,full_tag("OLDID",5,false,$ch->oldid));
- fwrite ($bf,full_tag("SOURCE",5,false,$ch->source));
- fwrite ($bf,full_tag("TIMEMODIFIED",5,false,$ch->timemodified));
- fwrite ($bf,full_tag("LOGGEDUSER",5,false,$ch->loggeduser));
- fwrite ($bf,full_tag("CATEGORYID",5,false,$ch->categoryid));
- fwrite ($bf,full_tag("ITEMNAME",5,false,$ch->itemname));
- fwrite ($bf,full_tag("ITEMTYPE",5,false,$ch->itemtype));
- fwrite ($bf,full_tag("ITEMMODULE",5,false,$ch->itemmodule));
- fwrite ($bf,full_tag("ITEMINSTANCE",5,false,$ch->iteminstance));
- fwrite ($bf,full_tag("ITEMNUMBER",5,false,$ch->itemnumber));
- fwrite ($bf,full_tag("ITEMINFO",5,false,$ch->iteminfo));
- fwrite ($bf,full_tag("IDNUMBER",5,false,$ch->idnumber));
- fwrite ($bf,full_tag("CALCULATION",5,false,$ch->calculation));
- fwrite ($bf,full_tag("GRADETYPE",5,false,$ch->gradetype));
- fwrite ($bf,full_tag("GRADEMAX",5,false,$ch->grademax));
- fwrite ($bf,full_tag("GRADEMIN",5,false,$ch->grademin));
- fwrite ($bf,full_tag("SCALEID",5,false,$ch->scaleid));
- fwrite ($bf,full_tag("OUTCOMEID",5,false,$ch->outcomeid));
- fwrite ($bf,full_tag("GRADEPASS",5,false,$ch->gradepass));
- fwrite ($bf,full_tag("MULTFACTOR",5,false,$ch->multfactor));
- fwrite ($bf,full_tag("PLUSFACTOR",5,false,$ch->plusfactor));
- fwrite ($bf,full_tag("AGGREGATIONCOEF",5,false,$ch->aggregationcoef));
- fwrite ($bf,full_tag("SORTORDER",5,false,$ch->sortorder));
- //fwrite ($bf,full_tag("DISPLAY",7,false,$ch->display));
- //fwrite ($bf,full_tag("DECIMALS",7,false,$ch->decimals));
- fwrite ($bf,full_tag("HIDDEN",5,false,$ch->hidden));
- fwrite ($bf,full_tag("LOCKED",5,false,$ch->locked));
- fwrite ($bf,full_tag("LOCKTIME",5,false,$ch->locktime));
- fwrite ($bf,full_tag("NEEDSUPDATE",5,false,$ch->needsupdate));
- fwrite ($bf,end_tag("GRADE_ITEM_HISTORY",4,true));
- }
- $status = fwrite ($bf,end_tag("GRADE_ITEM_HISTORIES",3,true));
-
- }
- return $status;
- }
-
- function backup_gradebook_outcomes_history($bf, $preferences) {
- global $CFG, $DB;
- $status = true;
-
- // find all grade categories history
- if ($chs = $DB->get_records('grade_outcomes_history', array('courseid'=>$preferences->backup_course))) {
- fwrite ($bf,start_tag("GRADE_OUTCOME_HISTORIES",3,true));
- foreach ($chs as $ch) {
- fwrite ($bf,start_tag("GRADE_OUTCOME_HISTORY",4,true));
- fwrite ($bf,full_tag("ID",5,false,$ch->id));
- fwrite ($bf,full_tag("OLDID",5,false,$ch->oldid));
- fwrite ($bf,full_tag("ACTION",5,false,$ch->action));
- fwrite ($bf,full_tag("SOURCE",5,false,$ch->source));
- fwrite ($bf,full_tag("TIMEMODIFIED",5,false,$ch->timemodified));
- fwrite ($bf,full_tag("LOGGEDUSER",5,false,$ch->loggeduser));
- fwrite ($bf,full_tag("SHORTNAME",5,false,$ch->shortname));
- fwrite ($bf,full_tag("FULLNAME",5,false,$ch->fullname));
- fwrite ($bf,full_tag("SCALEID",5,false,$ch->scaleid));
- fwrite ($bf,full_tag("DESCRIPTION",5,false,$ch->description));
- fwrite ($bf,end_tag("GRADE_OUTCOME_HISTORY",4,true));
- }
- $status = fwrite ($bf,end_tag("GRADE_OUTCOME_HISTORIES",3,true));
- }
- return $status;
- }
-
- //Backup events info (course events)
- function backup_events_info($bf,$preferences) {
- global $CFG, $DB;
-
- $status = true;
-
- //Counter, points to current record
- $counter = 0;
-
- //Get events (course events)
- $events = $DB->get_records("event", array("courseid"=>$preferences->backup_course, 'instance'=>0),"id");
-
- //Pring events header
- if ($events) {
- //Pring events header
- fwrite ($bf,start_tag("EVENTS",2,true));
- //Iterate
- foreach ($events as $event) {
- //Begin event tag
- fwrite ($bf,start_tag("EVENT",3,true));
- //Output event tag
- fwrite ($bf,full_tag("ID",4,false,$event->id));
- fwrite ($bf,full_tag("NAME",4,false,$event->name));
- fwrite ($bf,full_tag("DESCRIPTION",4,false,$event->description));
- fwrite ($bf,full_tag("FORMAT",4,false,$event->format));
- fwrite ($bf,full_tag("GROUPID",4,false,$event->groupid));
- fwrite ($bf,full_tag("USERID",4,false,$event->userid));
- fwrite ($bf,full_tag("REPEATID",4,false,$event->repeatid));
- fwrite ($bf,full_tag("EVENTTYPE",4,false,$event->eventtype));
- fwrite ($bf,full_tag("MODULENAME",4,false,$event->modulename));
- fwrite ($bf,full_tag("TIMESTART",4,false,$event->timestart));
- fwrite ($bf,full_tag("TIMEDURATION",4,false,$event->timeduration));
- fwrite ($bf,full_tag("VISIBLE",4,false,$event->visible));
- fwrite ($bf,full_tag("TIMEMODIFIED",4,false,$event->timemodified));
- //End event tag
- fwrite ($bf,end_tag("EVENT",3,true));
- }
- //End events tag
- $status = fwrite ($bf,end_tag("EVENTS",2,true));
- }
- return $status;
- }
View
70 backup/bb/README.txt
@@ -1,70 +0,0 @@
-Ziba Scott <ziba@linuxbox.com> 06/23/05
-
-This is a utility to convert Blackboard Course export zip files into
-Moodle course export zip files. It has been successfully tested with
-Blackboard 5.5 and Moodle 1.4.1 and Moodle CVS. There is minimal
-Blackboard 6 support. It will convert:
-
- * Course Name/Title
- * Forum Topics
- * Course Documents
- * Assignments
- * External Links
-
-
-AUTOMATED OPERATION:
-
- REQUIREMENTS FOR WEB INTERFACE:
- *Moodle 1.4.1 or greater
- *PHP 4.3 compiled with --enable-xslt --with-xslt-sablot options
- (Check php.net for instructions on enabling xslt for your platform)
- *Alternatively, PHP 5 compiled with xml and xsl support (-with-xsl)
-
- INSTALLATION:
- *Unpack this file into the "backup" directory
-
-
-
-MANUAL OPERATION:
-
- REQUIREMENTS:
-
- *An XSLT 1.0 processor (like Sablotron)
- *A zipping utility
-
- REQUIREMENTS FOR COMMAND LINE INTERFACE:
-
- *Linux/Unix
- *PHP 4 compiled with --enable-xslt --with-xslt-sablot options.
- *PHP 5 compiled with -with-xsl and the default xml support left in.
- *Apache with write access to /tmp
- *A commandline zipping utility
-
- COMMAND LINE INSTRUCTIONS:
-
- 1) Download and uncompress the Blackboard export into a directory.
-
- 2) Copy bb2moodle.xslt into the Blackboard course directory.
-
- 3) Run your XSLT processor on imsmanifest.xml with bb2moodle.xslt
- as the input and moodle.xml as the output. If you are using
- Sablotron on linux, this command will look like this:
- sabcmd bb2moodle.xslt imsmanifest.xml > moodle.xml
-
- 4) Create a moodle zip file with this structure:
- moodle.xml
- user_files/
- course_files/
-
- 5) Copy every subdirectory and its contents from the Blackboard
- export directory into the course_files directory. This does
- not include the Blackboard XML files, only the course
- documents. Your moodle zip file will now look similar to
- this:
- moodle.xml
- user_files/
- course_files/res0009/myfile.doc
- course_files/res0010/myotherfile.doc
- course_files/res0010/mypicture.jpg
-
- 6) Upload and restore your moodle zip file
View
804 backup/bb/bb5.5_to_moodle.xsl
@@ -1,804 +0,0 @@
-<?xml version='1.0'?>
-<xsl:stylesheet version="1.0"
- xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
- <xsl:output method="xml" encoding="UTF-8" />
-<xsl:template match="/">
- <MOODLE_BACKUP>
- <INFO>
- <NAME>backup-from-blackboard.zip</NAME>
- <MOODLE_VERSION>2004083100</MOODLE_VERSION>
- <MOODLE_RELEASE>1.4</MOODLE_RELEASE>
- <BACKUP_VERSION>2004083100</BACKUP_VERSION>
- <BACKUP_RELEASE>1.4</BACKUP_RELEASE>
- <DATE>1094240862</DATE>
- <ORIGINAL_WWWROOT>INSERT URL HERE</ORIGINAL_WWWROOT>
- <DETAILS>
- <MOD>
- <NAME>assignment</NAME>
- <INCLUDED>true</INCLUDED>
- <USERINFO>true</USERINFO>
- </MOD>
- <MOD>
- <NAME>chat</NAME>
- <INCLUDED>true</INCLUDED>
- <USERINFO>true</USERINFO>
- </MOD>
- <MOD>
- <NAME>choice</NAME>
- <INCLUDED>true</INCLUDED>
- <USERINFO>true</USERINFO>
- </MOD>
- <MOD>
- <NAME>forum</NAME>
- <INCLUDED>true</INCLUDED>
- <USERINFO>true</USERINFO>
- </MOD>
- <MOD>
- <NAME>glossary</NAME>
- <INCLUDED>true</INCLUDED>
- <USERINFO>true</USERINFO>
- </MOD>
- <MOD>
- <NAME>journal</NAME>
- <INCLUDED>true</INCLUDED>
- <USERINFO>true</USERINFO>
- </MOD>
- <MOD>
- <NAME>label</NAME>
- <INCLUDED>true</INCLUDED>
- <USERINFO>true</USERINFO>
- </MOD>
- <MOD>
- <NAME>lesson</NAME>
- <INCLUDED>true</INCLUDED>
- <USERINFO>true</USERINFO>
- </MOD>
- <MOD>
- <NAME>quiz</NAME>
- <INCLUDED>false</INCLUDED>
- <USERINFO>false</USERINFO>
- </MOD>
- <MOD>
- <NAME>resource</NAME>
- <INCLUDED>true</INCLUDED>
- <USERINFO>true</USERINFO>
- </MOD>
- <MOD>
- <NAME>scorm</NAME>
- <INCLUDED>false</INCLUDED>
- <USERINFO>false</USERINFO>
- </MOD>
- <MOD>
- <NAME>survey</NAME>
- <INCLUDED>false</INCLUDED>
- <USERINFO>false</USERINFO>
- </MOD>
- <MOD>
- <NAME>wiki</NAME>
- <INCLUDED>false</INCLUDED>
- <USERINFO>false</USERINFO>
- </MOD>
- <MOD>
- <NAME>workshop</NAME>
- <INCLUDED>true</INCLUDED>
- <USERINFO>true</USERINFO>
- </MOD>
- <USERS>course</USERS>
- <LOGS>false</LOGS>
- <USERFILES>false</USERFILES>
- <COURSEFILES>true</COURSEFILES>
- </DETAILS>
- </INFO>
- <COURSE>
- <!-- Get course specific information -->
- <xsl:apply-templates select="document('res00001.dat')//COURSE"/>
-
-
- <SECTIONS>
- <!-- Create a title section -->
- <xsl:for-each select="document('res00001.dat')" >
- <xsl:call-template name="title_section" />
- </xsl:for-each>
-
-
- <!-- Create a topic for each top level Bb item and add section modules ONE folder deep -->
- <xsl:for-each select="manifest/organizations/tableofcontents/item">
- <xsl:variable name="section_number" select="position()"/>
- <xsl:call-template name="sections">
- <xsl:with-param name="section_number" select="$section_number"/>
- <xsl:with-param name="recurse" >false</xsl:with-param>
- </xsl:call-template>
- </xsl:for-each>
-
- <!-- Create a topic for each second level Bb item which is a folder, recursively make section modules -->
- <xsl:for-each select="manifest/organizations/tableofcontents/item/item">
- <xsl:sort order="descending" select="document(concat(@identifierref,'.dat'))/CONTENT/FLAGS/ISFOLDER/@value"/>
- <xsl:if test="document(concat(@identifierref,'.dat'))/CONTENT/FLAGS/ISFOLDER/@value = 'true'">
- <xsl:variable name="prev_sections" select="count(/manifest/organizations/tableofcontents/item)"/>
- <xsl:variable name="section_number" select="position()+$prev_sections"/>
- <xsl:call-template name="sections">
- <xsl:with-param name="section_number" select="$section_number"/>
- <xsl:with-param name="recurse" >true</xsl:with-param>
- </xsl:call-template>
- </xsl:if>
- </xsl:for-each>
- </SECTIONS>
-
- <MODULES>
- <xsl:call-template name="modules" />
- </MODULES>
-
- </COURSE>
- </MOODLE_BACKUP>
-</xsl:template>
-
-<xsl:template match="COURSE">
- <HEADER>
- <ID>2</ID>
- <CATEGORY>
- <ID></ID>
- <NAME><xsl:value-of select="CATEGORIES/CATEGORY/@value"/></NAME>
- </CATEGORY>
- <PASSWORD></PASSWORD>
- <IDNUMBER>4</IDNUMBER>
- <FORMAT>topics</FORMAT>
- <SHOWGRADES>1</SHOWGRADES>
- <BLOCKINFO>participants,activity_modules,search_forums,admin,course_list:news_items,calendar_upcoming,recent_activity</BLOCKINFO>
- <NEWSITEMS>5</NEWSITEMS>
- <TEACHER>Teacher</TEACHER>
- <TEACHERS>Teachers</TEACHERS>
- <STUDENT>Student</STUDENT>
- <STUDENTS>Students</STUDENTS>
- <GUEST>
- <xsl:choose>
- <xsl:when test="FLAGS/ALLOWGUESTS/@value = 'true' ">1</xsl:when>
- <xsl:when test="FLAGS/ALLOWGUESTS/@value = 'false' ">0</xsl:when>
- <xsl:otherwise></xsl:otherwise>
- </xsl:choose>
- </GUEST>
- <STARTDATE>1094270400</STARTDATE>
- <ENROLPERIOD>0</ENROLPERIOD>
- <NUMSECTIONS>10</NUMSECTIONS>
- <MAXBYTES>2097152</MAXBYTES>
- <SHOWREPORTS>0</SHOWREPORTS>
- <GROUPMODE>0</GROUPMODE>
- <GROUPMODEFORCE>0</GROUPMODEFORCE>
- <LANG></LANG>
- <COST></COST>
- <MARKER>0</MARKER>
- <VISIBLE>
- <xsl:choose>
- <xsl:when test="FLAGS/ISAVAILABLE/@value = 'true' ">1</xsl:when>
- <xsl:when test="FLAGS/ISAVAILABLE/@value = 'false' ">0</xsl:when>
- <xsl:otherwise></xsl:otherwise>
- </xsl:choose>
- </VISIBLE>
- <HIDDENSECTIONS>0</HIDDENSECTIONS>
- <TIMECREATED>1094240775</TIMECREATED>
- <TIMEMODIFIED>1094240775</TIMEMODIFIED>
- <SUMMARY><xsl:value-of select="DESCRIPTION"/></SUMMARY>
- <SHORTNAME><xsl:value-of select="COURSEID/@value"/></SHORTNAME>
- <FULLNAME><xsl:value-of select="TITLE/@value"/></FULLNAME>
- </HEADER>
-</xsl:template>
-
-<!-- ############# Sections ############# -->
-
-<xsl:template name="title_section" match="resource">
- <SECTION>
- <ID>0</ID>
- <NUMBER>0</NUMBER>
- <SUMMARY>&lt;div style="text-align: center;"&gt;&lt;font size="5" style="font-family: arial,helvetica,sans-serif;"&gt;<xsl:value-of select="COURSE/TITLE/@value"/>&lt;/font&gt;&lt;/div&gt;
- <xsl:value-of select="COURSE/DESCRIPTION"/>
- </SUMMARY>
- <VISIBLE>1</VISIBLE>
- <MODS>
- <xsl:call-template name="news_forum_section_mod" >
- <xsl:with-param name="mod_number">1</xsl:with-param>
- </xsl:call-template>
- </MODS>
- </SECTION>
-</xsl:template>
-
-<xsl:template name="sections" match="resource">
- <xsl:param name="section_number">1. </xsl:param>
- <xsl:param name="recurse"/>
- <SECTION>
- <ID><xsl:value-of select="$section_number"/></ID>
- <NUMBER><xsl:value-of select="$section_number"/></NUMBER>
- <SUMMARY>&lt;span style="font-weight: bold;"&gt;<xsl:value-of select="@title"/>&lt;/span&gt;</SUMMARY>
- <VISIBLE>1</VISIBLE>
- <MODS>
-
- <xsl:choose>
- <xsl:when test="$recurse = 'true'">
- <xsl:variable name="mod_number" select="substring-after(@identifierref,'res')"/>
- <xsl:call-template name="item_recurse_files" >
- <xsl:with-param name="mod_number" select="$mod_number"/>
- <xsl:with-param name="indent" >0</xsl:with-param>
- <xsl:with-param name="recurse" select="$recurse" />
- </xsl:call-template>
-
- </xsl:when>
-
- <xsl:when test="$recurse = 'false'">
- <xsl:for-each select="item">
- <xsl:variable name="mod_number" select="substring-after(@identifierref,'res')"/>
- <!-- Create one section-mod -->
- <xsl:for-each select="document(concat(@identifierref,'.dat'))">
- <xsl:call-template name="section_mod">
- <xsl:with-param name="mod_number" select="$mod_number"/>
- <xsl:with-param name="indent" select="0"/>
- </xsl:call-template>
- </xsl:for-each>
-
- </xsl:for-each>
- </xsl:when>
- </xsl:choose>
-
- </MODS>
- </SECTION>
- </xsl:template>
-
-<xsl:template name="item_recurse_files">
- <xsl:param name="mod_number">1. </xsl:param>
- <xsl:param name="indent">1. </xsl:param>
- <xsl:param name="recurse"/>
-
-
- <!-- Create one section-mod -->
- <xsl:for-each select="document(concat(@identifierref,'.dat'))">
- <xsl:call-template name="section_mod">
- <xsl:with-param name="mod_number" select="$mod_number"/>
- <xsl:with-param name="indent" select="$indent"/>
- </xsl:call-template>
- </xsl:for-each>
-
- <!-- Depth first recursion to preserve order -->
- <xsl:for-each select="item">
- <xsl:variable name="m_number" select="substring-after(@identifierref,'res')"/>
- <xsl:call-template name="item_recurse_files" >
- <xsl:with-param name="mod_number" select="$m_number"/>
- <xsl:with-param name="indent" select="$indent + 1"/>
- </xsl:call-template>
- </xsl:for-each>
-
-</xsl:template>
-
-
-<!-- Determines the type of section mod entry and calls the appropriate creation template -->
-<xsl:template name="section_mod" >
- <xsl:param name="mod_number">1. </xsl:param>
- <xsl:param name="contenttype" />
- <xsl:param name="indent">1. </xsl:param>
-
- <!-- Every file will have a label module describing it -->
- <xsl:choose>
- <!-- Detected one or more files -->
- <xsl:when test="CONTENT/FILES/FILEREF/RELFILE/@value != ''">
- <!-- Create a label -->
- <xsl:call-template name="section_mod_generic">
- <xsl:with-param name="mod_number" ><xsl:value-of select="$mod_number"/></xsl:with-param>
- <xsl:with-param name="indent" ><xsl:value-of select="$indent"/></xsl:with-param>
- <xsl:with-param name="type" >label</xsl:with-param>
- </xsl:call-template>
-
- <!-- Create a resource for each file -->
- <xsl:for-each select="CONTENT/FILES/FILEREF">
- <xsl:call-template name="section_mod_generic">
- <xsl:with-param name="mod_number" ><xsl:value-of select="$mod_number"/>0<xsl:value-of select="position()"/></xsl:with-param>
- <xsl:with-param name="indent" select="$indent + 1"/>
- <xsl:with-param name="type" >resource</xsl:with-param>
- </xsl:call-template>
- </xsl:for-each>
-
- </xsl:when>
-
-
- <!-- Detected a folder -->
- <xsl:when test="CONTENT/FLAGS/ISFOLDER/@value = 'true'">
- <!-- Create a label -->
- <xsl:call-template name="section_mod_generic">
- <xsl:with-param name="mod_number" select="$mod_number"/>
- <xsl:with-param name="indent" select="$indent"/>
- <xsl:with-param name="type" >label</xsl:with-param>
- </xsl:call-template>
- </xsl:when>
-
- <!-- Detected text -->
- <xsl:when test="CONTENT/MAINDATA/FLAGS/ISHTML/@value = 'true'">
- <!-- Create a resource -->
- <xsl:call-template name="section_mod_generic">
- <xsl:with-param name="mod_number" select="$mod_number"/>
- <xsl:with-param name="indent" select="$indent"/>
- <xsl:with-param name="type" >resource</xsl:with-param>
- </xsl:call-template>
- </xsl:when>
-
- <!-- Detected external link -->
- <xsl:when test="EXTERNALLINK/TITLE/@value != '' ">
- <!-- Create a label -->
- <xsl:call-template name="section_mod_generic">
- <xsl:with-param name="mod_number" select="$mod_number"/>
- <xsl:with-param name="indent" select="$indent"/>
- <xsl:with-param name="type" >label</xsl:with-param>
- </xsl:call-template>
-
- <!-- Create a resource -->
- <xsl:call-template name="section_mod_generic">
- <xsl:with-param name="mod_number" select="$mod_number"/>
- <xsl:with-param name="indent" select="$indent"/>
- <xsl:with-param name="type" >resource</xsl:with-param>
- </xsl:call-template>
- </xsl:when>
-
- <!-- Detected staffinfo -->
- <xsl:when test="STAFFINFO/COURSEID/@value != '' ">
- <!-- Create a resource -->
- <xsl:call-template name="section_mod_generic">
- <xsl:with-param name="mod_number" select="$mod_number"/>
- <xsl:with-param name="indent" select="$indent"/>
- <xsl:with-param name="type" >resource</xsl:with-param>
- </xsl:call-template> -->
- </xsl:when>
- <xsl:otherwise>
- </xsl:otherwise>
-
- </xsl:choose>
-
-
-</xsl:template>
-
-<!-- ############# Section Modules ############# -->
-<!-- Creates one section module entry.
- Works for types: label, resource (text), resource (externallink)
--->
-<xsl:template name="section_mod_generic" >
- <xsl:param name="mod_number">1. </xsl:param>
- <xsl:param name="indent">1. </xsl:param>
- <xsl:param name="type"/>
-
- <MOD>
- <ID><xsl:if test="$type = 'label'">1</xsl:if><xsl:value-of select="$mod_number"/>0</ID>
- <ZIBA_NAME>
- <xsl:value-of select="CONTENT/TITLE"/>
- <xsl:value-of select="EXTERNALLINK/TITLE/@value"/>
- </ZIBA_NAME>
- <TYPE><xsl:value-of select="$type"/></TYPE>
- <INSTANCE><xsl:value-of select="$mod_number"/></INSTANCE>
- <ADDED>1094240775</ADDED>
- <DELETED>0</DELETED>
- <SCORE>0</SCORE>
- <INDENT><xsl:value-of select="$indent"/></INDENT>
- <VISIBLE>1</VISIBLE>
- <GROUPMODE>0</GROUPMODE>
- </MOD>
-
-</xsl:template>
-
-<!-- ############# Modules ############# -->
-<!-- Creates a module-label entry -->
-<xsl:template name="module_label" >
- <xsl:param name="mod_number">1. </xsl:param>
- <MOD>
- <ID><xsl:value-of select="$mod_number"/></ID>
- <LABELFOUND></LABELFOUND>
- <MODTYPE>label</MODTYPE>
- <NAME>
- <!-- for CONTENT text -->
- <xsl:value-of select="TITLE"/>
- <!-- for EXTERNALLINK text -->
- <xsl:value-of select="TITLE/@value"/>
- </NAME>
- <CONTENT>
- &lt;span style="font-style: italic;"&gt;
- <!-- for CONTENT text -->
- <xsl:value-of select="TITLE"/>
- <!-- for EXTERNALLINK text -->
- <xsl:value-of select="TITLE/@value"/>
- :&lt;/span&gt;
- <!-- for CONTENT text -->
- <xsl:value-of select="MAINDATA/TEXT"/>
- <!-- for EXTERNALLINK text -->
- <xsl:value-of select="DESCRIPTION/TEXT"/>
- </CONTENT>
- <TIMEMODIFIED>1094240775</TIMEMODIFIED>
- </MOD>
-</xsl:template>
-
-<!-- Creates one module-file entry -->
-<xsl:template name="module_file" >
- <xsl:param name="mod_number">1. </xsl:param>
- <xsl:param name="summary"/>
- <MOD>
- <ID><xsl:value-of select="$mod_number"/></ID>
- <MODTYPE>resource</MODTYPE>
- <NAME>
- <!-- <xsl:value-of select="FILES/FILEREF/RELFILE/@value"/> -->
- <xsl:value-of select="RELFILE/@value"/>
- </NAME>
- <TYPE>file</TYPE>
- <REFERENCE>
- <!-- <xsl:value-of select="FILES/FILEREF/CONTENTID/@value"/>/<xsl:value-of select="FILES/FILEREF/RELFILE/@value"/> -->
- <xsl:value-of select="CONTENTID/@value"/>/<xsl:value-of select="RELFILE/@value"/>
- </REFERENCE>
- <SUMMARY>
- <xsl:value-of select="$summary"/>
- </SUMMARY>
- <ALLTEXT></ALLTEXT>
- <POPUP></POPUP>
- <OPTIONS></OPTIONS>
- <TIMEMODIFIED>1094240775</TIMEMODIFIED>
- </MOD>
-</xsl:template>
-
-<!-- Creates one module-text-staffinfo entry -->
-<!-- TODO staff photo -->
-<xsl:template name="module_text_staffinfo" >
- <xsl:param name="mod_number">1. </xsl:param>
- <MOD>
- <ID><xsl:value-of select="$mod_number"/></ID>
- <MODTYPE>resource</MODTYPE>
- <NAME>
- <xsl:value-of select="CONTACT/NAME/FORMALTITLE/@value"/><xsl:text> </xsl:text><xsl:value-of select="CONTACT/NAME/GIVEN/@value"/><xsl:text> </xsl:text><xsl:value-of select="CONTACT/NAME/FAMILY/@value"/>
- </NAME>
- <TYPE>text</TYPE>
- <REFERENCE></REFERENCE>
- <SUMMARY>
- <xsl:value-of select="CONTACT/NAME/FORMALTITLE/@value"/><xsl:text> </xsl:text><xsl:value-of select="CONTACT/NAME/GIVEN/@value"/><xsl:text> </xsl:text><xsl:value-of select="CONTACT/NAME/FAMILY/@value"/>
- </SUMMARY>
- <ALLTEXT>
- Title:<xsl:value-of select="CONTACT/NAME/FORMALTITLE/@value"/>
- Given Name:<xsl:value-of select="CONTACT/NAME/GIVEN/@value"/>
- Family Name:<xsl:value-of select="CONTACT/NAME/FAMILY/@value"/>
- Phone:<xsl:value-of select="CONTACT/PHONE"/>
- Office Hours:<xsl:value-of select="CONTACT/OFFICE/HOURS"/>
- Office Address:<xsl:value-of select="CONTACT/OFFICE/ADDRESS"/>
- Homepage:<xsl:value-of select="HOMEPAGE/@value"/>
- </ALLTEXT>
- <POPUP></POPUP>
- <OPTIONS></OPTIONS>
- <TIMEMODIFIED>1094240775</TIMEMODIFIED>
- </MOD>
-</xsl:template>
-
-<!-- Creates one module-text entry -->
-<xsl:template name="module_text" >
- <xsl:param name="mod_number">1. </xsl:param>
- <MOD>
- <ID><xsl:value-of select="$mod_number"/></ID>
- <MODTYPE>resource</MODTYPE>
- <NAME>
- <xsl:value-of select="TITLE"/>
- <!-- For announcements -->
- <xsl:value-of select="TITLE/@value"/>
- </NAME>
- <TYPE>text</TYPE>
- <REFERENCE></REFERENCE>
- <SUMMARY>
- <xsl:value-of select="TITLE"/>
- <!-- For announcements -->
- <xsl:value-of select="TITLE/@value"/>
- </SUMMARY>
- <ALLTEXT>
- <xsl:value-of select="MAINDATA/TEXT"/>
- <!-- For announcements -->
- <xsl:value-of select="DESCRIPTION/TEXT"/>
- </ALLTEXT>
- <POPUP></POPUP>
- <OPTIONS></OPTIONS>
- <TIMEMODIFIED>1094240775</TIMEMODIFIED>
- </MOD>
-</xsl:template>
-
-<!-- Creates one module-link entry -->
-<xsl:template name="module_link" >
- <xsl:param name="mod_number">1. </xsl:param>
- <MOD>
- <ID><xsl:value-of select="$mod_number"/></ID>
- <MODTYPE>resource</MODTYPE>
- <NAME>
- <xsl:value-of select="URL/@value"/>
- </NAME>
- <TYPE>file</TYPE>
- <REFERENCE>
- <xsl:value-of select="URL/@value"/>
- </REFERENCE>
- <SUMMARY>
- <xsl:value-of select="TITLE/@value"/>&lt;br/&gt;
- <xsl:value-of select="URL/@value"/>
- </SUMMARY>
- <ALLTEXT>
- <xsl:value-of select="DESCRIPTION/TEXT"/>
- </ALLTEXT>
- <POPUP></POPUP>
- <OPTIONS></OPTIONS>
- <TIMEMODIFIED>1094240775</TIMEMODIFIED>
- </MOD>
-</xsl:template>
-
-<!-- ############# Modules Decisions ############# -->
-
-<!-- Creates all module entries -->
-<xsl:template name="modules" match="resource">
- <!-- Create the News Forum Module -->
- <xsl:call-template name="news_forum_mod">
- <xsl:with-param name="mod_number" >1</xsl:with-param>
- </xsl:call-template>
- <!-- Create all other modules -->
- <xsl:for-each select="//resource">
- <xsl:variable name="mod_number" select="substring-after(@identifier,'res')"/>
- <xsl:for-each select="document(concat('',@file))">
- <xsl:apply-templates select="//FORUM">
- <xsl:with-param name="mod_number" select="$mod_number"/>
- </xsl:apply-templates>
- <xsl:apply-templates select="//CONTENT">
- <xsl:with-param name="mod_number" select="$mod_number"/>
- </xsl:apply-templates>
- <xsl:apply-templates select="//EXTERNALLINK">
- <xsl:with-param name="mod_number" select="$mod_number"/>
- </xsl:apply-templates>
- <xsl:apply-templates select="//STAFFINFO">
- <xsl:with-param name="mod_number" select="$mod_number"/>
- </xsl:apply-templates>
- </xsl:for-each>
- </xsl:for-each>
-</xsl:template>
-
-
-<!-- Create an EXTERNALLINK module entry -->
-<xsl:template match="EXTERNALLINK">
- <xsl:param name="mod_number">1. </xsl:param>
- <!-- Every link module will have a label module describing it -->
- <xsl:call-template name="module_label">
- <xsl:with-param name="mod_number" select="$mod_number"/>
- </xsl:call-template>
-
- <xsl:call-template name="module_link">
- <xsl:with-param name="mod_number" select="$mod_number"/>
- </xsl:call-template>
-
-</xsl:template>
-
-<!-- Create a STAFFINFO module entry -->
-<xsl:template match="STAFFINFO">
- <xsl:param name="mod_number">1. </xsl:param>
- <!-- Every staffinfo module will have a label module describing it -->
- <xsl:call-template name="module_text_staffinfo">
- <xsl:with-param name="mod_number" select="$mod_number"/>
- </xsl:call-template>
-
-</xsl:template>
-
-<!-- Create a CONTENT module entry -->
-<xsl:template match="CONTENT">
- <xsl:param name="mod_number">1. </xsl:param>
-
- <xsl:choose>
- <!-- Detected a file -->
- <xsl:when test="FILES/FILEREF/RELFILE/@value != ''">
-
- <!-- Every file module will have a label module describing it -->
- <xsl:call-template name="module_label">
- <xsl:with-param name="mod_number" select="$mod_number"/>
- </xsl:call-template>
-
- <xsl:variable name="summary" select="MAINDATA/TEXT"/>
-
- <xsl:for-each select="FILES/FILEREF">
- <xsl:call-template name="module_file">
- <xsl:with-param name="mod_number" ><xsl:value-of select="$mod_number"/>0<xsl:value-of select="position()"/></xsl:with-param>
- <xsl:with-param name="summary" ><xsl:value-of select="$summary"/></xsl:with-param>
- </xsl:call-template>
- </xsl:for-each>
-
- </xsl:when>
-
- <!-- Detected a folder -->
- <xsl:when test="FLAGS/ISFOLDER/@value = 'true'">
-
- <xsl:call-template name="module_label">
- <xsl:with-param name="mod_number" select="$mod_number"/>
- </xsl:call-template>
-
- </xsl:when>
-
- <!-- Detected text -->
- <xsl:when test="MAINDATA/FLAGS/ISHTML/@value = 'true'">
-
- <xsl:call-template name="module_text">
- <xsl:with-param name="mod_number" select="$mod_number"/>
- </xsl:call-template>
-
- </xsl:when>
-
- <xsl:otherwise>
- <UNKNOWN>
- <xsl:value-of select="TITLE"/>
- </UNKNOWN>
- </xsl:otherwise>
- </xsl:choose>
-
-</xsl:template>
-<!-- ############# Forum conversion ################# -->
-
-<xsl:template match="FORUM">
- <xsl:param name="mod_number">1. </xsl:param>
- <MOD>
- <ID><xsl:value-of select="$mod_number"/></ID>
- <MODTYPE>forum</MODTYPE>
- <TYPE>general</TYPE>
- <NAME>
- <xsl:value-of select="TITLE/@value"/>
- </NAME>
- <INTRO>
- <xsl:value-of select="DESCRIPTION/TEXT"/>
- </INTRO>
- <OPEN>2</OPEN>
- <ASSESSED>0</ASSESSED>
- <ASSESSPUBLIC>0</ASSESSPUBLIC>
- <ASSESSTIMESTART>0</ASSESSTIMESTART>
- <ASSESSTIMEFINISH>0</ASSESSTIMEFINISH>
- <MAXBYTES>0</MAXBYTES>
- <SCALE>0</SCALE>
- <FORCESUBSCRIBE>0</FORCESUBSCRIBE>
- <RSSTYPE>0</RSSTYPE>
- <RSSARTICLES>0</RSSARTICLES>
- <TIMEMODIFIED></TIMEMODIFIED>
- <!--
- <DISCUSSIONS>
- <xsl:for-each select="MESSAGETHREADS/MSG">
- <xsl:variable name="discussion_id" select="position()"/>
- <DISCUSSION>
- <ID>
- <xsl:value-of select="$mod_number"/>0<xsl:value-of select="$discussion_id"/>
- </ID>
- <NAME>
- <xsl:value-of select="TITLE/@value"/>
- </NAME>
- <FIRSTPOST>2</FIRSTPOST>
- <USERID>1</USERID>
- <GROUPID>-1</GROUPID>
- <ASSESSED>1</ASSESSED>
- <TIMEMODIFIED>1094748430</TIMEMODIFIED>
- <USERMODIFIED>1</USERMODIFIED>
- <POSTS>
- <xsl:call-template name="MSG">
- <xsl:with-param name="parent" select="0"/>
- <xsl:with-param name="post_id">
- <xsl:value-of select="$mod_number"/>0<xsl:value-of select="$discussion_id"/>0<xsl:value-of select="position()"/>
- </xsl:with-param>
- </xsl:call-template>
- </POSTS>
- </DISCUSSION>
- </xsl:for-each>
- </DISCUSSIONS>
- -->
- </MOD>
-</xsl:template>
-
-<xsl:template name="MSG" match="MSG">
- <xsl:param name="parent" select="1"/>
- <xsl:param name="post_id" select="1"/>
- <POST>
- <ID><xsl:value-of select="$post_id"/></ID>
- <PARENT> <xsl:value-of select="$parent"/></PARENT>
- <USERID>1</USERID>
- <CREATED>1094748430</CREATED>
- <MODIFIED>1094748430</MODIFIED>
- <MAILED>1</MAILED>
- <SUBJECT><xsl:value-of select="TITLE/@value"/></SUBJECT>
- <MESSAGE><xsl:value-of select="MESSAGETEXT"/></MESSAGE>
- <FORMAT>1</FORMAT>
- <ATTACHMENT></ATTACHMENT>
- <TOTALSCORE>0</TOTALSCORE>
- </POST>
-
- <xsl:for-each select="MSG">
- <xsl:call-template name="MSG">
- <xsl:with-param name="parent" select="$post_id"/>
- <xsl:with-param name="post_id">
- <xsl:value-of select="$post_id"/>0<xsl:value-of select="position()"/>
- </xsl:with-param>
- </xsl:call-template>
- </xsl:for-each>
-</xsl:template>
-
-<xsl:template name="news_forum_section_mod" >
- <xsl:param name="mod_number">1. </xsl:param>
- <MOD>
- <ID>1</ID>
- <ZIBA_NAME>
- News forum
- </ZIBA_NAME>
- <TYPE>news</TYPE>
- <INSTANCE>1</INSTANCE>
- <ADDED>1094240775</ADDED>
- <DELETED>0</DELETED>
- <SCORE>0</SCORE>
- <INDENT>0</INDENT>
- <VISIBLE>1</VISIBLE>
- <GROUPMODE>0</GROUPMODE>
- </MOD>
-</xsl:template>
-
-<xsl:template name="news_forum_mod" >
- <xsl:param name="mod_number">1. </xsl:param>
- <MOD>
- <ID><xsl:value-of select="$mod_number"/></ID>
- <MODTYPE>forum</MODTYPE>
- <TYPE>news</TYPE>
- <NAME>News forum</NAME>
- <INTRO>General news and announcements</INTRO>
- <OPEN>2</OPEN>
- <ASSESSED>0</ASSESSED>
- <ASSESSPUBLIC>0</ASSESSPUBLIC>
- <ASSESSTIMESTART>0</ASSESSTIMESTART>
- <ASSESSTIMEFINISH>0</ASSESSTIMEFINISH>
- <MAXBYTES>0</MAXBYTES>
- <SCALE>0</SCALE>
- <FORCESUBSCRIBE>0</FORCESUBSCRIBE>
- <RSSTYPE>0</RSSTYPE>
- <RSSARTICLES>0</RSSARTICLES>
- <TIMEMODIFIED></TIMEMODIFIED>
- <DISCUSSIONS>
- <xsl:for-each select="//resource">
- <xsl:variable name="m_number" select="substring-after(@identifier,'res')"/>
- <xsl:variable name="discussion_id" select="position()"/>
- <xsl:for-each select="document(concat('',@file))">
- <xsl:if test="//ANNOUNCEMENT/TITLE/@value != ''">
- <xsl:call-template name="ANNOUNCEMENT">
- <xsl:with-param name="discussion_id" select="$discussion_id"/>
- </xsl:call-template>
- </xsl:if>
- </xsl:for-each>
- </xsl:for-each>
-
- </DISCUSSIONS>
- </MOD>
-</xsl:template>
-
-<!-- Create an ANNOUNCEMENT forum entry -->
-<xsl:template name="ANNOUNCEMENT" >
- <xsl:param name="discussion_id">1. </xsl:param>
- <DISCUSSION>
- <ID>
- <xsl:value-of select="$discussion_id"/>
- </ID>
- <NAME><xsl:value-of select="//ANNOUNCEMENT/TITLE/@value"/></NAME>
- <FIRSTPOST><xsl:value-of select="$discussion_id"/></FIRSTPOST>
- <USERID>1</USERID>
- <GROUPID>-1</GROUPID>
- <ASSESSED>1</ASSESSED>
- <TIMEMODIFIED>1094748430</TIMEMODIFIED>
- <USERMODIFIED>1</USERMODIFIED>
- <POSTS>
- <POST>
- <ID><xsl:value-of select="$discussion_id"/></ID>
- <PARENT>0</PARENT>
- <USERID>1</USERID>
- <CREATED>1094748430</CREATED>
- <MODIFIED>1094748430</MODIFIED>
- <MAILED>1</MAILED>
- <SUBJECT><xsl:value-of select="//ANNOUNCEMENT/TITLE/@value"/></SUBJECT>
- <MESSAGE><xsl:value-of select="//ANNOUNCEMENT/DESCRIPTION/TEXT"/></MESSAGE>
- <FORMAT>1</FORMAT>
- <ATTACHMENT></ATTACHMENT>
- <TOTALSCORE>0</TOTALSCORE>
- </POST>
- </POSTS>
- </DISCUSSION>
-
- <!--
- <xsl:call-template name="MSG">
- <xsl:with-param name="parent" select="0"/>
- <xsl:with-param name="post_id">
- <xsl:value-of select="$mod_number"/>0<xsl:value-of select="$discussion_id"/>0<xsl:value-of select="position()"/>
- </xsl:with-param>
- </xsl:call-template>
- -->
-</xsl:template>
-
-
-</xsl:stylesheet>
-
View
690 backup/bb/bb6_to_moodle.xsl
@@ -1,690 +0,0 @@
-<?xml version='1.0'?>
-<xsl:stylesheet version="1.0"
- xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
-<xsl:output method="xml" encoding="UTF-8" />
-<xsl:template match="/">
- <MOODLE_BACKUP>
- <INFO>
- <NAME>backup-from-blackboard.zip</NAME>
- <MOODLE_VERSION>2004083100</MOODLE_VERSION>
- <MOODLE_RELEASE>1.4</MOODLE_RELEASE>
- <BACKUP_VERSION>2004083100</BACKUP_VERSION>
- <BACKUP_RELEASE>1.4</BACKUP_RELEASE>
- <DATE>1094240862</DATE>
- <ORIGINAL_WWWROOT>INSERT URL HERE</ORIGINAL_WWWROOT>
- <DETAILS>
- <MOD>
- <NAME>assignment</NAME>
- <INCLUDED>true</INCLUDED>
- <USERINFO>true</USERINFO>
- </MOD>
- <MOD>
- <NAME>chat</NAME>
- <INCLUDED>true</INCLUDED>
- <USERINFO>true</USERINFO>
- </MOD>
- <MOD>
- <NAME>choice</NAME>
- <INCLUDED>true</INCLUDED>
- <USERINFO>true</USERINFO>
- </MOD>
- <MOD>
- <NAME>forum</NAME>
- <INCLUDED>true</INCLUDED>
- <USERINFO>true</USERINFO>
- </MOD>
- <MOD>
- <NAME>glossary</NAME>
- <INCLUDED>true</INCLUDED>
- <USERINFO>true</USERINFO>
- </MOD>
- <MOD>
- <NAME>journal</NAME>
- <INCLUDED>true</INCLUDED>
- <USERINFO>true</USERINFO>
- </MOD>
- <MOD>
- <NAME>label</NAME>
- <INCLUDED>true</INCLUDED>
- <USERINFO>true</USERINFO>
- </MOD>
- <MOD>
- <NAME>lesson</NAME>
- <INCLUDED>true</INCLUDED>
- <USERINFO>true</USERINFO>
- </MOD>
- <MOD>
- <NAME>quiz</NAME>
- <INCLUDED>true</INCLUDED>
- <USERINFO>true</USERINFO>
- </MOD>
- <MOD>
- <NAME>resource</NAME>
- <INCLUDED>true</INCLUDED>
- <USERINFO>true</USERINFO>
- </MOD>
- <MOD>
- <NAME>scorm</NAME>
- <INCLUDED>true</INCLUDED>
- <USERINFO>true</USERINFO>
- </MOD>
- <MOD>
- <NAME>survey</NAME>
- <INCLUDED>true</INCLUDED>
- <USERINFO>true</USERINFO>
- </MOD>
- <MOD>
- <NAME>wiki</NAME>
- <INCLUDED>true</INCLUDED>
- <USERINFO>true</USERINFO>
- </MOD>
- <MOD>
- <NAME>workshop</NAME>
- <INCLUDED>true</INCLUDED>
- <USERINFO>true</USERINFO>
- </MOD>
- <USERS>course</USERS>
- <LOGS>false</LOGS>
- <USERFILES>true</USERFILES>
- <COURSEFILES>true</COURSEFILES>
- </DETAILS>
- </INFO>
- <COURSE>
- <!-- Get course specific information -->
- <xsl:apply-templates select="document('res00001.dat')//COURSE"/>
-
- <xsl:call-template name="modules" />
-
- <SECTIONS>
- <!-- Create a title section -->
- <xsl:for-each select="document('res00001.dat')" >
- <xsl:call-template name="title_section" />
- </xsl:for-each>
-
-
- <!-- Create a topic for each top level Bb item and add section modules ONE folder deep -->
- <xsl:for-each select="manifest/organizations/organization/item">
- <xsl:variable name="section_number" select="position()"/>
- <xsl:call-template name="sections">
- <xsl:with-param name="section_number" select="$section_number"/>
- <xsl:with-param name="recurse" >false</xsl:with-param>
- </xsl:call-template>
- </xsl:for-each>
-
- <!-- Create a topic for each second level Bb item which is a folder, recursively make section modules -->
- <xsl:for-each select="manifest/organizations/organization/item/item">
- <xsl:sort order="descending" select="document(concat(@identifierref,'.dat'))/CONTENT/FLAGS/ISFOLDER/@value"/>
- <xsl:if test="document(concat(@identifierref,'.dat'))/CONTENT/FLAGS/ISFOLDER/@value = 'true'">
- <xsl:variable name="prev_sections" select="count(/manifest/organizations/tableofcontents/item)"/>
- <xsl:variable name="section_number" select="position()+$prev_sections"/>
- <xsl:call-template name="sections">
- <xsl:with-param name="section_number" select="$section_number"/>
- <xsl:with-param name="recurse" >true</xsl:with-param>
- </xsl:call-template>
- </xsl:if>
- </xsl:for-each>
- </SECTIONS>
-
- </COURSE>
- </MOODLE_BACKUP>
-</xsl:template>
-
-<xsl:template match="COURSE">
- <HEADER>
- <ID>2</ID>
- <CATEGORY>
- <ID></ID>
- <NAME><xsl:value-of select="CATEGORIES/CATEGORY/@value"/></NAME>
- </CATEGORY>
- <PASSWORD></PASSWORD>
- <IDNUMBER>4</IDNUMBER>
- <FORMAT>topics</FORMAT>
- <SHOWGRADES>1</SHOWGRADES>
- <BLOCKINFO>participants,activity_modules,search_forums,admin,course_list:news_items,calendar_upcoming,recent_activity</BLOCKINFO>
- <NEWSITEMS>5</NEWSITEMS>
- <TEACHER>Teacher</TEACHER>
- <TEACHERS>Teachers</TEACHERS>
- <STUDENT>Student</STUDENT>
- <STUDENTS>Students</STUDENTS>
- <GUEST>0</GUEST>
- <STARTDATE>1094270400</STARTDATE>
- <ENROLPERIOD>0</ENROLPERIOD>
- <NUMSECTIONS>10</NUMSECTIONS>
- <MAXBYTES>2097152</MAXBYTES>
- <SHOWREPORTS>0</SHOWREPORTS>
- <GROUPMODE>0</GROUPMODE>
- <GROUPMODEFORCE>0</GROUPMODEFORCE>
- <LANG></LANG>
- <COST></COST>
- <MARKER>0</MARKER>
- <VISIBLE>1</VISIBLE>
- <HIDDENSECTIONS>0</HIDDENSECTIONS>
- <TIMECREATED>1094240775</TIMECREATED>
- <TIMEMODIFIED>1094240775</TIMEMODIFIED>
- <SUMMARY><xsl:value-of select="DESCRIPTION"/></SUMMARY>
- <SHORTNAME><xsl:value-of select="COURSEID/@value"/></SHORTNAME>
- <FULLNAME><xsl:value-of select="TITLE/@value"/></FULLNAME>
- </HEADER>
-</xsl:template>
-
-<xsl:template name="title_section" match="resource">
- <SECTION>
- <ID>0</ID>
- <NUMBER>0</NUMBER>
- <SUMMARY>&lt;div style="text-align: center;"&gt;&lt;font size="5" style="font-family: arial,helvetica,sans-serif;"&gt;<xsl:value-of select="COURSE/TITLE/@value"/>&lt;/font&gt;&lt;/div&gt;
- <xsl:value-of select="COURSE/DESCRIPTION"/>
- </SUMMARY>
- <VISIBLE>1</VISIBLE>
- <MODS>
- </MODS>
- </SECTION>
-</xsl:template>
-
-<xsl:template name="sections" match="resource">
- <xsl:param name="section_number">1. </xsl:param>
- <xsl:param name="recurse"/>
- <SECTION>
- <ID><xsl:value-of select="$section_number"/></ID>
- <NUMBER><xsl:value-of select="$section_number"/></NUMBER>
- <SUMMARY>&lt;span style="font-weight: bold;"&gt;<xsl:value-of select="title"/>&lt;/span&gt;</SUMMARY>
- <VISIBLE>1</VISIBLE>
- <MODS>
-
- <xsl:if test="$recurse = 'true'">
- <xsl:variable name="mod_number" select="substring-after(@identifierref,'res')"/>
- <xsl:call-template name="item_recurse_files" >
- <xsl:with-param name="mod_number" select="$mod_number"/>
- <xsl:with-param name="indent" >0</xsl:with-param>
- <xsl:with-param name="recurse" select="$recurse" />
- </xsl:call-template>
-
- </xsl:if>
-
- <xsl:if test="$recurse = 'false'">
- <xsl:for-each select="item">
- <xsl:variable name="mod_number" select="substring-after(@identifierref,'res')"/>
- <xsl:call-template name="item" >
- <xsl:with-param name="mod_number" select="$mod_number"/>
- <xsl:with-param name="indent" >0</xsl:with-param>
- </xsl:call-template>
- </xsl:for-each>
- </xsl:if>
-
-
- </MODS>
- </SECTION>
- </xsl:template>
-
-<xsl:template name="item_recurse_files">
- <xsl:param name="mod_number">1. </xsl:param>
- <xsl:param name="indent">1. </xsl:param>
- <xsl:param name="recurse"/>
-
-
- <!-- Create one section-mod -->
- <xsl:for-each select="document(concat(@identifierref,'.dat'))">
- <xsl:call-template name="section_mod">
- <xsl:with-param name="mod_number" select="$mod_number"/>
- <xsl:with-param name="indent" select="$indent"/>
- </xsl:call-template>
- </xsl:for-each>
-
- <!-- Depth first recursion to preserve order -->
- <xsl:for-each select="item">
- <xsl:variable name="m_number" select="substring-after(@identifierref,'res')"/>
- <xsl:call-template name="item_recurse_files" >
- <xsl:with-param name="mod_number" select="$m_number"/>
- <xsl:with-param name="indent" select="$indent + 1"/>
- </xsl:call-template>
- </xsl:for-each>
-
-</xsl:template>
-
-<xsl:template name="item">
- <xsl:param name="mod_number">1. </xsl:param>
- <xsl:param name="indent">1. </xsl:param>
-
- <GETHERE></GETHERE>
- <xsl:if test="document(concat(@identifierref,'.dat'))/CONTENT/FLAGS/ISFOLDER/@value != 'true' or document(concat(@identifierref,'.dat'))/EXTERNALLINK/DESCRIPTION/FLAGS/ISHTML/@value ='true'">
- <!-- Create one section-mod -->
- <xsl:for-each select="document(concat(@identifierref,'.dat'))">
- <xsl:call-template name="section_mod">
- <xsl:with-param name="mod_number" select="$mod_number"/>
- <xsl:with-param name="indent" select="$indent"/>
- </xsl:call-template>
- </xsl:for-each>
- </xsl:if>
-
-
-</xsl:template>
-
-<!-- Determines the type of section mod entry and calls the appropriate creation template -->
-<xsl:template name="section_mod" >
- <xsl:param name="mod_number">1. </xsl:param>
- <xsl:param name="contenttype" />
- <xsl:param name="indent">1. </xsl:param>
-
- <!-- Every file will have a label module describing it -->
- <xsl:choose>
- <!-- Detected a file -->
- <xsl:when test="CONTENT/FILE/@id != '' or CONTENT/FILES/FILE/NAME != ''">
- <!-- Create a label -->
- <xsl:call-template name="section_mod_label">
- <xsl:with-param name="mod_number" select="$mod_number"/>
- <xsl:with-param name="indent" select="$indent"/>
- </xsl:call-template>
-
- <!-- Create a resource -->
- <xsl:call-template name="section_mod_resource">
- <xsl:with-param name="mod_number" select="$mod_number"/>
- <xsl:with-param name="indent" select="$indent"/>
- </xsl:call-template>
-
- </xsl:when>
-
- <!-- Detected a folder -->
- <xsl:when test="CONTENT/FLAGS/ISFOLDER/@value = 'true'">
- <MAKINGLABEL></MAKINGLABEL>
- <!-- Create a label -->
- <xsl:call-template name="section_mod_label">
- <xsl:with-param name="mod_number" select="$mod_number"/>
- <xsl:with-param name="indent" select="$indent"/>
- </xsl:call-template>
- </xsl:when>
-
- <!-- Detected text -->
- <xsl:when test="CONTENT/MAINDATA/FLAGS/ISHTML/@value = 'true' or CONTENT/BODY/TYPE/@value = 'H' ">
- <MAKINGTEXT></MAKINGTEXT>
- <!-- Create a resource -->
- <xsl:call-template name="section_mod_resource">
- <xsl:with-param name="mod_number" select="$mod_number"/>
- <xsl:with-param name="indent" select="$indent"/>
- </xsl:call-template>
- </xsl:when>
-
- <!-- Detected external link -->
- <xsl:when test="EXTERNALLINK/TITLE/@value != '' ">
- <!-- Create a label -->
- <xsl:call-template name="section_mod_label">
- <xsl:with-param name="mod_number" select="$mod_number"/>
- <xsl:with-param name="indent" select="$indent"/>
- </xsl:call-template>
-
- <!-- Create a resource -->
- <xsl:call-template name="section_mod_externallink">
- <xsl:with-param name="mod_number" select="$mod_number"/>
- <xsl:with-param name="indent" select="$indent"/>
- </xsl:call-template>
- </xsl:when>
- <xsl:otherwise>
- <UNKNOWN>
- </UNKNOWN>
- </xsl:otherwise>
-
- </xsl:choose>
-
-
-</xsl:template>
-
-<!-- Creates one section-mod-label -->
-<xsl:template name="section_mod_label" >
- <xsl:param name="mod_number">1. </xsl:param>
- <xsl:param name="indent">1. </xsl:param>
- <MOD>
- <ID>1<xsl:value-of select="$mod_number"/>0</ID>
- <ZIBA_NAME>
- <!-- BB5.5 -->
- <xsl:value-of select="CONTENT/TITLE"/>
- <!-- BB6 -->
- <xsl:value-of select="CONTENT/TITLE/@value"/>
- </ZIBA_NAME>
- <TYPE>label</TYPE>
- <INSTANCE><xsl:value-of select="$mod_number"/></INSTANCE>
- <ADDED>1094240775</ADDED>
- <DELETED>0</DELETED>
- <SCORE>0</SCORE>
- <INDENT><xsl:value-of select="$indent"/></INDENT>
- <VISIBLE>1</VISIBLE>
- <GROUPMODE>0</GROUPMODE>
- </MOD>
-
-</xsl:template>
-
-<!-- Creates one section-mod-resource -->
-<xsl:template name="section_mod_resource" >
- <xsl:param name="mod_number">1. </xsl:param>
- <xsl:param name="indent">1. </xsl:param>
- <MOD>
- <ID><xsl:value-of select="$mod_number"/>0</ID>
- <ZIBA_NAME>
- <!-- BB5.5 -->
- <xsl:value-of select="CONTENT/TITLE"/>
- <!-- BB6 -->
- <xsl:value-of select="CONTENT/TITLE/@value"/>
- </ZIBA_NAME>
- <TYPE>resource</TYPE>
- <INSTANCE><xsl:value-of select="$mod_number"/></INSTANCE>
- <ADDED>1094240775</ADDED>
- <DELETED>0</DELETED>
- <SCORE>0</SCORE>
- <INDENT><xsl:value-of select="$indent"/></INDENT>
- <VISIBLE>1</VISIBLE>
- <GROUPMODE>0</GROUPMODE>
- </MOD>
-
-</xsl:template>
-
-<!-- Creates one section-mod-externallink -->
-<xsl:template name="section_mod_externallink" >
- <xsl:param name="mod_number">1. </xsl:param>
- <xsl:param name="indent">1. </xsl:param>
- <MOD>
- <ID><xsl:value-of select="$mod_number"/>0</ID>
- <ZIBA_NAME>
- <xsl:value-of select="EXTERNALLINK/TITLE/@value"/>
- </ZIBA_NAME>
- <TYPE>resource</TYPE>
- <INSTANCE><xsl:value-of select="$mod_number"/></INSTANCE>
- <ADDED>1094240775</ADDED>
- <DELETED>0</DELETED>
- <SCORE>0</SCORE>
- <INDENT><xsl:value-of select="$indent"/></INDENT>
- <VISIBLE>1</VISIBLE>
- <GROUPMODE>0</GROUPMODE>
- </MOD>
-
-</xsl:template>
-
-<!-- Creates a module-label entry -->
-<xsl:template name="module_label" >
- <xsl:param name="mod_number">1. </xsl:param>
- <MOD>
- <ID><xsl:value-of select="$mod_number"/></ID>
- <MODTYPE>label</MODTYPE>
- <NAME>
- <!-- for CONTENT text -->
- <xsl:value-of select="TITLE"/>
- <!-- for EXTERNALLINK text -->
- <xsl:value-of select="TITLE/@value"/>
- </NAME>
- <CONTENT>
- &lt;span style="font-style: italic;"&gt;
- <!-- for CONTENT text -->
- <xsl:value-of select="TITLE"/>
- <!-- for EXTERNALLINK text -->
- <xsl:value-of select="TITLE/@value"/>
- :&lt;/span&gt;
- <!-- for CONTENT text -->
- <xsl:value-of select="MAINDATA/TEXT"/>
- <!-- for EXTERNALLINK text -->
- <xsl:value-of select="DESCRIPTION/TEXT"/>
- <!-- for BB6 text -->
- <xsl:value-of select="BODY/TEXT"/>
- </CONTENT>
- <TIMEMODIFIED>1094240775</TIMEMODIFIED>
- </MOD>
-</xsl:template>
-
-<!-- Creates one module-file entry -->
-<xsl:template name="module_file" >
- <xsl:param name="mod_number">1. </xsl:param>
- <xsl:param name="identifier"/>
- <MOD>
- <ID><xsl:value-of select="$mod_number"/></ID>
- <MODTYPE>resource</MODTYPE>
- <NAME>
- <!-- BB5 -->
- <xsl:value-of select="FILES/FILEREF/RELFILE/@value"/>
- <!-- BB6 -->
- <xsl:value-of select="FILES/FILE/NAME"/>
- </NAME>
- <TYPE>file</TYPE>
- <REFERENCE><!-- BB5 --><xsl:value-of select="FILES/FILEREF/CONTENTID/@value"/><!-- BB6 --><xsl:value-of select="$identifier"/>/<!-- BB5 --><xsl:value-of select="FILES/FILEREF/RELFILE/@value"/><!-- BB6 --><xsl:value-of select="FILES/FILE/NAME"/></REFERENCE>
- <SUMMARY>
- <xsl:value-of select="MAINDATA/TEXT"/>
- </SUMMARY>
- <ALLTEXT></ALLTEXT>
- <POPUP></POPUP>
- <OPTIONS></OPTIONS>
- <TIMEMODIFIED>1094240775</TIMEMODIFIED>
- </MOD>
-</xsl:template>
-
-<!-- Creates one module-text entry -->
-<xsl:template name="module_text" >
- <xsl:param name="mod_number">1. </xsl:param>
- <MOD>
- <ID><xsl:value-of select="$mod_number"/></ID>
- <MODTYPE>resource</MODTYPE>
- <NAME>
- <!-- BB5.5 -->
- <xsl:value-of select="TITLE"/>
- <!-- BB6 -->
- <xsl:value-of select="TITLE/@value"/>
- </NAME>
- <TYPE>text</TYPE>
- <REFERENCE></REFERENCE>
- <SUMMARY>
- <!-- BB5.5 -->
- <xsl:value-of select="TITLE"/>
- <!-- BB6 -->
- <xsl:value-of select="TITLE/@value"/>
- </SUMMARY>
- <ALLTEXT>
- <!-- BB5.5 -->
- <xsl:value-of select="MAINDATA/TEXT"/>
- <!-- BB6 -->
- <xsl:value-of select="BODY/TEXT"/>
- </ALLTEXT>
- <POPUP></POPUP>
- <OPTIONS></OPTIONS>
- <TIMEMODIFIED>1094240775</TIMEMODIFIED>
- </MOD>
-</xsl:template>
-
-<!-- Creates one module-link entry -->
-<xsl:template name="module_link" >
- <xsl:param name="mod_number">1. </xsl:param>
- <MOD>
- <ID><xsl:value-of select="$mod_number"/></ID>
- <MODTYPE>resource</MODTYPE>
- <NAME>
- <xsl:value-of select="URL/@value"/>
- </NAME>
- <TYPE>file</TYPE>
- <REFERENCE>
- <xsl:value-of select="URL/@value"/>
- </REFERENCE>
- <SUMMARY>
- <xsl:value-of select="TITLE/@value"/>&lt;br/&gt;
- <xsl:value-of select="URL/@value"/>
- </SUMMARY>
- <ALLTEXT>
- <xsl:value-of select="DESCRIPTION/TEXT"/>
- </ALLTEXT>
- <POPUP></POPUP>
- <OPTIONS></OPTIONS>
- <TIMEMODIFIED>1094240775</TIMEMODIFIED>
- </MOD>
-</xsl:template>
-
-<!-- Create a CONTENT module entries -->
-<xsl:template match="EXTERNALLINK">
- <xsl:param name="mod_number">1. </xsl:param>
- <!-- Every link module will have a label module describing it -->
- <xsl:call-template name="module_label">
- <xsl:with-param name="mod_number" select="$mod_number"/>
- </xsl:call-template>
-
- <xsl:call-template name="module_link">
- <xsl:with-param name="mod_number" select="$mod_number"/>
- </xsl:call-template>
-
-</xsl:template>
-
-<!-- Create a CONTENT module entries -->
-<xsl:template match="CONTENT">
- <xsl:param name="mod_number">1. </xsl:param>
- <xsl:param name="identifier"/>
-
- <xsl:choose>
- <!-- Detected a file
-
- <FILEFOUND></FILEFOUND>
- -->
- <xsl:when test="FILES/FILE/@id != ''">
-
- <!-- Every file module will have a label module describing it -->
- <xsl:call-template name="module_label">
- <xsl:with-param name="mod_number" select="$mod_number"/>
- </xsl:call-template>
-
- <xsl:call-template name="module_file">
- <xsl:with-param name="mod_number" select="$mod_number"/>
- <xsl:with-param name="identifier" select="$identifier"/>
- </xsl:call-template>
-
- </xsl:when>
-
- <!-- Detected a folder
- <FOLDERFOUND></FOLDERFOUND>
- -->
- <xsl:when test="FLAGS/ISFOLDER/@value = 'true'">
-
- <xsl:call-template name="module_label">
- <xsl:with-param name="mod_number" select="$mod_number"/>
- </xsl:call-template>
-
- </xsl:when>
-
- <!-- Detected text
- <TEXTFOUND></TEXTFOUND>
- -->
- <xsl:when test="MAINDATA/FLAGS/ISHTML/@value = 'true' or BODY/TYPE/@value = 'H' ">
-
- <xsl:call-template name="module_text">
- <xsl:with-param name="mod_number" select="$mod_number"/>
- </xsl:call-template>
-
- </xsl:when>
-
- <xsl:otherwise>
- <UNKNOWN>
- <xsl:value-of select="TITLE"/>
- </UNKNOWN>
- </xsl:otherwise>
- </xsl:choose>
-
-</xsl:template>
-
-
-<!-- Creates all module entries -->
-<xsl:template name="modules" match="resource">
- <MODULES>
- <xsl:for-each select="//resource">
- <xsl:variable name="mod_number" select="substring-after(@identifier,'res')"/>
- <xsl:variable name="identifier" select="@identifier"/>
- <xsl:for-each select="document(concat(@identifier,'.dat'))">
- <xsl:apply-templates select="//FORUM">
- <xsl:with-param name="mod_number" select="$mod_number"/>
- </xsl:apply-templates>
- <xsl:apply-templates select="//CONTENT">
- <xsl:with-param name="mod_number" select="$mod_number"/>
- <xsl:with-param name="identifier" select="$identifier"/>
- </xsl:apply-templates>
- <xsl:apply-templates select="//EXTERNALLINK">
- <xsl:with-param name="mod_number" select="$mod_number"/>
- </xsl:apply-templates>
- </xsl:for-each>
- </xsl:for-each>
-</MODULES>
-</xsl:template>
-
-<!-- ############# Forum conversion ################# -->
-
-<xsl:template match="FORUM">
- <xsl:param name="mod_number">1. </xsl:param>
- <MOD>
- <ID><xsl:value-of select="$mod_number"/></ID>
- <MODTYPE>forum</MODTYPE>
- <TYPE>general</TYPE>
- <NAME>
- <xsl:value-of select="TITLE/@value"/>
- </NAME>
- <INTRO>
- <xsl:value-of select="DESCRIPTION/TEXT"/>
- </INTRO>
- <OPEN>2</OPEN>
- <ASSESSED>0</ASSESSED>
- <ASSESSPUBLIC>0</ASSESSPUBLIC>
- <ASSESSTIMESTART>0</ASSESSTIMESTART>
- <ASSESSTIMEFINISH>0</ASSESSTIMEFINISH>
- <MAXBYTES>0</MAXBYTES>
- <SCALE>0</SCALE>
- <FORCESUBSCRIBE>0</FORCESUBSCRIBE>
- <RSSTYPE>0</RSSTYPE>
- <RSSARTICLES>0</RSSARTICLES>
- <TIMEMODIFIED></TIMEMODIFIED>
- <!--
- <DISCUSSIONS>
- <xsl:for-each select="MESSAGETHREADS/MSG">
- <xsl:variable name="discussion_id" select="position()"/>
- <DISCUSSION>
- <ID>
- <xsl:value-of select="$mod_number"/>0<xsl:value-of select="$discussion_id"/>
- </ID>
- <NAME>
- <xsl:value-of select="TITLE/@value"/>
- </NAME>
- <FIRSTPOST>2</FIRSTPOST>
- <USERID>1</USERID>
- <GROUPID>-1</GROUPID>
- <ASSESSED>1</ASSESSED>
- <TIMEMODIFIED>1094748430</TIMEMODIFIED>
- <USERMODIFIED>1</USERMODIFIED>
- <POSTS>
- <xsl:call-template name="MSG">
- <xsl:with-param name="parent" select="0"/>
- <xsl:with-param name="post_id">
- <xsl:value-of select="$mod_number"/>0<xsl:value-of select="$discussion_id"/>0<xsl:value-of select="position()"/>
- </xsl:with-param>
- </xsl:call-template>
- </POSTS>
- </DISCUSSION>
- </xsl:for-each>
- </DISCUSSIONS>
- -->
- </MOD>
-</xsl:template>
-
-<xsl:template name="MSG" match="MSG">
- <xsl:param name="parent" select="1"/>
- <xsl:param name="post_id" select="1"/>
- <POST>
- <ID><xsl:value-of select="$post_id"/></ID>
- <PARENT> <xsl:value-of select="$parent"/></PARENT>
- <USERID>1</USERID>
- <CREATED>1094748430</CREATED>
- <MODIFIED>1094748430</MODIFIED>
- <MAILED>1</MAILED>
- <SUBJECT><xsl:value-of select="TITLE/@value"/></SUBJECT>
- <MESSAGE><xsl:value-of select="MESSAGETEXT"/></MESSAGE>
- <FORMAT>1</FORMAT>
- <ATTACHMENT></ATTACHMENT>
- <TOTALSCORE>0</TOTALSCORE>
- </POST>
-
- <xsl:for-each select="MSG">
- <xsl:call-template name="MSG">
- <xsl:with-param name="parent" select="$post_id"/>
- <xsl:with-param name="post_id">
- <xsl:value-of select="$post_id"/>0<xsl:value-of select="position()"/>
- </xsl:with-param>
- </xsl:call-template>
- </xsl:for-each>
-</xsl:template>
-</xsl:stylesheet>
-
-
-
-
View
125 backup/bb/restore_bb.php
@@ -1,125 +0,0 @@
-<?php
-// This file facilitates the conversion of a Blackboard course export
-// into a Moodle course export. It assumes an unzipped directory and makes in-place alterations.
-
-defined('MOODLE_INTERNAL') or die('Direct access to this script is forbidden.');
-
-// Ziba Scott <ziba@linuxbox.com> 10-25-04
-require_once($CFG->dirroot.'/backup/bb/xsl_emulate_xslt.inc');
-
-function get_subdirs($directory){
- if (!$opendirectory = opendir( $directory )) {
- return array();
- }
- while(false !== ($filename = readdir($opendirectory))) {
- if (is_dir($directory.$filename) and $filename != ".." and $filename != "."){
- $subdirs[] = $filename;
- }
- }
- closedir($opendirectory);
- return $subdirs;
-}
-
-
-function choose_bb_xsl($manifest){
- $f = fopen($manifest,"r");
- $buffer = fgets($f, 400);
- $buffer = fgets($f, 400);
- fclose($f);
- if (strstr($buffer,"xmlns:bb=\"http://www.blackboard.com/content-packaging/\"")){
- return "bb6_to_moodle.xsl";
- }
- return "bb5.5_to_moodle.xsl";
-}
-
-
-function blackboard_convert($dir){
- global $CFG, $OUTPUT;
-
- throw new coding_exception('bb_convert was not converted to new file api yet, sorry');
-
- // Check for a Blackboard manifest file
- if (is_readable($dir.'/imsmanifest.xml') && !is_readable($dir.'/moodle.xml')){
-
- if (!function_exists('xslt_create')) { // XSLT MUST be installed for this to work
- echo $OUTPUT->notification('You need the XSLT library installed in PHP to open this Blackboard file');
- return false;
- }
-
- //Select the proper XSL file
- $xslt_file = choose_bb_xsl($dir.'/imsmanifest.xml');
-
-
- //TODO: Use the get_string function for this
- echo "<li>Converting Blackboard export</li>";
-
- // The XSL file must be in the same directory as the Blackboard files when it is processed
- if (!copy($CFG->dirroot."/backup/bb/$xslt_file", "$dir/$xslt_file")) {
- echo $OUTPUT->notification('Could not copy the XSLT file to '."$dir/$xslt_file");
- return false;
- }
-
- // Change to that directory
- $startdir = getcwd();
- chdir($dir);
-
-
- // Process the Blackboard XML files with the chosen XSL file.
- // The imsmanifest contains all the XML files and their relationships.
- // The XSL processor will open them as needed.
- $xsltproc = xslt_create();
- if (!xslt_process($xsltproc, 'imsmanifest.xml', "$dir/$xslt_file", "$dir/moodle.xml")) {
- echo $OUTPUT->notification('Failed writing xml file');
- chdir($startdir);
- return false;
- }
-
-
- // Copy the Blackboard course files into the moodle course_files structure
- $subdirs = get_subdirs($dir."/");
- mkdir("$dir/course_files", $CFG->directorypermissions);