Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages

  
 
  

home | help
HTML::Template::PluggaUser3Contributed Perl DocumeHTML::Template::Pluggable(3)

NAME
       HTML::Template::Pluggable - Extends HTML::Template with plugin support

SYNOPSIS
       Just use	this module instead of HTML::Template, then use	any plugins,
       and go on with life.

	use HTML::Template::Pluggable;
	use HTML::Template::Plugin::Dot;

	# Everything works the same, except for	functionality that plugins add.
	my $t =	HTML::Template::Pluggable->new();

THE GOAL
       Ideally we'd like to see	this functionality merged into HTML::Template,
       and turn	this into a null sub-class.

STATUS
       The design of the plugin	system is still	in progress. Right now we have
       just two	triggers, in param and output. The name	and function of	this
       may change, and we would	like to	add triggers in	new() and other
       methods when the	need arises.

       All we promise for now is to keep HTML::Template::Plugin::Dot
       compatible.  Please get in touch	if you have suggestions	with feedback
       on designing the	plugin system if you would like	to contribute.

WRITING	PLUGINS
       HTML::Template offers a plugin system which allows developers to	extend
       the functionality in significant	ways without creating a	creating a
       sub-class, which	might be impossible to use in combination with another
       sub-class extension.

       Currently, two triggers have been made available	to alter how the
       values of TMPL_VARs are set. If more hooks are needed to	implement your
       own plugin idea,	it may be feasible to add them-- check the FAQ then
       ask about it on the list.

       Class::Trigger is used to provide plugins. Basically, you can just:

	   HTML::Template->add_trigger('middle_param', \&trigger);

       A good place to add one is in your plugin's "import" subroutine:

	   package HTML::Template::Plugin::MyPlugin;
	   use base 'Exporter';
	   sub import {
	       HTML::Template->add_trigger('middle_param', \&dot_notation);
	       goto &Exporter::import;
	   }

   TRIGGER LOCATIONS
       param
	   We have added one trigger location to this method, named
	   "middle_param".

	      #	in a Plugin's import() routine.
	      HTML::Template->add_trigger('middle_param',   \&_set_tmpl_var_with_dot  );

	   This	sets a callback	which is executed in param() with all of the
	   same	arguments. It is only useful for altering how /setting/	params
	   works.  The logic to	read a param is	unaffected.

	   It can set any TMPL_VAR values before the normal param logic	kicks
	   in. To do this, "$self->{param_map}"	is modified as can be seen
	   from	source in HTML::Template::param(). However, it must obey the
	   following convention	of setting
	   $self->{param_map_done}{$param_name}	for each param that is set.
	   $param_name would be	a key from "$self->{param_map}".  This
	   notifies the	other plugins and the core param() routine to skip
	   trying to set this value.  $self->{param_map_done} is reset with
	   each	call to	param(), so that like with a hash, you have the	option
	   to reset a param later with the same	name.

       output
	   One trigger location	here: "before_output".

	      HTML::Template->add_trigger('before_output',   \&_last_chance_params  );

	   This	sets a callback	which is executed right	before output is
	   generated.

SEE ALSO
       o   HTML::Template::Plugin::Dot - Add Template Toolkit's	magic dot
	   notation to HTML::Template.

AUTHOR
       Mark Stosberg, "<mark@summersault.com>"

BUGS
       Please report any bugs or feature requests to
       "bug-html-template-pluggable@rt.cpan.org", or through the web interface
       at <http://rt.cpan.org>.	 I will	be notified, and then you'll
       automatically be	notified of progress on	your bug as I make changes.

Copyright & License
       Copyright 2006 Mark Stosberg, All Rights	Reserved.

       This program is free software; you can redistribute it and/or modify it
       under the same terms as Perl itself.

perl v5.32.1			  2007-05-15	  HTML::Template::Pluggable(3)

NAME | SYNOPSIS | THE GOAL | STATUS | WRITING PLUGINS | SEE ALSO | AUTHOR | BUGS | Copyright & License

Want to link to this manual page? Use this URL:
<https://www.freebsd.org/cgi/man.cgi?query=HTML::Template::Pluggable&sektion=3&manpath=FreeBSD+13.0-RELEASE+and+Ports>

home | help