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"}
);

Returns everything you need to send to STDOUT, including the Content-Type: header. Croaks unless template is supplied.

The 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

    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.

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 CGI::Wiki OR the query parameters in a CGI object, and packages them nicely for passing to templates or storing in CGI::Wiki 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@openguides.org)

COPYRIGHT

Copyright (C) 2003-2005 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.

1 POD Error

The following errors were encountered while parsing the POD:

Around line 99:

You can't have =items (as at line 103) unless the first thing after the =over is an =item