added file manager migration
This commit is contained in:
parent
b43baa8acb
commit
c8b30d5493
2 changed files with 61 additions and 9 deletions
|
|
@ -28,7 +28,14 @@ save you many hours of grief.
|
||||||
check your site after the upgrade for all site maps to make
|
check your site after the upgrade for all site maps to make
|
||||||
sure that they look the way you want them to look.
|
sure that they look the way you want them to look.
|
||||||
|
|
||||||
* If you want to use the e-commerce system, you'll have to enable the
|
* All File Manager wobjects have been migrated to File Folder Layout
|
||||||
|
assets.
|
||||||
|
|
||||||
|
* If you have any SQL reports querying internal WebGUI database tables,
|
||||||
|
you'll need to update them after the upgrade. Most of WebGUI's
|
||||||
|
database tables will be changed during the upgrade process.
|
||||||
|
|
||||||
|
* If you want to use the e-commerce system, you'll have to enable the
|
||||||
PayFlowPro plugin in the config file. To do this correctly
|
PayFlowPro plugin in the config file. To do this correctly
|
||||||
you'll also have to download the Payflow Pro SDK from Verisign.
|
you'll also have to download the Payflow Pro SDK from Verisign.
|
||||||
Be sure to export the cert path into the PFPRO_CERT_PATH
|
Be sure to export the cert path into the PFPRO_CERT_PATH
|
||||||
|
|
|
||||||
|
|
@ -2,6 +2,7 @@
|
||||||
|
|
||||||
use lib "../../lib";
|
use lib "../../lib";
|
||||||
use FileHandle;
|
use FileHandle;
|
||||||
|
use File::Path;
|
||||||
use Getopt::Long;
|
use Getopt::Long;
|
||||||
use strict;
|
use strict;
|
||||||
use WebGUI::Id;
|
use WebGUI::Id;
|
||||||
|
|
@ -209,12 +210,12 @@ sub walkTree {
|
||||||
if ($namespace->{attachment}) {
|
if ($namespace->{attachment}) {
|
||||||
my $attachmentId = WebGUI::Id::generate();
|
my $attachmentId = WebGUI::Id::generate();
|
||||||
WebGUI::SQL->write("insert into asset (assetId, parentId, lineage, className, state, title, menuTitle,
|
WebGUI::SQL->write("insert into asset (assetId, parentId, lineage, className, state, title, menuTitle,
|
||||||
url, startDate, endDate, isHidden, ownerUserId, groupIdView, groupIdEdit, boundToId) values (".
|
url, startDate, endDate, isHidden, ownerUserId, groupIdView, groupIdEdit) values (".
|
||||||
quote($attachmentId).", ".quote($wobjectId).", ".quote($wobjectLineage.sprintf("%06d",1)).",
|
quote($attachmentId).", ".quote($wobjectId).", ".quote($wobjectLineage.sprintf("%06d",1)).",
|
||||||
'WebGUI::Asset::File','published',".quote($namespace->{attachment}).", ".
|
'WebGUI::Asset::File','published',".quote($namespace->{attachment}).", ".
|
||||||
quote($namespace->{attachment}).", ".quote(fixUrl($attachmentId,$wobjectUrl.$namespace->{attachment})).",
|
quote($namespace->{attachment}).", ".quote(fixUrl($attachmentId,$wobjectUrl.'/'.$namespace->{attachment})).",
|
||||||
".quote($wobject->{startDate}).", ".quote($wobject->{endDate}).", 1, ".quote($ownerId).",
|
".quote($wobject->{startDate}).", ".quote($wobject->{endDate}).", 1, ".quote($ownerId).",
|
||||||
".quote($groupIdView).", ".quote($groupIdEdit).", ".quote($wobjectId).")");
|
".quote($groupIdView).", ".quote($groupIdEdit).")");
|
||||||
my $storageId = copyFile($namespace->{attachment},$wobject->{wobjectId});
|
my $storageId = copyFile($namespace->{attachment},$wobject->{wobjectId});
|
||||||
WebGUI::SQL->write("insert into FileAsset (assetId, filename, storageId, fileSize) values (
|
WebGUI::SQL->write("insert into FileAsset (assetId, filename, storageId, fileSize) values (
|
||||||
".quote($attachmentId).", ".quote($namespace->{attachment}).", ".quote($storageId).",
|
".quote($attachmentId).", ".quote($namespace->{attachment}).", ".quote($storageId).",
|
||||||
|
|
@ -225,12 +226,12 @@ sub walkTree {
|
||||||
$rank ++ if ($namespace->{attachment});
|
$rank ++ if ($namespace->{attachment});
|
||||||
my $imageId = WebGUI::Id::generate();
|
my $imageId = WebGUI::Id::generate();
|
||||||
WebGUI::SQL->write("insert into asset (assetId, parentId, lineage, className, state, title, menuTitle,
|
WebGUI::SQL->write("insert into asset (assetId, parentId, lineage, className, state, title, menuTitle,
|
||||||
url, startDate, endDate, isHidden, ownerUserId, groupIdView, groupIdEdit, boundToId) values (".
|
url, startDate, endDate, isHidden, ownerUserId, groupIdView, groupIdEdit) values (".
|
||||||
quote($imageId).", ".quote($wobjectId).", ".quote($wobjectLineage.sprintf("%06d",$rank)).",
|
quote($imageId).", ".quote($wobjectId).", ".quote($wobjectLineage.sprintf("%06d",$rank)).",
|
||||||
'WebGUI::Asset::File::Image','published',".quote($namespace->{attachment}).", ".
|
'WebGUI::Asset::File::Image','published',".quote($namespace->{image}).", ".
|
||||||
quote($namespace->{image}).", ".quote(fixUrl($imageId,$wobjectUrl.$namespace->{image})).",
|
quote($namespace->{image}).", ".quote(fixUrl($imageId,$wobjectUrl.'/'.$namespace->{image})).",
|
||||||
".quote($wobject->{startDate}).", ".quote($wobject->{endDate}).", 1, ".quote($ownerId).",
|
".quote($wobject->{startDate}).", ".quote($wobject->{endDate}).", 1, ".quote($ownerId).",
|
||||||
".quote($groupIdView).", ".quote($groupIdEdit).", ".quote($wobjectId).")");
|
".quote($groupIdView).", ".quote($groupIdEdit).")");
|
||||||
my $storageId = copyFile($namespace->{image},$wobject->{wobjectId});
|
my $storageId = copyFile($namespace->{image},$wobject->{wobjectId});
|
||||||
copyFile('thumb-'.$namespace->{image},$wobject->{wobjectId},$storageId);
|
copyFile('thumb-'.$namespace->{image},$wobject->{wobjectId},$storageId);
|
||||||
WebGUI::SQL->write("insert into FileAsset (assetId, filename, storageId, fileSize) values (
|
WebGUI::SQL->write("insert into FileAsset (assetId, filename, storageId, fileSize) values (
|
||||||
|
|
@ -240,6 +241,7 @@ sub walkTree {
|
||||||
".quote($session{setting}{thumbnailSize}).")");
|
".quote($session{setting}{thumbnailSize}).")");
|
||||||
}
|
}
|
||||||
# migrate forums
|
# migrate forums
|
||||||
|
rmtree($session{config}{uploadsPath}.'/'.$wobject->{wobjectId});
|
||||||
} elsif ($wobject->{namespace} eq "SiteMap") {
|
} elsif ($wobject->{namespace} eq "SiteMap") {
|
||||||
print "\t\t\tConverting SiteMap ".$wobject->{wobjectId}." into Navigation\n" unless ($quiet);
|
print "\t\t\tConverting SiteMap ".$wobject->{wobjectId}." into Navigation\n" unless ($quiet);
|
||||||
my $navident = 'SiteMap_'.$namespace->{wobjectId};
|
my $navident = 'SiteMap_'.$namespace->{wobjectId};
|
||||||
|
|
@ -255,7 +257,43 @@ sub walkTree {
|
||||||
WebGUI::SQL->write("insert into Article (assetId,wobjectId) values (".quote($wobjectId).",
|
WebGUI::SQL->write("insert into Article (assetId,wobjectId) values (".quote($wobjectId).",
|
||||||
".quote($wobject->{wobjectId}).")");
|
".quote($wobject->{wobjectId}).")");
|
||||||
} elsif ($wobject->{namespace} eq "FileManager") {
|
} elsif ($wobject->{namespace} eq "FileManager") {
|
||||||
# we're dumping file manager's so do that here
|
print "\t\t\tConverting File Manager ".$wobject->{wobjectId}." into File Folder Layout\n" unless ($quiet);
|
||||||
|
WebGUI::SQL->write("update asset set className='WebGUI::Asset::Layout' where assetId=".quote($wobjectId));
|
||||||
|
WebGUI::SQL->write("insert into layout (assetId) values (".quote($wobjectId).")");
|
||||||
|
WebGUI::SQL->write("update wobject set templateId='15' where wobjectId=".quote($wobjectId));
|
||||||
|
print "\t\t\tMigrating attachments for File Manager ".$wobject->{wobjectId}."\n" unless ($quiet);
|
||||||
|
my $sth = WebGUI::SQL->read("select * from FileManager_file where wobjectId=".quote($wobjectId)." order by sequenceNumber");
|
||||||
|
my $rank = 1;
|
||||||
|
while (my $data = $sth->hashRef) {
|
||||||
|
foreach my $field ("downloadFile","alternateVersion1","alternateVersion2") {
|
||||||
|
next if ($data->{$field} eq "");
|
||||||
|
print "\t\t\t\tMigrating file ".$data->{$field}." (".$data->{FileManager_fileId}.")\n" unless ($quiet);
|
||||||
|
my $newId = WebGUI::Id::generate();
|
||||||
|
my $storageId = copyFile($data->{$field},$wobject->{wobjectId}.'/'.$data->{FileManager_fileId});
|
||||||
|
my $class;
|
||||||
|
if (isIn(getFileExtension($data->{$field}), qw(jpg jpeg gif png))) {
|
||||||
|
copyFile('thumb-'.$data->{$field},$wobject->{wobjectId}.'/'.$data->{FileManager_fileId},$storageId);
|
||||||
|
WebGUI::SQL->write("insert into ImageAsset (assetId, thumbnailSize) values (".quote($newId).",
|
||||||
|
".quote($session{setting}{thumbnailSize}).")");
|
||||||
|
$class = 'WebGUI::Asset::File::Image';
|
||||||
|
} else {
|
||||||
|
$class = 'WebGUI::Asset::File';
|
||||||
|
}
|
||||||
|
WebGUI::SQL->write("insert into FileAsset (assetId, filename, storageId, fileSize) values (
|
||||||
|
".quote($newId).", ".quote($data->{$field}).", ".quote($storageId).",
|
||||||
|
".quote(getFileSize($storageId,$data->{$field})).")");
|
||||||
|
WebGUI::SQL->write("insert into asset (assetId, parentId, lineage, className, state, title, menuTitle,
|
||||||
|
url, startDate, endDate, isHidden, ownerUserId, groupIdView, groupIdEdit, synopsis) values (".
|
||||||
|
quote($newId).", ".quote($wobjectId).", ".quote($wobjectLineage.sprintf("%06d",1)).",
|
||||||
|
'".$class."','published',".quote($data->{fileTitle}).", ".
|
||||||
|
quote($data->{fileTitle}).", ".quote(fixUrl($newId,$wobjectUrl.'/'.$data->{$field})).",
|
||||||
|
".quote($wobject->{startDate}).", ".quote($wobject->{endDate}).", 1, ".quote($ownerId).",
|
||||||
|
".quote($data->{groupToView}).", ".quote($groupIdEdit).", ".quote($data->{briefSynopsis}).")");
|
||||||
|
$rank++;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
$sth->finish;
|
||||||
|
rmtree($session{config}{uploadsPath}.'/'.$wobject->{wobjectId});
|
||||||
} elsif ($wobject->{namespace} eq "Product") {
|
} elsif ($wobject->{namespace} eq "Product") {
|
||||||
# migrate attachments to file assets
|
# migrate attachments to file assets
|
||||||
# migrate images to image assets
|
# migrate images to image assets
|
||||||
|
|
@ -345,6 +383,13 @@ sub getFileSize {
|
||||||
return $attributes[7];
|
return $attributes[7];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
sub getFileExtension {
|
||||||
|
my $filename = shift;
|
||||||
|
my $extension = lc($filename);
|
||||||
|
$extension =~ s/.*\.(.*?)$/$1/;
|
||||||
|
return $extension;
|
||||||
|
}
|
||||||
|
|
||||||
sub isIn {
|
sub isIn {
|
||||||
my $key = shift;
|
my $key = shift;
|
||||||
$_ eq $key and return 1 for @_;
|
$_ eq $key and return 1 for @_;
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue