X-Git-Url: http://Server1/repobrowser/?p=kiriwrite%2F.git;a=blobdiff_plain;f=cgi-files%2FModules%2FDatabase%2FMySQL5.pm;h=c398c6dbf055c0c926b08058fb3fc444d4406c74;hp=d2c9c170e851cfbe3daa70eaa08b418d4a9427a0;hb=1553f195cb1ca50f1409afec52b29002e03b4511;hpb=be683aa626f39218c9ee5e3e0523069a5243dd83 diff --git a/cgi-files/Modules/Database/MySQL5.pm b/cgi-files/Modules/Database/MySQL5.pm index d2c9c17..c398c6d 100644 --- a/cgi-files/Modules/Database/MySQL5.pm +++ b/cgi-files/Modules/Database/MySQL5.pm @@ -27,7 +27,7 @@ package Kiriwrite::Database::MySQL5; use strict; use warnings; -use Encode qw(); +use Encode qw(decode_utf8); # Load the following Perl modules. @@ -625,49 +625,6 @@ sub getdblist{ } -sub getseconddatabaseinfo{ -################################################################################# -# getseconddatabaseinfo: Get information about the database that pages will be # -# moved or copied to. # -# # -# Usage: # -# # -# $dbmodule->getseconddatabaseinfo(); # -################################################################################# - - - # Get the database information. - - my $class = shift; - my ($databaseinfo, %databaseinfo); - my ($sqldata, @sqldata); - - $error = ""; - $errorext = ""; - - $string_handle = $database_handle->prepare('SELECT name, description, notes, categories, kiriwrite_version_major, kiriwrite_version_minor, kiriwrite_version_revision FROM ' . $class->convert($options{"TablePrefix"}) . '_' . $class->convert($second_database_filename) . '_database_info LIMIT 1') or ( $error = "DatabaseError", $errorext = $database_handle->errstr, return ); - $string_handle->execute(); - - @sqldata = $string_handle->fetchrow_array(); - - # Process the database information into a hash. - - %databaseinfo = ( - "DatabaseName" => decode_utf8($sqldata[0]), - "Description" => decode_utf8($sqldata[1]), - "Notes" => decode_utf8($sqldata[2]), - "Categories" => decode_utf8($sqldata[3]), - "Major" => decode_utf8($sqldata[4]), - "Minor" => decode_utf8($sqldata[5]), - "Revision" => decode_utf8($sqldata[6]) - ); - - $string_handle->finish(); - - return %databaseinfo; - -} - sub selectdb{ ################################################################################# # selectdb: Selects the Kiriwrite database. # @@ -708,6 +665,48 @@ sub selectdb{ } +sub getdatabaseinfo{ +################################################################################# +# getdatabaseinfo: Get information about the database. # +# # +# Usage: # +# # +# $dbmodule->getdatabaseinfo(); # +################################################################################# + + # Get the database information. + + $error = ""; + $errorext = ""; + + my $class = shift; + my ($databaseinfo, %databaseinfo); + my ($sqldata, @sqldata); + + $string_handle = $database_handle->prepare('SELECT name, description, notes, categories, kiriwrite_version_major, kiriwrite_version_minor, kiriwrite_version_revision FROM ' . $class->convert($options{"TablePrefix"}) . '_' . $class->convert($database_filename) . '_database_info LIMIT 1') or ( $error = "DatabaseError", $errorext = $database_handle->errstr, return ); + $string_handle->execute(); + + @sqldata = $string_handle->fetchrow_array(); + + # Process the database information into a hash. + + %databaseinfo = ( + + "DatabaseName" => decode_utf8($sqldata[0]), + "Description" => decode_utf8($sqldata[1]), + "Notes" => decode_utf8($sqldata[2]), + "Categories" => decode_utf8($sqldata[3]), + "Major" => decode_utf8($sqldata[4]), + "Minor" => decode_utf8($sqldata[5]), + "Revision" => decode_utf8($sqldata[6]) + ); + + $string_handle->finish(); + + return %databaseinfo; + +} + sub selectseconddb{ ################################################################################# # selectseconddb: Selects a second Kiriwrite database for moving and copying # @@ -754,25 +753,27 @@ sub selectseconddb{ } -sub getdatabaseinfo{ +sub getseconddatabaseinfo{ ################################################################################# -# getdatabaseinfo: Get information about the database. # +# getseconddatabaseinfo: Get information about the database that pages will be # +# moved or copied to. # # # # Usage: # # # -# $dbmodule->getdatabaseinfo(); # +# $dbmodule->getseconddatabaseinfo(); # ################################################################################# - # Get the database information. - $error = ""; - $errorext = ""; + # Get the database information. my $class = shift; my ($databaseinfo, %databaseinfo); my ($sqldata, @sqldata); - $string_handle = $database_handle->prepare('SELECT name, description, notes, categories, kiriwrite_version_major, kiriwrite_version_minor, kiriwrite_version_revision FROM ' . $class->convert($options{"TablePrefix"}) . '_' . $class->convert($database_filename) . '_database_info LIMIT 1') or ( $error = "DatabaseError", $errorext = $database_handle->errstr, return ); + $error = ""; + $errorext = ""; + + $string_handle = $database_handle->prepare('SELECT name, description, notes, categories, kiriwrite_version_major, kiriwrite_version_minor, kiriwrite_version_revision FROM ' . $class->convert($options{"TablePrefix"}) . '_' . $class->convert($second_database_filename) . '_database_info LIMIT 1') or ( $error = "DatabaseError", $errorext = $database_handle->errstr, return ); $string_handle->execute(); @sqldata = $string_handle->fetchrow_array(); @@ -780,7 +781,6 @@ sub getdatabaseinfo{ # Process the database information into a hash. %databaseinfo = ( - "DatabaseName" => decode_utf8($sqldata[0]), "Description" => decode_utf8($sqldata[1]), "Notes" => decode_utf8($sqldata[2]), @@ -1211,7 +1211,7 @@ sub addtemplate{ # # # Usage: # # # -# $dbmodule->addtemplate(); # +# $dbmodule->addtemplate(options); # # # # options Specifies the following options in any order. # # # @@ -1325,58 +1325,6 @@ sub addtemplate{ } -sub deletetemplate{ -################################################################################# -# deletetemplate: Deletes a template from the template database. # -# # -# Usage: # -# # -# $dbmodule->deletetemplate(options); # -# # -# options Specifies the following options in any order. # -# # -# TemplateFilename Specifies the template filename to delete. # -################################################################################# - - $error = ""; - $errorext = ""; - - # Get the data passed to the subroutine. - - my $class = shift; - my ($passedoptions) = @_; - - my @pagedata; - my $template_filename = $passedoptions->{"TemplateFilename"}; - my $template_count = 0; - - # Check if the template exists. - - $string_handle = $database_handle->prepare('SELECT filename FROM ' . $class->convert($options{"TablePrefix"}) . '_templates WHERE filename = \'' . $class->convert($template_filename) . '\' LIMIT 1') or ( $error = "TemplateDatabaseError", $errorext = $database_handle->errstr, return ); - $string_handle->execute(); - - while (@pagedata = $string_handle->fetchrow_array()){ - - $template_count++; - - } - - if ($template_count eq 0){ - - # No pages were returned so return an error value. - - $error = "TemplateDoesNotExist"; - return; - - } - - # Delete the template from the template database. - - $string_handle = $database_handle->prepare('DELETE FROM ' . $class->convert($options{"TablePrefix"}) . '_templates WHERE filename = \'' . $class->convert($template_filename) . '\'') or ( $error = "TemplateDatabaseError", $errorext = $database_handle->errstr, return ); - $string_handle->execute(); - -} - sub edittemplate{ ################################################################################# # editttemplate: Edits a Kiriwrite template. # @@ -1449,6 +1397,58 @@ sub edittemplate{ } +sub deletetemplate{ +################################################################################# +# deletetemplate: Deletes a template from the template database. # +# # +# Usage: # +# # +# $dbmodule->deletetemplate(options); # +# # +# options Specifies the following options in any order. # +# # +# TemplateFilename Specifies the template filename to delete. # +################################################################################# + + $error = ""; + $errorext = ""; + + # Get the data passed to the subroutine. + + my $class = shift; + my ($passedoptions) = @_; + + my @pagedata; + my $template_filename = $passedoptions->{"TemplateFilename"}; + my $template_count = 0; + + # Check if the template exists. + + $string_handle = $database_handle->prepare('SELECT filename FROM ' . $class->convert($options{"TablePrefix"}) . '_templates WHERE filename = \'' . $class->convert($template_filename) . '\' LIMIT 1') or ( $error = "TemplateDatabaseError", $errorext = $database_handle->errstr, return ); + $string_handle->execute(); + + while (@pagedata = $string_handle->fetchrow_array()){ + + $template_count++; + + } + + if ($template_count eq 0){ + + # No pages were returned so return an error value. + + $error = "TemplateDoesNotExist"; + return; + + } + + # Delete the template from the template database. + + $string_handle = $database_handle->prepare('DELETE FROM ' . $class->convert($options{"TablePrefix"}) . '_templates WHERE filename = \'' . $class->convert($template_filename) . '\'') or ( $error = "TemplateDatabaseError", $errorext = $database_handle->errstr, return ); + $string_handle->execute(); + +} + ################################################################################# # Page subroutines. # ################################################################################# @@ -1794,6 +1794,33 @@ sub editpage{ } + # Check if there is a page that already exists with the new + # filename. + + if ($page_filename ne $page_newfilename){ + + $string_handle = $database_handle->prepare('SELECT filename FROM ' . $class->convert($options{"TablePrefix"}) . '_' . $class->convert($database_filename) . '_database_pages WHERE filename = \'' . $class->convert($page_newfilename) . '\' LIMIT 1') or ( $error = "DatabaseError", $errorext = $database_handle->errstr, return ); + $string_handle->execute(); + + # Check if a page really is using the new filename. + + while (@page_info = $string_handle->fetchrow_array()){ + + # The page information is found. + + $page_found = 1; + + } + + if ($page_found eq 1){ + + $error = "PageAlreadyExists"; + return; + + } + + } + # Get the current date. my ($created_second, $created_minute, $created_hour, $created_day, $created_month, $created_year, $created_weekday, $created_yearday, $created_dst) = localtime; @@ -2072,7 +2099,7 @@ sub connectfilter{ # Check if the template database exists. - $string_handle = $database_handle->prepare('SHOW TABLES LIKE \'' . $class->convert($options{"TablePrefix"}) . '_filters\'') or ( $error = "TemplateDatabaseError", $errorext = $database_handle->errstr, return ); + $string_handle = $database_handle->prepare('SHOW TABLES LIKE \'' . $class->convert($options{"TablePrefix"}) . '_filters\'') or ( $error = "FilterDatabaseError", $errorext = $database_handle->errstr, return ); $string_handle->execute(); while (@filterdb_check = $string_handle->fetchrow_array()){