Re: [PHP Template] Revised proposal

[email protected] (Dan Libby)
Newsgroups php.template
Message-ID <[email protected]>
Andrei Zmievski wrote:

> On Wed, 16 Feb 2000, Dan Libby wrote:
> > 2) I think there are issues with include.  Suppose that:
> >
> > designer creates template a.
> > developer writes code to load and fill in vars for template a.
> > designer (or someone) later includes template b from template a.  template
> > b has variables not filled in by code.  This is broken.   I suppose the
> > same is true if designer goes back and adds a random new var to template
> > a, but it just seems problematic to me.
>
> So the designer shouldn't create any new variables that are not filled
> in by the code. If template A includes template B, then template B will
> be expanded into A at tpl_load() time so any variable that's assigned in
> A will be assigned in B as well.

Right.  I guess the problem I see is that when people do an include they expect
it to be self-contained.  So in the above example, template b may have been
written by someone else 3 months before, and the designer suddenly says, aha --
I could use that here.  So there has to be understanding by everone involved
that include has a different meaning here than in other systems and that such a
template would have  to be thoroughly checked to make sure it doesn't use any
unknown variables.

This may just be a process issue, or maybe it won't come up as often as I fear.

> > Another thing is the issue of how to specify the include files.  Is the
> > path relative or absolute? Should absolute paths be allowed? If relative,
> > is it relative to the current template or to the current request?  I would
> > tend to say that it should be relative to the parent template, or if
> > absolute, then that is relative to doc_root, not file system root.
>
> We could have it either relative to parent template or have
> tpl_set_root() to set the root template directory for the application.

I'd prefer defaulting to doc_root.  Then we could have tpl_set_root allow an
override for someone
that really wants to use something elsewhere in the filesystem (depending on php
settings).

> > 4) still not convinced of need for config vals.  Why couldn't PHP code
> > load any needed values and fill them into the regular vars?
>
> Let's say the designer sees a commonality between different templates
> and decides to split out the common portion and include it in each
> template via {{include: ..}}. She also makes a new section in config
> file which has value just for that new included template. With
> {{config:...}} she wouldn't need to bother the developer to load the new
> section and assign it to template - that's #1. Also, the config vals in
> the included template will automatically override the config vals in the
> parent template but only within its scope. Example:

Okay, sounds reasonable enough.  I'm all for flexibility.

> > 7) I think that tpl_getvars() is useful so you can determine if a
> > particular value has been set or not.
>
> tpl_getvars() should probably take an optional varname if you want to
> find out the contents of just a particular variable.

agreed.

-dan
danda.vcf (text/x-vcard, 304 B)
begin:vcard 
n:Libby;Dan
tel;work:650-210-2356
x-mozilla-html:TRUE
url:http://www.epinions.com
org:Epinions.com;Engineering
adr:;;;;;;
version:2.1
email;internet:[email protected]
title:Morlock
note:We're hiring at epinions.com.  Engineers, site designers, QA -- we need you.
fn:Dan Libby
end:vcard
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.