# Define the package (perl module) name.
-package Kiriwrite::Database::MySQL;
+package Modules::Database::MySQL5;
# Enable strict and use warnings.
use strict;
use warnings;
-use Encode;
+use Encode qw(decode_utf8);
# Load the following Perl modules.
-use DBI;
+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;
# 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;
# Disconnect from the server.
- if ($string_handle){
+ if ($statement_handle){
- $string_handle->finish();
+ $statement_handle->finish();
}
# 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]));
}
-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);
+
+ $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 = $statement_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])
+ );
+
+ $statement_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 );
- $string_handle->execute();
+ $error = "";
+ $errorext = "";
+
+ $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.
%databaseinfo = (
-
"DatabaseName" => decode_utf8($sqldata[0]),
"Description" => decode_utf8($sqldata[1]),
"Notes" => decode_utf8($sqldata[2]),
"Revision" => decode_utf8($sqldata[6])
);
- $string_handle->finish();
+ $statement_handle->finish();
return %databaseinfo;
# 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,
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),
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) . '\',
\'' . $class->convert($dbminorver) . '\',
\'' . $class->convert($dbrevisionver) . '\'
)') or ( $error = "DatabaseError", $errorext = $database_handle->errstr, return );
- $string_handle->execute();
+ $statement_handle->execute();
}
# 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();
}
# 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;
# 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();
}
# 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;
# #
# 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)){
- $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();
+ 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();
+
+ } 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.
# 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 = "";
my $template_found = 0;
my $filename = $passedoptions->{"TemplateFilename"};
+ my $reduced = $passedoptions->{"Reduced"};
+
+ 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 {
- $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();
+ $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 = $string_handle->fetchrow_array()){
+ }
+
+ while (@template_data = $statement_handle->fetchrow_array()){
# Get certain values from the array.
}
- 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{
#################################################################################
# #
# Usage: #
# #
-# $dbmodule->addtemplate(); #
+# $dbmodule->addtemplate(options); #
# #
# options Specifies the following options in any order. #
# #
# 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;
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();
}
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;
}
- $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();
-
-}
-
-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();
+ $statement_handle->execute();
}
# 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;
# 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) . '\',
datemodified = \'' . $class->convert($templatenewdate) . '\'
WHERE filename = \'' . $class->convert($template_filename) . '\'
') or ( $error = "TemplateDatabaseError", $errorext = $database_handle->errstr, return );
- $string_handle->execute();
+ $statement_handle->execute();
+
+}
+
+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.
+
+ $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 = $statement_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.
+
+ $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();
}
# 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.
# options Specifies the following options in any order. #
# #
# PageFilename Specifies the page filename to get the page information from. #
+# Reduced Specifies if the reduced version of the page information should #
+# be retrieved. #
#################################################################################
$error = "";
# Get the page from the database.
my $page_filename = $passedoptions->{"PageFilename"};
+ my $page_reduced = $passedoptions->{"Reduced"};
- $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();
+ if ($page_reduced eq 1){
- # Check if the page exists in the database.
+ $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();
- while (@data_page = $string_handle->fetchrow_array()){
+ # Check if the page exists in the database.
- # Get the values from the array.
+ while (@data_page = $statement_handle->fetchrow_array()){
- $pagefilename = decode_utf8($data_page[0]);
- $pagename = decode_utf8($data_page[1]);
- $pagedescription = decode_utf8($data_page[2]);
- $pagesection = decode_utf8($data_page[3]);
- $pagetemplate = decode_utf8($data_page[4]);
- $pagedata = decode_utf8($data_page[5]);
- $pagesettings = decode_utf8($data_page[6]);
- $pagelastmodified = decode_utf8($data_page[7]);
+ # Get the values from the array.
- # Put the values into the page hash.
+ $pagefilename = decode_utf8($data_page[0]);
+ $pagename = decode_utf8($data_page[1]);
+ $pagedescription = decode_utf8($data_page[2]);
+ $pagelastmodified = decode_utf8($data_page[3]);
- %database_page = (
- "PageFilename" => $pagefilename,
- "PageName" => $pagename,
- "PageDescription" => $pagedescription,
- "PageSection" => $pagesection,
- "PageTemplate" => $pagetemplate,
- "PageContent" => $pagedata,
- "PageSettings" => $pagesettings,
- "PageLastModified" => $class->dateconvert($pagelastmodified),
- );
+ # Put the values into the page hash.
- $page_found = 1;
+ %database_page = (
+ "PageFilename" => $pagefilename,
+ "PageName" => $pagename,
+ "PageDescription" => $pagedescription,
+ "PageLastModified" => $class->dateconvert($pagelastmodified),
+ );
- }
+ $page_found = 1;
+
+ }
+ } else {
+
+ $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 = $statement_handle->fetchrow_array()){
+
+ # Get the values from the array.
+
+ $pagefilename = decode_utf8($data_page[0]);
+ $pagename = decode_utf8($data_page[1]);
+ $pagedescription = decode_utf8($data_page[2]);
+ $pagesection = decode_utf8($data_page[3]);
+ $pagetemplate = decode_utf8($data_page[4]);
+ $pagedata = decode_utf8($data_page[5]);
+ $pagesettings = decode_utf8($data_page[6]);
+ $pagelastmodified = decode_utf8($data_page[7]);
+
+ # Put the values into the page hash.
+
+ %database_page = (
+ "PageFilename" => $pagefilename,
+ "PageName" => $pagename,
+ "PageDescription" => $pagedescription,
+ "PageSection" => $pagesection,
+ "PageTemplate" => $pagetemplate,
+ "PageContent" => $pagedata,
+ "PageSettings" => $pagesettings,
+ "PageLastModified" => $class->dateconvert($pagelastmodified),
+ # ADD PageLastModifiedInternal
+ );
+
+ $page_found = 1;
+
+ }
+
+ }
+
# Check if the page did exist.
if (!$page_found){
# 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.
# 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) . '\',
\'' . $class->convert($page_settings) . '\',
\'' . $class->convert($page_date) . '\'
)') or ( $error = "DatabaseError", $errorext = $database_handle->errstr, return );
- $string_handle->execute();
+ $statement_handle->execute();
}
# 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;
# 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();
}
# 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.
}
+ # Check if there is a page that already exists with the new
+ # filename.
+
+ $page_found = 0;
+
+ if ($page_filename ne $page_newfilename){
+
+ $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 = $statement_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;
# 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();
}
# 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.
$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;
# 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"}) . '\',
\'' . $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();
}
# 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.
$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;
# 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"}) . '\',
\'' . $class->convert($database_page{"PageSettings"}) . '\',
\'' . $class->convert($database_page{"PageLastModified"}) . '\'
)') or ( $error = "NewDatabaseError", $errorext = $database_handle->errstr, return );
- $string_handle->execute();
+ $statement_handle->execute();
}
# 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->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;
# #
# 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"};
+
+ if (defined($start_from)){
+
+ 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();
- $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();
+ } 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 = $string_handle->fetchrow_array()){
+ }
+
+ while (@filter_data = $statement_handle->fetchrow_array()){
# Add the filter to the list of available filters.
}
+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. #
# 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 = "";
# Get the values that are in the hash.
my $filter_id = $passedoptions->{"FilterID"};
+ my $reduced = $passedoptions->{"Reduced"};
- $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();
+ 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 {
+
+ $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;
# 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. #
#################################################################################
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;
}
+ 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]);
$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;
}
- # 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;
# 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();
}
# 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. #
#################################################################################
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;
# 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;
# 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;
# 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();
}