Provided by: openguides_0.84-1_all bug

NAME

       OpenGuides::Utils - General utility methods for OpenGuides scripts.

DESCRIPTION

       Provides general utility methods for OpenGuides scripts.  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 OpenGuide::Config;
         use OpenGuides::Utils;

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

METHODS

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

           Croaks unless an "OpenGuides::Config" object is supplied.  Returns a "Wiki::Toolkit" object made from
           the given config file on success, croaks if any other error occurs.

           The config file needs to define at least the following variables:

           •   dbtype - one of "postgres", "mysql" and "sqlite"

           •   dbname

           •   indexing_directory - for the Search::InvertedIndex, Plucene, or "Lucy" files to go in

       get_wgs84_coords
           Returns  coordinate  data suitable for use with Google Maps (and other GIS systems that assume WGS-84
           data).

               my ($wgs84_long, $wgs84_lat) = OpenGuides::Utils->get_wgs84_coords(
                                                   longitude => $longitude,
                                                   latitude => $latitude,
                                                   config => $config
                                              );

       get_wgs84_min_max
           Given a set of WGS84  coordinate  data,  returns  the  minimum,  maximum,  and  centre  latitude  and
           longitude.

               %data = OpenGuides::Utils->get_wgs84_min_max(
                   nodes => [
                              { wgs84_lat => 51.1, wgs84_long => 1.1 },
                              { wgs84_lat => 51.2, wgs84_long => 1.2 },
                            ]
               );
               print "Top right-hand corner is $data{max_lat}, $data{max_long}";
               print "Centre point is $data{centre_lat}, $data{centre_long}";

           The hashes in the "nodes" argument can include other key/value pairs; these will just be ignored.

           Returns false if it can't find any valid geodata in the nodes.

       get_index_page_description
               $tt_vars{page_description} =
                   OpenGuides::Utils->get_index_page_description(
                       format => "map",
                       criteria => [ type => "locale", value => "croydon" ],
               );

           Returns a sentence that can be used as a summary of what's shown on an index page.

       detect_redirect
               $redir = OpenGuides::Utils->detect_redirect( content => "foo" );

           Checks  the  content  of a node to see if the node is a redirect to another node.  If so, returns the
           name of the node that this one redirects to.  If not, returns false.

           (Also returns false if no content is provided.)

       validate_edit
               my $fails = OpenGuides::Utils->validate_edit(
                   id       => $node,
                   cgi_obj  => $q
               );

           Checks supplied content for general validity. If anything is invalid, returns an array ref of  errors
           to report to the user.

       parse_change_comment
               my $change_comment = parse_change_comment($string, $base_url);

           Given  a  base URL (for example, "http://example.com/wiki.cgi?"), takes a string, replaces "[[page]]"
           and "[[page|titled link]]" with

               <a href="http://example.com/wiki.cgi?page">page</a>

           and

               <a href="http://example.com/wiki.cgi?page">titled link</a>

           respectively, and returns it. This is a limited subset of wiki markup suitable for use in page change
           comments.

       send_email
               eval { OpenGuides::Utils->send_email(
                       config        => $config,
                       subject       => "Subject",
                       body          => "Test body",
                       admin         => 1,
                       nobcc         => 1,
                       return_output => 1
               ) };

               if ($@) {
                   print "Error mailing admin: $@\n";
               } else {
                   print "Mailed admin\n";
               }

           Send out email. If "admin" is true, the email will be sent to the site admin.  If  "to"  is  defined,
           email  will  be  sent  to addresses in that arrayref. If "nobcc" is true, there will be no Bcc to the
           admin.

           "subject" and "body" are mandatory arguments.

           Debugging: if "return_output" is true, the message will be returned as a string instead of being sent
           by email.

       in_moderate_whitelist
            if (OpenGuides::Utils->in_moderate_whitelist( '127.0.0.1' )) {
                # skip moderation and apply new verson to published site
            }

           Admins can supply a comma separated list of IP addresses  or  CIDR-notation  subnets  indicating  the
           hosts  which  can bypass enforced moderation. Any values which cannot be parsed by "NetAddr::IP" will
           be ignored.

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.

perl v5.32.0                                       2021-01-30                             OpenGuides::Utils(3pm)