+ $presmodule_seek++;
+
+ } until ($presmodule_seek eq $presmodule_dot);
+
+ # Append the option to tbe list of available presentation modules.
+
+ $presmodule_list{$presmodule_count}{Filename} = $presmodule_friendly;
+
+ # Reset the following values.
+
+ $presmodule_seek = 0;
+ $presmodule_length = 0;
+ $presmodule_char = "";
+ $presmodule_friendly = "";
+ $presmodule_count++;
+
+ }
+
+ # Get the list of database modules available.
+
+ my %dbmodule_list;
+ my @dbmodule_directory;
+ my $dbmodule;
+ my $dbmodule_file = "";
+ my $dbmodule_char = "";
+ my $dbmodule_dot = 0;
+ my $dbmodule_firstdot = 0;
+ my $dbmodule_firstdotfound = "";
+ my $dbmodule_seek = 0;
+ my $dbmodule_length = 0;
+ my $dbmodule_count = 0;
+ my $dbmodule_friendly = "";
+ my $dbmodule_selectlist = "";
+ my $dbmodule_config = $kiriwrite_config{"system_dbmodule"};
+
+ # Open and get the list of presentation modules (perl modules) by filtering
+ # out the
+
+ opendir(DATABASEDIR, "Modules/Database");
+ @dbmodule_directory = grep /m*\.pm$/, readdir(DATABASEDIR);
+ closedir(DATABASEDIR);
+
+ # Process each presentation module and add them to the list of available
+ # presentation modules.
+
+ foreach $dbmodule_file (@dbmodule_directory){
+
+ # Get the length of the database module (perl module) filename.
+
+ $dbmodule_length = length($dbmodule_file);
+
+ # Get the friendly name of the Perl module (by getting rid of the
+ # .pm part of the filename).
+
+ do {
+
+ $dbmodule_char = substr($dbmodule_file, $dbmodule_seek, 1);
+
+ # Check if the current character is a dot and if it is then
+ # set the last dot found number to the current seek number.
+
+ if ($dbmodule_char eq "."){
+
+ # Put the seek value as the last dot found number.
+
+ $dbmodule_dot = $dbmodule_seek;
+
+ }
+
+ # Increment the seek counter.
+
+ $dbmodule_seek++;
+
+ } until ($dbmodule_seek eq $dbmodule_length);
+
+ # Reset the seek counter as it is going to be used again.
+
+ $dbmodule_seek = 0;
+
+ # Get the friendly name of the Perl module by the processing the file
+ # name to the last dot the previous 'do' tried to find.
+
+ do {
+
+ # Get the character the seek counter is currently set at.
+
+ $dbmodule_char = substr($dbmodule_file, $dbmodule_seek, 1);
+
+ # Append the character to the friendly name of the presentation module.
+
+ $dbmodule_friendly = $dbmodule_friendly . $dbmodule_char;
+
+ # Increment the seek counter.
+
+ $dbmodule_seek++;
+
+ } until ($dbmodule_seek eq $dbmodule_dot);
+
+ # Append the option to tbe list of available database modules.
+
+ $dbmodule_list{$dbmodule_count}{Filename} = $dbmodule_friendly;
+
+ # Reset the following values.
+
+ $dbmodule_seek = 0;
+ $dbmodule_length = 0;
+ $dbmodule_char = "";
+ $dbmodule_friendly = "";
+ $dbmodule_count++;
+
+ }
+
+ # Get the directory settings.
+
+ my $directory_settings_database = $kiriwrite_config{"directory_data_db"};
+ my $directory_settings_output = $kiriwrite_config{"directory_data_output"};
+ my $directory_settings_imagesuri = $kiriwrite_config{"directory_noncgi_images"};
+ my $datetime_setting = $kiriwrite_config{"system_datetime"};
+
+ my $database_server = $kiriwrite_config{"database_server"};
+ my $database_port = $kiriwrite_config{"database_port"};
+ my $database_protocol = $kiriwrite_config{"database_protocol"};
+ my $database_sqldatabase = $kiriwrite_config{"database_sqldatabase"};
+ my $database_username = $kiriwrite_config{"database_username"};
+ my $database_passwordhash = $kiriwrite_config{"database_passwordhash"};
+ my $database_password = $kiriwrite_config{"database_password"};
+ my $database_prefix = $kiriwrite_config{"database_tableprefix"};
+
+ # Print out a form for editing the settings.
+
+ $kiriwrite_presmodule->addtext($kiriwrite_lang->{setting}->{editsettings}, { Style => "pageheader" });
+ $kiriwrite_presmodule->addlinebreak();
+ $kiriwrite_presmodule->addlinebreak();
+ $kiriwrite_presmodule->addboldtext($kiriwrite_lang->{setting}->{warning});
+ $kiriwrite_presmodule->addtext($kiriwrite_lang->{setting}->{warningmessage});
+ $kiriwrite_presmodule->addlinebreak();
+ $kiriwrite_presmodule->addlinebreak();
+
+ $kiriwrite_presmodule->startform($kiriwrite_env{"script_filename"}, "POST");
+ $kiriwrite_presmodule->startbox();
+ $kiriwrite_presmodule->addhiddendata("mode", "settings");
+ $kiriwrite_presmodule->addhiddendata("action", "edit");
+ $kiriwrite_presmodule->addhiddendata("confirm", 1);
+
+ $kiriwrite_presmodule->starttable("", { CellPadding => 5, CellSpacing => 0 });
+
+ $kiriwrite_presmodule->startheader();
+ $kiriwrite_presmodule->addheader($kiriwrite_lang->{common}->{setting}, { Style => "tablecellheader" });
+ $kiriwrite_presmodule->addheader($kiriwrite_lang->{common}->{value}, { Style => "tablecellheader" });
+ $kiriwrite_presmodule->endheader();
+
+ $kiriwrite_presmodule->startrow();
+ $kiriwrite_presmodule->addcell("tablecellheader");
+ $kiriwrite_presmodule->addtext($kiriwrite_lang->{setting}->{directories});
+ $kiriwrite_presmodule->endcell();
+ $kiriwrite_presmodule->addcell("tablecellheader");
+ $kiriwrite_presmodule->endcell();
+ $kiriwrite_presmodule->endrow();
+
+ $kiriwrite_presmodule->startrow();
+ $kiriwrite_presmodule->addcell("tablecell1");
+ $kiriwrite_presmodule->addtext($kiriwrite_lang->{setting}->{databasedirectory});
+ $kiriwrite_presmodule->endcell();
+ $kiriwrite_presmodule->addcell("tablecell2");
+ $kiriwrite_presmodule->addinputbox("databasedir", { Size => 32, MaxLength => 64, Value => $directory_settings_database });
+ $kiriwrite_presmodule->endcell();
+ $kiriwrite_presmodule->endrow();
+
+ $kiriwrite_presmodule->startrow();
+ $kiriwrite_presmodule->addcell("tablecell1");
+ $kiriwrite_presmodule->addtext($kiriwrite_lang->{setting}->{outputdirectory});
+ $kiriwrite_presmodule->endcell();
+ $kiriwrite_presmodule->addcell("tablecell2");
+ $kiriwrite_presmodule->addinputbox("outputdir", { Size => 32, MaxLength => 64, Value => $directory_settings_output });
+ $kiriwrite_presmodule->endcell();
+ $kiriwrite_presmodule->endrow();
+
+ $kiriwrite_presmodule->startrow();
+ $kiriwrite_presmodule->addcell("tablecell1");
+ $kiriwrite_presmodule->addtext($kiriwrite_lang->{setting}->{imagesuripath});
+ $kiriwrite_presmodule->endcell();
+ $kiriwrite_presmodule->addcell("tablecell2");
+ $kiriwrite_presmodule->addinputbox("imagesuripath", { Size => 32, MaxLength => 64, Value => $directory_settings_imagesuri });
+ $kiriwrite_presmodule->endcell();
+ $kiriwrite_presmodule->endrow();
+
+ $kiriwrite_presmodule->startrow();
+ $kiriwrite_presmodule->addcell("tablecellheader");
+ $kiriwrite_presmodule->addtext($kiriwrite_lang->{setting}->{date});
+ $kiriwrite_presmodule->endcell();
+ $kiriwrite_presmodule->addcell("tablecellheader");
+ $kiriwrite_presmodule->endcell();
+ $kiriwrite_presmodule->endrow();
+
+ $kiriwrite_presmodule->startrow();
+ $kiriwrite_presmodule->addcell("tablecell1");
+ $kiriwrite_presmodule->addtext($kiriwrite_lang->{setting}->{dateformat});
+ $kiriwrite_presmodule->endcell();
+ $kiriwrite_presmodule->addcell("tablecell2");
+ $kiriwrite_presmodule->addinputbox("datetime", { Size => 32, MaxLength => 64, Value => $datetime_setting });
+ $kiriwrite_presmodule->addlinebreak();
+ $kiriwrite_presmodule->addlinebreak();
+ $kiriwrite_presmodule->startbox("datalist");
+
+ $kiriwrite_presmodule->addtext($kiriwrite_lang->{setting}->{singleday});
+ $kiriwrite_presmodule->addlinebreak();
+ $kiriwrite_presmodule->addtext($kiriwrite_lang->{setting}->{doubleday});
+ $kiriwrite_presmodule->addlinebreak();
+ $kiriwrite_presmodule->addtext($kiriwrite_lang->{setting}->{singlemonth});
+ $kiriwrite_presmodule->addlinebreak();
+ $kiriwrite_presmodule->addtext($kiriwrite_lang->{setting}->{doublemonth});
+ $kiriwrite_presmodule->addlinebreak();
+ $kiriwrite_presmodule->addtext($kiriwrite_lang->{setting}->{singleyear});
+ $kiriwrite_presmodule->addlinebreak();
+ $kiriwrite_presmodule->addtext($kiriwrite_lang->{setting}->{doubleyear});
+ $kiriwrite_presmodule->addlinebreak();
+ $kiriwrite_presmodule->addlinebreak();
+ $kiriwrite_presmodule->addtext($kiriwrite_lang->{setting}->{singlehour});
+ $kiriwrite_presmodule->addlinebreak();
+ $kiriwrite_presmodule->addtext($kiriwrite_lang->{setting}->{doublehour});
+ $kiriwrite_presmodule->addlinebreak();
+ $kiriwrite_presmodule->addtext($kiriwrite_lang->{setting}->{singleminute});
+ $kiriwrite_presmodule->addlinebreak();
+ $kiriwrite_presmodule->addtext($kiriwrite_lang->{setting}->{doubleminute});
+ $kiriwrite_presmodule->addlinebreak();
+ $kiriwrite_presmodule->addtext($kiriwrite_lang->{setting}->{singlesecond});
+ $kiriwrite_presmodule->addlinebreak();
+ $kiriwrite_presmodule->addtext($kiriwrite_lang->{setting}->{doublesecond});
+ $kiriwrite_presmodule->addlinebreak();
+ $kiriwrite_presmodule->addlinebreak();
+ $kiriwrite_presmodule->addtext($kiriwrite_lang->{setting}->{othercharacters});
+ $kiriwrite_presmodule->endbox();
+ $kiriwrite_presmodule->endcell();
+ $kiriwrite_presmodule->endrow();
+
+ $kiriwrite_presmodule->startrow();
+ $kiriwrite_presmodule->addcell("tablecellheader");
+ $kiriwrite_presmodule->addtext($kiriwrite_lang->{setting}->{language});
+ $kiriwrite_presmodule->endcell();
+ $kiriwrite_presmodule->addcell("tablecellheader");
+ $kiriwrite_presmodule->endcell();
+ $kiriwrite_presmodule->endrow();
+
+ $kiriwrite_presmodule->startrow();
+ $kiriwrite_presmodule->addcell("tablecell1");
+ $kiriwrite_presmodule->addtext($kiriwrite_lang->{setting}->{systemlanguage});
+ $kiriwrite_presmodule->endcell();
+ $kiriwrite_presmodule->addcell("tablecell2");
+
+ $kiriwrite_presmodule->addselectbox("language");
+
+ # Process the list of available languages.
+
+ foreach $language (keys %language_list){
+
+ # Check if the language filename matches the filename in the configuration
+ # file.
+
+ if ($language_list{$language}{Filename} eq $language_config){
+
+ $kiriwrite_presmodule->addoption($language_list{$language}{Name}, { Value => $language_list{$language}{Filename} , Selected => 1 });
+
+ } else {
+
+ $kiriwrite_presmodule->addoption($language_list{$language}{Name}, { Value => $language_list{$language}{Filename} });
+
+ }
+
+ }
+
+ $kiriwrite_presmodule->endselectbox();
+
+ $kiriwrite_presmodule->startrow();
+ $kiriwrite_presmodule->addcell("tablecellheader");
+ $kiriwrite_presmodule->addtext($kiriwrite_lang->{setting}->{modules});
+ $kiriwrite_presmodule->endcell();
+ $kiriwrite_presmodule->addcell("tablecellheader");
+ $kiriwrite_presmodule->endcell();
+ $kiriwrite_presmodule->endrow();
+
+ $kiriwrite_presmodule->startrow();
+ $kiriwrite_presmodule->addcell("tablecell1");
+ $kiriwrite_presmodule->addtext($kiriwrite_lang->{setting}->{presentationmodule});
+ $kiriwrite_presmodule->endcell();
+ $kiriwrite_presmodule->addcell("tablecell2");
+
+ $kiriwrite_presmodule->addselectbox("presmodule");
+
+ # Process the list of available presentation modules.
+
+ foreach $presmodule (keys %presmodule_list){
+
+ # Check if the presentation module fileanme matches the filename in the
+ # configuration file.
+
+ if ($presmodule_list{$presmodule}{Filename} eq $presmodule_config){
+
+ $kiriwrite_presmodule->addoption($presmodule_list{$presmodule}{Filename}, { Value => $presmodule_list{$presmodule}{Filename} , Selected => 1 });
+
+ } else {
+
+ $kiriwrite_presmodule->addoption($presmodule_list{$presmodule}{Filename}, { Value => $presmodule_list{$presmodule}{Filename} });
+
+ }
+
+ }
+
+ $kiriwrite_presmodule->endselectbox();
+
+ $kiriwrite_presmodule->endcell();
+ $kiriwrite_presmodule->endrow();
+
+ $kiriwrite_presmodule->startrow();
+ $kiriwrite_presmodule->addcell("tablecell1");
+ $kiriwrite_presmodule->addtext($kiriwrite_lang->{setting}->{databasemodule});
+ $kiriwrite_presmodule->endcell();
+ $kiriwrite_presmodule->addcell("tablecell2");
+
+ # Process the list of available database modules.
+
+ $kiriwrite_presmodule->addselectbox("dbmodule");
+
+ foreach $dbmodule (keys %dbmodule_list){
+
+ # Check if the database module fileanme matches the filename in the
+ # configuration file.
+
+ if ($dbmodule_list{$dbmodule}{Filename} eq $dbmodule_config){
+
+ $kiriwrite_presmodule->addoption($dbmodule_list{$dbmodule}{Filename}, { Value => $dbmodule_list{$dbmodule}{Filename} , Selected => 1 });
+
+ } else {
+
+ $kiriwrite_presmodule->addoption($dbmodule_list{$dbmodule}{Filename}, { Value => $dbmodule_list{$dbmodule}{Filename} });
+
+ }
+
+
+ }
+
+ $kiriwrite_presmodule->endselectbox();
+
+ $kiriwrite_presmodule->endcell();
+ $kiriwrite_presmodule->endrow();
+
+ $kiriwrite_presmodule->startrow();
+ $kiriwrite_presmodule->addcell("tablecell1");
+ $kiriwrite_presmodule->addtext($kiriwrite_lang->{setting}->{databaseserver});
+ $kiriwrite_presmodule->endcell();
+ $kiriwrite_presmodule->addcell("tablecell2");
+ $kiriwrite_presmodule->addinputbox("database_server", { Size => 32, MaxLength => 128, Value => $database_server });
+ $kiriwrite_presmodule->endcell();
+ $kiriwrite_presmodule->endrow();
+
+ $kiriwrite_presmodule->startrow();
+ $kiriwrite_presmodule->addcell("tablecell1");
+ $kiriwrite_presmodule->addtext($kiriwrite_lang->{setting}->{databaseport});
+ $kiriwrite_presmodule->endcell();
+ $kiriwrite_presmodule->addcell("tablecell2");
+ $kiriwrite_presmodule->addinputbox("database_port", { Size => 5, MaxLength => 5, Value => $database_port });
+ $kiriwrite_presmodule->endcell();
+ $kiriwrite_presmodule->endrow();
+
+ $kiriwrite_presmodule->startrow();
+ $kiriwrite_presmodule->addcell("tablecell1");
+ $kiriwrite_presmodule->addtext($kiriwrite_lang->{setting}->{databaseprotocol});
+ $kiriwrite_presmodule->endcell();
+ $kiriwrite_presmodule->addcell("tablecell2");
+
+ # Check if TCP is being used.
+
+ $kiriwrite_presmodule->addselectbox("database_protocol");
+
+ if ($database_protocol eq "tcp"){
+
+ # The TCP protocol is selected so have the TCP option selected.
+
+ $kiriwrite_presmodule->addoption("TCP", { Value => "tcp", Selected => 1});
+
+ } else {
+
+ # The TCP protocol is not selected.
+
+ $kiriwrite_presmodule->addoption("TCP", { Value => "tcp"});
+
+ }
+
+ # Check if UDP is being used.
+
+ if ($database_protocol eq "udp"){
+
+ # The UDP protocol is selected so have the UDP option selected.
+
+ $kiriwrite_presmodule->addoption("UDP", { Value => "udp", Selected => 1});
+
+ } else {
+
+ # The UDP protocol is not selected.
+
+ $kiriwrite_presmodule->addoption("UDP", { Value => "udp"});
+
+ }
+
+ $kiriwrite_presmodule->endselectbox();
+
+ $kiriwrite_presmodule->endcell();
+ $kiriwrite_presmodule->endrow();
+
+ $kiriwrite_presmodule->startrow();
+ $kiriwrite_presmodule->addcell("tablecell1");
+ $kiriwrite_presmodule->addtext($kiriwrite_lang->{setting}->{databasename});
+ $kiriwrite_presmodule->endcell();
+ $kiriwrite_presmodule->addcell("tablecell2");
+ $kiriwrite_presmodule->addinputbox("database_sqldatabase", { Size => 32, MaxLength => 32, Value => $database_sqldatabase });
+ $kiriwrite_presmodule->endcell();
+ $kiriwrite_presmodule->endrow();
+
+ $kiriwrite_presmodule->startrow();
+ $kiriwrite_presmodule->addcell("tablecell1");
+ $kiriwrite_presmodule->addtext($kiriwrite_lang->{setting}->{databaseusername});
+ $kiriwrite_presmodule->endcell();
+ $kiriwrite_presmodule->addcell("tablecell2");
+ $kiriwrite_presmodule->addinputbox("database_username", { Size => 16, MaxLength => 16, Value => $database_username });
+ $kiriwrite_presmodule->endcell();
+ $kiriwrite_presmodule->endrow();
+
+ $kiriwrite_presmodule->startrow();
+ $kiriwrite_presmodule->addcell("tablecell1");
+ $kiriwrite_presmodule->addtext($kiriwrite_lang->{setting}->{databasepassword});
+ $kiriwrite_presmodule->endcell();
+ $kiriwrite_presmodule->addcell("tablecell2");
+ $kiriwrite_presmodule->addinputbox("database_password", { Size => 16, MaxLength => 64, Password => 1 });
+ $kiriwrite_presmodule->addtext(" ");
+ $kiriwrite_presmodule->addcheckbox("database_password_keep", { OptionDescription => "Keep the current password", Checked => 1 });
+ $kiriwrite_presmodule->endcell();
+ $kiriwrite_presmodule->endrow();
+
+ $kiriwrite_presmodule->startrow();
+ $kiriwrite_presmodule->addcell("tablecell1");
+ $kiriwrite_presmodule->addtext($kiriwrite_lang->{setting}->{tableprefix});
+ $kiriwrite_presmodule->endcell();
+ $kiriwrite_presmodule->addcell("tablecell2");
+ $kiriwrite_presmodule->addinputbox("database_tableprefix", { Size => 16, MaxLength => 16, Value => $database_prefix });
+ $kiriwrite_presmodule->endcell();
+ $kiriwrite_presmodule->endrow();
+
+ $kiriwrite_presmodule->endtable();
+
+ $kiriwrite_presmodule->addlinebreak();
+ $kiriwrite_presmodule->addsubmit($kiriwrite_lang->{setting}->{changesettingsbutton});
+ $kiriwrite_presmodule->addtext(" | ");
+ $kiriwrite_presmodule->addreset($kiriwrite_lang->{common}->{restorecurrent});
+ $kiriwrite_presmodule->addtext(" | ");
+ $kiriwrite_presmodule->addlink($kiriwrite_env{"script_filename"} . "?mode=settings", { Text => $kiriwrite_lang->{setting}->{returnsettingslist} });
+ $kiriwrite_presmodule->endbox();
+ $kiriwrite_presmodule->endform();
+
+ return $kiriwrite_presmodule->grab();
+
+}
+
+sub kiriwrite_settings_load{
+#################################################################################
+# kiriwrite_settings_load: Load the configuration settings into the global #
+# variables. #
+# #
+# Usage: #
+# #
+# kiriwrite_settings_load(); #
+#################################################################################
+
+ # Load the required Perl modules.
+
+ use XML::Simple qw(XMLin);
+ $xsl = XML::Simple->new();
+
+ # Check if the Kiriwrite configuration file exists before using it and
+ # return an critical error if it doesn't exist.
+
+ my $kiriwrite_conf_exist = kiriwrite_fileexists("kiriwrite.xml");
+
+ if ($kiriwrite_conf_exist eq 1){
+
+ # The configuration really does not exist so return an critical error.
+
+ kiriwrite_critical("configfilemissing");
+
+ }
+
+ # Check if the Kiriwrite configuration file has valid permission settings
+ # before using it and return an critical error if it doesn't have the
+ # valid permission settings.
+
+ my $kiriwrite_conf_permissions = kiriwrite_filepermissions("kiriwrite.xml", 1, 0);
+
+ if ($kiriwrite_conf_permissions eq 1){
+
+ # The permission settings for the Kiriwrite configuration file are
+ # invalid, so return an critical error.
+
+ kiriwrite_critical("configfileinvalidpermissions");
+
+ }
+
+ # Converts the XML file into meaningful data for later on in this subroutine.
+
+ my $kiriwrite_conf_file = 'kiriwrite.xml';
+ my $kiriwrite_conf_data = $xsl->XMLin($kiriwrite_conf_file, SuppressEmpty => 1);
+
+ # Go and fetch the settings and place them into a hash (that is global).
+
+ %kiriwrite_config = (
+
+ "directory_data_db" => $kiriwrite_conf_data->{settings}->{directories}->{database},
+ "directory_data_output" => $kiriwrite_conf_data->{settings}->{directories}->{output},
+ "directory_noncgi_images" => $kiriwrite_conf_data->{settings}->{directories}->{images},
+
+ "system_language" => $kiriwrite_conf_data->{settings}->{language}->{lang},
+ "system_presmodule" => $kiriwrite_conf_data->{settings}->{system}->{presentation},
+ "system_dbmodule" => $kiriwrite_conf_data->{settings}->{system}->{database},
+ "system_datetime" => $kiriwrite_conf_data->{settings}->{system}->{datetime},
+
+ "database_server" => $kiriwrite_conf_data->{settings}->{database}->{server},
+ "database_port" => $kiriwrite_conf_data->{settings}->{database}->{port},
+ "database_protocol" => $kiriwrite_conf_data->{settings}->{database}->{protocol},
+ "database_sqldatabase" => $kiriwrite_conf_data->{settings}->{database}->{database},
+ "database_username" => $kiriwrite_conf_data->{settings}->{database}->{username},
+ "database_password" => $kiriwrite_conf_data->{settings}->{database}->{password},
+ "database_tableprefix" => $kiriwrite_conf_data->{settings}->{database}->{prefix}
+
+ );
+
+ # Do a validation check on all of the variables that were loaded into the global configuration hash.
+
+ kiriwrite_variablecheck($kiriwrite_config{"directory_data_db"}, "maxlength", 64, 0);
+ kiriwrite_variablecheck($kiriwrite_config{"directory_data_output"}, "maxlength", 64, 0);
+ kiriwrite_variablecheck($kiriwrite_config{"directory_noncgi_images"}, "maxlength", 512, 0);
+ kiriwrite_variablecheck($kiriwrite_config{"directory_data_template"}, "maxlength", 64, 0);
+
+ my $kiriwrite_config_language_filename = kiriwrite_variablecheck($kiriwrite_config{"system_language"}, "language_filename", "", 1);
+ my $kiriwrite_config_presmodule_filename = kiriwrite_variablecheck($kiriwrite_config{"system_presmodule"}, "module", 0, 1);
+ my $kiriwrite_config_dbmodule_filename = kiriwrite_variablecheck($kiriwrite_config{"system_dbmodule"}, "module", 0, 1);
+
+ # Check if the language filename is valid and return an critical error if
+ # they aren't.
+
+ if ($kiriwrite_config_language_filename eq 1){
+
+ # The language filename is blank so return an critical error.
+
+ kiriwrite_critical("languagefilenameblank");
+
+ } elsif ($kiriwrite_config_language_filename eq 2){
+
+ # The language filename is invalid so return an critical error.
+
+ kiriwrite_critical("languagefilenameinvalid");
+
+ }
+
+ # Check if the presentation and database module names are valid and return a critical
+ # error if they aren't.
+
+ if ($kiriwrite_config_presmodule_filename eq 1){
+
+ # The presentation module filename given is blank so return an
+ # critical error.
+
+ kiriwrite_critical("presmoduleblank");
+
+ }
+
+ if ($kiriwrite_config_presmodule_filename eq 2){
+
+ # The presentation module filename is invalid so return an
+ # critical error.
+
+ kiriwrite_critical("presmoduleinvalid");
+
+ }
+
+ if ($kiriwrite_config_dbmodule_filename eq 1){
+
+ # The database module filename given is blank so return an
+ # critical error.