GNU.WIKI: The GNU/Linux Knowledge Base

  [HOME] [PHP Manual] [HowTo] [ABS] [MAN1] [MAN2] [MAN3] [MAN4] [MAN5] [MAN6] [MAN7] [MAN8] [MAN9]

  [0-9] [Aa] [Bb] [Cc] [Dd] [Ee] [Ff] [Gg] [Hh] [Ii] [Jj] [Kk] [Ll] [Mm] [Nn] [Oo] [Pp] [Qq] [Rr] [Ss] [Tt] [Uu] [Vv] [Ww] [Xx] [Yy] [Zz]


NAME

       OpenGuides::CGI - An OpenGuides helper for CGI-related things.

DESCRIPTION

       Does CGI 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

       Saving preferences in a cookie:

         use OpenGuides::CGI;
         use OpenGuides::Config;
         use OpenGuides::Template;
         use OpenGuides::Utils;

         my $config = OpenGuides::Config->new( file => "wiki.conf" );

         my $cookie = OpenGuides::CGI->make_prefs_cookie(
             config                     => $config,
             username                   => "Kake",
             include_geocache_link      => 1,
             preview_above_edit_box     => 1,
             latlong_traditional        => 1,
             omit_help_links            => 1,
             show_minor_edits_in_rc     => 1,
             default_edit_type          => "tidying",
             cookie_expires             => "never",
             track_recent_changes_views => 1,
             display_google_maps        => 1,
             is_admin                   => 1
         );

         my $wiki = OpenGuides::Utils->make_wiki_object( config => $config );
         print OpenGuides::Template->output( wiki     => $wiki,
                                             config   => $config,
                                             template => "preferences.tt",
                                             cookies  => $cookie
         );

         # and to retrive prefs later:
         my %prefs = OpenGuides::CGI->get_prefs_from_cookie(
             config => $config
         );

       Tracking visits to Recent Changes:

         use OpenGuides::CGI;
         use OpenGuides::Config;
         use OpenGuides::Template;
         use OpenGuides::Utils;

         my $config = OpenGuides::Config->new( file => "wiki.conf" );

         my $cookie = OpenGuides::CGI->make_recent_changes_cookie(
             config => $config,
         );

METHODS

       extract_node_param
               my $config_file = $ENV{OPENGUIDES_CONFIG_FILE} || "wiki.conf";
               my $config = OpenGuides::Config->new( file => $config_file );
               my $guide = OpenGuides->new( config => $config );
               my $wiki = $guide->wiki;

               my $q = CGI->new;

               my $node_param = OpenGuides::CGI->extract_node_param(
                                   wiki => $wiki, cgi_obj => $q );

           Returns the title, id, or keywords parameter from the URL.
           Normally this will be something like "British_Museum", i.e. with
           underscores instead of spaces.  However if the URL does contain
           spaces (encoded as %20 or +), the return value will be e.g.
           "British Museum" instead.

           Croaks unless a Wiki::Toolkit object is supplied as "wiki" and a
           CGI object is supplied as "cgi_obj".

       extract_node_name
               my $config_file = $ENV{OPENGUIDES_CONFIG_FILE} || "wiki.conf";
               my $config = OpenGuides::Config->new( file => $config_file );
               my $guide = OpenGuides->new( config => $config );
               my $wiki = $guide->wiki;

               my $q = CGI->new;

               my $node_name = OpenGuides::CGI->extract_node_name(
                                   wiki => $wiki, cgi_obj => $q );

           Returns the name of the node the user wishes to display/manipulate,
           as we expect it to be stored in the database.  Normally this will
           be something like "British Museum", i.e. with spaces in.  Croaks
           unless a Wiki::Toolkit object is supplied as "wiki" and a CGI
           object is supplied as "cgi_obj".

       check_spaces_redirect
               my $config_file = $ENV{OPENGUIDES_CONFIG_FILE} || "wiki.conf";
               my $config = OpenGuides::Config->new( file => $config_file );
               my $guide = OpenGuides->new( config => $config );

               my $q = CGI->new;

               my $url = OpenGuides::CGI->check_spaces_redirect(
                                            wiki => $wiki, cgi_obj => $q );

           If the user seems to have typed a URL with spaces in the node param
           instead of underscores, this method will return the URL with the
           underscores put in.  Otherwise, it returns false.

       make_prefs_cookie
             my $cookie = OpenGuides::CGI->make_prefs_cookie(
                 config                     => $config,
                 username                   => "Kake",
                 include_geocache_link      => 1,
                 preview_above_edit_box     => 1,
                 latlong_traditional        => 1,
                 omit_help_links            => 1,
                 show_minor_edits_in_rc     => 1,
                 default_edit_type          => "tidying",
                 cookie_expires             => "never",
                 track_recent_changes_views => 1,
                 display_google_maps        => 1,
                 is_admin                   => 1
             );

           Croaks unless an OpenGuides::Config object is supplied as "config".
           Acceptable values for "cookie_expires" are "never", "month",
           "year"; anything else will default to "month".

       get_prefs_from_cookie
             my %prefs = OpenGuides::CGI->get_prefs_from_cookie(
                 config => $config,
                 cookies => \@cookies
             );

           Croaks unless an OpenGuides::Config object is supplied as "config".
           Returns default values for any parameter not specified in cookie.

           If "cookies" is provided, and includes a preferences cookie, this
           overrides any preferences cookie submitted by the browser.

       make_recent_changes_cookie
             my $cookie = OpenGuides::CGI->make_recent_changes_cookie(
                 config => $config,
             );

           Makes a cookie that stores the time now as the time of the latest
           visit to Recent Changes.  Or, if "clear_cookie" is specified and
           true, makes a cookie with an expiration date in the past:

             my $cookie = OpenGuides::CGI->make_recent_changes_cookie(
                 config       => $config,
                 clear_cookie => 1,
             );

       get_last_recent_changes_visit_from_cookie
             my %prefs = OpenGuides::CGI->get_last_recent_changes_visit_from_cookie(
                 config => $config
             );

           Croaks unless an OpenGuides::Config object is supplied as "config".
           Returns the time (as seconds since epoch) of the user's last visit
           to Recent Changes.

       make_index_form_dropdowns
               my @dropdowns = OpenGuides::CGI->make_index_form_dropdowns (
                   guide    => $guide,
                   selected => [
                                 { type => "category", value => "pubs" },
                                 { type => "locale", value => "holborn" },
                               ],
               );
               %tt_vars = ( %tt_vars, dropdowns => \@dropdowns );

               # In the template
               [% FOREACH dropdown = dropdowns %]
                 [% dropdown.type.ucfirst | html %]:
                 [% dropdown.php %]
                 <br />
               [% END %]

           Makes HTML dropdown selects suitable for passing to an indexing
           template.

           The "selected" argument is optional; if supplied, it gives default
           values for the dropdowns.  At least one category and one locale
           dropdown will be returned; if no defaults are given for either then
           they'll default to everything/everywhere.

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.



  All copyrights belong to their respective owners. Other content (c) 2014-2018, GNU.WIKI. Please report site errors to webmaster@gnu.wiki.
Page load time: 0.108 seconds. Last modified: November 04 2018 12:49:43.