use strict;
use warnings;
-use Encode qw();
+use Encode qw(decode_utf8);
# Load the following Perl modules.
}
-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. #
}
+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 #
}
-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();
# Process the database information into a hash.
%databaseinfo = (
-
"DatabaseName" => decode_utf8($sqldata[0]),
"Description" => decode_utf8($sqldata[1]),
"Notes" => decode_utf8($sqldata[2]),
# #
# Usage: #
# #
-# $dbmodule->addtemplate(); #
+# $dbmodule->addtemplate(options); #
# #
# options Specifies the following options in any order. #
# #
}
-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. #
}
+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. #
#################################################################################
}
+ # 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;
# 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()){