NAME¶
OpenGuides::Template - Do Template Toolkit related stuff for OpenGuides
applications.
DESCRIPTION¶
Does all the Template Toolkit stuff for OpenGuides. Distributed and installed as
part of the OpenGuides project, not intended for independent installation.
This documentation is probably only useful to OpenGuides developers.
SYNOPSIS¶
use OpenGuides::Config;
use OpenGuides::Utils;
use OpenGuides::Template;
my $config = OpenGuides::Config->new( file => "wiki.conf" );
my $wiki = OpenGuides::Utils->make_wiki_object( config => $config );
print OpenGuides::Template->output( wiki => $wiki,
config => $config,
template => "node.tt",
vars => { foo => "bar" }
);
METHODS¶
- output
-
print OpenGuides::Template->output( wiki => $wiki,
config => $config,
template => "node.tt",
content_type => "text/html",
cookies => $cookie,
vars => {foo => "bar"},
noheaders => 1
);
Returns everything you need to send to STDOUT, including the Content-Type:
header. Croaks unless "template" is supplied.
The config object and variables supplied in "vars" are passed
through to the template specified. Additional Template Toolkit variables
are automatically set and passed through as well, as described below.
Note: variables set in "vars" will over-ride any
variables of the same name in the config object or the user cookies.
- •
- "openguides_version"
- •
- "site_name"
- •
- "cgi_url"
- •
- "full_cgi_url"
- •
- "enable_page_deletion" (gets set to true or false
- defaults to false)
- •
- "contact_email"
- •
- "stylesheet"
- •
- "home_link"
- •
- "formatting_rules_link" (unless
"omit_formatting_link" is set in user cookie)
- •
- "navbar_on_home_page"
- •
- "home_name"
- •
- "gmaps_api_key"
- •
- "licence_name"
- •
- "licence_url"
- •
- "licence_info_url"
- •
- "prefs" (the preferences from the user
cookie)
If "node" is supplied:
- •
- "node_name"
- •
- "node_param" (the node name escaped for use in
URLs)
Content-Type: defaults to "text/html" and is omitted if the
"content_type" arg is explicitly set to the blank string.
However, what you more often need is the "noheaders" option, which
suppresses all HTTP headers, not just the Content-Type.
The HTTP response code may be explictly set with the "http_status"
arg.
- extract_metadata_vars
-
my %node_data = $wiki->retrieve_node( "Home Page" );
my %metadata_vars = OpenGuides::Template->extract_metadata_vars(
wiki => $wiki,
config => $config,
metadata => $node_data{metadata}
);
# -- or --
my %metadata_vars = OpenGuides::Template->extract_metadata_vars(
wiki => $wiki,
config => $config,
cgi_obj => $q
);
# -- then --
print OpenGuides::Template->output(
wiki => $wiki,
config => $config,
template => "node.tt",
vars => { foo => "bar",
%metadata_vars }
);
Picks out things like categories, locales, phone number etc from EITHER the
metadata hash returned by Wiki::Toolkit OR the query parameters in a CGI
object, and packages them nicely for passing to templates or storing in
Wiki::Toolkit datastore. If you supply both "metadata" and
"cgi_obj" then "metadata" will take precedence, but
don't do that.
The variables "dist_field", "coord_field_1",
"coord_field_1_name", "coord_field_1_value",
"coord_field_2", "coord_field_2_name", and
"coord_field_2_value", which are used to create various forms,
will only be set if either "metadata" is supplied
or "set_coord_field_vars" is true, to prevent these
values from being stored in the database on a node commit.
AUTHOR¶
The OpenGuides Project (openguides-dev@lists.openguides.org)
COPYRIGHT¶
Copyright (C) 2003-2009 The OpenGuides Project. All Rights Reserved.
This module is free software; you can redistribute it and/or modify it under the
same terms as Perl itself.