Re: [PHP Template] Another batch of ideas

From: Date: Fri, 18 Feb 2000 17:59:21 +0000
Subject: Re: [PHP Template] Another batch of ideas
References: 1  Groups: php.template 
Request: Send a blank email to php-template+get-154@lists.php.net to get a copy of this message
Andrei Zmievski wrote: > > After reading through Perl's HTML::Template docs I think we can steal > some ideas from them. Let's talk if these would be useful or not. > > - Automatic escaping of variable contents when printing into the output > optional control through escape=true/false attribute > > - Assigning values to vars inside a specific section. I'm not sure if > this would be useful or not. > > - How template path is figured out. The HTML::Template does this: > > The file specified can be a full path - beginning with a '/'. If it > isn't a full path, the path to the enclosing file is tried first. After > that the path in the environment variable HTML_TEMPLATE_ROOT is tried > next, if it exists. Next, the "path" new() option is consulted. As a > final attempt, the filename is passed to open() directly. > > Instead of HTML_TEMPLATE_ROOT, we could have an .ini setting. It could > also check doc_root. > > - Having a warning if trying to assign to a variable that is not > mentioned in the template. > > - Having a parameter that specifies whether the parsed template is > cached. > > - Having something like HTML::Template's __FIRST__, __INNER__, __LAST__ > special variables that get activated when we're in first, middle, or > last iteration of the section loop. Maybe also a number __LOOPNUM__ or > something that is evaluated to 1, 2, 3, etc. > > -Andrei > * If it's never finished, you can't prove it doesn't work. * I really like that last idea. But instead of __FIRST__ we should use another prefix convention, like #VARNAME for variables internal to the template. So $varname for environment variables, %varname for config file variables and #varname for internal template variables. Some variable ideas for sections: #FIRST boolean, true if in the first section loop #INNER boolean, true if after #FIRST #LAST boolean, true if in the last section loop #PREV int, value of previous loop row #LOOP int, value of current loop row #NEXT int, value of next loop row #EVEN boolean, true if current #LOOP value is even #ODD boolean, true if current #LOOP value is odd #TOTAL int, value of total number of rows Also, we may want to define variables within sections, in the case of nested sections with {#sectionname:varname} By default, the current section will be assumed. So an example, we want to color every other row different, and output the total at the bottom: <TABLE> {:section myrows} <TR> <TD bgcolor={:if #EVEN}#ff0000{:else}#00eeff{:/if}> table cell data </TD> </TR> {:/section myrows} There were {#myrows:TOTAL} rows of data. </TABLE>

« previous php.template (#154) next »