X-Git-Url: http://Server1/repobrowser/?p=kiriwrite%2F.git;a=blobdiff_plain;f=cgi-files%2FModules%2FDatabase%2FSQLite.pm;h=6fc34b4e21ad3d8f5ae6288f84a16fcf59b25672;hp=f4a9d1bf329442b1c86baaeedb597ad856d67de7;hb=807fbc25c35ea3cdf16adcb2106fbb63b3511a68;hpb=1a2430bc24c3a226970f143e589734d77f78d765 diff --git a/cgi-files/Modules/Database/SQLite.pm b/cgi-files/Modules/Database/SQLite.pm index f4a9d1b..6fc34b4 100644 --- a/cgi-files/Modules/Database/SQLite.pm +++ b/cgi-files/Modules/Database/SQLite.pm @@ -21,10 +21,11 @@ # 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; @@ -34,7 +35,7 @@ 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 $statement_handle; @@ -1144,16 +1145,40 @@ sub getpagelist{ # # # 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; @@ -1173,6 +1198,29 @@ sub getpagelist{ } +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. # @@ -1265,14 +1313,14 @@ sub getpageinfo{ # 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; @@ -1832,7 +1880,7 @@ sub connectfilter{ # 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){ @@ -1849,7 +1897,7 @@ sub connectfilter{ # 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){ @@ -1893,25 +1941,72 @@ sub disconnectfilter{ } +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()){ @@ -1937,6 +2032,8 @@ sub getfilterinfo{ # 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 = ""; @@ -1954,9 +2051,19 @@ sub getfilterinfo{ # 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. @@ -1966,7 +2073,8 @@ sub getfilterinfo{ $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; @@ -2031,12 +2139,13 @@ 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 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){ @@ -2074,7 +2183,13 @@ sub addfilter{ } - 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){ @@ -2101,6 +2216,7 @@ sub addfilter{ 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(); @@ -2174,11 +2290,12 @@ sub addfilter{ # 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(); @@ -2199,6 +2316,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 should be enabled. # # NewFilterNotes Specifies the new notes for the filter. # ################################################################################# @@ -2220,12 +2338,13 @@ 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 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){ @@ -2267,6 +2386,7 @@ sub editfilter{ 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(); @@ -2356,7 +2476,7 @@ sub connecttemplate{ # 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){ @@ -2373,7 +2493,7 @@ sub connecttemplate{ # 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){ @@ -2417,20 +2537,69 @@ sub disconnecttemplate{ } +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; @@ -2463,6 +2632,8 @@ sub gettemplateinfo{ # 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 = ""; @@ -2485,9 +2656,19 @@ sub gettemplateinfo{ 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()){ @@ -2562,8 +2743,8 @@ sub addtemplate{ # 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){ @@ -2622,7 +2803,7 @@ sub addtemplate{ } - my $directory_permissions = main::kiriwrite_filepermissions(".", 1, 1, 0); + my $directory_permissions = kiriwrite_filepermissions(".", 1, 1, 0); if ($directory_permissions eq 1 && $templatedb_exists){ @@ -2656,7 +2837,7 @@ sub addtemplate{ # 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){ @@ -2776,8 +2957,8 @@ sub edittemplate{ # 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){