# Define the package (perl module) name.
-package Kiriwrite::Database::SQLite;
+package Modules::Database::SQLite;
# Enable strict and use warnings.
+use Modules::System::Common;
use strict;
use warnings;
# Set the following values.
-our $VERSION = "0.1.0";
+our $VERSION = "0.5.0";
my ($options, %options);
my $database_handle;
my $statement_handle;
# #
# Usage: #
# #
-# $dbmodule->getpagelist(); #
+# $dbmodule->getpagelist(options); #
+# #
+# options Specifies the following options in any order. #
+# #
+# StartFrom Start from the specified page in the database. #
+# Limit Get the amount of pages given. #
#################################################################################
$error = "";
$errorext = "";
- my $class = shift;
-
- $statement_handle = $database_handle->prepare('SELECT filename FROM kiriwrite_database_pages') or ( $error = "DatabaseError", $errorext = $database_handle->errstr, return );
- $statement_handle->execute();
+ my $class = shift;
+ my ($passedoptions) = shift;
+
+ 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 kiriwrite_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 kiriwrite_database_pages') or ( $error = "DatabaseError", $errorext = $database_handle->errstr, return );
+ $statement_handle->execute();
+
+ }
my @database_pagefilenames;
my @database_pagefilenames_final;
}
+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 kiriwrite_database_pages') or ( $error = "DatabaseError", $errorext = $database_handle->errstr, return);
+ $statement_handle->execute();
+
+ my $count = $statement_handle->fetchrow_array();
+
+ return $count;
+
+}
+
sub getpageinfo{
#################################################################################
# getpageinfo: Gets the page information from the filename passed. #
# 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),
+ "PageFilename" => $pagefilename,
+ "PageName" => $pagename,
+ "PageDescription" => $pagedescription,
+ "PageSection" => $pagesection,
+ "PageTemplate" => $pagetemplate,
+ "PageContent" => $pagedata,
+ "PageSettings" => $pagesettings,
+ "PageLastModified" => $class->dateconvert($pagelastmodified)
);
$page_found = 1;
# Check if the template database exists.
- my $filterdatabase_exists = main::kiriwrite_fileexists("filters.db.sqlite");
+ my $filterdatabase_exists = kiriwrite_fileexists("filters.db.sqlite");
if ($filterdatabase_exists eq 1){
# Check if the permission settings for the template database are valid.
- my $filterdb_permissions = main::kiriwrite_filepermissions("filters.db.sqlite", 1, 0);
+ my $filterdb_permissions = kiriwrite_filepermissions("filters.db.sqlite", 1, 0);
if ($filterdb_permissions eq 1){
}
+sub getfiltercount{
+#################################################################################
+# getfiltercount: Gets the count of filters in the filters database. #
+# #
+# Usage: #
+# #
+# $dbmodule->getfiltercount(); #
+#################################################################################
+
+ $error = "";
+ $errorext = "";
+
+ my $class = shift;
+
+ $filterdb_statement_handle = $filterdb_database_handle->prepare('SELECT COUNT(*) FROM kiriwrite_filters') or ( $error = "FilterDatabaseError", $errorext = $filterdb_database_handle->errstr, return);
+ $filterdb_statement_handle->execute();
+
+ my $count = $filterdb_statement_handle->fetchrow_array();
+
+ return $count;
+
+}
+
sub getfilterlist{
#################################################################################
# getfilterlist: Gets the list of filters in the filter database. #
# #
# Usage: #
# #
-# $dbmodule->getfilterlist(); #
+# $dbmodule->getfilterlist(options); #
+# #
+# 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"};
- $filterdb_statement_handle = $filterdb_database_handle->prepare('SELECT id FROM kiriwrite_filters ORDER BY priority ASC') or ( $error = "FilterDatabaseError", $errorext = $filterdb_database_handle->errstr, return );
- $filterdb_statement_handle->execute();
+ if (defined($start_from)){
+
+ if (!$limit){
+
+ $limit = 0;
+
+ }
+
+ $filterdb_statement_handle = $filterdb_database_handle->prepare('SELECT id FROM kiriwrite_filters ORDER BY priority ASC LIMIT ' . $start_from . ',' . $limit) or ( $error = "FilterDatabaseError", $errorext = $filterdb_database_handle->errstr, return );
+ $filterdb_statement_handle->execute();
+
+ } else {
+
+ $filterdb_statement_handle = $filterdb_database_handle->prepare('SELECT id FROM kiriwrite_filters ORDER BY priority ASC') or ( $error = "FilterDatabaseError", $errorext = $filterdb_database_handle->errstr, return );
+ $filterdb_statement_handle->execute();
+
+ }
+
+ # Get the list of filters available.
while (@filter_data = $filterdb_statement_handle->fetchrow_array()){
# options Specifies the following options in any order. #
# #
# FilterID Specifies the filter ID number to get information from. #
+# Reduced Specifies if the reduced version of the filter information #
+# should be retrieved. #
#################################################################################
$error = "";
# Get the values that are in the hash.
my $filter_id = $passedoptions->{"FilterID"};
+ my $reduced = $passedoptions->{"Reduced"};
+
+ if ($reduced && $reduced eq 1){
- $filterdb_statement_handle = $filterdb_database_handle->prepare('SELECT id, priority, findsetting, replacesetting, notes FROM kiriwrite_filters where id = \'' . $class->convert($filter_id) . '\'') or ( $error = "FilterDatabaseError", $errorext = $filterdb_database_handle->errstr, return );
- $filterdb_statement_handle->execute();
+ $filterdb_statement_handle = $filterdb_database_handle->prepare('SELECT id, priority, findsetting, replacesetting, enabled FROM kiriwrite_filters where id = \'' . $class->convert($filter_id) . '\'') or ( $error = "FilterDatabaseError", $errorext = $filterdb_database_handle->errstr, return );
+ $filterdb_statement_handle->execute();
+
+ } else {
+
+ $filterdb_statement_handle = $filterdb_database_handle->prepare('SELECT id, priority, findsetting, replacesetting, enabled, notes FROM kiriwrite_filters where id = \'' . $class->convert($filter_id) . '\'') or ( $error = "FilterDatabaseError", $errorext = $filterdb_database_handle->errstr, return );
+ $filterdb_statement_handle->execute();
+
+ }
# Get the filter information.
$filter_info{"FilterPriority"} = $filter_data[1];
$filter_info{"FilterFind"} = $filter_data[2];
$filter_info{"FilterReplace"} = $filter_data[3];
- $filter_info{"FilterNotes"} = $filter_data[4];
+ $filter_info{"FilterEnabled"} = $filter_data[4];
+ $filter_info{"FilterNotes"} = $filter_data[5];
$filter_exists = 1;
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 filter database permissions are valid.
- my $filterdb_exists = main::kiriwrite_fileexists("filters.db.sqlite", 1, 1);
- my $filterdb_permissions = main::kiriwrite_filepermissions("filters.db.sqlite", 1, 1);
+ my $filterdb_exists = kiriwrite_fileexists("filters.db.sqlite", 1, 1);
+ my $filterdb_permissions = kiriwrite_filepermissions("filters.db.sqlite", 1, 1);
if ($filterdb_permissions eq 1){
}
- my $directory_permissions = main::kiriwrite_filepermissions(".", 1, 1, 0);
+ if (!$filter_enabled){
+
+ $filter_enabled = "";
+
+ }
+
+ my $directory_permissions = kiriwrite_filepermissions(".", 1, 1, 0);
if ($directory_permissions eq 1 && $filterdb_exists){
priority int(5),
findsetting varchar(1024),
replacesetting varchar(1024),
+ enabled boolean,
notes text
)') or ( $error = "FilterDatabaseError", $errorext = $filterdb_database_handle->errstr, return );
$filterdb_statement_handle->execute();
# Add the filter to the filter database.
- $filterdb_statement_handle = $filterdb_database_handle->prepare('INSERT INTO kiriwrite_filters (id, priority, findsetting, replacesetting, notes) VALUES (
+ $filterdb_statement_handle = $filterdb_database_handle->prepare('INSERT INTO kiriwrite_filters (id, priority, findsetting, replacesetting, enabled, notes) VALUES (
\'' . $class->convert($new_id) . '\',
\'' . $class->convert($filter_priority) . '\',
\'' . $class->convert($filter_find) . '\',
\'' . $class->convert($filter_replace) .'\',
+ \'' . $class->convert($filter_enabled) . '\',
\'' . $class->convert($filter_notes) . '\'
)') or ( $error = "FilterDatabaseError", $errorext = $filterdb_database_handle->errstr, return );
$filterdb_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 should be 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 database permissions are valid.
- my $filterdb_exists = main::kiriwrite_fileexists("filters.db.sqlite", 1, 1);
- my $filterdb_permissions = main::kiriwrite_filepermissions("filters.db.sqlite", 1, 1);
+ my $filterdb_exists = kiriwrite_fileexists("filters.db.sqlite", 1, 1);
+ my $filterdb_permissions = kiriwrite_filepermissions("filters.db.sqlite", 1, 1);
if ($filterdb_permissions eq 1){
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 = $filterdb_database_handle->errstr, return );
$filterdb_statement_handle->execute();
# Check if the template database exists.
- my $templatedatabase_exists = main::kiriwrite_fileexists("templates.db.sqlite");
+ my $templatedatabase_exists = kiriwrite_fileexists("templates.db.sqlite");
if ($templatedatabase_exists eq 1){
# Check if the permission settings for the template database are valid.
- my $templatedb_permissions = main::kiriwrite_filepermissions("templates.db.sqlite", 1, 0);
+ my $templatedb_permissions = kiriwrite_filepermissions("templates.db.sqlite", 1, 0);
if ($templatedb_permissions eq 1){
}
+sub gettemplatecount{
+#################################################################################
+# gettemplatecount: Gets the count of templates in the template database. #
+# #
+# Usage: #
+# #
+# $dbmodule->gettemplatecount(); #
+#################################################################################
+
+ $error = "";
+ $errorext = "";
+
+ my $class = shift;
+
+ $template_statement_handle = $template_database_handle->prepare('SELECT COUNT(*) FROM kiriwrite_templates') or ( $error = "FilterDatabaseError", $errorext = $template_database_handle->errstr, return);
+ $template_statement_handle->execute();
+
+ my $count = $template_statement_handle->fetchrow_array();
+
+ return $count;
+
+}
+
sub gettemplatelist{
#################################################################################
# gettemplatelist: Gets the list of templates. #
# #
# 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. #
#################################################################################
$error = "";
$errorext = "";
- $template_statement_handle = $template_database_handle->prepare('SELECT filename FROM kiriwrite_templates ORDER BY filename ASC') or ( $error = "TemplateDatabaseError", $errorext = $template_database_handle->errstr, return );
- $template_statement_handle->execute();
+ my $class = shift;
+ my ($passedoptions) = @_;
+
+ my $start_from = $passedoptions->{"StartFrom"};
+ my $limit = $passedoptions->{"Limit"};
+
+ if (defined($start_from)){
+
+ if (!$limit){
+
+ $limit = 0;
+
+ }
+
+ $template_statement_handle = $template_database_handle->prepare('SELECT filename FROM kiriwrite_templates ORDER BY filename ASC LIMIT ' . $start_from . ',' . $limit ) or ( $error = "TemplateDatabaseError", $errorext = $template_database_handle->errstr, return );
+ $template_statement_handle->execute();
+
+ } else {
+
+ $template_statement_handle = $template_database_handle->prepare('SELECT filename FROM kiriwrite_templates ORDER BY filename ASC') or ( $error = "TemplateDatabaseError", $errorext = $template_database_handle->errstr, return );
+ $template_statement_handle->execute();
+
+ }
my @database_template;
my @templates_list;
# options Specifies the following options in any order. #
# #
# TemplateFilename Specifies the template filename to use. #
+# Reduced Specifies a reduced version of template information to #
+# get. #
#################################################################################
$error = "";
my $template_found = 0;
my $filename = $passedoptions->{"TemplateFilename"};
+ my $reduced = $passedoptions->{"Reduced"};
- $template_statement_handle = $template_database_handle->prepare('SELECT filename, templatename, templatedescription, templatelayout, datemodified FROM kiriwrite_templates WHERE filename = \'' . $class->convert($filename) . '\'') or ( $error = "TemplateDatabaseError", $errorext = $template_database_handle->errstr, return );
- $template_statement_handle->execute();
+ if ($reduced && $reduced eq 1){
+
+ $template_statement_handle = $template_database_handle->prepare('SELECT filename, templatename, templatedescription, datemodified FROM kiriwrite_templates WHERE filename = \'' . $class->convert($filename) . '\'') or ( $error = "TemplateDatabaseError", $errorext = $template_database_handle->errstr, return );
+ $template_statement_handle->execute();
+
+ } else {
+
+ $template_statement_handle = $template_database_handle->prepare('SELECT filename, templatename, templatedescription, templatelayout, datemodified FROM kiriwrite_templates WHERE filename = \'' . $class->convert($filename) . '\'') or ( $error = "TemplateDatabaseError", $errorext = $template_database_handle->errstr, return );
+ $template_statement_handle->execute();
+
+ }
while (@template_data = $template_statement_handle->fetchrow_array()){
# Check if the template database permissions are valid.
- my $templatedb_exists = main::kiriwrite_fileexists("templates.db.sqlite", 1, 1);
- my $templatedb_permissions = main::kiriwrite_filepermissions("templates.db.sqlite", 1, 1);
+ my $templatedb_exists = kiriwrite_fileexists("templates.db.sqlite", 1, 1);
+ my $templatedb_permissions = kiriwrite_filepermissions("templates.db.sqlite", 1, 1);
if ($templatedb_permissions eq 1){
}
- my $directory_permissions = main::kiriwrite_filepermissions(".", 1, 1, 0);
+ my $directory_permissions = kiriwrite_filepermissions(".", 1, 1, 0);
if ($directory_permissions eq 1 && $templatedb_exists){
# Create a template table.
- my $directory_permissions = main::kiriwrite_filepermissions(".", 1, 1, 0);
+ my $directory_permissions = kiriwrite_filepermissions(".", 1, 1, 0);
if ($directory_permissions eq 1){
# Check if the template database permissions are valid.
- my $templatedb_exists = main::kiriwrite_fileexists("templates.db.sqlite", 1, 1);
- my $templatedb_permissions = main::kiriwrite_filepermissions("templates.db.sqlite", 1, 1);
+ my $templatedb_exists = kiriwrite_fileexists("templates.db.sqlite", 1, 1);
+ my $templatedb_permissions = kiriwrite_filepermissions("templates.db.sqlite", 1, 1);
if ($templatedb_permissions eq 1){