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 invars
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
(unlessomit_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 thecontent_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
andcgi_obj
thenmetadata
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
, andcoord_field_2_value
, which are used to create various forms, will only be set if eithermetadata
is supplied orset_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-2012 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.