diff --git a/docs/create.sql b/docs/create.sql index 8ffd62df6..7576a16f8 100644 --- a/docs/create.sql +++ b/docs/create.sql @@ -9,7 +9,7 @@ # CREATE TABLE Article ( - widgetId int(11) default NULL, + widgetId int(11) NOT NULL default '0', startDate int(11) default NULL, endDate int(11) default NULL, body mediumtext, @@ -17,7 +17,8 @@ CREATE TABLE Article ( linkTitle varchar(255) default NULL, linkURL text, attachment varchar(255) default NULL, - convertCarriageReturns int(11) NOT NULL default '0' + convertCarriageReturns int(11) NOT NULL default '0', + PRIMARY KEY (widgetId) ) TYPE=MyISAM; # @@ -113,10 +114,11 @@ CREATE TABLE FAQ_question ( # CREATE TABLE Item ( - widgetId int(11) default NULL, + widgetId int(11) NOT NULL default '0', description text, linkURL text, - attachment varchar(255) default NULL + attachment varchar(255) default NULL, + PRIMARY KEY (widgetId) ) TYPE=MyISAM; # @@ -166,10 +168,11 @@ CREATE TABLE LinkList_link ( # CREATE TABLE MessageBoard ( - widgetId int(11) default NULL, + widgetId int(11) NOT NULL default '0', groupToPost int(11) default NULL, messagesPerPage int(11) NOT NULL default '50', - editTimeout int(11) default NULL + editTimeout int(11) default NULL, + PRIMARY KEY (widgetId) ) TYPE=MyISAM; # @@ -2375,6 +2378,7 @@ INSERT INTO international VALUES (36,'UserSubmission','English','Delete file.'); INSERT INTO international VALUES (378,'WebGUI','English','User ID'); INSERT INTO international VALUES (379,'WebGUI','English','Group ID'); INSERT INTO international VALUES (380,'WebGUI','English','Style ID'); +INSERT INTO international VALUES (381,'WebGUI','English','WebGUI received a malformed request and was unable to continue. Proprietary characters being passed through a form typically cause this. Please feel free to hit your back button and try again.'); # # Table structure for table 'messageLog' @@ -2631,7 +2635,7 @@ INSERT INTO users VALUES (25,'Reserved','No Login',NULL,'WebGUI',NULL,NULL,'Engl CREATE TABLE widget ( widgetId int(11) NOT NULL default '0', pageId int(11) default NULL, - widgetType varchar(35) default NULL, + namespace varchar(35) default NULL, sequenceNumber int(11) NOT NULL default '1', title varchar(255) default NULL, displayTitle int(11) NOT NULL default '1', diff --git a/docs/previousVersion.sql b/docs/previousVersion.sql index 8783892e6..8ffd62df6 100644 --- a/docs/previousVersion.sql +++ b/docs/previousVersion.sql @@ -2366,6 +2366,15 @@ INSERT INTO international VALUES (375,'WebGUI','English','Select Package To Depl INSERT INTO international VALUES (376,'WebGUI','English','Package'); INSERT INTO international VALUES (377,'WebGUI','English','No packages have been defined by your package manager(s) or administrator(s).'); INSERT INTO international VALUES (11,'Poll','English','Vote!'); +INSERT INTO international VALUES (31,'UserSubmission','English','Content'); +INSERT INTO international VALUES (32,'UserSubmission','English','Image'); +INSERT INTO international VALUES (33,'UserSubmission','English','Attachement'); +INSERT INTO international VALUES (34,'UserSubmission','English','Convert Carriage Returns'); +INSERT INTO international VALUES (35,'UserSubmission','English','Title'); +INSERT INTO international VALUES (36,'UserSubmission','English','Delete file.'); +INSERT INTO international VALUES (378,'WebGUI','English','User ID'); +INSERT INTO international VALUES (379,'WebGUI','English','Group ID'); +INSERT INTO international VALUES (380,'WebGUI','English','Style ID'); # # Table structure for table 'messageLog' @@ -2414,7 +2423,7 @@ CREATE TABLE page ( # Dumping data for table 'page' # -INSERT INTO page VALUES (1,0,'Home',-5,3,1,1,1,1,0,1,0,1,'','home',1,'Default'); +INSERT INTO page VALUES (1,0,'Home',-3,3,1,1,1,1,0,1,0,1,'','home',1,'Default'); INSERT INTO page VALUES (6,0,'Reserved',0,0,1,1,NULL,1,0,1,0,1,NULL,NULL,0,'Default'); INSERT INTO page VALUES (7,0,'Reserved',0,0,1,1,NULL,1,0,1,0,1,NULL,NULL,0,'Default'); INSERT INTO page VALUES (8,0,'Reserved',0,0,1,1,NULL,1,0,1,0,1,NULL,NULL,0,'Default'); @@ -2435,7 +2444,7 @@ INSERT INTO page VALUES (22,0,'Reserved',0,0,1,1,NULL,1,0,1,0,1,NULL,NULL,0,'Def INSERT INTO page VALUES (23,0,'Reserved',0,0,1,1,NULL,1,0,1,0,1,NULL,NULL,0,'Default'); INSERT INTO page VALUES (24,0,'Reserved',0,0,1,1,NULL,1,0,1,0,1,NULL,NULL,0,'Default'); INSERT INTO page VALUES (25,0,'Reserved',0,0,1,1,NULL,1,0,1,0,1,NULL,NULL,0,'Default'); -INSERT INTO page VALUES (4,0,'Page Not Found',-2,3,1,1,1,1,0,1,0,1,'','page_not_found',0,'Default'); +INSERT INTO page VALUES (4,0,'Page Not Found',-3,3,1,1,1,1,0,1,0,1,'','page_not_found',0,'Default'); INSERT INTO page VALUES (3,0,'Trash',4,3,1,1,3,1,1,0,0,1,'','trash',0,'Default'); INSERT INTO page VALUES (2,0,'Clipboard',4,3,1,1,4,1,1,0,0,1,'','clipboard',0,'Default'); INSERT INTO page VALUES (5,0,'Packages',1,3,0,0,6,1,1,0,0,1,'','packages',0,'Default'); @@ -2515,9 +2524,9 @@ CREATE TABLE style ( # INSERT INTO style VALUES (1,'Packages','\r\n
PACKAGES
^FlexMenu;
CONTENT
','
\r\n
\r\n^H; / ^a;\r\n',''); -INSERT INTO style VALUES (-3,'WebGUI','\r\n\r\n\r\n\r\n
\r\n\r\n\r\n\r\n\r\n \r\n \r\n \r\n\r\n\r\n
^FlexMenu;
\r\n^L;\r\n
\r\n\r\n','
\r\n

\r\n

\r\n
\r\n©2001-2002 Plain Black Software
\r\n
\r\n',''); +INSERT INTO style VALUES (-3,'WebGUI','\r\n\r\n\r\n\r\n
\r\n\r\n\r\n\r\n\r\n \r\n \r\n \r\n\r\n\r\n
^FlexMenu;
\r\n^L;\r\n
\r\n\r\n','
\r\n

\r\n

\r\n
\r\n©2001-2002 Plain Black Software
\r\n
\r\n',''); INSERT INTO style VALUES (2,'Fail Safe','\r\n^H; / ^t; / ^m; / ^a;\r\n
','
\r\n^H; / ^t; / ^m; / ^a;\r\n',''); -INSERT INTO style VALUES (-2,'Plain Black Software (black)','\r\n\r\n\r\n\r\n \r\n \r\n \r\n\r\n\r\n \r\n \r\n\r\n
\"Plain\"User:\" ^@;\"My\"|\"\"Download\"\"|\"\"Home\"
^C;^D(\"%c %D, %y\");
\r\n\r\n\r\n \r\n \r\n\r\n\r\n \r\n\r\n
^T(2);','

\"\"

\r\n\r\n\r\n \r\n \r\n\r\n
\"Copyright^r(\'\"Make\');
\r\n\r\n',''); +INSERT INTO style VALUES (-2,'Plain Black Software (black)','\r\n\r\n\r\n\r\n \r\n \r\n \r\n\r\n\r\n \r\n \r\n\r\n
\"Plain\"User:\" ^@;\"My\"|\"\"Download\"\"|\"\"Home\"
^C;^D(\"%c %D, %y\");
\r\n\r\n\r\n \r\n \r\n\r\n\r\n \r\n\r\n
^T(2);','

\"\"

\r\n\r\n\r\n \r\n \r\n\r\n
\"Copyright^r(\'\"Make\');
\r\n\r\n',''); INSERT INTO style VALUES (4,'Trash / Clipboard','\r\n
PAGES
^M(0);
CONTENT
','
\r\n
\r\n^H; / ^a;\r\n',''); INSERT INTO style VALUES (5,'Reserved','','',NULL); INSERT INTO style VALUES (6,'Reserved','','',NULL); @@ -2543,7 +2552,7 @@ INSERT INTO style VALUES (-1,'Yahoo!','Yahoo!\r\n\r\n\r\n\r\n \r\n \r\n \r\n

Your Company Name Here

Address: 1903 Sunrise St. City, State 65977
\r\nTel: 915.888.8888
\r\nEmail: service@company.com
\r\n\r\n \r\n \r\n \r\n \r\n
^t;
\r\n\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n^M;\r\n
\r\n

\r\n \r\n \r\n
\r\n ','
\r\n
\r\n\r\n\r\n
^H · ^a;
\r\n\r\n\r\n\r\n',''); INSERT INTO style VALUES (3,'Make Page Printable','\r\n
','
© 2001-2002 Plain Black Software
\r\n',''); INSERT INTO style VALUES (25,'Reserved',NULL,NULL,NULL); -INSERT INTO style VALUES (-5,'Plain Black Software (white)','\r\n\r\n\r\n\r\n \r\n \r\n \r\n\r\n\r\n \r\n \r\n\r\n
\"Plain\"User:\" ^@;\"My\"|\"\"Download\"\"|\"\"Home\"
^C;^D(\"%c %D, %y\");
\r\n\r\n\r\n \r\n \r\n\r\n\r\n \r\n\r\n
^T(2);','

\"\"

\r\n\r\n\r\n \r\n \r\n\r\n
\"Copyright^r(\'\"Make\');
\r\n\r\n',''); +INSERT INTO style VALUES (-5,'Plain Black Software (white)','\r\n\r\n\r\n\r\n \r\n \r\n \r\n\r\n\r\n \r\n \r\n\r\n
\"Plain\"User:\" ^@;\"My\"|\"\"Download\"\"|\"\"Home\"
^C;^D(\"%c %D, %y\");
\r\n\r\n\r\n \r\n \r\n\r\n\r\n \r\n\r\n
^T(2);','

\"\"

\r\n\r\n\r\n \r\n \r\n\r\n
\"Copyright^r(\'\"Make\');
\r\n\r\n',''); # # Table structure for table 'users' @@ -2632,7 +2641,7 @@ CREATE TABLE widget ( addedBy int(11) default NULL, lastEdited int(11) default NULL, editedBy int(11) default NULL, - position char(1) NOT NULL default 'A', + templatePosition char(1) NOT NULL default 'A', PRIMARY KEY (widgetId) ) TYPE=MyISAM; diff --git a/docs/upgrades/upgrade_3.0.1-3.0.2.sql b/docs/upgrades/upgrade_3.0.1-3.0.2.sql new file mode 100644 index 000000000..904ba00b9 --- /dev/null +++ b/docs/upgrades/upgrade_3.0.1-3.0.2.sql @@ -0,0 +1,9 @@ +alter table widget change widgetType namespace varchar(35); + +INSERT INTO international VALUES (381,'WebGUI','English','WebGUI received a malformed request and was unable to continue. Proprietary characters being passed through a form typically cause this. Please feel free to hit your back button and try again.'); + +alter table Article change widgetId widgetId int not null primary key; +alter table Item change widgetId widgetId int not null primary key; +alter table MessageBoard change widgetId widgetId int not null primary key; + + diff --git a/lib/WebGUI.pm b/lib/WebGUI.pm index 79ff472f7..9a22896fc 100644 --- a/lib/WebGUI.pm +++ b/lib/WebGUI.pm @@ -156,10 +156,14 @@ sub page { if (exists $session{form}{widget}) { $widgetType = $session{form}{widget}; } else { - ($widgetType) = WebGUI::SQL->quickArray("select widgetType from widget where widgetId='$session{form}{wid}'"); + ($widgetType) = WebGUI::SQL->quickArray("select namespace from widget where widgetId='$session{form}{wid}'"); } - $cmd = "WebGUI::Widget::".$widgetType."::www_".$session{form}{func}; - $functionOutput = &$cmd(); + if ($widgetType ne "") { + $cmd = "WebGUI::Widget::".$widgetType."::www_".$session{form}{func}; + $functionOutput = &$cmd(); + } else { + $functionOutput = WebGUI::International::get(381); + } } if ($operationOutput ne "") { $contentHash{A} = $operationOutput; @@ -172,7 +176,7 @@ sub page { if ($session{var}{adminOn}) { $pageEdit = '
Page Settings:Edit PageCut PageDelete PageMove Page UpMove Page Down'; } - $sth = WebGUI::SQL->read("select widgetId, widgetType, templatePosition from widget where pageId=".$session{page}{pageId}." order by sequenceNumber, widgetId"); + $sth = WebGUI::SQL->read("select widgetId, namespace, templatePosition from widget where pageId=".$session{page}{pageId}." order by sequenceNumber, widgetId"); while (@widgetList = $sth->array) { if ($session{var}{adminOn}) { $contentHash{$widgetList[2]} .= '
EditCutCopyDeleteMove UpMove DownMove to TopMove to Bottom
'; diff --git a/lib/WebGUI/Attachment.pm b/lib/WebGUI/Attachment.pm index 68cffa7a3..6a3a8d7fc 100644 --- a/lib/WebGUI/Attachment.pm +++ b/lib/WebGUI/Attachment.pm @@ -36,6 +36,8 @@ sub copy { $newFile .= '/'.$_[0]; $a = FileHandle->new($oldFile,"r"); $b = FileHandle->new(">".$newFile); + binmode($a); + binmode($b); cp($a,$b); $a->close; $b->close; diff --git a/lib/WebGUI/Form.pm b/lib/WebGUI/Form.pm index 1cf4f67a3..826685c2b 100644 --- a/lib/WebGUI/Form.pm +++ b/lib/WebGUI/Form.pm @@ -140,6 +140,7 @@ sub text { sub textArea { my ($output, $name, $value, $cols, $rows, $htmlEdit, $wrap); ($name, $value, $cols, $rows, $htmlEdit, $wrap) = @_; + $output = ''; if ($cols eq "") { $cols = 50; } @@ -153,7 +154,7 @@ sub textArea { if ($wrap eq "") { $wrap = "virtual"; } - $output .= ''; + $output .= ''; return $output; } diff --git a/lib/WebGUI/Operation/Package.pm b/lib/WebGUI/Operation/Package.pm index 8f78b3001..ab33e3c59 100644 --- a/lib/WebGUI/Operation/Package.pm +++ b/lib/WebGUI/Operation/Package.pm @@ -23,7 +23,7 @@ our @EXPORT = qw(&www_deployPackage &www_selectPackageToDeploy); #------------------------------------------------------------------- sub _duplicateWidgets { my ($b, $widgetId, $widgetType, $func); - $b = WebGUI::SQL->read("select widgetId, widgetType from widget where pageId=$_[0]"); + $b = WebGUI::SQL->read("select widgetId, namespace from widget where pageId=$_[0]"); while (($widgetId,$widgetType) = $b->array) { $func = "WebGUI::Widget::".$widgetType."::duplicate"; &$func($widgetId,$_[1]); diff --git a/lib/WebGUI/Operation/Trash.pm b/lib/WebGUI/Operation/Trash.pm index ba5391902..f4bcbdb11 100644 --- a/lib/WebGUI/Operation/Trash.pm +++ b/lib/WebGUI/Operation/Trash.pm @@ -23,7 +23,7 @@ our @EXPORT = qw(&www_purgeTrash &www_purgeTrashConfirm); #------------------------------------------------------------------- sub _purgeWidgets { my ($b, $widgetId, $widgetType, $func); - $b = WebGUI::SQL->read("select widgetId, widgetType from widget where pageId=$_[0]"); + $b = WebGUI::SQL->read("select widgetId, namespace from widget where pageId=$_[0]"); while (($widgetId,$widgetType) = $b->array) { $func = "WebGUI::Widget::".$widgetType."::purge"; &$func($widgetId);