iLite’s Weblog

October 27, 2009

Download a trial version of the iLite Moodle Dashboard

Visit iLite to download the 7 day trial version of the iLite Moodle Dashboard.

There are some funky new additions to the Dashboard which include the multi-lingual support, improved User search functionality and the Course Relationship Map.

The Course Relationship Map is something completely unique to the Dashboard. As you can see in the image below, we can see that the Course – iLite Dashboard, has 8 Users. We can also see that 5 of the 8 Users have a small (+) sign below them. This indicates that they are enrolled in other Courses. By clicking on the (+) sign, we expand a 3rd level, which shows the Courses that this User has enrolled for. Hover over the icon to view the Course name.

You may be wondering what is the purpose of the Relationship map, well it is to help you see what Courses the Users are doing at a glance. If a Course has prerequisites, you can view if they have been met simply by calling up the Relationship map.

- Kirsten

courseRelationships

 

September 23, 2009

Dashboard going multi-lingual

It’s time for another sneak preview of the Dashboard. We have been hard at work for several months now trying to make the Dashboard unique, interactive and visually stimulating. New features include a multi-lingual function and has provisions so far for 6 languages, which are English, Spanish, Portuguese, Italian, French and German. We will look at adding more languages as we get closer to the release date.

Another new and exciting feature is the Degrafa graph inside the datagrid. This allows the scores to be more visually stimulating.  The courses that the user is enrolled for is also listed as well as their quiz results and the course interactivity.

-Kirsten

users

May 14, 2009

Dashboard Demo

Filed under: Flash, Flex, General, Moodle, PHP, dashboard, eLearning — ilite @ 5:15 am
Tags: , , , , , ,

homepageAfter a long process of development we are finally at a point where we can showcase a demo!

Log into http://www.ilite.co.za/eDash/#

User name:   james

Password: password

Remember guys, feedback is always welcome and appreciated.

- Kirsten

April 28, 2009

Stored Procedures

Filed under: AMFPHP, Flex, General, PHP — ilite @ 9:29 am
Tags: , , , , ,

I am working on a Flex application that needs to call a Stored Procedure using PHP. This proved to be a real challenge, and since I could not find a lot of information on how it was done, I thought that I would post it here. It might not be the best way of doing it, but it works for me.
The code is at the bottom so you can scroll down and skip the next bit out, I would.

For those of you that are still reading… wow! The library application required you to login into it using your domain username. This was passed to the application in the URL (http:\\mylibrary\index.php#username=MyGroup\Sean). When the application loads, it takes the username, passes it to a PHP page on the server that calls the MSSQL Stored Procedure and returns the users details.

The first step for me was to install the correct DLL’s and switch on the MSSQL extension. This proved to be quiet easy on WAMP, but a real pain on XAMPP. For some reason I could not get the extensions to register. My testing server runs WAMP, and the production server runs XAMPP. It was really annoying when it worked on WAMP but not XAMPP. Anyway, the problem was the DLL’s, so if you get a white screen, look there first.

Once that was working, I tested the PHP code, making sure that it returned values correctly. The PHP code is for AMFPHP.  It took a fair bit of testing to get it to work. In hind-site it might have been easier to do it in plain old vanilla PHP, but since the rest of the site is AMFPHP, I stuck to that route.

Part of the problem was the slash (\) in the username, and knowing how to escape it properly.

Once I got the data back from PHP, I moved on to the Flex side. Here the hardest part for me was how to read the URL and how to get the username from it. The code comes straight out of the help file, so for once Copy/Paste was an option.

I know it is not much, but I hope it helps.

Sean

Solution:

Make a few changes to your php.ini file.
allow_call_time_pass_reference = on
extension=php_mssql.dll (enable this extension)
extension=ntwdblib.dll

Place the php_mssql.dll file in the php extensions folder. Mine I placed in the php\ext folder.
Place the ntwdblib.dll file in the Windows\System32 folder

PHP Code to call the Stored Procedure – using AMFPHP:
//login.php
methodTable = array(
“byName” => array(
“description” => “User details by NAME”,
“access” => “remote”,
)
);
}

function byName ($username) {

$myServer = “myserver”;
$myUser = “myUser”;
$myPass = “myPassword”;
$myDB = “myDatabase”;

$s = @mssql_connect($myServer, $myUser, $myPass)
or die(“Couldn’t connect to SQL Server on $myServer”);

$d = @mssql_select_db($myDB, $s)
or die(“Couldn’t open database $myDB”);

//$username = $_GET['username'];

$partA = substr($username, 0,6);
$partB = substr($username, 6);
$username = $partA.”\\”.$partB;

$query = mssql_init(“GetEmployeeDetailsFromUsername”, $s);

mssql_bind($query , “@Username”, $username, SQLVARCHAR, FALSE, FALSE, 57);
mssql_bind($query, “@EmployeeNo”, &$Userno, SQLINT4, TRUE, FALSE);
mssql_bind($query, “@FirstName”, &$First, SQLVARCHAR, TRUE, FALSE, 50);
mssql_bind($query, “@LastName”, &$Last, SQLVARCHAR, TRUE, FALSE, 50);
mssql_bind($query, “@Email”, &$Email, SQLVARCHAR, TRUE, FALSE, 100);

mssql_bind($query, “RETVAL”, &$SQL_Count, SQLINT2);
$result = mssql_execute($query, FALSE);

echo $return = “”.$Userno.”".$First.”".$Last.”".$Email.”\n\r”;

return ($return);

}
}
?>

The code for the Flex file: (I have trimmed the code to only show the bit for the Stored Procedure)

<![CDATA[

import com.LoginUsername;

import mx.managers.BrowserManager;
import mx.managers.IBrowserManager;
import mx.utils.URLUtil;

private var bm:IBrowserManager;

[Bindable]
public var username:String;

private function init(e:Event):void
{
//Get Users
bm = BrowserManager.getInstance();
bm.init(“”, “Library”);

var o:Object = URLUtil.stringToObject(bm.fragment, “#”);
username = o.username;

fullname.text = username;

dispatchEvent(new LoginUsername(username));

}

[Event(name="LoginUsername", name="flash.events.Event")]

//Login.mxml

[Event(name="LoginDetails", name="flash.events.Event")]

//LoginUsername.as
package com
{
import flash.events.Event;

public class LoginUsername extends Event
{
public var uname:String;

public static const LOGINUSERNAME:String = “LoginUsername”;

public function LoginUsername(username:String)
{
super(LOGINUSERNAME, true, true);
uname = username;
}

override public function clone():Event
{
return new LoginUsername(uname);
}

}
}

August 26, 2008

August 19, 2008

Playing around

Filed under: Flex, General, Moodle, dashboard — ilite @ 6:05 pm

So maybe you have stumbled onto my postings about this ‘Dashboard’ that I am building, and you have wondered what it’s all about. So let me explain.

It all started when we becang to host and administer a Moodle site for a large company in the UAE. The site has 7 courses, close to 1000 users and about 50 plus groups.
Each group has it’s own enrollment key. Users are automatically added to the Group based on their enrollment key when they log in. We needed an easy way to view which users had done what training. We also had to do reporting on a weekly basis for all the users, Groups and Courses.

For kicks I started playing around in Flex, and slowly the Moodle Dashboard began to evolve. As I planned and hacked away at the code, people said to me, “Hey, could you add this, or that feature?” Some I have been able to do, others are on the “list”.

If you have looked at the Dashboard, but would liketo play around with it, then head on over to our Moodle site at http://www.ilite.co.za/moodle/ and play. Log in with any of the Bond charactors. The username is the name in lowercase, password is password. Alternatively register and access the site that way.

Tomorrow I’ll explain how we are able to add 50 enrollment keys to a course. If you do know, post the answer and let’s compare notes. If you don’t know, then stay tuned.

Sean

Dashboard Updated

Filed under: Flex, Moodle, dashboard — ilite @ 5:01 am
Tags:

So, another weeked has passed, or should I say another working weekend. We have updated the Dashboard once more, adding more reporting options to it. We also hope that by now the UI is more user-friendly. Previous attempts have been met with mixed enthusiasm.

Anyway, to the Dashboard http://www.ilite.co.za/dashboard/#

As mentioned the changes to the  current version include:

  1. Better UI layout
  2. More reports
  3. Updated PHP scripts

We are at the moment working on a wish-list of things to be added to the Dashboard, so you can help by voicing your opinion and making the ‘wish’ a reality. Or stay silent, and grumble because we have not done it.

The list:

  1. Create Users from the Dashboard
  2. Add Users to Groups
  3. Access Moodle
  4. Link to Facebook
Dashboard main screen

Dashboard main screen

July 25, 2008

Making Moodle more

Filed under: Flex, General, Moodle — ilite @ 12:10 pm
Tags: , , ,

Anyone who has ever used Moodle knows that it does many things well, but that it could do some things better. One of the things it could do better is reporting.

Currently running the reports in Moodle has proven to be a real pain. We have several groups and many users in each group. To get around the problem of generating a report for all the users and their grades, we built a ‘Dashboard’ using Flex 3 and PHP.

Basically the Dashboard provides an easy way to view and manage all the Users, Courses and Grades currently in Moodle. It allows you to select a Group, and then view all the Users in that Group, with all their courses and the Grades for each Course. Our Courses are built in Authorware and have a single Grade. The results of the query are displayed in a Datagrid, and you have the option of either printing the grid or exporting it to Excel. The latter proving to be the more popular choice.

We hope in the weeks to come to include more functionality in the Dashboard that will allow you to create Users and also assign users to Groups and Courses. Who knows, maybe this could be the start of a Flex based LMS…. We’ll see

March 15, 2008

F1 2008

Filed under: Flash, Flex, Mobile — ilite @ 6:07 am
Tags: , , ,

We have had another exciting week. Our F1-2008 application went live yesterday. This is the fourth version of this application. The application is a Flash Lite application that runs on a Symbian OS. We built the application for two different screen sizes, 176 x 208 and 240 x 320. An example of the 176 x 208 is the N70 and the 240 x 320 is the N95. Follow the link below to get the application.

F1 2008 at Handango

F1 2008 Main screenF1 2008 TeamF1 2008 DriversF1 2008 Track

In addition to the mobile phone application we have launched a website that mirrors the F1-2008. This site is built in Flex and has some really cool features like being able to view the tracks using Google Earth as well as the F1 Team Factories. Click on the link below to view the site.
iLite F1-2008

- Kirsten

March 10, 2008

Website Revitalized

Filed under: Flex, General — ilite @ 3:03 pm

Can you believe that it is Monday again and the start of another week. Well it is not as if my week actually had an end to it.

Most people enjoy a relaxing weekend with family and friends, but this weekend, Sean and I were working. To those who know us, it is nothing new. This weekend was the finishing touches on our website that had us working really hard. The final touches of anything can really be an irritation, especially when it looks good, but not quite good enough. So we tweaked and tweaked some more until we came up with the copy that we launched this morning. It’s our first real attempt at Flex, so it may be a bit raw.

http://www.ilite.co.za 

I played travel agent today, searching for flights from Durban to Johannesburg for the 19th of March. Sean has to fly up for a meeting. Exciting times, lets hope it will be fruitful. You would think that using the same airports the airport taxes would be the same price. Ah, but this is not the case!! you fly with mango (SAA’s Cheaper carrier) and you get to pay R247 approximately and then we hit BA. There you get to sit with a whopping airport tax of R740 approximately. Seriously, its the same airport … Come on people.

-Kirsten

Blog at WordPress.com.