Import courses to MyEducationPath.com

Online Education Providers can configure automatic import and sync of their courses from company website.

The provider must have list of courses on some public web resource in XML format (courses feed). It can be static XML file or some server side script that generates the feed dynamically.

LMS systems built on Moodle can use our Moodle plugin "My Education Path". The plugin is easy to install and publish courses in the directory. Also the plugin allows to get feedback from students about a course. Read more about thsi plugin.

Get http link to XML feed and save the link on Profile->Import courses page. After this your courses list will be checked everyday and your list of courses on this site will be autoupdated if there are any changes in XML feed.

The feed format is:

<?xml version="1.0" encoding="utf-8"?>
<coursesfeed>
  <vendor>
    <name>My Company Name</name>
    <description><![CDATA[Description of my company]]></description>
    <website><![CDATA[http://mycompanywebsite.com]]></website>
    <logourl><![CDATA[http://mycompanywebsite.com/logo.lpg]]></logourl>
  </vendor>
  <course>
    <id>uniquecourseid1</id>
    <title>Course title 1</title>
    <link>http://onlinecoursesvendor.com/courses/course1.htm</link>
    <imagelink>http://onlinecoursesvendor.com/courses/course1/logo.jpg</imagelink>
    <description><![CDATA[Course description 1]]></description>
    <tag>coursetag1</tag>
    <tag>coursetag2</tag>
    <tag>coursetag3</tag>
    <tag>coursetag4</tag>
    <startdate>10 Jan 2013</startdate>
    <duration>4 weeks</duration>
    <skill>Skill1</skill>
    <skill>Skill2</skill>
    <skill>Skill3</skill>
    <instructor>Course instructor</instructor>
  </course>
  <course>
   ......
  </course>
  <course>
   ......
  </course>
   ......
</coursesfeed>


Correct working static XML source can be found here

Example of generating of XML courses feed with PHP

<?php
//prepare information. There can be extraction from a database
$vendorname="My Company Name";
$vendordescription='Description of my company';
$vendorwebsite='http://mycompanywebsite.com';
$vendorlogo='http://mycompanywebsite.com/logo.lpg';

//list of courses. it can be loaded from thw DB or from other source
$courseslist=array(
	array(
		'id'=>'uniquecourseid1',
		'title'=>'Course title 1',
		'link'=>'http://onlinecoursesvendor.com/courses/course1.htm',
		'imagelink'=>'http://onlinecoursesvendor.com/courses/course1/logo.jpg',
		'description'=>'Course description 1',
		'tags'=>array('coursetag1','coursetag2','coursetag3','coursetag4'),
		'startdate'=>'10 Jan 2013',
		'duration'=>'4 weeks',
		'skills'=>array('Skill1','Skill2','Skill3'),
		'instructors'=>array('Course instructor'),
		'price'=>''//empty price means free.
		),
	array(
		'id'=>'uniquecourseid2',
		'title'=>'Course title 2',
		'link'=>'http://onlinecoursesvendor.com/courses/course2.htm',
		'imagelink'=>'http://onlinecoursesvendor.com/courses/course2/logo.jpg',
		'description'=>'Course description 2',
		'tags'=>array(),//example fo a course without tags
		'startdate'=>'any time',
		'duration'=>'8 weeks',
		'skills'=>array('Skill5','Skill6','Skill3'),
		'instructors'=>array('Course instructor1','Course instructor2'),
		'price'=>'$30'
		),
	array(
		'id'=>'uniquecourseid3',
		'title'=>'Course title 3',
		'link'=>'http://onlinecoursesvendor.com/courses/course3.htm',
		'imagelink'=>'',
		'description'=>'Course description 3',
		'tags'=>array('coursetag8','coursetag9','coursetag5','coursetag6'),
		'startdate'=>'any time',
		'duration'=>'5 weeks',
		'skills'=>array()//example of a course without skills defined
		),
	);

//inlude the class to generate XML 
include_once('XmlWriter.class.php');

$xml = new XmlWriterPure();//xml generator object

$xml->push('coursesfeed');//create root node

	$xml->push('vendor');//create vendor description node
	$xml->element('name',$vendorname);
	$xml->element('description',$vendordescription,true);
	$xml->element('website',$vendorwebsite,true);
	$xml->element('logourl',$vendorlogo,true);
	$xml->pop();//close vendor tag
	
	//add courses
	foreach($courseslist as $course){
		$xml->push('course');//create course node
		$xml->element('id',$course['id']);
		$xml->element('title',$course['title']);
		$xml->element('link',$course['link']);
		$xml->element('imagelink',$course['imagelink']);
		$xml->element('description',$course['description'],true);
		
		if(isset($course['tags']) && is_array($course['tags']))
			foreach($course['tags'] as $tag)
				$xml->element('tag',$tag);
			
		$xml->element('startdate',$course['startdate']);
		$xml->element('duration',$course['duration']);
		$xml->element('price',$course['price']);
		
		if(isset($course['skills']) && is_array($course['skills']))
			foreach($course['skills'] as $skill)
				$xml->element('skill',$skill);
		if(isset($course['instructors']) && is_array($course['instructors']))
			foreach($course['instructors'] as $instructor)
				$xml->element('instructor',$instructor);
		$xml->pop();//close course node
	}

$xml->pop();//close root node

print $xml->getXml();//output XML
?>

Download PHP example of XML feed source