Hi everyone, Steve, Chris and I have just had a little discuss about the design of the theme and language setting process. This is the resulting proposal: There are three levels where the theme can be found: 1) on the borrowers table. Each user can set there prefered theme and language. 2) on a new workstation table. This table will store an IP address for a machine and various settings will be possible. At the moment only theme and language. Perhaps also a list of admissible themes and languages? 3) in the systempreferences table. Each script shouild have the following template selecting line: my $template = gettemplate("opac-main.tmpl", "opac"); for example where the template is opac-main.tmpl The gettemplate subroutine is in Output.pm. The individual scripts dont need to "use HTML::Template;" only Output.pm The gettemplate sub goes and looks in the above three places in the order specified. All of these settings will can be space seperated (maybe they should be comma seperated?) lists: like "sp fr en" for language. And it will search in that order. There will be no cookies! This is the first approx. If people have some special requests we can add an options hash to the gettemplate argument to control special behaiviour but I wont do that until we need it. Progress: The gettemplate routine is written! But I need to do some more stuff to get the user and IP preferences settup..... All feedback welcomed. Finlay Katipo Communications.