RE: [PEAR] Real world usage of IT [template] class?
| From: | Dietrich Ayala | 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", "- <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
> >>
> >>
> >
> >
> >
>
> >