+1 for classes and unique IDs! Agreed that each theme should just be CSS and presentation Jscript. I'm also a fan of not passing system preferences to the templates from individual Perl scripts. They're global system preferences, no? I think we should treat them as such. Less code and more simplified development :D. +1 for standardization and consistency as well in regards to naming. (For 3.8, I remember Paul being really good about hounding people regarding naming conventions.) I'm not sure what I think about using ajax based widgets. In theory, I like the idea, but I don't think it's a good idea for all of Koha to bust if someone has their Jscript turned off. Includes might be a decent compromise though. I think we do need to cut down on how much code is duplicated across different modules (or even in the same module in some cases). David Cook Systems Librarian Prosentient Systems P/L ABN 31 078 409 168 72/330 Wattle St, Ultimo NSW 2007 tel: 02 92120899 fax: 02 92120885 dcook@prosentient.com.au -----Original Message----- Date: Wed, 10 Apr 2013 07:23:04 -0400 From: Kyle Hall <kyle.m.hall@gmail.com> To: MJ Ray <mjr@phonecoop.coop> Cc: Koha Devel <koha-devel@lists.koha-community.org> Subject: Re: [Koha-devel] Koha.next: Consolidate OPAC themes? Message-ID: <CACpVHfxMAyDxOypPRUYX3eAhSR_a7HX0=+Pqfft82H00Qiq+jQ@mail.gmail.com> Content-Type: text/plain; charset="iso-8859-1" This these have been my thoughts exactly as well. I think it would be best if the templates were pure unstyled html that are well classed and all elements should have unique id's as well. Each theme should just be css and presentation javascript. In addition, I think we should completely remove the necessity of passing in system preferences to the templates from perl scripts, and switch to using a TT plugin for accessing system preferences. Ian also has a very good point about standard naming conventions. It would be great to get all the variations on naming wrangled into one standard version. Another thought I've had that would simplify Koha and keep it more DRY would be to implement ajax based widgets. For instance, both circulation.pland moremember.pl display a list of holds in a tab, but each is a separate implementation. If we just made this code a widget ( or even just a .inc file with all the required html and javascript ) we could reuse it on any page we wanted to. Kyle http://www.kylehall.info ByWater Solutions ( http://bywatersolutions.com ) Meadville Public Library ( http://www.meadvillelibrary.org ) Crawford County Federated Library System ( http://www.ccfls.org ) Mill Run Technology Solutions ( http://millruntech.com )