diff --git a/docs/create.sql b/docs/create.sql
index b5e91468e..536b5dbab 100644
--- a/docs/create.sql
+++ b/docs/create.sql
@@ -1197,6 +1197,7 @@ INSERT INTO international VALUES (343,'WebGUI','Deutsch','Profil anschauen.');
INSERT INTO international VALUES (345,'WebGUI','Deutsch','Kein Mitglied');
INSERT INTO international VALUES (346,'WebGUI','Deutsch','Dieser Benutzer ist kein Mitglied. Wir haben keine weiteren Informationen über ihn.');
INSERT INTO international VALUES (347,'WebGUI','Deutsch','Profil anschauen von');
+INSERT INTO international VALUES (349,'WebGUI','English','Latest version available');
#
# Table structure for table 'message'
@@ -1329,7 +1330,7 @@ INSERT INTO settings VALUES ('profileExtraContact','1');
INSERT INTO settings VALUES ('profileMisc','1');
INSERT INTO settings VALUES ('profileHome','0');
INSERT INTO settings VALUES ('profileWork','0');
-INSERT INTO settings VALUES ('VERSION','2.3.2');
+INSERT INTO settings VALUES ('VERSION','2.3.3');
#
# Table structure for table 'style'
diff --git a/docs/previousVersion.sql b/docs/previousVersion.sql
index f9b4ab7ed..b5e91468e 100644
--- a/docs/previousVersion.sql
+++ b/docs/previousVersion.sql
@@ -132,7 +132,7 @@ CREATE TABLE LinkList (
CREATE TABLE LinkList_link (
widgetId int(11) default NULL,
linkId int(11) NOT NULL default '0',
- name varchar(30) default NULL,
+ name varchar(128) default NULL,
url text,
description text,
sequenceNumber int(11) NOT NULL default '0',
@@ -293,7 +293,7 @@ CREATE TABLE UserSubmission (
CREATE TABLE UserSubmission_submission (
widgetId int(11) default NULL,
submissionId int(11) NOT NULL default '0',
- title varchar(30) default NULL,
+ title varchar(128) default NULL,
dateSubmitted int(11) default NULL,
username varchar(30) default NULL,
userId int(11) default NULL,
@@ -1329,6 +1329,7 @@ INSERT INTO settings VALUES ('profileExtraContact','1');
INSERT INTO settings VALUES ('profileMisc','1');
INSERT INTO settings VALUES ('profileHome','0');
INSERT INTO settings VALUES ('profileWork','0');
+INSERT INTO settings VALUES ('VERSION','2.3.2');
#
# Table structure for table 'style'
diff --git a/docs/upgrades/upgrade_2.3.2-2.3.3.sql b/docs/upgrades/upgrade_2.3.2-2.3.3.sql
new file mode 100644
index 000000000..20db4f6e7
--- /dev/null
+++ b/docs/upgrades/upgrade_2.3.2-2.3.3.sql
@@ -0,0 +1,3 @@
+insert into international values ('349','WebGUI','English','Latest version available');
+update settings set value='2.3.3' where name='VERSION';
+
diff --git a/lib/WebGUI.pm b/lib/WebGUI.pm
index b44a78c82..15e99967a 100644
--- a/lib/WebGUI.pm
+++ b/lib/WebGUI.pm
@@ -1,5 +1,5 @@
package WebGUI;
-our $VERSION = "2.3.2";
+our $VERSION = "2.3.3";
#-------------------------------------------------------------------
# WebGUI is Copyright 2001 Plain Black Software.
diff --git a/lib/WebGUI/International.pm b/lib/WebGUI/International.pm
index 25e0412c3..e8cb118c9 100644
--- a/lib/WebGUI/International.pm
+++ b/lib/WebGUI/International.pm
@@ -19,10 +19,10 @@ my %international;
#-------------------------------------------------------------------
sub get {
my ($output, $language, $namespace);
- if ($session{user}{language} ne "") {
- $language = $session{user}{language};
- } elsif ($_[2] ne "") {
+ if ($_[2] ne "") {
$language = $_[2];
+ } elsif ($session{user}{language} ne "") {
+ $language = $session{user}{language};
} else {
$language = "English";
}
diff --git a/lib/WebGUI/Operation/Statistics.pm b/lib/WebGUI/Operation/Statistics.pm
index 782c67c6e..36d2f8bbd 100644
--- a/lib/WebGUI/Operation/Statistics.pm
+++ b/lib/WebGUI/Operation/Statistics.pm
@@ -11,6 +11,9 @@ package WebGUI::Operation::Statistics;
#-------------------------------------------------------------------
use Exporter;
+use HTTP::Request;
+use HTTP::Headers;
+use LWP::UserAgent;
use strict;
use WebGUI::International;
use WebGUI::Privilege;
@@ -22,12 +25,22 @@ our @EXPORT = qw(&www_viewStatistics);
#-------------------------------------------------------------------
sub www_viewStatistics {
- my ($output, $data);
+ my ($output, $data, $header, $userAgent, $request, $response, $version, $referer);
if (WebGUI::Privilege::isInGroup(3)) {
+ $userAgent = new LWP::UserAgent;
+ $userAgent->agent("WebGUI-Check/2.0");
+ $header = new HTTP::Headers;
+ $referer = "http://webgui.web.getversion/".$session{env}{SERVER_NAME}.$session{env}{REQUEST_URI};
+ chomp $referer;
+ $header->referer($referer);
+ $request = new HTTP::Request (GET => "http://www.plainblack.com/downloads/latest-version.txt", $header);
+ $response = $userAgent->request($request);
+ $version = $response->content;
+ chomp $version;
$output .= '
';
$output .= '
'.WebGUI::International::get(144).'
';
$output .= '';
- $output .= '| '.$WebGUI::VERSION.' |
';
+ $output .= '| '.$WebGUI::VERSION.' ('.WebGUI::International::get(349).': '.$version.') |
';
($data) = WebGUI::SQL->quickArray("select count(*) from session",$session{dbh});
$output .= '| '.$data.' |
';
($data) = WebGUI::SQL->quickArray("select count(*)+1 from page where parentId>25",$session{dbh});
diff --git a/lib/WebGUI/Operation/Submission.pm b/lib/WebGUI/Operation/Submission.pm
index d81843852..60ec90c28 100644
--- a/lib/WebGUI/Operation/Submission.pm
+++ b/lib/WebGUI/Operation/Submission.pm
@@ -25,7 +25,7 @@ our @EXPORT = qw(&www_viewPendingSubmissions &www_approveSubmission &www_denySub
#-------------------------------------------------------------------
sub www_approveSubmission {
if (WebGUI::Privilege::isInGroup(4,$session{user}{userId}) || WebGUI::Privilege::isInGroup(3,$session{user}{userId})) {
- WebGUI::SQL->write("update submission set status='Approved' where submissionId=$session{form}{sid}",$session{dbh});
+ WebGUI::SQL->write("update UserSubmission_submission set status='Approved' where submissionId=$session{form}{sid}",$session{dbh});
return www_viewPendingSubmissions();
} else {
return WebGUI::Privilege::insufficient();
@@ -35,7 +35,7 @@ sub www_approveSubmission {
#-------------------------------------------------------------------
sub www_denySubmission {
if (WebGUI::Privilege::isInGroup(4,$session{user}{userId}) || WebGUI::Privilege::isInGroup(3,$session{user}{userId})) {
- WebGUI::SQL->write("update submission set status='Denied' where submissionId=$session{form}{sid}",$session{dbh}
+ WebGUI::SQL->write("update UserSubmission_submission set status='Denied' where submissionId=$session{form}{sid}",$session{dbh}
);
return www_viewPendingSubmissions();
} else {
@@ -48,7 +48,7 @@ sub www_viewPendingSubmissions {
my (@submission, $output, $sth, @row, $i, $pn);
if (WebGUI::Privilege::isInGroup(4,$session{user}{userId}) || WebGUI::Privilege::isInGroup(3,$session{user}{userId})) {
$output = ''.WebGUI::International::get(159).'
';
- $sth = WebGUI::SQL->read("select title,submissionId,dateSubmitted,username,userId,widgetId from submission where status='Pending' order by dateSubmitted",$session{dbh});
+ $sth = WebGUI::SQL->read("select title,submissionId,dateSubmitted,username,userId,widgetId from UserSubmission_submission where status='Pending' order by dateSubmitted",$session{dbh});
while (@submission = $sth->array) {
$row[$i] = '| '.$submission[0].' | '.epochToHuman($submission[2],"%m/%d/%Y").' | '.$submission[3].' |
';
$i++;
diff --git a/testEnvironment.pl b/testEnvironment.pl
index 3071dd8f5..9e7b24b88 100644
--- a/testEnvironment.pl
+++ b/testEnvironment.pl
@@ -8,14 +8,46 @@
# http://www.plainblack.com info@plainblack.com
#-------------------------------------------------------------------
+# Yeah if you're looking at this code you're probably thinking to
+# yourself, "What a #$@*ing mess!" That's what we think too. But
+# if you know Perl well enough to know that this sux, then you
+# probably don't need to use this script cuz you know how to
+# install Perl modules and such.
+
+
BEGIN {
unshift (@INC, "./lib");
}
use strict;
+use CPAN;
+
+if ($ARGV[0] eq "--help" || $ARGV[0] eq "/?" || $ARGV[0] eq "/help" || $ARGV[0] eq "-?" || $ARGV[0] eq "-help" || $ARGV[0] eq "help") {
+ print "Usage: ".$0." [option]\n";
+ print "\t--help\t\t\tPrint this menu.\n";
+ print "\t--install-modules\tInstall any missing Perl modules.\n";
+ print "\n";
+ exit;
+}
print "\nWebGUI is checking your system environment...\n\n";
+our $os;
+if ($^O =~ /Win/i) {
+ $os = "Microsoftish";
+} else {
+ $os = "Linuxish";
+}
+
+print "Operating System:\t".$os."\n";
+
+if ($ARGV[0] eq "--install-modules" && $< != 0 && $os eq "Linuxish") {
+ print "You cannot install Perl modules unless you are the root user.\n";
+ exit;
+} elsif ($ARGV[0] eq "--install-modules" && $os eq "Windowsish") {
+ print $0." cannot currently install Perl modules under ".$os." operating systems.\n";
+ exit;
+}
###################################
# Checking Perl
@@ -26,66 +58,110 @@ if ($] >= 5.006) {
print "OK\n";
} else {
print "Please upgrade to 5.6 or later!\n";
+ if ($ARGV[0] ne "") {
+ print "Test environment exiting, cannot continue without Perl 5.6.\n";
+ exit;
+ }
}
-print "DBI module:\t\t";
-if (eval { require DBI }) {
- print "OK\n";
-} else {
- print "Please install.\n";
-}
-
-print "Database drivers:\t";
-print join(", ",DBI->available_drivers);
-print "\n";
-
print "LWP module:\t\t";
if (eval { require LWP }) {
print "OK\n";
} else {
- print "Please install.\n";
-}
-
-print "Tie::IxHash module:\t";
-if (eval { require Tie::IxHash }) {
- print "OK\n";
-} else {
- print "Please install.\n";
-}
-
-print "Tie::CPHash module:\t";
-if (eval { require Tie::CPHash }) {
- print "OK\n";
-} else {
- print "Please install.\n";
-}
-
-print "Net::SMTP module:\t";
-if (eval { require Net::SMTP }) {
- print "OK\n";
-} else {
- print "Please install.\n";
-}
-
-print "XML::RSS module:\t";
-if (eval { require XML::RSS }) {
- print "OK\n";
-} else {
- print "Please install.\n";
+ if ($ARGV[0] eq "--install-modules") {
+ print "Installing...\n";
+ CPAN::Shell->install("LWP");
+ } else {
+ print "Please install.\n";
+ }
}
print "Digest::MD5 module:\t";
if (eval { require Digest::MD5 }) {
print "OK\n";
} else {
- print "Please install.\n";
+ if ($ARGV[0] eq "--install-modules") {
+ print "Installing...\n";
+ CPAN::Shell->install("Digest::MD5");
+ } else {
+ print "Please install.\n";
+ }
+}
+
+print "DBI module:\t\t";
+if (eval { require DBI }) {
+ print "OK\n";
+} else {
+ if ($ARGV[0] eq "--install-modules") {
+ print "Installing...\n";
+ CPAN::Shell->install("DBI");
+ } else {
+ print "Please install.\n";
+ }
+}
+
+print "Database drivers:\t";
+print join(", ",DBI->available_drivers);
+print "\n";
+
+print "Tie::IxHash module:\t";
+if (eval { require Tie::IxHash }) {
+ print "OK\n";
+} else {
+ if ($ARGV[0] eq "--install-modules") {
+ print "Installing...\n";
+ CPAN::Shell->install("Tie::IxHash");
+ } else {
+ print "Please install.\n";
+ }
+}
+
+print "Tie::CPHash module:\t";
+if (eval { require Tie::CPHash }) {
+ print "OK\n";
+} else {
+ if ($ARGV[0] eq "--install-modules") {
+ print "Installing...\n";
+ CPAN::Shell->install("Tie::CPHash");
+ } else {
+ print "Please install.\n";
+ }
+}
+
+print "Net::SMTP module:\t";
+if (eval { require Net::SMTP }) {
+ print "OK\n";
+} else {
+ if ($ARGV[0] eq "--install-modules") {
+ print "Installing...\n";
+ CPAN::Shell->install("Net::SMTP");
+ } else {
+ print "Please install.\n";
+ }
+}
+
+print "XML::RSS module:\t";
+if (eval { require XML::RSS }) {
+ print "OK\n";
+} else {
+ if ($ARGV[0] eq "--install-modules") {
+ print "Installing...\n";
+ CPAN::Shell->install("XML::RSS");
+ } else {
+ print "Please install.\n";
+ }
}
print "Net::LDAP module:\t";
if (eval { require Net::LDAP }) {
print "OK\n";
} else {
- print "Please install.\n";
+ if ($ARGV[0] eq "--install-modules") {
+ print "Installing...\n";
+ CPAN::Shell->install("Net::LDAP");
+ } else {
+ print "Please install.\n";
+ }
}
# this is here to insure they installed correctly.
@@ -155,11 +231,10 @@ use HTTP::Request;
use HTTP::Headers;
my ($header, $userAgent, $request, $response, $version, $referer);
$userAgent = new LWP::UserAgent;
-$userAgent->agent("WebGUI-Check/1.0");
+$userAgent->agent("WebGUI-Check/2.0");
$header = new HTTP::Headers;
-$referer = "http://".`hostname`;
+$referer = "http://webgui.cli.getversion/".`hostname`;
chomp $referer;
-$referer .= "/getversion/";
$header->referer($referer);
$request = new HTTP::Request (GET => "http://www.plainblack.com/downloads/latest-version.txt", $header);
$response = $userAgent->request($request);
@@ -170,9 +245,11 @@ if ($response->is_error) {
} elsif ($version eq $WebGUI::VERSION) {
print "OK\n";
} else {
- print "There is a newer version of WebGUI available.\n";
+ print "You are using ".$WebGUI::VERSION." and ".$version." is available.\n";
}
print "\nTesting complete!\n";
+
+