Forum .LRN Q&A: Re: navigation changes in dotLRN: RFC

Posted by Orzenil Silva Junior on
Thank you Rafael to bring this discussion in the community.

Next september we are going to initiate usability tests with dotlrn within communities of practice and e-learning program for a group of people in the corporate sector. We have similar programs running with other groups and not rare we are facing the necessity to develop easier interfaces to make dotlrn accessible to a growing diversity of users.

I think you pointed a great weakness in dotlrn interface. Our experience have been showing us that tab structure really create a false sense to users and frequently people feel very discomfortable with their experience with this structure. People claims too there are links that could be immediatly acessible from tab structure instead buried in the interface.

I tried Selva-theme today in a test installation and i think it represents a good approach to improve the quality of dotLRN associated to usability issues. I made some screeshots and uploaded them to . I did little modifications to Jeremys' code to get header_logo change working and putting Selva Theme as a option for portal template layout. The idea about submenu structure is really interesting and will be a great enhancing to dotlrn interface when fully implemented.

Our approach to usability tests will follow heuristic evaluation methodology developed by Nielsen and modified for an evaluation of e-learning programs by Reeves et all (see for example
We are not totally committed with this approach yet but we have a number of papers published here in Brazil using Reeves' approach and some of them could be used in our work. I really appreciate if you could put available documentation developed by Dorian and others.

Thank you.


Posted by Jeremy Monnet on
Hi Orzenil !

That's nice you did the job to use selva theme for portal template, but do you think (as I do) that we should remove completely the choice for such a template (at least from the admin menu) ? I mean, with css and class tags, anyone is able to completely change the layout without changing the html code generated. Moreover, it will be more difficult to go closer to xhtml compliance (and full coherent theme) if every kind of package can change layout of its own parts.

Also, I would like to know how you did to move mt Files and and My Calendar to the submenu ? (I mean what manner did you choose to achieve this goal)

And my last thing : how would you implement the fact that a "top" menu (actually the tab) would be always the same tabs, and what would change really would be only the submenu. The result to achieve is the behaviour you can see in the MockUps pictures that I will add as soon as possible in the Selva directory on my web site ( ). At the moment I have found several ways to do it (static menu, portal by default (with the current portal in the submenu) but there are always something worrying me : or it is not understandable choice from the developper point of view, or it is not from the user ....


Posted by Jeremy Monnet on
Hi again,

I looked at different ways of implementing a kind of "static" menu for the tabs.

The goal is what is what is described in the post of Rafael : having a tabbed static menu (My Space, Courses, Preferences) that should qute never change (we are thinking if we should write the name of the community we're in, in case we're in one for example), and the menu that is now in the tabs (so the portal pages and control panel links) would move to the submenu.

In this view people would always have a reference and a contextual menu.

Now here are a few tries I made and the problems I had. Maybe you can help me find the good solution to solve them ?

-> I tried a few static links (written by hand in the adp). My problem is that portlets should be in a page, and to be referenced a page should be in a portal. So I tried to create a virtual portal with only the static pages. The problem is I don't how to reach these pages ?
-> I then tried to insert my pages in the default portal (My dotLRN workspace), but the fact is that in this case the page also appears in the contextual submenu of "My Workspace" (this is how I called the link to /dotlrn/index in the static menu, to make the difference with "My Space" page)

So the only thing I'm thinking about now is to do the last solution, and add conditionnals in the TCL procs to say "that's the page I use on top so I don't put in the submenu", but that's dreadful, isn't it ?

Hope you can help me make the right choice ! :-)


Posted by Orzenil Silva Junior on
Hi Jeremy,

Sorry for this late response :-)

I don't know if i am going totally wrong but i suspect an approach to get tabbed static menu in dotLRN is by means of new callbacks implemented for openacs HEAD. see

I said i just suspect because i am still reading about callbacks. As i see the very goal of callbacks -
"to promote reuse of standard pages and functions by removing the need to create per-package versions of these" - fits well in the issues you are dealing. Indeed callbacks seems to be in the near future a simple, flexible alternative to service contracts. As we know tab structure (pages) in dotlrn is today provided by service contracts defined in portlets.

As i said i am not sure i am understood correctly callbacks but i saw examples from HEAD wich administrative links for certains packages were created with callbacks. see for example forums package code ( forums/tcl/forums-callback-procs.tcl)

ad_proc -public -callback navigation::package_admin -impl forums {} {
return the admin actions for the forum package.
} {

What do you think? Did you already explore this feature? Is it fits to what you are doing?

I see Dirk Gomes, Dave Bauer and DeeDee Kane are working in backporting callbacks from HEAD to 5.1 so we could use it with dotlrn 2.1. see

Maybe we could contact them to see if callbacks could help you deal with tab structure. I think Andrew Grumet
( could evaluate it too and dismiss or confirm this suspicion.