diff --git a/docs/gotcha.txt b/docs/gotcha.txt index 1d37e86ca..e8f7791a5 100644 --- a/docs/gotcha.txt +++ b/docs/gotcha.txt @@ -7,6 +7,17 @@ upgrading from one version to the next, or even between multiple versions. Be sure to heed the warnings contained herein as they will save you many hours of grief. +4.6.0 +-------------------------------------------------------------------- + * The runHourly scheduler has been updated to allow for more + types of automation. This update has caused an + incompatibility in old scheduler plug-ins. If you have not + installed any third-party scheduler plug-ins, then you have + nothing to worry about. However, if you do have some + scheduler plug-ins that didn't come with WebGUI, then please + contact the person or company that made it to get an + upgrade. + 4.3.0 -------------------------------------------------------------------- * The settings "extras", "uploadsURL", and "uploadsPath" have all diff --git a/lib/WebGUI.pm b/lib/WebGUI.pm index 7c165fdf5..2a28049b3 100644 --- a/lib/WebGUI.pm +++ b/lib/WebGUI.pm @@ -165,6 +165,7 @@ sub page { $debug .=''; } if ($session{header}{redirect} ne "") { + WebGUI::Session::close(); return $session{header}{redirect}; } else { $httpHeader = WebGUI::Session::httpHeader(); diff --git a/sbin/Hourly/DeleteExpiredSessions.pm b/sbin/Hourly/DeleteExpiredSessions.pm index 935edb6ba..b8c40062e 100644 --- a/sbin/Hourly/DeleteExpiredSessions.pm +++ b/sbin/Hourly/DeleteExpiredSessions.pm @@ -11,11 +11,12 @@ package Hourly::DeleteExpiredSessions; #------------------------------------------------------------------- use strict; +use WebGUI::Session; use WebGUI::SQL; #------------------------------------------------------------------- sub process { - WebGUI::SQL->write("delete from userSession where expires<".time(),$_[0]); + WebGUI::SQL->write("delete from userSession where expires<".time()); } 1; diff --git a/sbin/Hourly/SyndicatedContent.pm b/sbin/Hourly/SyndicatedContent.pm index 20c86bfd7..80f44f87c 100644 --- a/sbin/Hourly/SyndicatedContent.pm +++ b/sbin/Hourly/SyndicatedContent.pm @@ -13,6 +13,7 @@ package Hourly::SyndicatedContent; use HTTP::Request; use LWP::UserAgent; use strict; +use WebGUI::Session; use WebGUI::SQL; use XML::RSSLite; @@ -52,18 +53,17 @@ sub generateHTML { sub process { my ($sth, @data, %rss, $html); $sth = WebGUI::SQL->read("select wobject.wobjectId, SyndicatedContent.rssURL, SyndicatedContent.content - from wobject,SyndicatedContent where wobject.wobjectId=SyndicatedContent.wobjectId and wobject.pageId<>3",$_[0]); + from wobject,SyndicatedContent where wobject.wobjectId=SyndicatedContent.wobjectId and wobject.pageId<>3"); while (@data = $sth->array) { %rss = getRSS($data[1]); $html = generateHTML(%rss); if ($html ne "") { - WebGUI::SQL->write("update SyndicatedContent set content=".$_[0]->quote($html).", lastFetched=".time()." - where wobjectId=$data[0]",$_[0]); + WebGUI::SQL->write("update SyndicatedContent set content=".quote($html).", lastFetched=".time()." where wobjectId=$data[0]"); } elsif (substr($data[2],6) ne "Unable" && substr($data[2],7) ne "Not yet") { # then just leave the existing content in place } else { WebGUI::SQL->write("update SyndicatedContent set content='Unable to fetch content. Perhaps the RSS is improperly formated.', - lastFetched=".time()." where wobjectId=$data[0]",$_[0]); + lastFetched=".time()." where wobjectId=$data[0]"); } } $sth->finish; diff --git a/sbin/runHourly.pl b/sbin/runHourly.pl index 5b3a40278..f34ed7c7a 100644 --- a/sbin/runHourly.pl +++ b/sbin/runHourly.pl @@ -19,6 +19,7 @@ BEGIN { use DBI; use strict qw(subs vars); use Data::Config; +use WebGUI::Session; use WebGUI::Utility; @@ -47,26 +48,17 @@ if (opendir (CONFDIR,$confdir)) { @files = readdir(CONFDIR); foreach $file (@files) { if ($file =~ /(.*?)\.conf$/ && $file ne "some_other_site.conf") { - my ($config); - $config = new Data::Config $confdir.$file; - unless ($config->param('dsn') eq "") { - my $dbh; - unless (eval {$dbh = DBI->connect($config->param('dsn'),$config->param('dbuser'),$config->param('dbpass'))}) { - print "Can't connect to ".$config->param('dsn')." with info provided. Skipping.\n"; - } else { - foreach $namespace (keys %plugins) { - $exclude = $config->param('excludeHourly'); - $exclude =~ s/ //g; - unless (isIn($namespace, split(/,/,$exclude))) { - $cmd = $plugins{$namespace}; - &$cmd($dbh); - } - } - $dbh->disconnect(); - } - } else { - print "$file has some problems. Skipping\n"; + WebGUI::Session::open($webguiRoot,$file); + WebGUI::Session::refreshUserInfo(3,$session{dbh}); + foreach $namespace (keys %plugins) { + $exclude = $session{config}{excludeHourly}; + $exclude =~ s/ //g; + unless (isIn($namespace, split(/,/,$exclude))) { + $cmd = $plugins{$namespace}; + &$cmd(); + } } + WebGUI::Session::close(); } } closedir(CONFDIR);