On Fri, 3 Sep 2004, Thomas, Mark - BLS CTR wrote:

> I'm trying to list the keys of the template special variable, and this kind
> of thing doesn't work:
>
> template.keys
> template.list
> var.import(template)
>
> The template special variable doesn't seem to exist as a normal hash
> variable unless one of its keys are accessed directly, i.e. template.name.
>
> Now, I can always hard code the name and modtime:
>
> [% templatevar = { name = template.name, modtime = template.modtime } %]
>
> But I'd like to be able to list the META tags as well. Is there any way to
> do it?

The template variable is a reference to Template::Document object,
so it's not a hash (and thus can't be operated on via the hash
vmethods).  You can get a quick-and-dirty view of its contents like
this:

  [% USE Dumper %]
  [% Dumper.dump( template ) %]

If you wanted be able to iterate over it with something like the
keys vmethod, you could subclass Template::Document and add a keys
method like this:

  sub keys {
        # only return keys that don't begin with an underscore,
        # since TT won't show you those in a template anyway
        return [ grep !/^_/, keys %{ +shift } ];
  }

then you _should_ (the above solution is untested) be able to do
this in your template:

  [% FOREACH key IN template.keys %]
  [% key %] = [% template.$key %]
  [% END %]

I hope that helps (and works!).

Take care,

Dave

/L\_/E\_/A\_/R\_/N\_/T\_/E\_/A\_/C\_/H\_/L\_/E\_/A\_/R\_/N\
Dave Cash                              Power to the People!
Frolicking in Fields of Garlic               Right On-Line!
[EMAIL PROTECTED]                                  Dig it all.

_______________________________________________
templates mailing list
[EMAIL PROTECTED]
http://lists.template-toolkit.org/mailman/listinfo/templates

Reply via email to