On Thu, 2010-10-21 at 08:01 +0200, Peter Lind wrote: > On 21 October 2010 04:59, David McGlone <david@xxxxxxxxxxxxx> wrote: > > On Thu, 2010-10-21 at 04:05 +0200, Rico Secada wrote: > >> Hi. > >> > >> I am working on a small system where I am both trying to avoid code > >> duplication and at the same time I am trying to keep the presentation > >> logic separated from the application logic. > >> > >> I am using sessions and are avoiding "headers already sent" problem by > >> keeping the HTML out of the application. > >> > >> For example, I would like to have a common header.php file, but it is > >> difficult to create this since one file needs to have some specific > >> Javascript located in the <head> </head> tags, but the other files > >> doesn't need this. > >> > >> Another file needs to have a specific "onload" call in the <body> tag, > >> while yet another file also needs to have an "onload" call, but with > >> different attributes. > >> > >> I have been looking around in other systems to see what kinds of > >> solutions are being used - as inspiration. > >> > >> I have been thinking about the following solutions: > >> > >> 1. Create only ONE header.php file that contains a lot of conditionals > >> depending on what file is including it - the output of HTML/Javascript > >> changes. > >> > >> I believe this would turn into a very ugly hack. Difficult to maintain. > >> > >> 2. Create a HTML generating class with a set of methods that each > >> contains an adequate amount of parameters. Each method maintains its > >> own HTML tag. For example, docType($type) would generate the doctype > >> specification. > >> > >> I believe this is a "cleaner" solution, but the problem with code > >> duplication isn't avoided. > >> > >> Some of the presentation logic contains conditionals and the HTML > >> changes when the conditional changes, hence the header content changes, > >> but the <doctype>, <html>, and <head> doesn't necessarily change and > >> they would get duplicated a couple of times in some files. > >> > >> 3. Avoid the problem all together, use output buffering and completely > >> forget about separation between application and presentation. > >> > >> I hope I make sense. > >> > >> Any thoughts on these kinds of problems? > > > > sounds like a job for smarty http://www.smarty.net/ > > > > I've used smarty and it's nice. > > > > How does Smarty solve this problem? Just curious. from what I understood from his post He mentions he wants to separate the application and presentation, code duplication is avoided and it's a "cleaner" solution and #2 above sounds like he's describing a smarty template. I'm not 100% positive it will help him completely, but it does do a lot of the things he mentions. -- Blessings, David M. -- PHP General Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php