#!/usr/bin/env perl $|++; # disable output buffering our ( $webguiRoot, $configFile ); BEGIN { $webguiRoot = ".."; unshift (@INC, $webguiRoot."/lib"); } use strict; use Pod::Usage; use Getopt::Long; use WebGUI::Session; # Get parameters here, including $help GetOptions( 'configFile=s' => \$configFile, ); my $session = start( $webguiRoot, $configFile ); installSubscriberAspectTable( $session ); installMailableAspectTable( $session ); installNewsletterCollection( $session ); installMailingTables( $session ); installNewsletterInAdminConsole( $session ); installNewsletterSettings( $session ); finish($session); #---------------------------------------------------------------------------- sub installMailableAspectTable { my $session = shift; print "\tCreating Mailable aspect table..."; $session->db->write(<db->write(<db->write(<db->write(<crud_createOrUpdateTable( $session ); WebGUI::Mailing::Email->crud_createOrUpdateTable( $session ); print "Done\n"; } #---------------------------------------------------------------------------- sub installNewsletterInAdminConsole { my $session = shift; print "\tAdding newsletter admin console section..."; $session->config->set( 'adminConsole/mailable', { groupSetting => "admins", icon => "newsletter.gif", title => "Newsletter", uiLevel => 7, url => qq{^PageUrl("",newsletter=manage);}, } ); print "Done.\n"; } #---------------------------------------------------------------------------- sub installNewsletterSettings { my $session = shift; my $setting = $session->setting; print "\tInstalling newsletter setting slots..."; $setting->add( 'newsletterReturnDomain', undef ) unless $setting->has( 'newsletterReturnDomain' ); $setting->add( 'newsletterBounceScoreThreshold', 0 ) unless $setting->has( 'newsletterBounceScoreThreshold' ); print "Done.\n"; } #---------------------------------------------------------------------------- sub start { my $webguiRoot = shift; my $configFile = shift; my $session = WebGUI::Session->open($webguiRoot,$configFile); $session->user({userId=>3}); ## If your script is adding or changing content you need these lines, otherwise leave them commented # # my $versionTag = WebGUI::VersionTag->getWorking($session); # $versionTag->set({name => 'Name Your Tag'}); # ## return $session; } #---------------------------------------------------------------------------- sub finish { my $session = shift; ## If your script is adding or changing content you need these lines, otherwise leave them commented # # my $versionTag = WebGUI::VersionTag->getWorking($session); # $versionTag->commit; ## $session->var->end; $session->close; } __END__ =head1 NAME utility - A template for WebGUI utility scripts =head1 SYNOPSIS utility --configFile config.conf ... utility --help =head1 DESCRIPTION This WebGUI utility script helps you... =head1 ARGUMENTS =head1 OPTIONS =over =item B<--configFile config.conf> The WebGUI config file to use. Only the file name needs to be specified, since it will be looked up inside WebGUI's configuration directory. This parameter is required. =item B<--help> Shows a short summary and usage =item B<--man> Shows this document =back =head1 AUTHOR Copyright 2001-2009 Plain Black Corporation. =cut #vim:ft=perl