Jump to content

Recommended Posts

Posted
VLEs all seem to be a tart to set up because there's nothing to tie your AD accounts into SIMS user data, so you have to break out Excel and do some voodoo to map the two together. Depending on your user naming system (another recent thread) this can be non-trivial Wink . Any VLE which eased that burden somehow would get my vote (especially if it did nightly synchronisation).

 

The following is a VBS script that automatically creats users in AD from CMIS.

It should be possible to modify this for SIMS. I can't really awnser vbs questions about this as I didn't write it. I'll start another thread on this anyhow.

 

' 2006-06-27

' This script copies user details from MSSQL to Active directory for STUDENTS only.

' It has been written for exporting data from the CMIS MSSQL structure into

' AD that is specific to our site. It will require modification for your

' site and comes without warranty.

' 

'    This program is free software; you can redistribute it and/or modify

'    it under the terms of the GNU General Public License as published by

'    the Free Software Foundation; either version 2 of the License, or

'    (at your option) any later version.

'

'    This program is distributed in the hope that it will be useful,

'    but WITHOUT ANY WARRANTY; without even the implied warranty of

'    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the

'    GNU General Public License for more details.



' Perform some connection setup.

Set objADConnection = CreateObject("ADODB.Connection")

objADConnection.Open "Provider=ADsDSOObject;"



Set objADCommand = CreateObject("ADODB.Command")

objADCommand.ActiveConnection = objADConnection



Const adOpenStatic = 3

Const adLockOptimistic = 3

Const adUseClient = 3

Const adBookMarkFirst = 1

Set objCMISConnection = CreateObject("ADODB.Connection")

Set objCMISRecordset = CreateObject("ADODB.Recordset")

objCMISConnection.Open "DSN=ADSYNC;", "adsync", "password"

objCMISRecordset.CursorLocation = adUseClient



' Read in a name or username (or part thereof) that is know to CMIS.

WScript.StdOut.Write "Enter a name or username that is known to CMIS: "

qUser = WScript.StdIn.ReadLine

WScript.Echo

If Len(qUser) = 0 Then

   WScript.Quit

End If



' Query the CMIS ADSync view.

sql = "SELECT * FROM ADSync " & _

     " WHERE (displayName LIKE '%" & qUser & "%'" & _

     "    OR  sAMAccountName LIKE '%" & qUser & "%') " & _

     "   AND leftSchool = 'N' "' & _

'      "   AND employeeType = 'STUDENT'"



' Query CMIS...

objCMISRecordset.Open sql, objCMISConnection, adOpenStatic, adLockOptimistic



' If more than one record was returned, present the user with a list to choose from.

If objCMISRecordset.RecordCount > 1 Then

   idNum = 1

   While Not objCMISRecordset.EOF

        WScript.Echo " " & idNum & ". " & objCMISRecordSet("displayName") & "; " & objCMISRecordset("sAMAccountName") & "; " & objCMISRecordset("employeeId") & "; " & objCMISRecordSet("department") & "; " & objCMISRecordset("dateOfBirth")

        objCMISRecordset.MoveNext

 idNum = idNum + 1

   Wend



   WScript.Echo

   WScript.StdOut.Write "Choose user (1-" & (idNum-1) & ") or 'q' to quit: "

   row = WScript.StdIn.ReadLine

   If Left(row, 1) = "q" Then

       WScript.Quit

   End If



   row = CInt(row)

   If row > (idNum - 1) Or row < 1 Then WScript.Quit



   ' Move to the selected record (counting from the first record).

   objCMISRecordSet.Move (row - 1), adBookMarkFirst



   WScript.Echo

End If



If Not objCMISRecordset.EOF Then

   dateOfBirth  = Left(Trim(objCMISRecordset("dateOfBirth")), 2) & Mid(Trim(objCMISRecordset("dateOfBirth")), 4, 2) & Right(Trim(objCMISRecordset("dateOfBirth")), 2)

   employeeId   = Trim(objCMISRecordset("employeeId"))

   employeeType = Trim(objCMISRecordset("employeeType"))

   lastName     = Trim(objCMISRecordset("sn"))

   firstName    = Trim(objCMISRecordset("givenName"))

   middleName   = Trim(objCMISRecordset("middleName"))

   initials     = Left(Trim(objCMISRecordset("middleName")), 1)

   calledName   = Trim(objCMISRecordset("calledName"))

   If Len(calledName) = 0 Then

displayName  = firstName & " " & lastName

   Else

displayName  = calledName & " " & lastName

   End If

   department   = Trim(objCMISRecordset("department"))

   studentId    = Trim(objCMISRecordSet("secondId"))

   If Len(objCMISRecordSet("sAMAccountName")) > 0 Then

adUsername = objCMISRecordSet("sAMAccountName")

   Else

       adUsername = ""

   End If



   yearOfEntry = ""

   if objCMISRecordset("yearGroup") = "7" then yearOfEntry = "05"

   if objCMISRecordset("yearGroup") = "8" then yearOfEntry = "04"

   if objCMISRecordset("yearGroup") = "9" then yearOfEntry = "03"

   if objCMISRecordset("yearGroup") = "10" then yearOfEntry = "02"

   if objCMISRecordset("yearGroup") = "11" then yearOfEntry = "01"

   if objCMISRecordset("yearGroup") = "12" then yearOfEntry = "00"

   if objCMISRecordset("yearGroup") = "13" then yearOfEntry = "99"



   If employeeType = "STUDENT" Then

     description = "Student " & yearOfEntry & " / " & dateOfBirth

   Else

     description = "Staff_mail"

   End If



   WScript.Echo "Found '" & objCMISRecordSet("displayName") & "' (ID: " & employeeId & "; ADUsername: " & adUsername & ")"



   Dim objUser

   QueryAD employeeId, objUser



   WScript.Echo ""

   WScript.Echo "+==========================================================+"

   WScript.Echo "| Field        | CMIS/Source Value   | AD Value            |"

   WScript.Echo "+==========================================================+"

   WScript.Echo "| AD Username  | " & pad(adUsername, 20) & "< " & pad(getADValue(objUser, "sAMAccountName"), 20) & "|"

   WScript.Echo "| First Name   | " & pad(firstName, 20) & "> " & pad(getADValue(objUser, "givenName"), 20) & "|"

   WScript.Echo "| Middle Name  | " & pad(middleName, 20) & "> " & pad(GetADValue(objUser, "middleName"), 20) & "|"

   WScript.Echo "| Initials     | " & pad(initials, 20) & "> " & pad(GetADValue(objUser, "initials"), 20) & "|"

   WScript.Echo "| Last Name    | " & pad(lastName, 20) & "> " & pad(GetADValue(objUser, "sn"), 20) & "|"

   WScript.Echo "| Display Name | " & pad(displayName, 20) & "> " & pad(GetADValue(objUser, "displayName"), 20) & "|"

   WScript.Echo "| Description  | " & pad(description, 20) & "> " & pad(GetADValue(objUser, "description"), 20) & "|"

   WScript.Echo "| Department   | " & pad(department, 20) & "> " & pad(GetADValue(objUser, "department"), 20) & "|"

   WScript.Echo "| Employee ID  | " & pad(employeeId, 20) & "> " & pad(GetADValue(objUser, "employeeId"), 20) & "|"

   WScript.Echo "+==========================================================+"

   WScript.Echo ""



   WScript.StdOut.Write "Copy user data from CMIS/Source to Active Directory? (y/n) "

   yesNo = WScript.StdIn.Read(1)



   If yesNo = "Y" Or yesNo = "y" Then

       If Len(firstName) > 0 Then objUser.Put "givenName", firstName

If Len(middleName) > 0 Then objUser.Put "middleName", middleName

If Len(initials) > 0 Then objUser.Put "initials", initials

If Len(lastName) > 0 Then objUser.Put "sn", lastName

If Len(displayName) > 0 Then objUser.Put "displayName", displayName

If Len(description) > 0 Then objUser.Put "description", description

If Len(department) > 0 Then objUser.Put "department", department

objUser.SetInfo

WScript.Echo

WScript.Echo "Active Directory account updated!"

If employeeType = "STUDENT" Then

           If Len(adUsername) > 0 Then

               updateSQL = "UPDATE STUD_ADMIN.NSTUPERSONAL SET ADUsername = '" & Replace(objUser.Get("sAMAccountName"), "'", "''") & "' WHERE StudentId = '" & studentId & "'"

               objCMISConnection.Execute updateSQL

               WScript.Echo "Updated CMIS ADUsername field!"

           Else

               updateSQL = "UPDATE STUD_ADMIN.NSTUPERSONAL SET ADUsername = '" & Replace(objUser.Get("sAMAccountName"), "'", "''") & "', ADCreationDate = GETDATE() WHERE StudentId = '" & studentId & "'"

        objCMISConnection.Execute updateSQL

               WScript.Echo "Updated CMIS ADUsername and ADCreationDate fields!"

           End If

       Else

    If Len(adUsername) > 0 Then

               updateSQL = "UPDATE STUD_ADMIN.LECTDETS SET ADUsername = '" & Replace(objUser.Get("sAMAccountName"), "'", "''") & "' WHERE LecturerId = '" & studentId & "'"

               objCMISConnection.Execute updateSQL

               WScript.Echo "Updated CMIS ADUsername field!"

    Else

               updateSQL = "UPDATE STUD_ADMIN.LECTDETS SET ADUsername = '" & Replace(objUser.Get("sAMAccountName"), "'", "''") & "', ADCreationDate = GETDATE() WHERE LecturerId = '" & studentId & "'"

   	        objCMISConnection.Execute updateSQL

               WScript.Echo "Updated CMIS ADUsername and ADCreationDate fields!"

           End If

End If

   End If



   Set objUser = Nothing

End If

objCMISRecordset.Close

objCMISConnection.Close



objADConnection.Close

Set objADCommand = Nothing

Set objADConnection = Nothing



' Query AD for the specified employeeId, putting the AD user object in the supplied variable.

Sub QueryAD(employeeId, objUser)

   WScript.Echo "Querying Active Directory for '" & employeeId & "'"

   objADCommand.CommandText = ";" & _

                              "(&(employeeId=" & employeeId & "));" & _

                              "ADsPath,distinguishedName;subtree"

   Set objADRecordSet = objADCommand.Execute



   If Not objADRecordset.EOF Then

       strADsPath = objADRecordset.Fields("ADsPath")

       Set objUser = GetObject(strADsPath)

   Else

WScript.Echo "Could not find AD user with employeeID '" & employeeId & "'"

   End If



   objADRecordSet.Close

   Set objADRecordSet = Nothing

End Sub



' Pad a string with spaces to the specified length.

Function pad(strToPad, length)

   tmp = strToPad

   If Len(tmp) > length Then

       pad = Left(tmp, length)

   Else

Do While Len(tmp) < length

    tmp = tmp & " "

Loop

pad = tmp

   End If

End Function



' Get an value from the AD user object, ignoring errors.

Function GetADValue(objUser, strValue)

   On Error Resume Next

   GetADValue = objUser.Get(strValue)

   If Len(GetADValue) = 0 Then

       GetADValue = ""

   End If

End Function

Posted
I am told that Becta are likely to insist on SCORM 2004 'standards based' content for VLE's. And that Moodle does not meet these standards.

 

I'm not aware of what SCORM 2004 is. Will this blow Moodle out of the water?

 

You are quite right about "most" of SCORM 2004 being required (check here) but, even if Moodle doesn't have these features yet you can guarantee that it soon will have. The Open University, which came on board about 6 months ago, are developing a good head of steam and you can bet that they will want this feature.

 

Look at the commercial companies. They will promise you anything as long as they get a sale.

Posted

 

The following is a VBS script that automatically creats users in AD from CMIS.

It should be possible to modify this for SIMS. I can't really awnser vbs questions about this as I didn't write it. I'll start another thread on this anyhow.

 

Good work on that CN. I've replied to your other thread with some stuff that might be interesting to people from the SIMS side of the Force.

Posted
Teachers can create their own SCORM resources with this.

 

eXe (eLearning XHTML Editor Project)

 

From Eduforge:

 

eXe (eLearning XHTML Editor Project)

 

(But probably not in my lifetime) :roll:

 

I tried that about a year ago. I hope it's a lot more user friendly nowadays because I couldn't for the life of me compile any kind of SCORM resource with the damn thing. If I'd showed it to a teacher in that state I think they'd have had an aneurysm!

Posted
i was looking at moodle as a project but as our LEA have purcahased licences for sims learning gateway, looks like i will have to bypass the project!

 

Why? Set up Moodle on an machine and play. You will soon see which works better.

  • 3 years later...
Posted
There is only one answer: Moodle. All of the rest cost money and support from a commercial company costs money so they cut corners by responding slowly. With Moodle the forum support is second to none. Most of the problems are solved within the hour (and they tend to be caused by me not reading the help properly). Quite often it is the writer of the module that gives an answer - can you imagine M$ doing that! Think about how quickly Firefox is updated when there is a problem - compare that with Internet Explorer.

 

Secondly. Our school tried a Blackboard demo system last year. Some staff put a lot of work into it then, when the demo ended, they lost all of their materials. Whatever VLE system is adopted you need control of it.

 

Thirdly. Moodle may not be the "best" system (although that is open to argument) but it easily can be. The more people using it the better it will become. Moodle 1.6 will be out in beta towards the middle of this month and, from all accounts, it is very impressive.

 

Lastly, in education we are forever re-inventing the wheel. Even within departments we go our different ways - often creating very similar worksheets. Now is the time to share and the technology helps. As my gesture towards this goal I offer notes on the AQA Advanced Computing (CPT1,2,3,4,5 and 6) together with a KS4 ICT Revision course. All released under the creative commons blurb. Not brilliant but I am sure that someone can improve on it and then offer it back. Contact me through my account details if you are interested or you can pick them up from E-subjects.co.uk - e subjects Resources and Information.This website is for sale!

 

Moodle is time consuming and you need to be a technical wizz to get it set up on servers at your site..

 

Where as Fronter is free for the first year if you are in the LGFL plus it is hosted on thier site and intergrates with SIMS for upload all the users, timetables and creates rooms..

Posted

What people need to remember is just becouse you can download a piece of software for free does not mean that there is no cost associated with it.

 

Hardware

Install Effort

Maintenance

 

are all cost factors.

 

I would disagree with Grommit that moodle is hard to get running, I am in no way a *nix expert but in the last year have setup 6 instances of moodle and the last one I setup i now have full SIMS integration with timetables and auto creation of courses based on the timetable in SIMS so it's not that hard you just need to take it slow and plan everything.

Posted
Moodle here , cost for one, and secondly for popularity really. With more and more folks using moodle, its garnering a decent community, which is handy for modding and troubleshooting

 

Moodle here:

 

Ysgol Gyfun Gwyr Moodle

 

in face Moodle all across Swansea as the LEA put it in place:-)

 

GJE

Posted

From the IT Technical side VLE has never really come our way asking for recommendations and implementations. This is in the hands of our systems manager who will deal with purchasing the system

 

We did have a coordinator for all of this but times are hard and he has now returned back to the classroom as a Teacher. He did manage to setup Moodle and does keep it ticking over though i don't think he has the time.

 

The feedback from staff was its confusing, and not everyone is like IT teachers and technical staff, and if it does not have pretty pictures and simple non cluttered 18 size fonts then the battle is already lost.

 

We are searching for a new VLE but our local LEA has told us to sit tight for a few months.

 

We also have access to http://www.ramesys.co.uk/docs/Assimilate%20brochure.pdf which is Free as part of our LEA though its classed as a VLP

 

 

I have just registed for this and currently looking at its possiblities, and might be ideal for our primary schools in our federation. FREE

 

edu 2.0: the free, easy way to teach and learn online

 

 

I was talking to somone a few days ago and they suggested using joomla as a VLE, i had used this for websites and love it to bits the amount of templates and modules is great but still not convinced its idea but in searching for other schools using Joomla i stumbled on this.

 

 

Joomla! Schools - Websites for Schools

 

 

and sending you around in circles this post

http://www.edugeek.net/forums/edugeek-joomla-1-5-package/20099-joomla-vles.html

Posted

One option is to look at hosting your own SharePoint. We have done quite a bit of work on this and write a little bit about it.

 

Take a look at www.sharepointineducation.com

 

and our site www.twynhamschool.com/supportinglearning

 

For me the key to SharePoint is it is flexible and works straight out of the box. There is a new VLE component around the corner which looks great and users find it so easy to use.

 

You might also want to take a look at a presentation which overviews what we do with SharePoint:

 

Twynham School SharePoint presentation

  • 4 weeks later...
Posted
Does anyone know if pupil attendance\register will be automatically uploaded from SIMS.net to Fronter or any other platform? Hope I'm posting this in the right place!

 

Thanks

 

Taken from the Fronter website:

 

MIS Integration (7) Included for: Capita SIMS, Serco CMIS, Pearson Phoenix, RM Integris

 

There are a lot of other VLE's that will pull data from SIMS:

 

Frog

SIMS Learning Gateway

and I believe theres a module to carry this out via Moodle.

  • 1 year later...
Posted

My school had Moodle for several years.

yes it was free, but it looked really boring and empty and actually just looking at the thing was enough to turn off both staff and kids.

 

Then they paid out several thousand pounds for Fronter which had two major effects:

 

Because it cost money, therefore the management took it seriously and gave people responsibilities and organsied proper training.

 

Also, because Fronter automatically populates every class from SIMS - so people did not spend all their time copying childrens names onto group lists - like in the more basic VLEs. Instead they spent their time producing colourful resources.

 

In our school Fronter became "mainstream" where Sam Learning Moodle etc had been the preserve of a few staff (well 2 actually and no kids that I know of)

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now



×
×
  • Create New...