Re: [Phpslash-devel] rfe to template.inc
Brought to you by:
joestewart,
nhruby
From: Matthew L. <lei...@ma...> - 2004-01-10 07:02:39
|
Hi guys, I hope it's not too late to chime in on this, but it seems like this enhancement makes the unnecessary assumption that all templates are HTML-like and use <!-- --> for comments. I have templates that write JavaScript and you can imagine other text formats that can be templated. Why not have template::parse add some variables by default? You'd still have to put them in the templates, but there'd be a standard way to access a template's file name. You can extend PHPLIB's template to do what you want as well. --Matt On 12/30/03 9:49 AM, "Mike Gifford" <mi...@op...> wrote: > Hello, > > Presently Back-End.org is using template.inc as is and adding in > template header/footer comments with each template just as phpSlash and > (and most other phplib template driven apps likely do). > > In talking to the Back-end.org team though, it seems like the following > modification to template.inc would make it easier for us to ensure that > the file names are accurate and easily accessible. > > > cvs diff phplib/php/template.inc > Index: phplib/php/template.inc > =================================================================== > RCS file: > /cvsroot/back-end/back-end0.7.x/class/phplib/php/template.inc,v > retrieving revision 1.1.1.1 > diff -r1.1.1.1 template.inc > 909c909,911 > < > --- >> >> $str = "<!-- START $filename -->' . $str . '<!-- END $filename -->'; >> > > > If we implement this we'll have a lot of header/footer comments to delete and > I'd just like to try to keep this in step with phpSlash if we can. > > > I'd also like to contribute the following javascript which can just be > inserted into a block to easily identify which templates are where. > > > <script type="text/javascript"> > <!-- > // Code Contributed by Lasse Nielsen - http://www.infimum.dk > function convert(node) { > if (!node) {node = document.body;} > > switch (node.nodeType) { > case Node.COMMENT_NODE: > var text = node.nodeValue; > if (text.substr(0,7)==" START ") { > var newNode = createNewNode(text.substr(7)); > node.parentNode.replaceChild(newNode,node); > } > break > case Node.ELEMENT_NODE: > for (var i=0;i<node.childNodes.length;i++) { > convert(node.childNodes[i]); > } > break; > default: > break; > } > } > > function createNewNode(text) { > var a = document.createElement("a"); > a.href = > "/admin/BE_editTemplateAdmin.php?submit=edit&file="+escape(text); > var img = document.createElement("img"); > img.src = "/images/BE/buttons/spacer.gif"; > a.appendChild(img); > return a; > } > --> > </script> > > <input type="button" value="Convert!" onclick="convert()"> > > > Mike -- |