[Templates-cvs] cvs commit: Template2/todo_misc README Template-Provider.pm.diff cache_plugin jonas_docs jonas_segf tttp xmlview
cvs@template-toolkit.org
cvs@template-toolkit.org
cvs 07/02/09 16:36:15
Added: todo_misc README Template-Provider.pm.diff cache_plugin
jonas_docs jonas_segf tttp xmlview
Log:
moved todo files to new location
Revision Changes Path
1.1 Template2/todo_misc/README
Index: README
===================================================================
This contains various bits and pieces that probably shouldn't be forgotten about.
This was the 'todo' directory, but it clashed with the 'TODO' file on OSX so I
had to rename it.
A
1.1 Template2/todo_misc/Template-Provider.pm.diff
Index: Template-Provider.pm.diff
===================================================================
--- /usr/lib/perl5/site_perl/5.8.4/i686-linux-thread-multi/Template/Provider.pm 2004-01-30 18:37:50.000000000 +0000
+++ Template/Provider.pm 2005-12-18 00:50:02.264515495 +0000
@@ -418,7 +418,7 @@
if (defined $size && ! $size) {
# caching disabled so load and compile but don't cache
if ($compiled && -f $compiled
- && (stat($name))[9] <= (stat($compiled))[9]) {
+ && $self->_mtime($name) <= (stat($compiled))[9]) {
$data = $self->_load_compiled($compiled);
$error = $self->error() unless $data;
}
@@ -752,8 +752,8 @@
my ($slot, $head);
# extract the load time and compiled template from the data
-# my $load = $data->{ load };
- my $load = (stat($name))[9];
+ my $load = $self->_mtime($name);
+# my $load = (stat($name))[9];
$data = $data->{ data };
$self->debug("_store($name, $data)") if $self->{ DEBUG };
@@ -800,6 +800,12 @@
return $data;
}
+sub _mtime
+{
+ my ($self, $name) = @_;
+ my $load = (stat($name))[9];
+ return $load;
+}
#------------------------------------------------------------------------
# _compile($data)
1.1 Template2/todo_misc/cache_plugin
Index: cache_plugin
===================================================================
From: Perrin Harkins <perrin@elem.com>
X-Mailer: Mozilla 4.7 [en] (X11; I; Linux 2.2.16-22 i686)
X-Accept-Language: en
MIME-Version: 1.0
To: templates@template-toolkit.org
Content-Type: multipart/mixed;
boundary="------------A76E8171DCE73B663B9DA377"
Subject: [Templates] RFC: Template::Plugin::Cache
Sender: templates-admin@template-toolkit.org
Errors-To: templates-admin@template-toolkit.org
X-BeenThere: templates@template-toolkit.org
X-Mailman-Version: 2.0rc1
Precedence: bulk
List-Help: <mailto:templates-request@template-toolkit.org?subject=help>
List-Post: <mailto:templates@template-toolkit.org>
List-Subscribe: <http://www.template-toolkit.org/mailman/listinfo/templates>,
<mailto:templates-request@template-toolkit.org?subject=subscribe>
List-Id: Template Toolkit mailing list <templates.template-toolkit.org>
List-Unsubscribe: <http://www.template-toolkit.org/mailman/listinfo/templates>,
<mailto:templates-request@template-toolkit.org?subject=unsubscribe>
List-Archive: <http://www.template-toolkit.org/pipermail/templates/>
Date: Wed, 01 Aug 2001 01:56:12 -0700
X-UIDL: 4b52ce5bbd5e4261cad4eafdc1bb408b
Status: RO
Content-Length: 5732
Lines: 224
This is a multi-part message in MIME format.
--------------A76E8171DCE73B663B9DA377
Content-Type: text/plain; charset=us-ascii
Content-Transfer-Encoding: 7bit
Here's my first draft. I'm including the module and a test script. Go
wild. If this turns into something legit, I'll put it on CPAN.
- Perrin
--------------A76E8171DCE73B663B9DA377
Content-Type: application/x-perl;
name="test_plugin.pl"
Content-Transfer-Encoding: 7bit
Content-Disposition: inline;
filename="test_plugin.pl"
#!/usr/bin/perl -w
use strict;
use Template;
$| = 1;
my $template = <<EOM;
[% USE cache = Cache %]
[% BLOCK cache_me %]
-----------------------
About to do a lot of work...
[% PERL %]
sleep 5;
[% END %]
And now to demonstrate that the keys matter:
Hello [% name %]
-----------------------
[% END %]
[% cache.inc(
'template' => 'cache_me',
'keys' => {'name' => name},
'ttl' => 15
) %]
EOM
my $t = Template->new(
EVAL_PERL => 1,
ANYCASE => 1,
);
print "first run with name = Suzanne";
$t->process(\$template, { name => 'Suzanne' }) || die $t->error();
print "second run with name = Suzanne\n\n";
$t->process(\$template, { name => 'Suzanne' }) || die $t->error();
print "first run with name = World\n\n";
$t->process(\$template, { name => 'World' }) || die $t->error();
print "second run with name = World\n\n";
$t->process(\$template, { name => 'World' }) || die $t->error();
--------------A76E8171DCE73B663B9DA377
Content-Type: text/plain; charset=us-ascii;
name="Cache.pm"
Content-Transfer-Encoding: 7bit
Content-Disposition: inline;
filename="Cache.pm"
#============================================================= -*-Perl-*-
#
# Template::Plugin::Cache
#
# DESCRIPTION
#
# Plugin to cache template output
#
# AUTHORS
# Perrin Harkins <perrin@elem.com>
# (your name here)
#
# COPYRIGHT
# Copyright (C) 2000 Perrin Harkins.
#
# This module is free software; you can redistribute it and/or
# modify it under the same terms as Perl itself.
#
#----------------------------------------------------------------------------
#
# $Id: cache_plugin,v 1.1 2007/02/09 16:36:15 abw Exp $
#
#============================================================================
package Template::Plugin::Cache;
use strict;
use vars qw( $VERSION );
use base qw( Template::Plugin );
use Template::Plugin;
use File::Cache;
$VERSION = 0.1;
#------------------------------------------------------------------------
# new(\%options)
#------------------------------------------------------------------------
sub new {
my ($class, $context, $params) = @_;
my $cache = File::Cache->new($params);
my $self = bless {
CACHE => $cache,
CONFIG => $params,
CONTEXT => $context,
}, $class;
return $self;
}
#------------------------------------------------------------------------
# $cache->inc({
# template => 'foo.html',
# keys => {'user.name', user.name},
# ttl => 60, #seconds
# });
#------------------------------------------------------------------------
sub inc {
my ($self, $params) = @_;
my $cache_keys = $params->{keys};
#warn %$cache_keys;
my $key = join(
':',
(
$params->{template},
map { "$_=$cache_keys->{$_}" } keys %{$cache_keys}
)
);
my $result = $self->{CACHE}->get($key);
if (!$result) {
#warn "processing template";
$result = $self->{CONTEXT}->include($params->{template});
$self->{CACHE}->set($key, $result, $params->{ttl});
}
return $result;
}
1;
__END__
=head1 NAME
Template::Plugin::Cache - cache output of templates
=head1 SYNOPSIS
[% USE cache = Cache%]
[% cache.inc(
'template' => 'slow.html',
'keys' => {'user.name' => user.name},
'ttl' => 360
) %]
=head1 DESCRIPTION
The Cache plugin allows you to cache generated output from a template.
You load the plugin with the standard syntax:
[% USE cache = Cache %]
This creates a plugin object with the name 'cache'. You may also
specify parameters for the File::Cache module, which is used for
storage.
[% USE mycache = Cache(namespace => 'MyCache') %]
The only method currently available is an include, "cache.inc", which
can work on blocks or files the same as the standard INCLUDE
directive.
[% cache.inc(
'template' => 'slow.html',
'keys' => {'user.name' => user.name},
'ttl' => 360
) %]
The template parameter names the file or block to include. The keys
are variables used to identify the correct cache file. Different
values for the specified keys will result in different cache files.
The ttl parameter specifies the "time to live" for this cache file, in
seconds.
Why the ugliness on the keys? Well, the TT dot notation can only be
resolved correctly by the TT parser at compile time. It's easy to
look up simple variable names in the stash, but compound names like
"user.name" are hard to resolve at runtime. I may attempt to fake
this in a future version, but it would be hacky and might cause
problems.
=head1 AUTHORS
Perrin Harkins (perrin@elem.com) wrote the first version of this
plugin, with help and suggestions from various parties.
=head1 COPYRIGHT
Copyright (C) 2001 Perrin Harkins.
This module is free software; you can redistribute it and/or
modify it under the same terms as Perl itself.
=head1 SEE ALSO
L<Template::Plugin|Template::Plugin>, L<File::Cache|File::Cache>
=cut
--------------A76E8171DCE73B663B9DA377--
_______________________________________________
templates mailing list
templates@template-toolkit.org
http://www.template-toolkit.org/mailman/listinfo/templates
1.1 Template2/todo_misc/jonas_docs
Index: jonas_docs
===================================================================
From jonas@jonas.rit.se Sat May 19 15:44:34 2001
Received: from horatio.cre.canon.co.uk (horatio.cre.canon.co.uk [194.131.191.5])
by cre.canon.co.uk (8.9.3/8.9.3) with ESMTP id PAA15657
for <abw@cre.canon.co.uk>; Sat, 19 May 2001 15:44:34 +0100 (BST)
Received: (from uucp@localhost)
by horatio.cre.canon.co.uk (8.9.3/8.9.1) id PAA08014
for <abw@cre.canon.co.uk>; Sat, 19 May 2001 15:42:49 +0100 (BST)
Received: from jonas.rit.se( 213.88.136.203) by horatio via smap (V2.0)
id xma008011; Sat, 19 May 01 15:42:37 +0100
Received: from jonas by jonas.rit.se with local (Exim 3.22 #1 (Debian))
id 15181V-0005Bu-00; Sat, 19 May 2001 16:48:05 +0200
To: Andy Wardley <abw@cre.canon.co.uk>
Cc: templates@template-toolkit.org
Subject: Re: [Templates] TPC5 Tutorial
References: <20010517090155.F9769@bandanna.cre.canon.co.uk>
From: Jonas Liljegren <jonas@liljegren.org>
Date: 19 May 2001 16:48:05 +0200
Message-ID: <87ae49z97e.fsf@jonas.rit.se>
User-Agent: Gnus/5.0808 (Gnus v5.8.8) Emacs/20.7
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Sender: Jonas Liljegren <jonas@jonas.rit.se>
Status: RO
X-Status: A
Content-Length: 3674
Lines: 118
Andy Wardley <abw@cre.canon.co.uk> writes:
> I've been putting together some content for a TT tutorial for the
> Perl Conference later this year. Eventually, I plan to work this
> all into a new Template::Tutorial document(s).
http://www.tt2.org/tpc5/tt2/intro/tdirs.html =~ s/outut/output/
The intro/vdirs.html and intro/tdirs.html is a little confusing. All
those diffrent words with no explanation to why they are necessary.
And it may not be celar what it means process a template with
localised varables.
I think one could get the impression that a lot of those directives
could be skiped, since many of them do similar things. Examples of
their use would be good.
***
interface/ttreecfg.html : All these absolute paths feels wrong. Why
not just define the relationship between the config file and the base,
and then define the other files in relation to the base dir?
Ok. That's not a comment on the tutorial. But the first thing I
would do would be to try relative URIs. You should at least comment
on that.
It would be nice to do:
etc/ttree.cfg
# ttree directory/file options
base = ..
src = src
dest = html
lib = lib
lib = /home/abw/tt2/templates
.
.
.
define dir = .
define url = /~abw/tpc5
pre_process = config
And you could go with almost no required configuration.
I also think that it should be easier for the generated html pages to
use relative paths. You shouldn't have to know the base URL. (And
that would result in no need to touch the config file at all.) This
is important since it makes it easier to develop the site in one place
and deploy it in another place.
***
interface/process.html
I understand the notes. But I think the '$' explanation came out
confusing. Try to explan that there is no template called 'template',
but htere is a *magic variable* called template. And the use of '$'
to use variables inside strings...
***
interface/splash.html
This is also confusing. "PROCESS html/header" says to me that it will
process the file html/header, but that file is in the html directory;
the directory there the result should be placed. (Maby explaining
where this template is located?)
The WRAPPER example also needs an explanation. By now, I guess that
many has forgotten what WRAPPER does. And the [% title %] should be
indented!
The END tag can easily lead the mind to "This is the end of the
template. Stop processing now." And what leads to that you think of
WRAPPER as a standalone directive, followed by the [% title %] thing,
all by itself. And then the template ends with END... (Repetition of
the basics maby?)
And what is the value of $title? Is it the value it got in the
PROCESS tag? That doesn't sound like localized variables. I think it
should be explained...
***
content/generator.html and content/skeleton.html
Some illustration of the relationship between these two is needed.
Maby mention the two files ( src/product/index.html and
lib/product/page ) on the first page. Or some sort of diagram of how
the pages are built.
***
content/viewfiles.html
I would like to see the resulting page here. It looks like there is a
name and price template missing. Or is there a default view template?
I would like to see the whole process in one page. data ->
main_template -> products -> product -> name.
***
And thats all. The rest is good.
I would have send these comments the same day. But some part of the
network stopped me from reaching tt2.org... (A problem that lasted
more than a day.)
--
/ Jonas - http://jonas.liljegren.org/myself/en/index.html
1.1 Template2/todo_misc/jonas_segf
Index: jonas_segf
===================================================================
From: Jonas Liljegren <jonas@liljegren.org>
In-Reply-To: <20010911161151.A98848@dog.ourshack.com>
Message-ID: <87zo806s05.fsf@jonas.rit.se>
User-Agent: Gnus/5.0808 (Gnus v5.8.8) Emacs/20.7
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Sender: templates-admin@template-toolkit.org
Errors-To: templates-admin@template-toolkit.org
X-BeenThere: templates@template-toolkit.org
X-Mailman-Version: 2.0rc1
Precedence: bulk
List-Help: <mailto:templates-request@template-toolkit.org?subject=help>
List-Post: <mailto:templates@template-toolkit.org>
List-Subscribe: <http://www.template-toolkit.org/mailman/listinfo/templates>,
<mailto:templates-request@template-toolkit.org?subject=subscribe>
List-Id: Template Toolkit mailing list <templates.template-toolkit.org>
List-Unsubscribe: <http://www.template-toolkit.org/mailman/listinfo/templates>,
<mailto:templates-request@template-toolkit.org?subject=unsubscribe>
List-Archive: <http://www.template-toolkit.org/pipermail/templates/>
Date: 12 Sep 2001 23:03:54 +0200
Status: RO
Content-Length: 3626
Lines: 115
I tested and tested and tested...
And finaly found the source for the problem.
Here is a small program that segfaults on my system:
------------------------------------
#!/usr/bin/perl -w
use strict;
use Template 2;
use Carp;
my $th = Template->new();
my $params =
{
'myfunc' => \&confess,
};
$th->process(\*DATA, $params);
__DATA__
[% myfunc() %]
------------------------------------
In contrast; this program does not segfault:
------------------------------------
#!/usr/bin/perl -w
use strict;
use Template 2;
use Carp;
use Template::Stash;
my $stash = Template::Stash->new();
my $th = Template->new(
STASH => $stash,
);
my $params =
{
'myfunc' => \&confess,
};
$th->process(\*DATA, $params);
__DATA__
[% myfunc() %]
------------------------------------
This is for Template 2.04f, perl 5.6.1 (perl 5.6.1-5 in debian)
Summary of my perl5 (revision 5.0 version 6 subversion 1) configuration:
Platform:
osname=linux, osvers=2.4.5-ac9, archname=i386-linux
uname='linux duende 2.4.5-ac9 #1 thu jun 21 00:52:39 est 2001 i686 unknown '
config_args='-Dccflags=-DDEBIAN -Dcccdlflags=-fPIC -Darchname=i386-linux -Dprefix=/usr -Dprivlib=/usr/share/perl/5.6.1 -Darchlib=/usr/lib/perl/5.6.1 -Dvendorprefix=/usr -Dvendorlib=/usr/share/perl5 -Dvendorarch=/usr/lib/perl5 -Dsiteprefix=/usr/local -Dsitelib=/usr/local/share/perl/5.6.1 -Dsitearch=/usr/local/lib/perl/5.6.1 -Dman1dir=/usr/share/man/man1 -Dman3dir=/usr/share/man/man3 -Dman1ext=1 -Dman3ext=3perl -Dpager=/usr/bin/sensible-pager -Uafs -Ud_csh -Uusesfio -Dotherlibdirs=/usr/lib/perl5/5.6:/usr/lib/perl5/5.005 -Duseshrplib -Dlibperl=libperl.so.5.6.1 -Dd_dosuid -des'
hint=recommended, useposix=true, d_sigaction=define
usethreads=undef use5005threads=undef useithreads=undef usemultiplicity=undef
useperlio=undef d_sfio=undef uselargefiles=define usesocks=undef
use64bitint=undef use64bitall=undef uselongdouble=undef
Compiler:
cc='cc', ccflags ='-DDEBIAN -fno-strict-aliasing -I/usr/local/include -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64', optimize='-O2',
cppflags='-DDEBIAN -fno-strict-aliasing -I/usr/local/include'
ccversion='', gccversion='2.95.4 20010604 (Debian prerelease)', gccosandvers=''
intsize=4, longsize=4, ptrsize=4, doublesize=8, byteorder=1234
d_longlong=define, longlongsize=8, d_longdbl=define, longdblsize=12
ivtype='long', ivsize=4, nvtype='double', nvsize=8, Off_t='off_t', lseeksize=8
alignbytes=4, usemymalloc=n, prototype=define
Linker and Libraries:
ld='cc', ldflags =' -L/usr/local/lib'
libpth=/usr/local/lib /lib /usr/lib
libs=-lgdbm -ldbm -ldb -ldl -lm -lc -lcrypt
perllibs=-ldl -lm -lc -lcrypt
libc=/lib/libc-2.2.3.so, so=so, useshrplib=true, libperl=libperl.so.5.6.1
Dynamic Linking:
dlsrc=dl_dlopen.xs, dlext=so, d_dlsymun=undef, ccdlflags='-rdynamic'
cccdlflags='-fPIC', lddlflags='-shared -L/usr/local/lib'
Characteristics of this binary (from libperl):
Compile-time options: USE_LARGE_FILES
Built under linux
Compiled at Jun 22 2001 18:52:37
@INC:
/usr/local/lib/perl/5.6.1
/usr/local/share/perl/5.6.1
/usr/lib/perl5
/usr/share/perl5
/usr/lib/perl/5.6.1
/usr/share/perl/5.6.1
/usr/local/lib/site_perl
/usr/lib/perl5/5.6/i386-linux
/usr/lib/perl5/5.6
/usr/lib/perl5/5.005/i386-linux
/usr/lib/perl5/5.005
.
--
/ Jonas - http://jonas.liljegren.org/myself/en/index.html
_______________________________________________
templates mailing list
templates@template-toolkit.org
http://www.template-toolkit.org/mailman/listinfo/templates
1.1 Template2/todo_misc/tttp
Index: tttp
===================================================================
From: Tony Payne <anthonyp@petsmart.com>
X-Sender: tony@petsmart.com
Reply-To: Tony Payne <anthonyp@petsmart.com>
To: templates@template-toolkit.org
Message-ID: <Pine.LNX.4.21.0106181330250.9404-300000@petsmart.com>
MIME-Version: 1.0
Content-Type: MULTIPART/MIXED; BOUNDARY="8323328-1215179187-992896492=:9404"
Subject: [Templates] Template::Plugin::Session
Sender: templates-admin@template-toolkit.org
Errors-To: templates-admin@template-toolkit.org
X-BeenThere: templates@template-toolkit.org
X-Mailman-Version: 2.0rc1
Precedence: bulk
List-Help: <mailto:templates-request@template-toolkit.org?subject=help>
List-Post: <mailto:templates@template-toolkit.org>
List-Subscribe: <http://www.template-toolkit.org/mailman/listinfo/templates>,
<mailto:templates-request@template-toolkit.org?subject=subscribe>
List-Id: Template Toolkit mailing list <templates.template-toolkit.org>
List-Unsubscribe: <http://www.template-toolkit.org/mailman/listinfo/templates>,
<mailto:templates-request@template-toolkit.org?subject=unsubscribe>
List-Archive: <http://www.template-toolkit.org/pipermail/templates/>
Date: Mon, 18 Jun 2001 13:34:52 -0700 (PDT)
Status: RO
Content-Length: 6444
Lines: 122
This message is in MIME format. The first part should be readable text,
while the remaining parts are likely unreadable without MIME-aware tools.
Send mail to mime@docserver.cac.washington.edu for more info.
--8323328-1215179187-992896492=:9404
Content-Type: TEXT/PLAIN; charset=US-ASCII
Here is a hastily written plugin for Apache::Session. I'm willing to
maintain it, but I'm not sure if I have the time, so if someone else wants
to own it, please be my guest.
Hopefully someone will find it useful, since perl is now off-limits :~(
++t
Tony Payne : Sr. Software Engineer : PETsMART.com : 626-817-7151
--8323328-1215179187-992896492=:9404
Content-Type: TEXT/PLAIN; charset=US-ASCII; name="Session.pm"
Content-Transfer-Encoding: BASE64
Content-ID: <Pine.LNX.4.21.0106181334520.9404@petsmart.com>
Content-Description: Session.pm
Content-Disposition: attachment; filename="Session.pm"
Iz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KIw0KIyBUZW1w
bGF0ZTo6UGx1Z2luOjpTZXNzaW9uDQojDQojIERFU0NSSVBUSU9ODQojDQoj
IEEgVGVtcGxhdGUgUGx1Z2luIHRvIHByb3ZpZGUgYSBUZW1wbGF0ZSBJbnRl
cmZhY2UgdG8gQXBhY2hlOjpTZXNzaW9uDQojDQojIEFVVEhPUg0KIyAgIFRv
bnkgUGF5bmUgPGFudGhvbnlwQHBldHNtYXJ0LmNvbT4NCiMNCiMgQ09QWVJJ
R0hUDQojDQojICAgQ29weXJpZ2h0IChDKSAyMDAxIFRvbnkgUGF5bmUuICBB
bGwgUmlnaHRzIFJlc2VydmVkDQojDQojICAgVGhpcyBtb2R1bGUgaXMgZnJl
ZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yDQoj
ICAgbW9kaWZ5IGl0IHVuZGVyIHRoZSBzYW1lIHRlcm1zIGFzIFBlcmwgaXRz
ZWxmLg0KIw0KIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0K
Iw0KIyAkSWQ6ICQNCiMNCg0KcGFja2FnZSBUZW1wbGF0ZTo6UGx1Z2luOjpT
ZXNzaW9uOw0KDQpyZXF1aXJlIDUuMDA0Ow0KDQp1c2Ugc3RyaWN0Ow0KdXNl
IFRlbXBsYXRlOjpQbHVnaW47DQp1c2UgQXBhY2hlOjpTZXNzaW9uOw0KDQp1
c2UgdmFycyBxdygkVkVSU0lPTiAkREVCVUcpOw0KdXNlIGJhc2UgcXcoVGVt
cGxhdGU6OlBsdWdpbik7DQoNCiRWRVJTSU9OID0gc3ByaW50ZigiJS4wMmYi
LCAocSRSZXZpc2lvbjogMi40ICQgPX4gLyhcZCsuXGQrKS8pIC0gMSk7DQok
REVCVUcgICA9IDAgdW5sZXNzIGRlZmluZWQgJERFQlVHOw0KDQojIExvYWQg
YWxsIGtub3duIEFwYWNoZSBTZXNzaW9uIGltcGxlbWVudGF0aW9ucy4gIEln
bm9yZSBlcnJvcnMuDQpCRUdJTiB7DQogIGV2YWwgew0KICAgIHJlcXVpcmUg
QXBhY2hlOjpTZXNzaW9uOjpNeVNxbDsNCiAgfTsNCiAgZXZhbCB7DQogICAg
cmVxdWlyZSBBcGFjaGU6OlNlc3Npb246OlBvc3RncmVzOw0KICB9Ow0KICBl
dmFsIHsNCiAgICByZXF1aXJlIEFwYWNoZTo6U2Vzc2lvbjo6T3JhY2xlOw0K
ICB9Ow0KICBldmFsIHsNCiAgICByZXF1aXJlIEFwYWNoZTo6U2Vzc2lvbjo6
RmlsZTsNCiAgfTsNCiAgZXZhbCB7DQogICAgcmVxdWlyZSBBcGFjaGU6OlNl
c3Npb246OkRCX0ZpbGU7DQogIH07DQp9DQoNCnN1YiBsb2FkIHsNCiAgbXkg
KCRjbGFzcywgJGNvbnRleHQpID0gc2hpZnQ7DQogIHJldHVybiAkY2xhc3M7
DQp9DQoNCnN1YiBuZXcgew0KICBteSAoJGNsYXNzLCAkY29udGV4dCwgJHNl
c3Npb25faWQsICR0eXBlLCAkb3B0aW9ucykgPSBAXzsNCg0KICBteSAlc2Vz
c2lvbjsNCg0KICAkc2Vzc2lvbl9pZCB8fD0gdW5kZWY7DQoNCiAgJHR5cGUg
fHw9ICdBcGFjaGU6OlNlc3Npb246OkRCX0ZpbGUnOw0KICAkb3B0aW9ucyA9
IHsgfSB1bmxlc3MgcmVmICRvcHRpb25zICYmIHJlZiAkb3B0aW9ucyBlcSAn
SEFTSCc7DQogICRvcHRpb25zLT57RmlsZU5hbWV9IHx8PSAnL3RtcC9hcGFj
aGVfc2Vzc2lvbnMvc2Vzc2lvbnMuZGInIA0KICAgIGlmICR0eXBlIGVxICdB
cGFjaGU6OlNlc3Npb246OkRCX0ZpbGUnOw0KICAkb3B0aW9ucy0+e0xvY2tE
aXJlY3Rvcnl9IHx8PSAnL3RtcC9hcGFjaGVfc2Vzc2lvbnMvbG9jaycgDQog
ICAgaWYgJHR5cGUgZXEgJ0FwYWNoZTo6U2Vzc2lvbjo6REJfRmlsZSc7DQog
ICANCiAgdGllICVzZXNzaW9uLCAkdHlwZSwgJHNlc3Npb25faWQsICRvcHRp
b25zOw0KICAkc2Vzc2lvbntzZXNzaW9uX2lkfSA9ICRzZXNzaW9ue19zZXNz
aW9uX2lkfTsNCiAgcmV0dXJuIFwlc2Vzc2lvbjsNCn0NCg0KMTsNCg0KX19F
TkRfXw0K
--8323328-1215179187-992896492=:9404
Content-Type: TEXT/PLAIN; charset=US-ASCII; name="Session.tt2"
Content-Transfer-Encoding: BASE64
Content-ID: <Pine.LNX.4.21.0106181334521.9404@petsmart.com>
Content-Description: Docs
Content-Disposition: attachment; filename="Session.tt2"
WyUgVEFHUyBzdGFyIC0lXQ0KPWhlYWQxIFNZTk9QU0lTDQoNCiAgICBbJSBV
U0UgU2Vzc2lvbihzZXNzaW9uX2lkKSAlXQ0KDQogICAgWyUgU2Vzc2lvbi50
aW1lc3RhbXAgPSB0aW1lICVdDQoNCiAgICBbJSBTZXNzaW9uLnNlc3Npb25f
aWQgJV0NCiAgICANCj1oZWFkMSBERVNDUklQVElPTg0KDQpUaGlzIGlzIGEg
VGVtcGxhdGUgVG9vbGtpdCBQbHVnaW4gSW50ZXJmYWNlIHRvIHRoZSBBcGFj
aGU6OlNlc3Npb24NCm1vZHVsZS4gIEEgU2Vzc2lvbiBvYmplY3Qgd2lsbCBi
ZSBpbnN0YW50aWF0ZWQgdmlhIHRoZSBmb2xsb3dpbmcgZGlyZWN0aXZlOg0K
DQogICAgWyUgVVNFIFNlc3Npb24gJV0NCg0KVGhpcyB3aWxsIGNyZWF0ZSBh
IG5ldyBzZXNzaW9uIGFuZCB3aWxsIGFzc2lnbiBhIG5ldyBzZXNzaW9uIGlk
LiAgVG8gY29ubmVjdCB0bw0KYSBwcmUtZXhpc3Rpbmcgc2Vzc2lvbiwgc3Bl
Y2lmeSB0aGUgc2Vzc2lvbiBpZDoNCg0KICAgIFslIFVTRSBTZXNzaW9uKHNl
c3Npb25faWQpICVdDQoNCkJ5IGRlZmF1bHQsIHRoZSBTZXNzaW9uIHBsdWdp
biBkZWZhdWx0cyB0byB1c2luZyBhIGJlcmtsZXkgZGIgZGF0YWJhc2UgZm9y
IHRoZSANCnNlc3Npb24gc3RvcmUuICBZb3UgY2FuIG92ZXJyaWRlIHRoaXMs
IGFuZCB0aGUgQXBhY2hlOjpTZXNzaW9uIG9wdGlvbnMgYnkgDQp1c2luZyB0
aGUgc2Vjb25kIGFuZCB0aGlyZCBhcmd1bWVudHMgdG8gdGhlIGNvbnN0cnVj
dG9yOg0KDQogICAgWyUgVVNFIFNlc3Npb24oDQogICAgICAgICAgICBzZXNz
aW9uX2lkLCANCiAgICAgICAgICAgICdBcGFjaGU6OlNlc3Npb246Ok15U1FM
JywgDQogICAgICAgICAgICB7IERhdGFTb3VyY2UgPT4gJ2RiaTpteXNxbDpz
ZXNzb2lucycgfSkgJV0NCg0KUGxlYXNlIHNlZSBMPEFwYWNoZTo6U2Vzc2lv
bj4gZm9yIG1vcmUgaW5mb3JtYXRpb24gb24gaW1wbGVtZW50YXRpb25zIG9m
IA0KQXBhY2hlOjpTZXNzaW9uLg0KDQo9aGVhZDEgTk9URQ0KDQpBcGFjaGU6
OlNlc3Npb24gYXV0b21hdGljYWxseSBzdG9yZXMgY2hhbmdlcyBvbmx5IHRv
IHRoZSB0b3AgbGF5ZXIgb2YgdGhlIGhhc2guDQpJZiBjaGFuZ2VzIGFyZSBt
YWRlIHRvIGRhdGEgc3RydWN0dXJlcyBzdG9yZWQgYXMgdmFsdWVzIGluIHRo
ZSBoYXNoLCB0aGVyZSBpcw0Kbm8gd2F5IGZvciB0aG9zZSBjaGFuZ2VzIHRv
IGJlIG5vdGljZWQuICBJZiB5b3UgaGF2ZSBhIGNvbXBsaWNhdGVkIHNlc3Np
b24gDQpvYmplY3QsIHlvdSBzaG91bGQgdG91Y2ggYSB0b3AtbGV2ZWwgYXR0
cmlidXRlIGVhY2ggdGltZSB5b3UgY2hhbmdlIHNlc3Npb24NCmRhdGEuIA0K
DQo9aGVhZDEgU1BFQ0lBTCBBVFRSSUJVVEVTDQoNCkFwYWNoZTo6U2Vzc2lv
biBkZWZpbmVzIGEgX3Nlc3Npb25faWQgZGF0YSBtZW1iZXIsIHdoaWNoIGhv
bGRzIHRoZSBzZXNzaW9uIGlkLg0KSG93ZXZlciwgc2luY2UgdGhpcyBpcyBp
bmNvbXBhdGlibGUgd2l0aCBUZW1wbGF0ZS1Ub29sa2l0LCANClRlbXBsYXRl
OjpQbHVnaW46OlNlc3Npb24gZGVmaW5lcyBhIHNlc3Npb25faWQgZGF0YSBt
ZW1iZXIgYXMgd2VsbC4NCg0KPWhlYWQxIEFVVEhPUg0KDQpUb255IFBheW5l
IEU8bHQ+YW50aG9ueXBAcGV0c21hcnQuY29tRTxndD4NCg0KWyogUFJPQ0VT
UyBtaXNjL3ZlcnNpb24gKl0NCg0KPWhlYWQxIENPUFlSSUdIVA0KDQpDb3B5
cmlnaHQgKEMpIDIwMDEgVG9ueSBQYXluZSBBbGwgUmlnaHRzIFJlc2VydmVk
Lg0KDQpUaGlzIG1vZHVsZSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJl
ZGlzdHJpYnV0ZSBpdCBhbmQvb3INCm1vZGlmeSBpdCB1bmRlciB0aGUgc2Ft
ZSB0ZXJtcyBhcyBQZXJsIGl0c2VsZi4NCg0KWyogUFJPQ0VTUyBtaXNjL3Nl
ZWFsc28NCiAgICBzZWVhbHNvPXBhZ2Uuc2VlYWxzbyAqXQ0K
--8323328-1215179187-992896492=:9404--
_______________________________________________
templates mailing list
templates@template-toolkit.org
http://www.template-toolkit.org/mailman/listinfo/templates
1.1 Template2/todo_misc/xmlview
Index: xmlview
===================================================================
Finish off Template::Plugin::XML::View
Don't know why I stopped working on this... there may be a design issue I
hit which caused me to fault, or perhaps I just forgot about it?
From what I can recall right now, it's a good idea waiting for a round tuit.
-- abw 21 Sept 2001