Home | News | Projects | Releases
Bugs | RFE | Repositories | Help
More alterations made.
[kiriwrite/.git] / cgi-files / Modules / Database / MySQL5.pm
index d2c9c17..c398c6d 100644 (file)
@@ -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()){
Xestia Software Development
Yn Maystri
© 2006 - 2019 Xestia Software Development
Software

Xestia Address Book
Xestia Calendar
Development

Xestia Gelforn
Everything else

About
News
Privacy Policy