RE: [PEAR] Real world usage of IT [template] class?

From: Date: Fri, 05 Apr 2002 23:00:01 +0000
Subject: RE: [PEAR] Real world usage of IT [template] class?
References: 1  Groups: php.pear.general 
Request: Send a blank email to pear-general+get-1094@lists.php.net to get a copy of this message
i'm not sure what your goal is, but i've done some work similar to what you describe in #1. i have some writing about this here: http://dietrich.ganx4.com/site_projects.php, under the "PHP, PEAR and MVC" header. what i'd like to do is use the template introspection methods in ITX for "bidirectional templating". EG: map blocknames to table names or functions, and have block-variable names map to table fields, or hash keys in a hash returned from a function. then, the designer chooses from a library of predetermined blocks, each w/ predetermined variables. to get this really MVC, i use a controller object that loads the template object, introspects and loads the appropriate model (business logic object), and merges it's output into the view (template object). d. > -----Original Message----- > From: derek fong [mailto:pear@subtitled.com] > Sent: Friday, April 05, 2002 11:32 AM > To: Dietrich Ayala; PEAR General > Subject: Re: [PEAR] Real world usage of IT [template] class? > > > Hi Dietrich, > > Thanks for pointing me in the right direction! Do you have any small > samples of how this should all be put together? The approaches I have been > considering are: > > 1. Making an auto_prepend file that automatically looks for "standard" > placeholders on all pages, even though many of those placeholders may not > necessarily exist on a given page. The advantage to this is that a designer > would not have to ask for a given functionality to be added to a PHP script, > but would be able to choose from a library of standard ones that could be > included on any page without a PHP programmer's intervention. I'm not sure > if this is efficient or would slow things down, though. > > 2. Each page would parse only expected placeholder tags. The advantage is > that we know what we're looking for and only replace those placeholders that > are expected to be present on that page, so it should be fast. The > disadvantage is that if a designer wants to add new functionality (which may > already exist elsewhere on the site, but not on the current page), a PHP > developer needs to get involved to add that functionality to that particular > page (and remove any "dead" ones that are no longer used). > > 3. I think I saw a method of retrieving the names of all placeholders... > maybe go through each "standard and global" placeholder tag with their > expected content, then parse the remaining "unknowns" on a page by page > basis? Similar to #1, but this way, we don't do a global search for every > known, standard placeholder. > > I am sure there are other strategies for this. Can you or anyone else > provide some tips on how to approach the design? > > Thanks! > > -f > > > On 04.04.2002 1:10 pm, "Dietrich Ayala" <dietrich@ganx4.com> wrote: > > > If you use ITX (which extends IT), you have access to a method addBlockFile(), > > which does what you need. > > > > api docs are here: > > > > http://www.ulf-wendel.de/docs/itx/index2.html > > > > btw, I use IT(X) for all of my client's projects (albeit a modified version). > > It's my fav template solution, in spite of all the > > crap it gets from people on this list. Use the tool that's right for the job, > > eh? > > > > Dietrich > > > >> -----Original Message----- > >> From: derek fong [mailto:pear@subtitled.com] > >> Sent: Thursday, April 04, 2002 6:52 AM > >> To: derek fong; PEAR General > >> Subject: Re: [PEAR] Real world usage of IT [template] class? > >> > >> > >> Hmmm... so should I take it that nobody really uses PEAR's IT class? Too > >> bad, it looks like it could be useful... :( > >> > >> Anyway, if anyone does use it, maybe you can help me out with this one. > >> What is the proper way to include a file into an existing template which has > >> its own placeholders? I think I'm supposed to use the get_file() method, > >> but I can never seem to parse the placeholders in the file that's included. > >> > >> $tpl = new IntegratedTemplate("./"); > >> $tpl->loadTemplatefile("template.tmpl", false, false); > >> > >> // parse DMZ helper on right side of the page > >> $dmz_content = $tpl->getFile("template2.tmpl"); > >> $tpl->setVariable("DMZ", $dmz_content); > >> > >> $tpl->setCurrentBlock("dmz"); > >> $tpl->setVariable("DMZ_LIST", "-&nbsp;<a > >> href=\"test.php\">Name</a> > >> (#)<br>"); > >> $tpl->parseCurrentBlock("dmz"); > >> > >> $tpl->setCurrentBlock("main_body"); > >> $tpl->setVariable("USERNAME", "Derek Fong"); > >> $tpl->setCurrentBlock("main_body"); > >> ... > >> > >> What am I missing? > >> > >> -f > >> > >> > >> > >> On 03.30.2002 10:42 am, "derek fong" <pear@subtitled.com> wrote: > >> > >>> Hi, > >>> > >>> I am considering using the IT class for the first time in an upcoming > >>> project. Can anyone give me any pointers on how to most effectively set > >>> everything up? Any caveats? > >>> > >>> I have followed the docs on http://pear.php.net/ > >>> and while it seems pretty > >>> straightforward, it would be nice to see a real-world example of how > >>> everything comes together. > >>> > >>> Finally, as the first of what will probably become many questions, what is > >>> the best way of setting up form logic so that on first view, all the text on > >>> the page is black, but if there are any errors on the submission, the same > >>> page is returned, but with the relevant fields in red text? The only way I > >>> can see how to do that would be to actually embed the style in the code that > >>> replaces the placeholder. Am I correct? Is it considered "acceptable" > >>> to > >>> embed minimal display elements in the code (such as <span class=... or <font > >>> color=...) even though that's supposed to be all contained within the > >>> template file? > >>> > >>> Thanks! > >>> > >>> -f > >>> > >> > >> > >> -- > >> PEAR General Mailing List (http://pear.php.net/) > >> To unsubscribe, visit: http://www.php.net/unsub.php > >> > >> > > > > > > > > >

« previous php.pear.general (#1094) next »