Provided by: openguides_0.84-1_all bug

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-2013 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.