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 ascgi_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 ascgi_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.
-
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 forcookie_expires
arenever
,month
,year
; anything else will default tomonth
. -
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, this overrides any cookies submitted by the browser. -
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, );
-
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.
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.