Re: [PHP Template] Recursive hide behavior

[email protected] (Monte Ohrt) Fri, 03 Mar 2000 10:07:26 -0600
Newsgroups php.template
Organization ispi
Message-ID <[email protected]>
Andrei Zmievski wrote:
> 
> On Wed, 01 Mar 2000, Dan Libby wrote:
> > From a syntax perspective, 3 & 4 should be identical, so long as both have unique
> > ids.  1 & 2 are nice to have, but not strictly necessary, since all
> > variables/sections could be explicitly listed.  For completeness, none should also
> > be an option, even though it is the default.  (HTML usually works that way)
> >
> > So I would see the syntax as looking like:
> >
> > autohide="all" or
> > autohide="sections" or
> > autohide="vars" or
> > autohide="$section1" or
> > autohide="$section1,$var1" or
> > autohide="sections,$var1" or
> > autohide="vars,$section1"
> 
> Well, I don't think we should put $ in front of sections... They are not
> really variables. We'd have to do something like:
> 
> autohide=#vars,section1
> 
> But #vars is not really a variable. Hmm, maybe
> 
> autohide=<variables>/<sections>, some examples:
> 
> autohide=all
> autohide=vars/section1
> autohide=$var1,$var2/sections
> 
> Or use ':' instead of '/', and use '/' for referring to section
> variables like $section1/foo. Sort of like a 'path' to a variable.
> 
> > An alternative syntax that may be easier to parse is to have multiple autohide
> > statements, eg:
> >
> > {{section:foo autohide="section1" autohide="$var1"}}
> 
> I thought about this, but then what if you have autohide="$var1"
> autohide="all"? Ambiguity land.
> 
> BTW, I was thinking we'd use " only for constant strings, not to
> delimiter attribute values.
> 
> -Andrei
> 
> "Later in this talk, I intend to define
>  the universe and give three examples." -- Larry Wall
> 

I've been trying some different situations, and I think we can live with
this subset of functionality:

autohide=none
autohide=all
autohide=any
autohide=vars
autohide=sections

I haven't found a situation where I actually need finer control, but if
you *really* need more control on a per variable or section basis, you
can overcome this with IF logic and more section wrappers. I bit more
work for these rare cases, but this keeps the language syntax easy.
default might be autohide=all.

Let me know if you have situations where you need more control, we'll
take a look.


Here is an example. I threw in the {{altsection}} tag just to spur some
discussion :-)


<TABLE>
        <TR>
        {{section sec1 autohide=all}}
                <TD>Category: {{ $category }}</TD>
                {{section sec2 autohide=any}}
			{{* this section hides if headline OR date are emtpy *}}
                        <TD>
                        Article: {{ $article_headline }}
                        Date: {{ $article_date }}
                        </TD>
                {{altsection}}
			{{* this displays if sec2 was hidden *}}
                        <TD>
                        No articles to show
                        </TD>
                {{/section}}
        {{/section sec1}}
        </TR>
</TABLE>