The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.

NAME

CMS::MediaWiki - Perl extension for creating, reading and updating MediaWiki pages

SYNOPSIS

  use CMS::MediaWiki;

  my $mw = CMS::MediaWiki->new(
        # protocol => 'https',  # Optional, default is http
        host  => 'localhost',   # Default: localhost
        path  => 'wiki' ,       # Can be empty on 3rd-level domain Wikis
        debug => 0              # Optional. 0=no debug msgs, 1=some msgs, 2=more msgs
  );

DESCRIPTION

Create or update MediaWiki pages. An update of a MediaWiki page can also be reduced to a specific page section. You may update many pages with the same object handle ($mw in the shown example).

You could change the login name between an update. This might be necessary if you would like to update a public page *and* a protected page by the WikiSysop user in just one cycle.

Login example

  if ($mw->login(user => 'Reto', pass => 'yourpass')) {
        print STDERR "Could not login\n";
        exit;
  }
  else {
        # Logged in. Do stuff ...
  }

Another login example

  $rc = $mw->login(
        protocol => 'https',       # optional, default is http
        host     => 'localhost' ,  # optional here, but wins if (re-)set here
        path     => 'wiki',        # optional here, but wins
        user     => 'Reto' ,       # default: Perlbot
        pass     => 'yourpass' ,
  );

Edit a Wiki page or section

  $rc = $mw->editPage(
        title   => 'Online_Directory:Computers:Software:Internet:Authoring' ,

        section => '' , #  2 means edit second section etc.
                        # '' = no section means edit the full page

        text    => "== Your Section Title ==\nbar foo\n\n",

        summary => "Your summary." , # optional
  );

Get a Wiki page or a section of a Wiki page

  $lines_ref = $mw->getPage(title => 'Perl_driven', section => 1); # omit section to get full page

  # Process Wiki lines ...
  print sprintf('%08d ', ++$i), " $_\n" foreach @$lines_ref;

In general, $rc returns 0 on success unequal 0 on failure.

Tip

After a successful call of the editPage function you had the following information available:

  print "Edit time (before) was ", $mw->get('EDIT_TIME_BEFORE'), "\n";
  print "Page title was "        , $mw->get('PAGE_TITLE')      , "\n";
  print "The Wiki name was "     , $mw->get('WIKI_NAME')       , "\n";

EXPORT

None by default.

SEE ALSO

  • http://meta.pgate.net/cms-mediawiki/

  • http://www.screenpoint.biz/

  • https://twitter.com/screenpoint

AUTHOR

Reto Schaer, <retoh@nospam-cpan.org>

COPYRIGHT AND LICENSE

Copyright (C) 2005-2010 by Reto Schaer

This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself, either Perl version 5.8.6 or, at your option, any later version of Perl 5 you may have available.

http://www.infocopter.com/perl/licencing.html

2 POD Errors

The following errors were encountered while parsing the POD:

Around line 370:

'=item' outside of any '=over'

Around line 382:

You forgot a '=back' before '=head1'