From: Marc G. K. <ma...@sq...> - 2005-07-21 14:26:55
|
Hello Jürgen, Jürgen Baier wrote: > Hello Marc, > > >> SquirrelMail 1.5.1 CVS is the version where we made a start on >> templates. So if you are working on 1.4.5 I advise you to switch to >> 1.5.1 because >> we will not backport template related changes to 1.4.x. > > OK, did it. I do also see your point that php is already some sort of > templated. > >> We are interested in your contribution and your feedback on how we >> implement templates in 1.5.1. Could you drop me a mail with your >> template efforts so we could discuss how to change it to our template >> class or how we should change our template class? > > What I did now was to adapt my templated files so that they work with > 1.5.1 CVS (took me a day, sorry for the delay...). In the attachment there > is my template-file and the php-file for left_frame.php. It is still > using smarty because I´m using loops for the output. This can be changed > to php, if necessary. > Yes, in php it's even more easy then in Smarty. > The template is designed so that its output is as close to the previous > output of left_frame.php as possible. Takes the flag for the advanced_menu > into accout and should still display the hooks. > > What do you think about it? > I looked at the source quickly without installing Smarty. I think it's a good start but in the end we probably will end up with a separate Template for the mailbox-tree alone (so you can include it as block in the main template). The pageheader related code will also be part of a separate template and we should introduce a footer template where we can display some error reporting. Another thing that I would do different is the js code. I would place it in an external file and include that file in the head section (see page_header.php). And if you are an expert in JS then safe us from current js code and create a better js based mailbox tree ;) Also remove all display related code in left_main.php that is replaced by left_main.tpl. I understand you left it where it was so we could see what you changed but left_main.php is a lot more readable without al the ugly js and css blocks. The problem with the template block for a mailbox-tree is how to feed that block with the mailbox-tree. Personally I think we need to define a new structure for the mailbox-tree containing a tree object containing i.e. account information and the a separate array with mailbox objects containing the per mailbox related information (seen/messages/recent info, flags, virtual mailbox:yes/no, subscribed:yes/no, etc etc). The object should also contain events like on_expand and on_collapse so we could retrieve the the sub mailboxes on expand instead of retrieving all the subscribed mailboxes and status info in one piece (quicker when you deal with many mailbox folders). The Tree object should also contain hiearchy related information so you could request information if a mailbox has children, is the first or last sub etc etc. Based on that info we could create multiple templates for the mailbox tree. I.e. the one in left_main.php, a dropdown list, a tree with checkboxes for folders.php in order to do subscriptions. This all means we need to do some changes in the architecture and have to find a way to create a mailbox-tree template which can be easily adapted to the future mailbox-tree. I think it should be possible to make use of current structure and adapt the template when the future structure is ready. To summarize: I think you should focus on the mailbox-tree generation and optionally give us information how to feed the template with the internally used object and what the consequences are if we change the object structure. The rest of left_main.php is easy to adapt and doesn't contain much html. I cc'd this message to the devel list so that others can also give their opinion and if needed correct my views ;) Can you please forward your template code to the devel list so they know where we are talking about? Regards, Marc Groot Koerkamp. |