WHOOBA TOO!

2shortplanks on 2002-08-07T09:53:40

This year I'd decided I wasn't going to talk at YAPC::Europe. I was decided I tell you. I'd talked at the last two, and I thought I deserved a year off to just go along and listen. Decided!

And then I got bored....

So I'm talking about "Extending the Template Toolkit" this year apparently. This talk is designed to show you how you can write complex stuff 'around' the Template Toolkit so you don't have to write complex stuff actually in your template. I.e. so you the programmer can do all the cool stuff which the designer can then use in the template.

To give you a rough idea of what I'll be talking about:

  • A quick tour of the guts of the Template Toolkit, or "Don't step on the squishy bit"
  • It really depends on the Context.
  • The Stash, Shall I persist or shall I go now?
  • Writing Plugins, Fun for all the Family.
  • Filters, and rolling your own.
  • Virtual Methods, when nothing else will do.
  • Won't someone please think of the Tests!
  • Rendering existing objects and data structures, or "What are these VIEW things anyway?"
  • Using XML, the hard way "DOM! XPath!" and the easy way "What are these VIEW things anyway?"
  • Ooops, I've accidently created a three tier architecture.
Now all I've got to do is write a paper, write some slides, and work out if I can talk for 45min without having a nervous breakdown.


Samples

pudge on 2002-08-13T02:51:46

The Slash::Display / Slash::Display::Provider / Slash::Display::Plugin modules might have some interesting stuff for you to look at for your talk, if you're interested.

Re:Samples

2shortplanks on 2002-08-13T09:19:36

Cool, I will do thanks.

Current plan is to write the talk and then have a big collection of "Interesting Plugins" and stuff that I can talk about if I complete unexpectedly early, so if I don't use them in the main body of the talk I'll certainly have them ready to mention afterward.

Re:Samples

pudge on 2002-08-13T11:33:54

Whatever you want. Slash::Display::Provider is interesting in that we use it to provide templates via the DB, not the filesystem; we also handle ident(), use(), template() from Template::Directive so we can hack in some things into each compiled template, so the Slash plugin, and some commonly used variables ($user, $constants, $form) are always available.

Slash::Display::Plugin is not exceptionally interesting, although it is kinda funny; we make every public function in Slash available via the plugin (as well as every DB method) in just a few lines of code.