X-Git-Url: http://Server1/repobrowser/?a=blobdiff_plain;ds=sidebyside;f=cgi-files%2FModules%2FDatabase%2FMySQL5.pm;h=5c1e5d9f2f246901b8147fa2653635721ff1121b;hb=807fbc25c35ea3cdf16adcb2106fbb63b3511a68;hp=945704a2fc187619119f5b02c6de9a6b436dae1f;hpb=c72938e207f71a44f0661a1e0c335123f3f404e4;p=kiriwrite%2F.git diff --git a/cgi-files/Modules/Database/MySQL5.pm b/cgi-files/Modules/Database/MySQL5.pm index 945704a..5c1e5d9 100644 --- a/cgi-files/Modules/Database/MySQL5.pm +++ b/cgi-files/Modules/Database/MySQL5.pm @@ -21,7 +21,7 @@ # Define the package (perl module) name. -package Kiriwrite::Database::MySQL5; +package Modules::Database::MySQL5; # Enable strict and use warnings. @@ -35,10 +35,10 @@ use DBI qw(:sql_types); # Set the following values. -our $VERSION = "0.1.0"; +our $VERSION = "0.5.0"; my ($options, %options); my $database_handle; -my $string_handle; +my $statement_handle; my $error; my $errorext; my $database_filename; @@ -491,10 +491,10 @@ sub dbexists{ # Check if the table exists. - $string_handle = $database_handle->prepare('SHOW TABLES LIKE \'' . $class->convert($options{"TablePrefix"}) . '_' . $class->convert($filename) . '_database_info\'') or ( $error = "DatabaseError", $errorext = $database_handle->errstr, return ); - $string_handle->execute(); + $statement_handle = $database_handle->prepare('SHOW TABLES LIKE \'' . $class->convert($options{"TablePrefix"}) . '_' . $class->convert($filename) . '_database_info\'') or ( $error = "DatabaseError", $errorext = $database_handle->errstr, return ); + $statement_handle->execute(); - while (@table_data = $string_handle->fetchrow_array()){ + while (@table_data = $statement_handle->fetchrow_array()){ $table_exists = 1; @@ -554,9 +554,9 @@ sub disconnect{ # Disconnect from the server. - if ($string_handle){ + if ($statement_handle){ - $string_handle->finish(); + $statement_handle->finish(); } @@ -586,15 +586,15 @@ sub getdblist{ # Get the list of databases. - $string_handle = $database_handle->prepare("SHOW TABLES") or ( $error = "DatabaseError", $errorext = $database_handle->errstr, return ); - $string_handle->execute(); + $statement_handle = $database_handle->prepare("SHOW TABLES") or ( $error = "DatabaseError", $errorext = $database_handle->errstr, return ); + $statement_handle->execute(); my @final_table_list; my @database_table_list; my @table_name; my $table; - while (@table_name = $string_handle->fetchrow_array()){ + while (@table_name = $statement_handle->fetchrow_array()){ push(@database_table_list, decode_utf8($table_name[0])); @@ -683,10 +683,10 @@ sub getdatabaseinfo{ 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(); + $statement_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 ); + $statement_handle->execute(); - @sqldata = $string_handle->fetchrow_array(); + @sqldata = $statement_handle->fetchrow_array(); # Process the database information into a hash. @@ -701,7 +701,7 @@ sub getdatabaseinfo{ "Revision" => decode_utf8($sqldata[6]) ); - $string_handle->finish(); + $statement_handle->finish(); return %databaseinfo; @@ -773,10 +773,10 @@ sub getseconddatabaseinfo{ $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(); + $statement_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 ); + $statement_handle->execute(); - @sqldata = $string_handle->fetchrow_array(); + @sqldata = $statement_handle->fetchrow_array(); # Process the database information into a hash. @@ -790,7 +790,7 @@ sub getseconddatabaseinfo{ "Revision" => decode_utf8($sqldata[6]) ); - $string_handle->finish(); + $statement_handle->finish(); return %databaseinfo; @@ -848,7 +848,7 @@ sub adddatabase{ # Create the database structure (info and page tables); - $string_handle = $database_handle->prepare('CREATE TABLE ' . $class->convert($options{"TablePrefix"}) . '_' . $class->convert($dbfilename) . '_database_info ( + $statement_handle = $database_handle->prepare('CREATE TABLE ' . $class->convert($options{"TablePrefix"}) . '_' . $class->convert($dbfilename) . '_database_info ( name varchar(256) primary key, description varchar(512), notes mediumtext, @@ -857,9 +857,9 @@ sub adddatabase{ kiriwrite_version_minor int(4), kiriwrite_version_revision int(4) ) DEFAULT CHARSET=utf8') or ( $error = "DatabaseError", $errorext = $database_handle->errstr, return ); - $string_handle->execute(); + $statement_handle->execute(); - $string_handle = $database_handle->prepare('CREATE TABLE ' . $class->convert($options{"TablePrefix"}) . '_' . $class->convert($dbfilename) . '_database_pages ( + $statement_handle = $database_handle->prepare('CREATE TABLE ' . $class->convert($options{"TablePrefix"}) . '_' . $class->convert($dbfilename) . '_database_pages ( filename varchar(256) primary key, pagename varchar(512), pagedescription varchar(512), @@ -869,12 +869,12 @@ sub adddatabase{ pagesettings int(1), lastmodified datetime ) DEFAULT CHARSET=utf8') or ( $error = "DatabaseError", $errorext = $database_handle->errstr, return ); - $string_handle->execute(); + $statement_handle->execute(); # Convert the values into SQL query formatted values and add an entry # to the kiriwrite_database_info table. - $string_handle = $database_handle->prepare('INSERT INTO ' . $class->convert($options{"TablePrefix"}) . '_' . $class->convert($dbfilename) . '_database_info (name, description, notes, categories, kiriwrite_version_major, kiriwrite_version_minor, kiriwrite_version_revision) VALUES( + $statement_handle = $database_handle->prepare('INSERT INTO ' . $class->convert($options{"TablePrefix"}) . '_' . $class->convert($dbfilename) . '_database_info (name, description, notes, categories, kiriwrite_version_major, kiriwrite_version_minor, kiriwrite_version_revision) VALUES( \'' . $class->convert($dbname) . '\', \'' . $class->convert($dbdescription) . '\', \'' . $class->convert($dbnotes) . '\', @@ -883,7 +883,7 @@ sub adddatabase{ \'' . $class->convert($dbminorver) . '\', \'' . $class->convert($dbrevisionver) . '\' )') or ( $error = "DatabaseError", $errorext = $database_handle->errstr, return ); - $string_handle->execute(); + $statement_handle->execute(); } @@ -938,27 +938,27 @@ sub editdatabase{ # Rename the tables. - $string_handle = $database_handle->prepare('RENAME TABLE ' . $class->convert($options{"TablePrefix"}) . '_' . $class->convert($database_filename) . '_database_info TO ' . $class->convert($options{"TablePrefix"}) . '_' . $class->convert($dbnewfilename) . '_database_info, ' . $class->convert($options{"TablePrefix"}) . '_' . $class->convert($database_filename) . '_database_pages TO ' . $class->convert($options{"TablePrefix"}) . '_' . $class->convert($dbnewfilename) . '_database_pages'); - $string_handle->execute(); + $statement_handle = $database_handle->prepare('RENAME TABLE ' . $class->convert($options{"TablePrefix"}) . '_' . $class->convert($database_filename) . '_database_info TO ' . $class->convert($options{"TablePrefix"}) . '_' . $class->convert($dbnewfilename) . '_database_info, ' . $class->convert($options{"TablePrefix"}) . '_' . $class->convert($database_filename) . '_database_pages TO ' . $class->convert($options{"TablePrefix"}) . '_' . $class->convert($dbnewfilename) . '_database_pages'); + $statement_handle->execute(); } # Get the current database information. - $string_handle = $database_handle->prepare('SELECT name FROM ' . $class->convert($options{"TablePrefix"}) . '_' . $class->convert($dbnewfilename) . '_database_info LIMIT 1') or ( $error = "DatabaseError", $errorext = $database_handle->errstr, return ); - $string_handle->execute(); + $statement_handle = $database_handle->prepare('SELECT name FROM ' . $class->convert($options{"TablePrefix"}) . '_' . $class->convert($dbnewfilename) . '_database_info LIMIT 1') or ( $error = "DatabaseError", $errorext = $database_handle->errstr, return ); + $statement_handle->execute(); - my @database_oldinfo = $string_handle->fetchrow_array(); + my @database_oldinfo = $statement_handle->fetchrow_array(); my $dboldname = decode_utf8($database_oldinfo[0]); # Update the database information. - $string_handle = $database_handle->prepare('UPDATE ' . $class->convert($options{"TablePrefix"}) . '_' . $class->convert($dbnewfilename) . '_database_info SET name = \'' . $class->convert($dbname) . '\', + $statement_handle = $database_handle->prepare('UPDATE ' . $class->convert($options{"TablePrefix"}) . '_' . $class->convert($dbnewfilename) . '_database_info SET name = \'' . $class->convert($dbname) . '\', description = \'' . $class->convert($dbdescription) . '\', notes = \'' . $class->convert($dbnotes) . '\', categories = \'' . $class->convert($dbcategories) . '\'') or ( $error = "DatabaseError", $errorext = $database_handle->errstr, return ); - $string_handle->execute(); + $statement_handle->execute(); } @@ -1005,15 +1005,15 @@ sub deletedatabase{ # Delete the database tables. - $string_handle = $database_handle->prepare('DROP TABLE ' . $class->convert($options{"TablePrefix"}) . '_' . $class->convert($databasename) . '_database_info') or ( $error = "DatabaseError", $errorext = $database_handle->errstr, return ); - $string_handle->execute(); + $statement_handle = $database_handle->prepare('DROP TABLE ' . $class->convert($options{"TablePrefix"}) . '_' . $class->convert($databasename) . '_database_info') or ( $error = "DatabaseError", $errorext = $database_handle->errstr, return ); + $statement_handle->execute(); # Check if the _database_pages table exists and delete it if it exists. - $string_handle = $database_handle->prepare('SHOW TABLES LIKE \'' . $class->convert($options{"TablePrefix"}) . '_' . $class->convert($databasename) . '_database_pages\'') or ( $error = "DatabaseError", $errorext = $database_handle->errstr, return ); - $string_handle->execute(); + $statement_handle = $database_handle->prepare('SHOW TABLES LIKE \'' . $class->convert($options{"TablePrefix"}) . '_' . $class->convert($databasename) . '_database_pages\'') or ( $error = "DatabaseError", $errorext = $database_handle->errstr, return ); + $statement_handle->execute(); - while (@table_data = $string_handle->fetchrow_array()){ + while (@table_data = $statement_handle->fetchrow_array()){ $table_exists = 1; @@ -1025,8 +1025,8 @@ sub deletedatabase{ # the _database_pages table really does exist so delete it. - $string_handle = $database_handle->prepare('DROP TABLE ' . $class->convert($options{"TablePrefix"}) . '_' . $class->convert($databasename) . '_database_pages') or ( $error = "DatabaseError", $errorext = $database_handle->errstr, return ); - $string_handle->execute(); + $statement_handle = $database_handle->prepare('DROP TABLE ' . $class->convert($options{"TablePrefix"}) . '_' . $class->convert($databasename) . '_database_pages') or ( $error = "DatabaseError", $errorext = $database_handle->errstr, return ); + $statement_handle->execute(); } @@ -1057,10 +1057,10 @@ sub connecttemplate{ # Check if the template database exists. - $string_handle = $database_handle->prepare('SHOW TABLES LIKE \'' . $class->convert($options{"TablePrefix"}) . '_templates\'') or ( $error = "TemplateDatabaseError", $errorext = $database_handle->errstr, return ); - $string_handle->execute(); + $statement_handle = $database_handle->prepare('SHOW TABLES LIKE \'' . $class->convert($options{"TablePrefix"}) . '_templates\'') or ( $error = "TemplateDatabaseError", $errorext = $database_handle->errstr, return ); + $statement_handle->execute(); - while (@templatedb_check = $string_handle->fetchrow_array()){ + while (@templatedb_check = $statement_handle->fetchrow_array()){ $templatedb_exists = 1; @@ -1098,26 +1098,50 @@ sub gettemplatelist{ # # # Usage: # # # -# $dbmodule->gettemplatelist(); # +# $dbmodule->gettemplatelist(options); # +# # +# options Specifies the following options as a hash (in any order). # +# # +# StartFrom Specifies where the list of templates will start from. # +# Limit Specifies how many templates should be retrieved. # ################################################################################# - my $error = ""; - my $errorext = ""; + $error = ""; + $errorext = ""; - my $class = shift; + my $class = shift; + my ($passedoptions) = @_; + + my $start_from = $passedoptions->{"StartFrom"}; + my $limit = $passedoptions->{"Limit"}; + + if (defined($start_from)){ + + if (!$limit){ + + $limit = 0; + + } + + $statement_handle = $database_handle->prepare('SELECT filename FROM ' . $class->convert($options{"TablePrefix"}) . '_templates ORDER BY filename ASC LIMIT ' . $start_from . ',' . $limit ) or ( $error = "TemplateDatabaseError", $errorext = $database_handle->errstr, return ); + $statement_handle->execute(); - $string_handle = $database_handle->prepare('SELECT filename FROM ' . $class->convert($options{"TablePrefix"}) . '_templates ORDER BY filename ASC') or ( $error = "TemplateDatabaseError", $errorext = $database_handle->errstr, return ); - $string_handle->execute(); + } else { + + $statement_handle = $database_handle->prepare('SELECT filename FROM ' . $class->convert($options{"TablePrefix"}) . '_templates ORDER BY filename ASC') or ( $error = "TemplateDatabaseError", $errorext = $database_handle->errstr, return ); + $statement_handle->execute(); + + } my @database_template; my @templates_list; my $template_filename; - while (@database_template = $string_handle->fetchrow_array()){ + while (@database_template = $statement_handle->fetchrow_array()){ # Get certain values from the array. - $template_filename = decode_utf8($database_template[0]); + $template_filename = $database_template[0]; # Add the template to the list of templates. @@ -1140,6 +1164,8 @@ sub gettemplateinfo{ # options Specifies the following options in any order. # # # # TemplateFilename Specifies the template filename to use. # +# Reduced Specifies if the reduced version of the template # +# information should be retrieved. # ################################################################################# $error = ""; @@ -1162,11 +1188,21 @@ sub gettemplateinfo{ my $template_found = 0; my $filename = $passedoptions->{"TemplateFilename"}; + my $reduced = $passedoptions->{"Reduced"}; - $string_handle = $database_handle->prepare('SELECT filename, templatename, templatedescription, templatelayout, datemodified FROM ' . $class->convert($options{"TablePrefix"}) . '_templates WHERE filename = \'' . $class->convert($filename) . '\'') or ( $error = "TemplateDatabaseError", $errorext = $database_handle->errstr, return ); - $string_handle->execute(); + if ($reduced && $reduced eq 1){ + + $statement_handle = $database_handle->prepare('SELECT filename, templatename, templatedescription, datemodified FROM ' . $class->convert($options{"TablePrefix"}) . '_templates WHERE filename = \'' . $class->convert($filename) . '\'') or ( $error = "TemplateDatabaseError", $errorext = $database_handle->errstr, return ); + $statement_handle->execute(); + + } else { - while (@template_data = $string_handle->fetchrow_array()){ + $statement_handle = $database_handle->prepare('SELECT filename, templatename, templatedescription, templatelayout, datemodified FROM ' . $class->convert($options{"TablePrefix"}) . '_templates WHERE filename = \'' . $class->convert($filename) . '\'') or ( $error = "TemplateDatabaseError", $errorext = $database_handle->errstr, return ); + $statement_handle->execute(); + + } + + while (@template_data = $statement_handle->fetchrow_array()){ # Get certain values from the array. @@ -1200,10 +1236,32 @@ sub gettemplateinfo{ } - return %page_info; + return %page_info; } +sub gettemplatecount{ +################################################################################# +# gettemplatecount: Gets the count of templates in the template database. # +# # +# Usage: # +# # +# $dbmodule->gettemplatecount(); # +################################################################################# + + $error = ""; + $errorext = ""; + + my $class = shift; + + $statement_handle = $database_handle->prepare('SELECT COUNT(*) FROM ' . $class->convert($options{"TablePrefix"}) . '_templates') or ( $error = "FilterDatabaseError", $errorext = $database_handle->errstr, return); + $statement_handle->execute(); + + my $count = $statement_handle->fetchrow_array(); + + return $count; + +} sub addtemplate{ ################################################################################# @@ -1241,10 +1299,10 @@ sub addtemplate{ # Check if the template database exists. - $string_handle = $database_handle->prepare('SHOW TABLES LIKE \'' . $class->convert($options{"TablePrefix"}) . '_templates\'') or ( $error = "TemplateDatabaseError", $errorext = $database_handle->errstr, return ); - $string_handle->execute(); + $statement_handle = $database_handle->prepare('SHOW TABLES LIKE \'' . $class->convert($options{"TablePrefix"}) . '_templates\'') or ( $error = "TemplateDatabaseError", $errorext = $database_handle->errstr, return ); + $statement_handle->execute(); - while (@templatedb_check = $string_handle->fetchrow_array()){ + while (@templatedb_check = $statement_handle->fetchrow_array()){ $templatedb_exists = 1; @@ -1255,14 +1313,14 @@ sub addtemplate{ if (!$templatedb_exists){ - $string_handle = $database_handle->prepare('CREATE TABLE ' . $class->convert($options{"TablePrefix"}) . '_templates ( + $statement_handle = $database_handle->prepare('CREATE TABLE ' . $class->convert($options{"TablePrefix"}) . '_templates ( filename varchar(256) primary key, templatename varchar(512), templatedescription varchar(512), templatelayout mediumtext, datemodified datetime ) DEFAULT CHARSET=utf8') or ( $error = "TemplateDatabaseError", $errorext = $database_handle->errstr, return ); - $string_handle->execute(); + $statement_handle->execute(); } @@ -1270,13 +1328,13 @@ sub addtemplate{ if (!$templatedb_exists){ - $string_handle = $database_handle->prepare('SELECT filename FROM ' . $class->convert($options{"TablePrefix"}) . '_templates WHERE filename = \'' . $class->convert($template_filename) . '\' LIMIT 1') or ($blankfile = 1); + $statement_handle = $database_handle->prepare('SELECT filename FROM ' . $class->convert($options{"TablePrefix"}) . '_templates WHERE filename = \'' . $class->convert($template_filename) . '\' LIMIT 1') or ($blankfile = 1); if ($blankfile eq 0){ - $string_handle->execute(); + $statement_handle->execute(); - while (@page_exists = $string_handle->fetchrow_array()){ + while (@page_exists = $statement_handle->fetchrow_array()){ $error = "TemplatePageExists"; return; @@ -1314,14 +1372,14 @@ sub addtemplate{ } - $string_handle = $database_handle->prepare('INSERT INTO ' . $class->convert($options{"TablePrefix"}) . '_templates (filename, templatename, templatedescription, templatelayout, datemodified) VALUES( + $statement_handle = $database_handle->prepare('INSERT INTO ' . $class->convert($options{"TablePrefix"}) . '_templates (filename, templatename, templatedescription, templatelayout, datemodified) VALUES( \'' . $class->convert($template_filename) . '\', \'' . $class->convert($template_name) . '\', \'' . $class->convert($template_description) . '\', \'' . $class->convert($template_layout) . '\', \'' . $class->convert($template_date) . '\' )') or ( $error = "TemplateDatabaseError", $errorext = $database_handle->errstr, return ); - $string_handle->execute(); + $statement_handle->execute(); } @@ -1359,10 +1417,10 @@ sub edittemplate{ # 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(); + $statement_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 ); + $statement_handle->execute(); - while (@template_info = $string_handle->fetchrow_array()){ + while (@template_info = $statement_handle->fetchrow_array()){ $template_found = 1; @@ -1385,7 +1443,7 @@ sub edittemplate{ # Update the template information. - $string_handle = $database_handle->prepare('UPDATE ' . $class->convert($options{"TablePrefix"}) . '_templates SET + $statement_handle = $database_handle->prepare('UPDATE ' . $class->convert($options{"TablePrefix"}) . '_templates SET filename = \'' . $class->convert($new_template_filename) . '\', templatename = \'' . $class->convert($new_template_name) . '\', templatedescription = \'' . $class->convert($new_template_description) . '\', @@ -1393,7 +1451,7 @@ sub edittemplate{ datemodified = \'' . $class->convert($templatenewdate) . '\' WHERE filename = \'' . $class->convert($template_filename) . '\' ') or ( $error = "TemplateDatabaseError", $errorext = $database_handle->errstr, return ); - $string_handle->execute(); + $statement_handle->execute(); } @@ -1424,10 +1482,10 @@ sub deletetemplate{ # 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(); + $statement_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 ); + $statement_handle->execute(); - while (@pagedata = $string_handle->fetchrow_array()){ + while (@pagedata = $statement_handle->fetchrow_array()){ $template_count++; @@ -1444,8 +1502,8 @@ sub deletetemplate{ # 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(); + $statement_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 ); + $statement_handle->execute(); } @@ -1453,29 +1511,76 @@ sub deletetemplate{ # Page subroutines. # ################################################################################# +sub getpagecount{ +################################################################################# +# getpagecount: Get the count of pages that are in the database. # +# # +# Usage: # +# # +# $dbmodule->getpagecount(); # +################################################################################# + + $error = ""; + $errorext = ""; + + my $class = shift; + + $statement_handle = $database_handle->prepare('SELECT COUNT(*) FROM ' . $class->convert($options{"TablePrefix"}) . '_' . $class->convert($database_filename) . '_database_pages') or ( $error = "DatabaseError", $errorext = $database_handle->errstr, return); + $statement_handle->execute(); + + my $count = $statement_handle->fetchrow_array(); + + return $count; + +} + sub getpagelist{ ################################################################################# # getpagelist: Gets the list of pages from the database. # # # # Usage: # # # -# $dbmodule->getpagelist(); # +# $dbmodule->getpagelist(options); # +# # +# options Specifies the following options as a hash (in any order). # +# # +# StartFrom Start from the specified page in the database. # +# Limit Get the amount of pages given. # ################################################################################# $error = ""; $errorext = ""; my $class = shift; + my ($passedoptions) = shift; + + my $start_from = $passedoptions->{"StartFrom"}; + my $limit = $passedoptions->{"Limit"}; - $string_handle = $database_handle->prepare('SELECT filename FROM ' . $class->convert($options{"TablePrefix"}) . '_' . $class->convert($database_filename) . '_database_pages') or ( $error = "DatabaseError", $errorext = $database_handle->errstr, return ); - $string_handle->execute(); + if (defined($start_from)){ + + if (!$limit){ + + $limit = 0; + + } + + $statement_handle = $database_handle->prepare('SELECT filename FROM ' . $class->convert($options{"TablePrefix"}) . '_' . $class->convert($database_filename) . '_database_pages LIMIT ' . $start_from . ',' . $limit) or ( $error = "DatabaseError", $errorext = $database_handle->errstr, return ); + $statement_handle->execute(); + + } else { + + $statement_handle = $database_handle->prepare('SELECT filename FROM ' . $class->convert($options{"TablePrefix"}) . '_' . $class->convert($database_filename) . '_database_pages') or ( $error = "DatabaseError", $errorext = $database_handle->errstr, return ); + $statement_handle->execute(); + + } my @database_pagefilenames; my @database_pagefilenames_final; # Process the collected pages. - while (@database_pagefilenames = $string_handle->fetchrow_array){ + while (@database_pagefilenames = $statement_handle->fetchrow_array){ # Add each page to the list of pages in the database. @@ -1520,12 +1625,12 @@ sub getpageinfo{ if ($page_reduced eq 1){ - $string_handle = $database_handle->prepare('SELECT filename, pagename, pagedescription, lastmodified FROM ' . $class->convert($options{"TablePrefix"}) . '_' . $class->convert($database_filename) . '_database_pages WHERE filename = \'' . $class->convert($page_filename) . '\' LIMIT 1') or ( $error = "DatabaseError", $errorext = $database_handle->errstr, return ); - $string_handle->execute(); + $statement_handle = $database_handle->prepare('SELECT filename, pagename, pagedescription, lastmodified FROM ' . $class->convert($options{"TablePrefix"}) . '_' . $class->convert($database_filename) . '_database_pages WHERE filename = \'' . $class->convert($page_filename) . '\' LIMIT 1') or ( $error = "DatabaseError", $errorext = $database_handle->errstr, return ); + $statement_handle->execute(); # Check if the page exists in the database. - while (@data_page = $string_handle->fetchrow_array()){ + while (@data_page = $statement_handle->fetchrow_array()){ # Get the values from the array. @@ -1549,12 +1654,12 @@ sub getpageinfo{ } else { - $string_handle = $database_handle->prepare('SELECT filename, pagename, pagedescription, pagesection, pagetemplate, pagedata, pagesettings, lastmodified FROM ' . $class->convert($options{"TablePrefix"}) . '_' . $class->convert($database_filename) . '_database_pages WHERE filename = \'' . $class->convert($page_filename) . '\' LIMIT 1') or ( $error = "DatabaseError", $errorext = $database_handle->errstr, return ); - $string_handle->execute(); + $statement_handle = $database_handle->prepare('SELECT filename, pagename, pagedescription, pagesection, pagetemplate, pagedata, pagesettings, lastmodified FROM ' . $class->convert($options{"TablePrefix"}) . '_' . $class->convert($database_filename) . '_database_pages WHERE filename = \'' . $class->convert($page_filename) . '\' LIMIT 1') or ( $error = "DatabaseError", $errorext = $database_handle->errstr, return ); + $statement_handle->execute(); # Check if the page exists in the database. - while (@data_page = $string_handle->fetchrow_array()){ + while (@data_page = $statement_handle->fetchrow_array()){ # Get the values from the array. @@ -1578,6 +1683,7 @@ sub getpageinfo{ "PageContent" => $pagedata, "PageSettings" => $pagesettings, "PageLastModified" => $class->dateconvert($pagelastmodified), + # ADD PageLastModifiedInternal ); $page_found = 1; @@ -1643,13 +1749,13 @@ sub addpage{ # Check to see if the filename given already exists # in the page database. - $string_handle = $database_handle->prepare('SELECT filename FROM ' . $class->convert($options{"TablePrefix"}) . '_' . $class->convert($database_filename) . '_database_pages WHERE filename = \'' . $class->convert($page_filename) . '\' LIMIT 1') or ( $error = "DatabaseError", $errorext = $database_handle->errstr, return ); - $string_handle->execute(); + $statement_handle = $database_handle->prepare('SELECT filename FROM ' . $class->convert($options{"TablePrefix"}) . '_' . $class->convert($database_filename) . '_database_pages WHERE filename = \'' . $class->convert($page_filename) . '\' LIMIT 1') or ( $error = "DatabaseError", $errorext = $database_handle->errstr, return ); + $statement_handle->execute(); # Check if a page with the filename given really does # exist. - while (@database_page = $string_handle->fetchrow_array()){ + while (@database_page = $statement_handle->fetchrow_array()){ # A page does exist so increment the count to 1. @@ -1697,7 +1803,7 @@ sub addpage{ # Add the page to the selected database. - $string_handle = $database_handle->prepare('INSERT INTO ' . $class->convert($options{"TablePrefix"}) . '_' . $class->convert($database_filename) . '_database_pages (filename, pagename, pagedescription, pagesection, pagetemplate, pagedata, pagesettings, lastmodified) VALUES ( + $statement_handle = $database_handle->prepare('INSERT INTO ' . $class->convert($options{"TablePrefix"}) . '_' . $class->convert($database_filename) . '_database_pages (filename, pagename, pagedescription, pagesection, pagetemplate, pagedata, pagesettings, lastmodified) VALUES ( \'' . $class->convert($page_filename) . '\', \'' . $class->convert($page_name) . '\', \'' . $class->convert($page_description) . '\', @@ -1707,7 +1813,7 @@ sub addpage{ \'' . $class->convert($page_settings) . '\', \'' . $class->convert($page_date) . '\' )') or ( $error = "DatabaseError", $errorext = $database_handle->errstr, return ); - $string_handle->execute(); + $statement_handle->execute(); } @@ -1740,10 +1846,10 @@ sub deletepage{ # Check if the page exists before deleting it. - $string_handle = $database_handle->prepare('SELECT filename FROM ' . $class->convert($options{"TablePrefix"}) . '_' . $class->convert($database_filename) . '_database_pages WHERE filename = \'' . $class->convert($page_filename) . '\' LIMIT 1') or ( $error = "DatabaseError", $errorext = $database_handle->errstr, return ); - $string_handle->execute(); + $statement_handle = $database_handle->prepare('SELECT filename FROM ' . $class->convert($options{"TablePrefix"}) . '_' . $class->convert($database_filename) . '_database_pages WHERE filename = \'' . $class->convert($page_filename) . '\' LIMIT 1') or ( $error = "DatabaseError", $errorext = $database_handle->errstr, return ); + $statement_handle->execute(); - while (@page_info = $string_handle->fetchrow_array()){ + while (@page_info = $statement_handle->fetchrow_array()){ $page_found = 1; @@ -1760,8 +1866,8 @@ sub deletepage{ # Delete the page. - $string_handle = $database_handle->prepare('DELETE FROM ' . $class->convert($options{"TablePrefix"}) . '_' . $class->convert($database_filename) . '_database_pages WHERE filename = \'' . $class->convert($page_filename) . '\'') or ( $error = "DatabaseError", $errorext = $database_handle->errstr, return ); - $string_handle->execute(); + $statement_handle = $database_handle->prepare('DELETE FROM ' . $class->convert($options{"TablePrefix"}) . '_' . $class->convert($database_filename) . '_database_pages WHERE filename = \'' . $class->convert($page_filename) . '\'') or ( $error = "DatabaseError", $errorext = $database_handle->errstr, return ); + $statement_handle->execute(); } @@ -1808,12 +1914,12 @@ sub editpage{ # Check if the page with the filename given exists. - $string_handle = $database_handle->prepare('SELECT filename FROM ' . $class->convert($options{"TablePrefix"}) . '_' . $class->convert($database_filename) . '_database_pages WHERE filename = \'' . $class->convert($page_filename) . '\' LIMIT 1') or ( $error = "DatabaseError", $errorext = $database_handle->errstr, return ); - $string_handle->execute(); + $statement_handle = $database_handle->prepare('SELECT filename FROM ' . $class->convert($options{"TablePrefix"}) . '_' . $class->convert($database_filename) . '_database_pages WHERE filename = \'' . $class->convert($page_filename) . '\' LIMIT 1') or ( $error = "DatabaseError", $errorext = $database_handle->errstr, return ); + $statement_handle->execute(); # Check if the page really does exist. - while (@page_info = $string_handle->fetchrow_array()){ + while (@page_info = $statement_handle->fetchrow_array()){ # The page information is found. @@ -1837,12 +1943,12 @@ sub editpage{ 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(); + $statement_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 ); + $statement_handle->execute(); # Check if a page really is using the new filename. - while (@page_info = $string_handle->fetchrow_array()){ + while (@page_info = $statement_handle->fetchrow_array()){ # The page information is found. @@ -1866,8 +1972,8 @@ sub editpage{ # Edit the selected page. - $string_handle = $database_handle->prepare('UPDATE ' . $class->convert($options{"TablePrefix"}) . '_' . $class->convert($database_filename) . '_database_pages SET filename = \'' . $class->convert($page_newfilename) . '\', pagename = \'' . $class->convert($page_newname) . '\', pagedescription = \'' . $class->convert($page_newdescription) . '\', pagesection = \'' . $class->convert($page_newsection) . '\', pagetemplate = \'' . $class->convert($page_newtemplate) . '\', pagedata = \'' . $class->convert($page_newcontent) . '\', pagedata = \'' . $class->convert($page_newcontent) . '\', pagesettings = \'' . $class->convert($page_newsettings) . '\', lastmodified = \'' . $page_date . '\' WHERE filename = \'' . $class->convert($page_filename) . '\'') or ( $error = "DatabaseError", $errorext = $database_handle->errstr, return ); - $string_handle->execute(); + $statement_handle = $database_handle->prepare('UPDATE ' . $class->convert($options{"TablePrefix"}) . '_' . $class->convert($database_filename) . '_database_pages SET filename = \'' . $class->convert($page_newfilename) . '\', pagename = \'' . $class->convert($page_newname) . '\', pagedescription = \'' . $class->convert($page_newdescription) . '\', pagesection = \'' . $class->convert($page_newsection) . '\', pagetemplate = \'' . $class->convert($page_newtemplate) . '\', pagedata = \'' . $class->convert($page_newcontent) . '\', pagedata = \'' . $class->convert($page_newcontent) . '\', pagesettings = \'' . $class->convert($page_newsettings) . '\', lastmodified = \'' . $page_date . '\' WHERE filename = \'' . $class->convert($page_filename) . '\'') or ( $error = "DatabaseError", $errorext = $database_handle->errstr, return ); + $statement_handle->execute(); } @@ -1903,12 +2009,12 @@ sub movepage{ # Check if the page with the filename given exists. - $string_handle = $database_handle->prepare('SELECT filename, pagename, pagedescription, pagesection, pagetemplate, pagedata, pagesettings, lastmodified FROM ' . $class->convert($options{"TablePrefix"}) . '_' . $class->convert($database_filename) . '_database_pages WHERE filename = \'' . $class->convert($page_filename) . '\' LIMIT 1') or ( $error = "OldDatabaseError", $errorext = $database_handle->errstr, return ); - $string_handle->execute(); + $statement_handle = $database_handle->prepare('SELECT filename, pagename, pagedescription, pagesection, pagetemplate, pagedata, pagesettings, lastmodified FROM ' . $class->convert($options{"TablePrefix"}) . '_' . $class->convert($database_filename) . '_database_pages WHERE filename = \'' . $class->convert($page_filename) . '\' LIMIT 1') or ( $error = "OldDatabaseError", $errorext = $database_handle->errstr, return ); + $statement_handle->execute(); # Check if the page really does exist. - while (@page_info = $string_handle->fetchrow_array()){ + while (@page_info = $statement_handle->fetchrow_array()){ # Get the values from the array. @@ -1955,10 +2061,10 @@ sub movepage{ $page_found = 0; @page_info = (); - $string_handle = $database_handle->prepare('SELECT filename FROM ' . $class->convert($options{"TablePrefix"}) . '_' . $class->convert($second_database_filename) . '_database_pages WHERE filename = \'' . $class->convert($page_filename) . '\' LIMIT 1') or ( $error = "NewDatabaseError", $errorext = $database_handle->errstr, return ); - $string_handle->execute(); + $statement_handle = $database_handle->prepare('SELECT filename FROM ' . $class->convert($options{"TablePrefix"}) . '_' . $class->convert($second_database_filename) . '_database_pages WHERE filename = \'' . $class->convert($page_filename) . '\' LIMIT 1') or ( $error = "NewDatabaseError", $errorext = $database_handle->errstr, return ); + $statement_handle->execute(); - while (@page_info = $string_handle->fetchrow_array()){ + while (@page_info = $statement_handle->fetchrow_array()){ $page_found = 1; @@ -1975,7 +2081,7 @@ sub movepage{ # Add the page to the new database. - $string_handle = $database_handle->prepare('INSERT INTO ' . $class->convert($options{"TablePrefix"}) . '_' . $class->convert($second_database_filename) . '_database_pages (filename, pagename, pagedescription, pagesection, pagetemplate, pagedata, pagesettings, lastmodified) VALUES ( + $statement_handle = $database_handle->prepare('INSERT INTO ' . $class->convert($options{"TablePrefix"}) . '_' . $class->convert($second_database_filename) . '_database_pages (filename, pagename, pagedescription, pagesection, pagetemplate, pagedata, pagesettings, lastmodified) VALUES ( \'' . $class->convert($database_page{"PageFilename"}) . '\', \'' . $class->convert($database_page{"PageName"}) . '\', \'' . $class->convert($database_page{"PageDescription"}) . '\', @@ -1985,12 +2091,12 @@ sub movepage{ \'' . $class->convert($database_page{"PageSettings"}) . '\', \'' . $class->convert($database_page{"PageLastModified"}) . '\' )') or ( $error = "NewDatabaseError", $errorext = $database_handle->errstr, return ); - $string_handle->execute(); + $statement_handle->execute(); # Delete the page from the old database. - $string_handle = $database_handle->prepare('DELETE FROM ' . $class->convert($options{"TablePrefix"}) . '_' . $class->convert($database_filename) . '_database_pages WHERE filename = \'' . $class->convert($database_page{"PageFilename"}) . '\'') or ( $error = "OldDatabaseError", $errorext = $database_handle->errstr, return ); - $string_handle->execute(); + $statement_handle = $database_handle->prepare('DELETE FROM ' . $class->convert($options{"TablePrefix"}) . '_' . $class->convert($database_filename) . '_database_pages WHERE filename = \'' . $class->convert($database_page{"PageFilename"}) . '\'') or ( $error = "OldDatabaseError", $errorext = $database_handle->errstr, return ); + $statement_handle->execute(); } @@ -2026,12 +2132,12 @@ sub copypage{ # Check if the page with the filename given exists. - $string_handle = $database_handle->prepare('SELECT filename, pagename, pagedescription, pagesection, pagetemplate, pagedata, pagesettings, lastmodified FROM ' . $class->convert($options{"TablePrefix"}) . '_' . $class->convert($database_filename) . '_database_pages WHERE filename = \'' . $class->convert($page_filename) . '\' LIMIT 1') or ( $error = "OldDatabaseError", $errorext = $database_handle->errstr, return ); - $string_handle->execute(); + $statement_handle = $database_handle->prepare('SELECT filename, pagename, pagedescription, pagesection, pagetemplate, pagedata, pagesettings, lastmodified FROM ' . $class->convert($options{"TablePrefix"}) . '_' . $class->convert($database_filename) . '_database_pages WHERE filename = \'' . $class->convert($page_filename) . '\' LIMIT 1') or ( $error = "OldDatabaseError", $errorext = $database_handle->errstr, return ); + $statement_handle->execute(); # Check if the page really does exist. - while (@page_info = $string_handle->fetchrow_array()){ + while (@page_info = $statement_handle->fetchrow_array()){ # Get the values from the array. @@ -2078,10 +2184,10 @@ sub copypage{ $page_found = 0; @page_info = (); - $string_handle = $database_handle->prepare('SELECT filename FROM ' . $class->convert($options{"TablePrefix"}) . '_' . $class->convert($second_database_filename) . '_database_pages WHERE filename = \'' . $class->convert($page_filename) . '\' LIMIT 1') or ( $error = "NewDatabaseError", $errorext = $database_handle->errstr, return ); - $string_handle->execute(); + $statement_handle = $database_handle->prepare('SELECT filename FROM ' . $class->convert($options{"TablePrefix"}) . '_' . $class->convert($second_database_filename) . '_database_pages WHERE filename = \'' . $class->convert($page_filename) . '\' LIMIT 1') or ( $error = "NewDatabaseError", $errorext = $database_handle->errstr, return ); + $statement_handle->execute(); - while (@page_info = $string_handle->fetchrow_array()){ + while (@page_info = $statement_handle->fetchrow_array()){ $page_found = 1; @@ -2098,7 +2204,7 @@ sub copypage{ # Add the page to the new database. - $string_handle = $database_handle->prepare('INSERT INTO ' . $class->convert($options{"TablePrefix"}) . '_' . $class->convert($second_database_filename) . '_database_pages (filename, pagename, pagedescription, pagesection, pagetemplate, pagedata, pagesettings, lastmodified) VALUES ( + $statement_handle = $database_handle->prepare('INSERT INTO ' . $class->convert($options{"TablePrefix"}) . '_' . $class->convert($second_database_filename) . '_database_pages (filename, pagename, pagedescription, pagesection, pagetemplate, pagedata, pagesettings, lastmodified) VALUES ( \'' . $class->convert($database_page{"PageFilename"}) . '\', \'' . $class->convert($database_page{"PageName"}) . '\', \'' . $class->convert($database_page{"PageDescription"}) . '\', @@ -2108,7 +2214,7 @@ sub copypage{ \'' . $class->convert($database_page{"PageSettings"}) . '\', \'' . $class->convert($database_page{"PageLastModified"}) . '\' )') or ( $error = "NewDatabaseError", $errorext = $database_handle->errstr, return ); - $string_handle->execute(); + $statement_handle->execute(); } @@ -2137,10 +2243,10 @@ sub connectfilter{ # Check if the template database exists. - $string_handle = $database_handle->prepare('SHOW TABLES LIKE \'' . $class->convert($options{"TablePrefix"}) . '_filters\'') or ( $error = "FilterDatabaseError", $errorext = $database_handle->errstr, return ); - $string_handle->execute(); + $statement_handle = $database_handle->prepare('SHOW TABLES LIKE \'' . $class->convert($options{"TablePrefix"}) . '_filters\'') or ( $error = "FilterDatabaseError", $errorext = $database_handle->errstr, return ); + $statement_handle->execute(); - while (@filterdb_check = $string_handle->fetchrow_array()){ + while (@filterdb_check = $statement_handle->fetchrow_array()){ $filterdb_exists = 1; @@ -2178,23 +2284,45 @@ sub getfilterlist{ # # # Usage: # # # -# $dbmodule->getfilterlist(); # +# $dbmodule->getfilterlist(options); # +# # +# options Specifies the following options as a hash (in any order). # +# # +# StartFrom Specifies where the list of filters should start from. # +# Limit Specifies the amount of the filters to get. # ################################################################################# $error = ""; $errorext = ""; my $class = shift; + my ($passedoptions) = shift; my @filter_list; my @filter_data; - # Get the list of filters available. + my $start_from = $passedoptions->{"StartFrom"}; + my $limit = $passedoptions->{"Limit"}; - $string_handle = $database_handle->prepare('SELECT id, priority FROM ' . $class->convert($options{"TablePrefix"}) . '_filters ORDER BY priority ASC') or ( $error = "FilterDatabaseError", $errorext = $database_handle->errstr, return ); - $string_handle->execute(); + if (defined($start_from)){ - while (@filter_data = $string_handle->fetchrow_array()){ + if (!$limit){ + + $limit = 0; + + } + + $statement_handle = $database_handle->prepare('SELECT id, priority FROM ' . $class->convert($options{"TablePrefix"}) . '_filters ORDER BY priority ASC LIMIT ' . $start_from . ',' . $limit) or ( $error = "FilterDatabaseError", $errorext = $database_handle->errstr, return ); + $statement_handle->execute(); + + } else { + + $statement_handle = $database_handle->prepare('SELECT id, priority FROM ' . $class->convert($options{"TablePrefix"}) . '_filters ORDER BY priority ASC') or ( $error = "FilterDatabaseError", $errorext = $database_handle->errstr, return ); + $statement_handle->execute(); + + } + + while (@filter_data = $statement_handle->fetchrow_array()){ # Add the filter to the list of available filters. @@ -2206,6 +2334,29 @@ sub getfilterlist{ } +sub getfiltercount{ +################################################################################# +# getfiltercount: Gets the count of filters in the filters database. # +# # +# Usage: # +# # +# $dbmodule->getfiltercount(); # +################################################################################# + + $error = ""; + $errorext = ""; + + my $class = shift; + + $statement_handle = $database_handle->prepare('SELECT COUNT(*) FROM ' . $class->convert($options{"TablePrefix"}) . '_filters') or ( $error = "FilterDatabaseError", $errorext = $database_handle->errstr, return); + $statement_handle->execute(); + + my $count = $statement_handle->fetchrow_array(); + + return $count; + +} + sub getfilterinfo{ ################################################################################# # getfilterinfo: Gets information about the filter. # @@ -2217,6 +2368,7 @@ sub getfilterinfo{ # options Specifies the following options in any order. # # # # FilterID Specifies the filter ID number to get information from. # +# Reduced Specifies to get the reduced version of the filter information. # ################################################################################# $error = ""; @@ -2234,19 +2386,30 @@ sub getfilterinfo{ # Get the values that are in the hash. my $filter_id = $passedoptions->{"FilterID"}; + my $reduced = $passedoptions->{"Reduced"}; + + if ($reduced && $reduced eq 1){ + + $statement_handle = $database_handle->prepare('SELECT id, priority, findsetting, replacesetting, enabled FROM ' . $class->convert($options{"TablePrefix"}) . '_filters where id = \'' . $class->convert($filter_id) . '\'') or ( $error = "FilterDatabaseError", $errorext = $database_handle->errstr, return ); + $statement_handle->execute(); + + } else { - $string_handle = $database_handle->prepare('SELECT id, priority, findsetting, replacesetting, notes FROM ' . $class->convert($options{"TablePrefix"}) . '_filters where id = \'' . $class->convert($filter_id) . '\'') or ( $error = "FilterDatabaseError", $errorext = $database_handle->errstr, return ); - $string_handle->execute(); + $statement_handle = $database_handle->prepare('SELECT id, priority, findsetting, replacesetting, enabled, notes FROM ' . $class->convert($options{"TablePrefix"}) . '_filters where id = \'' . $class->convert($filter_id) . '\'') or ( $error = "FilterDatabaseError", $errorext = $database_handle->errstr, return ); + $statement_handle->execute(); + + } # Get the filter information. - while (@filter_data = $string_handle->fetchrow_array()){ + while (@filter_data = $statement_handle->fetchrow_array()){ $filter_info{"FilterID"} = decode_utf8($filter_data[0]); $filter_info{"FilterPriority"} = decode_utf8($filter_data[1]); $filter_info{"FilterFind"} = decode_utf8($filter_data[2]); $filter_info{"FilterReplace"} = decode_utf8($filter_data[3]); - $filter_info{"FilterNotes"} = decode_utf8($filter_data[4]); + $filter_info{"FilterEnabled"} = decode_utf8($filter_data[4]); + $filter_info{"FilterNotes"} = decode_utf8($filter_data[5]); $filter_exists = 1; @@ -2283,6 +2446,7 @@ sub addfilter{ # FindFilter Specifies the find filter to add. # # ReplaceFilter Specifies the replace filter to add. # # Priority Specifies the filter priority to use. # +# Enabled Specifies if the filter should be enabled. # # Notes Specifies the notes to use. # ################################################################################# @@ -2312,14 +2476,15 @@ sub addfilter{ my $filter_find = $passedoptions->{"FindFilter"}; my $filter_replace = $passedoptions->{"ReplaceFilter"}; my $filter_priority = $passedoptions->{"Priority"}; + my $filter_enabled = $passedoptions->{"Enabled"}; my $filter_notes = $passedoptions->{"Notes"}; # Check if the template database exists. - $string_handle = $database_handle->prepare('SHOW TABLES LIKE \'' . $class->convert($options{"TablePrefix"}) . '_filters\'') or ( $error = "FilterDatabaseError", $errorext = $database_handle->errstr, return ); - $string_handle->execute(); + $statement_handle = $database_handle->prepare('SHOW TABLES LIKE \'' . $class->convert($options{"TablePrefix"}) . '_filters\'') or ( $error = "FilterDatabaseError", $errorext = $database_handle->errstr, return ); + $statement_handle->execute(); - while (@filterdb_check = $string_handle->fetchrow_array()){ + while (@filterdb_check = $statement_handle->fetchrow_array()){ $filterdb_exists = 1; @@ -2352,29 +2517,36 @@ sub addfilter{ } + if (!$filter_enabled){ + + $filter_enabled = ""; + + } + # Check if there is really no filter table. if (!$filterdb_exists){ # Create the filter database table. - $string_handle = $database_handle->prepare('CREATE TABLE ' . $class->convert($options{"TablePrefix"}) . '_filters ( + $statement_handle = $database_handle->prepare('CREATE TABLE ' . $class->convert($options{"TablePrefix"}) . '_filters ( id int(7) primary key, priority int(5), findsetting varchar(1024), replacesetting varchar(1024), + enabled varchar(3), notes text ) DEFAULT CHARSET=utf8') or ( $error = "FilterDatabaseError", $errorext = $database_handle->errstr, return ); - $string_handle->execute(); + $statement_handle->execute(); } # Find the lowest filter identification number available. - $string_handle = $database_handle->prepare('SELECT id FROM ' . $class->convert($options{"TablePrefix"}) . '_filters ORDER BY id ASC') or ( $error = "FilterDatabaseError", $errorext = $database_handle->errstr, return ); - $string_handle->execute(); + $statement_handle = $database_handle->prepare('SELECT id FROM ' . $class->convert($options{"TablePrefix"}) . '_filters ORDER BY id ASC') or ( $error = "FilterDatabaseError", $errorext = $database_handle->errstr, return ); + $statement_handle->execute(); - while (@database_filters = $string_handle->fetchrow_array()){ + while (@database_filters = $statement_handle->fetchrow_array()){ $filter_id = decode_utf8($database_filters[0]); @@ -2394,12 +2566,12 @@ sub addfilter{ $new_id = $filter_id + 1; - $string_handle = $database_handle->prepare('SELECT id FROM ' . $class->convert($options{"TablePrefix"}) . '_filters WHERE id = \'' . $class->convert($new_id) . '\'') or ( $error = "FilterDatabaseError", $errorext = $database_handle->errstr, return ); - $string_handle->execute(); + $statement_handle = $database_handle->prepare('SELECT id FROM ' . $class->convert($options{"TablePrefix"}) . '_filters WHERE id = \'' . $class->convert($new_id) . '\'') or ( $error = "FilterDatabaseError", $errorext = $database_handle->errstr, return ); + $statement_handle->execute(); # Get the filter identification number. - while (@filterid_check = $string_handle->fetchrow_array()){ + while (@filterid_check = $statement_handle->fetchrow_array()){ $filter_found = 1; @@ -2423,11 +2595,11 @@ sub addfilter{ } - # Check if there were any filters in the filters database. + # Check if there were any filters in the filter database. if (!$filter_count && !$new_id){ - # There were no filters in the filters database so set + # There were no filters in the filter database so set # the new filter identification value to 1. $new_id = 1; @@ -2436,14 +2608,14 @@ sub addfilter{ # Add the filter to the filter database. - $string_handle = $database_handle->prepare('INSERT INTO ' . $class->convert($options{"TablePrefix"}) . '_filters (id, priority, findsetting, replacesetting, notes) VALUES ( + $statement_handle = $database_handle->prepare('INSERT INTO ' . $class->convert($options{"TablePrefix"}) . '_filters (id, priority, findsetting, replacesetting, notes) VALUES ( \'' . $class->convert($new_id) . '\', \'' . $class->convert($filter_priority) . '\', \'' . $class->convert($filter_find) . '\', \'' . $class->convert($filter_replace) .'\', \'' . $class->convert($filter_notes) . '\' )') or ( $error = "FilterDatabaseError", $errorext = $database_handle->errstr, return ); - $string_handle->execute(); + $statement_handle->execute(); } @@ -2462,6 +2634,7 @@ sub editfilter{ # NewFindFilter Specifies the new find filter setting. # # NewReplaceFilter Specifies the new replace filter setting. # # NewFilterPriority Specifies the new filter priority setting. # +# NewEnabled Specifies if the filter is enabled. # # NewFilterNotes Specifies the new notes for the filter. # ################################################################################# @@ -2483,16 +2656,17 @@ sub editfilter{ my $filter_newfind = $passedoptions->{"NewFindFilter"}; my $filter_newreplace = $passedoptions->{"NewReplaceFilter"}; my $filter_newpriority = $passedoptions->{"NewFilterPriority"}; + my $filter_enabled = $passedoptions->{"NewEnabled"}; my $filter_newnotes = $passedoptions->{"NewFilterNotes"}; # Check if the filter exists before editing it. - $string_handle = $database_handle->prepare('SELECT id FROM ' . $class->convert($options{"TablePrefix"}) . '_filters where id = \'' . $class->convert($filter_id) . '\'') or ( $error = "FilterDatabaseError", $errorext = $database_handle->errstr, return ); - $string_handle->execute(); + $statement_handle = $database_handle->prepare('SELECT id FROM ' . $class->convert($options{"TablePrefix"}) . '_filters where id = \'' . $class->convert($filter_id) . '\'') or ( $error = "FilterDatabaseError", $errorext = $database_handle->errstr, return ); + $statement_handle->execute(); # Check if the filter exists. - while (@filter_data = $string_handle->fetchrow_array()){ + while (@filter_data = $statement_handle->fetchrow_array()){ $filter_exists = 1; @@ -2512,13 +2686,14 @@ sub editfilter{ # Edit the selected filter. - $string_handle = $database_handle->prepare('UPDATE ' . $class->convert($options{"TablePrefix"}) . '_filters SET + $statement_handle = $database_handle->prepare('UPDATE ' . $class->convert($options{"TablePrefix"}) . '_filters SET findsetting = \'' . $class->convert($filter_newfind) . '\', replacesetting = \'' . $class->convert($filter_newreplace) . '\', priority = \'' . $class->convert($filter_newpriority) . '\', + enabled = \'' . $class->convert($filter_enabled) . '\', notes = \'' . $class->convert($filter_newnotes) . '\' WHERE id = \'' . $class->convert($filter_id) . '\'') or ( $error = "FilterDatabaseError", $errorext = $database_handle->errstr, return ); - $string_handle->execute(); + $statement_handle->execute(); return; @@ -2554,10 +2729,10 @@ sub deletefilter{ # Check if the filter exists before deleting. - $string_handle = $database_handle->prepare('SELECT id FROM ' . $class->convert($options{"TablePrefix"}) . '_filters where id = \'' . $class->convert($filter_id) . '\'') or ( $error = "FilterDatabaseError", $errorext = $database_handle->errstr, return ); - $string_handle->execute(); + $statement_handle = $database_handle->prepare('SELECT id FROM ' . $class->convert($options{"TablePrefix"}) . '_filters where id = \'' . $class->convert($filter_id) . '\'') or ( $error = "FilterDatabaseError", $errorext = $database_handle->errstr, return ); + $statement_handle->execute(); - while (@filter_data = $string_handle->fetchrow_array()){ + while (@filter_data = $statement_handle->fetchrow_array()){ $filter_exists = 1; @@ -2574,8 +2749,8 @@ sub deletefilter{ # Delete the filter from the filter database. - $string_handle = $database_handle->prepare('DELETE FROM ' . $class->convert($options{"TablePrefix"}) . '_filters where id = \'' . $class->convert($filter_id) . '\'') or ( $error = "FilterDatabaseError", $errorext = $database_handle->errstr, return ); - $string_handle->execute(); + $statement_handle = $database_handle->prepare('DELETE FROM ' . $class->convert($options{"TablePrefix"}) . '_filters where id = \'' . $class->convert($filter_id) . '\'') or ( $error = "FilterDatabaseError", $errorext = $database_handle->errstr, return ); + $statement_handle->execute(); }