Experimenting with Rogo

My usual role in working with assessment software is inputting questions and creating assessments, so my thoughts are going to reflect this.

Obviously, with any new piece of software there’s a few howls of “Why won’t it do this???” “How on earth do I do that?”  I just have to say to myself … this too will pass.  And Rogo seems to be – so far – a very intuitive system.

What I’m more concerned about is things that will slow my workflow, and I’ve hit a couple – one which resolved itself, and one which hasn’t yet …

1) The automatic numbering system works against the one that we have established over the last five years.

Rogo has the pattern of numbering question stems A, B, C, D etc and numbering options 1, 2, 3, 4 etc.

Our existing system numbers stems (i), (ii), (iii) etc and options A, B, C, D etc. Numerals are used on diagrams (as in “What is the shaded area at 3?”)

I’m not saying that our system is perfect but … it works. And more importantly, we have upwards of five thousand questions configured in that way.

It seems that we CAN turn off the numbers on options, but we haven’t yet found out if we can take off letters on stems.

2) In the past, to support students who need to take the exam in a paper-based form, and as a back-up in case the system goes down, we have evolved a template to do this.  It’s a one click, load the template process; it automatically adds page breaks and replaces dropdown lists with paper-friendly boxes.  Are we going to be able to do this in Rogo?  Or will I go back to the pre-template system of making the changes to the html manually in Dreamweaver?

A third problem resolved itself beautifully … I regularly create a crib sheet with the correct answers for examiners to use to check the paper.  In Perception, you need something in the answer boxes before it will share the answers with you (because of the way we have set up the system.  I therefore have a little tool in Firefox that automatically fills in forms, and I was most disappointed that it didn’t work in Rogo – until Jon showed me that simply submitting the paper gave me a full set of answers – which is MUCH easier.

I should add that by the time 8it reaches the students, they will not be in this happy position …


Rogo Install – directory permissions

For Rogo install, we had to give the Apache user permissions to write to various directories (https://suivarro.nottingham.ac.uk/trac/rogo/wiki/Permission):

  • /help/staff/images
  • /help/student/images
  • /media
  • /temp
  • /qti/imports (not in Wiki at the time)
  • /qti/exports (not in Wiki at the time)
  • /config (only for install to allow config.inc.php to be written. Not on Wiki at the time)

To find out the user/user ID and group/group ID for the Apache user, I did the following:

  • In Putty, “ps aux | grep apache” to find out username of Apache user (wwwrun)
  • Looked in etc/passwd to find out user ID (30) and group ID (8) – wwwrun:x:30:8:WWW daemon apache:/var/lib/wwwrun:/bin/false
  • Checked group/group ID in etc/group
  • In WinSCP, changed permissions, giving the above user/group info: user = wwwrun [30], group = www [8]. Gave this user permission over the whole help directory.

Rogo install problems

On trying to install Rogo 4.2 for the first time, we came across the following issues.

On going to /install/index.php, all we saw was two errors, 103 and 104, with no explanation. On looking in the code we saw that these were caused by the /qti/imports and /qti/exports directories not being writeable by the Apache user. These weren’t mentioned in the File System Permissions page on the wiki (https://suivarro.nottingham.ac.uk/trac/rogo/wiki/Permission), but are now.

Having made these writeable, the install page then displayed input boxes, but without any labels. We realised this (and the lack of text for the errors above) was probably caused by the language file not being loaded properly. After a bit of debugging we discovered that in line 53 of classes/lang.class.php, the str_replace function was replacing the slashes in $_SERVER[‘PHP_SELF’], as $cfg_root_path is just “/” (as it would be for any installation in the webroot directory). I would guess the purpose of this str_replace is to remove the top level directory from $_SERVER[‘PHP_SELF’] for installations that are in a subdirectory of the webroot? Removing the str_replace function works for a webroot installation, but I’ve suggested a more complete solution below (though the if condition might need to be more rigorous). Another thing to note is that $cfg_web_root already has a “/” after it (as defined in install/index.php, line 45), and another slash is added in classes/lang.class.php, line 53 – I’ve changed that too below

Modified code (classes/lang.class.php, line 53):

if($cfg_root_path !== "/") {
     $self_path = str_replace($cfg_root_path, '', $_SERVER['PHP_SELF']);
else {
     $self_path = $_SERVER['PHP_SELF'];
$lang_path = $cfg_web_root . "lang/$language" . $self_path;

Once this was fixed, it was possible to complete the form with the necessary data for installation. However, the install still failed as it was not able to write the /config/config.inc.php file, as the /config file was not writeable by the Apache user. Having changed this (and deleted the database tables which had already been created), the install was attempted again and worked successfully.

Added to Trac, Ticket #680 – https://suivarro.nottingham.ac.uk/trac/rogo/ticket/680

CSS – display: inline-block in IE7

I was having some problems with getting the layout of the buttons for the JQuery Tools Scrollable Navigator plugin to work in IE7 for CSlide, e.g. https://learntech.imsu.ox.ac.uk/cslide/collections/index/87.

After a bit of searching I found this: http://fourwhitefeet.com/2009/02/css-display-inline-block-in-ie7/, so thanks to Cathy at http://fourwhitefeet.com.

It turns out that, in IE7, display: inline-block only works on inline elements, and I was trying to use it on divs. The trick is to wrap the content of these elements in an element that is natively displayed inline, e.g. span. For my purpose, I could just replace my divs with spans (they probably shouldn”t have been divs in the first place, but I’d mutilated the examples for Scrollable to gte where I was). It should also work by just adding spans around the content that you want to be ‘inline-block’, but inside the ‘block’ element, e.g.

<div><span style="display: inline-block">My Content</span></div>