On Thu, 2009-03-05 at 02:04 -0800, Michael A. Peters wrote: > Robert Cummings wrote: > > On Wed, 2009-03-04 at 18:01 -0800, Michael A. Peters wrote: > >> Robert Cummings wrote: > >>> On Wed, 2009-03-04 at 15:21 -0800, Michael A. Peters wrote: > >>>> Robert Cummings wrote: > >>>> > >>>>> To punt what is repeated over and over during runtime to a single > >>>>> compilation phase when building the template target. To simplify the use > >>>>> of parameters so that they can be used in arbitrary order with default > >>>>> values. To allow for the encapsulation of complex content in tag format > >>>>> that benefits from building at compile time and from being encapsulated > >>>>> in custom tags that integrate well with the rest of the HTML body. > >>>> I can't speak to those (and I have no opinion on template systems having > >>>> never used any of them. > >>>> > >>>>> To > >>>>> remove the necessaity of constantly moving in and out of PHP tags. > >>>> php does not require that you constantly move in and out of PHP tags. > >>>> There's at least one and possibly several pure php solutions that allow > >>>> one to never write a line of html but get beautiful dynamic html output. > >>> It doesn't require, but if you're not moving between them, then you're > >>> probably echoing your HTML, and that can be a maintenance nightmare. > >> echoing html involves mixing html and php. > >> Using an XML class (like DOMDocument) to build the document does not. > > > > So you punt the entire rendering of the HTML content to run-time > > execution one node at a time? > > > > Cheers, > > Rob. > > This is what I do. > I create the nodes as needed and add them to the parent nodes when I'm > done with them - and when the document is finished, add the various > content nodes to the body node, body/head nodes to html node, and then > use saveXML(); to get the output as x(ht)ml to send to the browser. > > If that's what you described then yes. Otherwise, then no - it's not. > > some example, IE to build my form - > > $xmlForm = $myxhtml->createElement("form"); > $xmlForm->setAttribute("id","records"); > $xmlForm->setAttribute("method","post"); > if ($multipart > 0) { > $xmlForm->setAttribute("enctype","multipart/form-data"); > } > $xmlForm->setAttribute("action",$formaction); > $xmlForm->setAttribute("onsubmit",$onsubmit); > $hiddenDiv = $myxhtml->createElement("div"); > $hiddenDiv->setAttribute("id","hidden_inputs"); > $hinput=hiddenInput($myxhtml,"coord_pref",$coord_pref); > $hinput->setAttribute("id","coord_pref"); > $hiddenDiv->appendChild($hinput); > $hinput=hiddenInput($myxhtml,"alt_pref",$alt_pref); > $hiddenDiv->appendChild($hinput); > $hinput=hiddenInput($myxhtml,"temp_pref",$temp_pref); > $hiddenDiv->appendChild($hinput); > > // etc .. > > if(isset($imgref)) { > $hinput=hiddenInput($myxhtml,"imgref",$imgref); > $hiddenDiv->appendChild($hinput); > $hasimage=1; > } > > if ($museum == 1) { > if (isset($validarray['museum'])) { > require('xml_record_museum.inc'); > } else { > $hinput=hiddenInput($myxhtml,"museumid",$rcd_musid); > $hinput->setAttribute("id","museumid"); > $hiddenDiv->appendChild($hinput); > $hinput=hiddenInput($myxhtml,"museum_name",$rcd_musnum); > $hinput->setAttribute("id","museum_name"); > $hiddenDiv->appendChild($hinput); > } > } > if ($editrecord == 1) { > $hinput=hiddenInput($myxhtml,"recordid",$record); > $hiddenDiv->appendChild($hinput); > } > if (isset($validarray['species'])) { > require('xml_record_species.inc'); > } else { > $hinput=hiddenInput($myxhtml,"herpid",$rcd_species); > $hinput->setAttribute("id","herpid"); > $hiddenDiv->appendChild($hinput); > } > > ... > > $xmlForm->appendChild($hiddenDiv); > $submitDiv = $myxhtml->createElement("div"); > $submitDiv->setAttribute("id","submitdiv"); > $submitDiv->setAttribute("class","formFloat"); > > $submitInput = $myxhtml->createElement("input"); > $submitInput->setAttribute("type","submit"); > $submitInput->setAttribute("id","submit"); > $submitInput->setAttribute("name","submit"); > $submitInput->setAttribute("value",$submit_val); > $submitDiv->appendChild($submitInput); > > $xmlForm->appendChild($submitDiv); > $contentDiv->appendChild($xmlForm); > > The various requires are files that create various parts of the form. > They are in individual separate files because some of them are used in > other forms and I don't like to have replicated code that is > functionally equivalent. > > hiddenInput is a simple function I wrote that returns an input node of > type hidden - which I can (when needed, IE if I want to add an id tag > for javascript hook) I can continue to modify. > > function hiddenInput($document,$name,$value) { > $input = $document->createElement("input"); > $input->setAttribute("type","hidden"); > $input->setAttribute("name",$name); > $input->setAttribute("value",$value); > return($input); > } > > Does that answer your question? That was what I thought. Cheers, Rob. -- http://www.interjinn.com Application and Templating Framework for PHP -- PHP General Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php