Home | News | Projects | Releases
Bugs | RFE | Repositories | Help
Other Additions
[kiriwrite/.git] / cgi-files / lib / template.lib
1 #################################################################################
2 # template.lib: Kiriwrite Template Library                                      #
3 #                                                                               #
4 # This library is under the same license as the main Kiriwrite script.          #
5 #################################################################################
7 # This section of the file is for when the library is called from the main
8 # Kiriwrite script.
10 if ($form_data->{'action'}){
12         # An action has been specified in the HTTP query.
14         my $http_query_action = $form_data->{'action'};
16         if ($http_query_action eq "delete"){
17                 # Get the required parameters from the HTTP query.
19                 my $http_query_template = $form_data->{'template'};
20                 my $http_query_confirm  = $form_data->{'confirm'};
22                 # Check if a value for confirm has been specified (it shouldn't)
23                 # be blank.
25                 if (!$http_query_confirm){
26                         # The confirm parameter of the HTTP query is blank, so
27                         # write out a form asking the user to confirm the deletion
28                         # of the selected template.
30                         my $pagedata = kiriwrite_template_delete($http_query_template);
32                         kiriwrite_output_header;        # Output the header to browser/console/stdout.
33                         kiriwrite_output_page($kiriwrite_lang->{template}->{deletetemplate}, $pagedata, "template");    # Output the page to browser/console/stdout.
34                         exit;                           # End the script.
36                 } else {
38                         my $pagedata = kiriwrite_template_delete($http_query_template, $http_query_confirm);
40                         kiriwrite_output_header;        # Output the header to browser/console/stdout.
41                         kiriwrite_output_page($kiriwrite_lang->{template}->{deletetemplate}, $pagedata, "template");    # Output the page to browser/console/stdout.
42                         exit;                           # End the script.
44                 }
46         } elsif ($http_query_action eq "add") {
48                 # Get the variables from the HTTP query in preperation for processing.
50                 my $http_query_confirm          = $form_data->{'confirm'};
51                 my $http_query_templatelayout   = $form_data->{'templatelayout'};
52                 my $http_query_templatename     = $form_data->{'templatename'};
53                 my $http_query_templatedescription = $form_data->{'templatedescription'};
54                 my $http_query_templatefilename = $form_data->{'templatefilename'};
56                 # Check if there is a confirmed value in the http_query_confirm variable.
58                 if (!$http_query_confirm){
60                         # Since there is no confirm value, print out a form for creating a new
61                         # template.
63                         my $pagedata = kiriwrite_template_add();
65                         kiriwrite_output_header;        # Output the header to browser/console/stdout.
66                         kiriwrite_output_page($kiriwrite_lang->{template}->{addtemplate}, $pagedata, "template");       # Output the page to browser/console/stdout.
67                         exit;                           # End the script.
69                 } else {
71                         # A value in the http_query_confirm value is specified, so pass the
72                         # variables onto the kiriwrite_template_add subroutine.
74                         my $pagedata = kiriwrite_template_add($http_query_templatefilename, $http_query_templatename, $http_query_templatedescription, $http_query_templatelayout, $http_query_confirm);
76                         kiriwrite_output_header;        # Output the header to browser/console/stdout.
77                         kiriwrite_output_page($kiriwrite_lang->{template}->{addtemplate}, $pagedata, "template");       # Output the page to browser/console/stdout.
78                         exit;                           # End the script.
80                 }
82         } elsif ($http_query_action eq "edit") {
84                 # Get the required parameters from the HTTP query.
86                 my $http_query_templatefile     = $form_data->{'template'};
87                 my $http_query_confirm          = $form_data->{'confirm'};
89                 # Check to see if http_query_confirm has a value of '1' in it and
90                 # if it does, edit the template using the settings providied.
92                 if (!$http_query_confirm){
94                         # Since there is no confirm value, open the template configuration
95                         # file and the template file itself then print out the data on to
96                         # the form.
98                         my $pagedata = kiriwrite_template_edit($http_query_templatefile);
99                         kiriwrite_output_header;        # Output the header to browser/console/stdout.
100                         kiriwrite_output_page($kiriwrite_lang->{template}->{edittemplate}, $pagedata, "template");      # Output the page to browser/console/stdout.
101                         exit;                           # End the script.
103                 } elsif ($http_query_confirm eq 1) {
105                         # Since there is a confirm value of 1, the user has confirm the
106                         # action of editing of a template so get the other variables 
107                         # that were also sent and pass the variables to the subroutine.
109                         my $http_query_newfilename      = $form_data->{'newfilename'};
110                         my $http_query_newname          = $form_data->{'newname'};
111                         my $http_query_newdescription   = $form_data->{'newdescription'};
112                         my $http_query_newlayout        = $form_data->{'newlayout'};
114                         my $pagedata = kiriwrite_template_edit($http_query_templatefile, $http_query_newfilename, $http_query_newname, $http_query_newdescription, $http_query_newlayout, $http_query_confirm);
115                         kiriwrite_output_header;        # Output the header to browser/console/stdout.
116                         kiriwrite_output_page($kiriwrite_lang->{template}->{edittemplate}, $pagedata, "template");      # Output the page to browser/console/stdout.
117                         exit;                           # End the script.
119                 } else {
121                         # Another confirm value is there instead of '0' or '1'. Return
122                         # an error saying it is invalid.
124                         kiriwrite_error("invalidvariable");
126                 }
128         } elsif ($http_query_action eq "view"){
130                 # Get the required parameters from the HTTP query.
132                 my $http_query_browsenumber     = $form_data->{'browsenumber'};
134                 my $pagedata = kiriwrite_template_list($http_query_browsenumber);
136                 kiriwrite_output_header;        # Output the header to browser/console/stdout.
137                 kiriwrite_output_page($kiriwrite_lang->{template}->{viewtemplates}, $pagedata, "template");     # Output the page to browser/console/stdout.
138                 exit;                           # End the script.
140         } else {
142                 # Another action was specified and was not one of the ones above, so
143                 # return an error.
145                 kiriwrite_error("invalidaction");
147         }
149 } else {
151         # If the action option is left blank, then print out a form where the list
152         # of templates are available.
154         my $pagedata = kiriwrite_template_list();
156         kiriwrite_output_header;        # Output the header to browser/console/stdout.
157         kiriwrite_output_page($kiriwrite_lang->{template}->{viewtemplates}, $pagedata, "template");     # Output the page to browser/console/stdout.
158         exit;                           # End the script.
162 #################################################################################
163 # Begin list of relevant subroutines.                                           #
164 #################################################################################
166 sub kiriwrite_template_add{
167 #################################################################################
168 # kiriwrite_template_add: Add a template to the template folder                 #
169 #                                                                               #
170 # Usage:                                                                        #
171 #                                                                               #
172 # kiriwrite_template_add(filename, name, description, layout, confirm);         #
173 #                                                                               #
174 # filename      The filename of the new template.                               #
175 # name          The name of the template.                                       #
176 # description   The description of the template.                                #
177 # layout        The layout of the new template.                                 #
178 # confirm       Confirm the action of creating a new template.                  #
179 #################################################################################
181         # Get the variables that were passed to the subroutine.
183         my ($templatefilename, $templatename, $templatedescription, $templatelayout, $confirm) = @_;
185         # Check if the confirm value is blank and if it is then set confirm to 0.
187         if (!$confirm){
189                 # The confirm value is blank, so set the value of confirm to 0.
191                 $confirm = 0;
193         }
195         if ($confirm eq 1){
197                 # Check (validate) each of the values.
199                 kiriwrite_variablecheck($templatename, "utf8", 0, 0);
200                 kiriwrite_variablecheck($templatedescription, "utf8", 0, 0);
201                 kiriwrite_variablecheck($templatelayout, "utf8", 0, 0);
203                 # Convert the values into proper UTF8 strings that can be used.
205                 $templatename           = kiriwrite_utf8convert($templatename);
206                 $templatedescription    = kiriwrite_utf8convert($templatedescription);
207                 $templatelayout         = kiriwrite_utf8convert($templatelayout);
209                 # Check the length of the converted UTF8 strings.
211                 my $templatefilename_length_check       = kiriwrite_variablecheck($templatefilename, "maxlength", 64, 1);
212                 my $templatename_length_check           = kiriwrite_variablecheck($templatename, "maxlength", 512, 1);
213                 my $templatedescription_length_check    = kiriwrite_variablecheck($templatedescription, "maxlength", 512, 1);
214                 kiriwrite_variablecheck($confirm, "maxlength", 1, 0);
216                 if ($templatefilename_length_check eq 1){
218                         # The template filename length is too long, so return an error.
220                         kiriwrite_error("templatefilenametoolong");
222                 }
224                 if ($templatename_length_check eq 1){
226                         # The template name length is too long, so return an error.
228                         kiriwrite_error("templatenametoolong");
230                 }
233                 if ($templatedescription_length_check eq 1){
235                         # The template description length is too long, so return an error.
237                         kiriwrite_error("templatedescriptiontoolong");
239                 }
241                 # Check if the filename specified is a valid filename.
243                 kiriwrite_variablecheck($templatefilename, "filename", "", 0);
245                 # Connect to the template server.
247                 $kiriwrite_dbmodule->connect();
249                 # Connect to the template database.
251                 $kiriwrite_dbmodule->connecttemplate(1);
253                 # Check if any errors had occured.
255                 if ($kiriwrite_dbmodule->geterror eq "TemplateDatabaseInvalidPermissionsSet"){
257                         # The template database has invalid permissions set so
258                         # return an error.
260                         kiriwrite_error("templatedatabaseinvalidpermissions");
262                 }
264                 $kiriwrite_dbmodule->addtemplate({ TemplateFilename => $templatefilename, TemplateName => $templatename, TemplateDescription => $templatedescription, TemplateLayout => $templatelayout });
266                 if ($kiriwrite_dbmodule->geterror eq "TemplateDatabaseError"){
268                         # A database error has occured so return an error along
269                         # with the extended error information.
271                         kiriwrite_error("templatedatabaseerror", $kiriwrite_dbmodule->geterror(1));
273                 } elsif ($kiriwrite_dbmodule->geterror eq "TemplateDatabaseInvalidPermissionsSet"){
275                         # The template database has invalid permissions set so return
276                         # an error.
278                         kiriwrite_error("templatedatabaseinvalidpermissions");
280                 } elsif ($kiriwrite_dbmodule->geterror eq "TemplatePageExists"){
282                         # The template page already exists so return an error.
284                         kiriwrite_error("templatefilenameexists");
286                 } elsif ($kiriwrite_dbmodule->geterror eq "TemplateDatabaseUncreateable"){
288                         # The template databases is uncreatable so return an error.
290                         kiriwrite_error("templatedatabasenotcreated");
292                 }
294                 $kiriwrite_dbmodule->disconnecttemplate();
296                 # Disconnect from the template server.
298                 $kiriwrite_dbmodule->disconnect();
300                 # Print out the confirmation message.
302                 $kiriwrite_presmodule->addtext($kiriwrite_lang->{template}->{addedtemplate}, { Style => "pageheader" });
303                 $kiriwrite_presmodule->addlinebreak();
304                 $kiriwrite_presmodule->addlinebreak();
305                 $kiriwrite_presmodule->addtext(kiriwrite_language($kiriwrite_lang->{template}->{addedtemplatemessage}, $templatename));
306                 $kiriwrite_presmodule->addlinebreak();
307                 $kiriwrite_presmodule->addlinebreak();
308                 $kiriwrite_presmodule->addlink($kiriwrite_env{"script_filename"} . "?mode=template", { Text => $kiriwrite_lang->{template}->{returntemplatelist} });
309                 return $kiriwrite_presmodule->grab();
311         } else {
312                 # No confirmation was made, so print out a form for adding a template.
314                 $kiriwrite_presmodule->addtext($kiriwrite_lang->{template}->{addtemplate}, { Style => "pageheader" });
315                 $kiriwrite_presmodule->startform($kiriwrite_env{"script_filename"}, "POST");
316                 $kiriwrite_presmodule->startbox();
317                 $kiriwrite_presmodule->addhiddendata("mode", "template");
318                 $kiriwrite_presmodule->addhiddendata("action", "add");
319                 $kiriwrite_presmodule->addhiddendata("confirm", 1);
320                 $kiriwrite_presmodule->addlinebreak();
321                 $kiriwrite_presmodule->starttable("", { CellSpacing => 0, CellPadding => 5 });
323                 $kiriwrite_presmodule->startheader();
324                 $kiriwrite_presmodule->addheader($kiriwrite_lang->{common}->{setting}, { Style => "tablecellheader" });
325                 $kiriwrite_presmodule->addheader($kiriwrite_lang->{common}->{value}, { Style => "tablecellheader" });
326                 $kiriwrite_presmodule->endheader();
328                 $kiriwrite_presmodule->startrow();
329                 $kiriwrite_presmodule->addcell("tablecell1");
330                 $kiriwrite_presmodule->addtext($kiriwrite_lang->{template}->{templatename});
331                 $kiriwrite_presmodule->endcell();
332                 $kiriwrite_presmodule->addcell("tablecell2");
333                 $kiriwrite_presmodule->addinputbox("templatename", { Size => 64, MaxLength => 512 });
334                 $kiriwrite_presmodule->endcell();
335                 $kiriwrite_presmodule->endrow();
337                 $kiriwrite_presmodule->startrow();
338                 $kiriwrite_presmodule->addcell("tablecell1");
339                 $kiriwrite_presmodule->addtext($kiriwrite_lang->{template}->{templatedescription});
340                 $kiriwrite_presmodule->endcell();
341                 $kiriwrite_presmodule->addcell("tablecell2");
342                 $kiriwrite_presmodule->addinputbox("templatedescription", { Size => 64, MaxLength => 512 });
343                 $kiriwrite_presmodule->endcell();
344                 $kiriwrite_presmodule->endrow();
346                 $kiriwrite_presmodule->startrow();
347                 $kiriwrite_presmodule->addcell("tablecell1");
348                 $kiriwrite_presmodule->addtext($kiriwrite_lang->{template}->{templatefilename});
349                 $kiriwrite_presmodule->endcell();
350                 $kiriwrite_presmodule->addcell("tablecell2");
351                 $kiriwrite_presmodule->addinputbox("templatefilename", { Size => 32, MaxLength => 64 });
352                 $kiriwrite_presmodule->endcell();
353                 $kiriwrite_presmodule->endrow();
355                 $kiriwrite_presmodule->startrow();
356                 $kiriwrite_presmodule->addcell("tablecell1");
357                 $kiriwrite_presmodule->addtext($kiriwrite_lang->{template}->{templatelayout});
358                 $kiriwrite_presmodule->endcell();
359                 $kiriwrite_presmodule->addcell("tablecell2");
360                 $kiriwrite_presmodule->addtextbox("templatelayout", { Columns => 50, Rows => 10 });
361                 $kiriwrite_presmodule->addlinebreak();
362                 $kiriwrite_presmodule->addlinebreak();
363                 $kiriwrite_presmodule->startbox("datalist");
364                 $kiriwrite_presmodule->addboldtext($kiriwrite_lang->{common}->{tags});
365                 $kiriwrite_presmodule->addlinebreak();
366                 $kiriwrite_presmodule->addtext($kiriwrite_lang->{common}->{pagecontent});
367                 $kiriwrite_presmodule->addlinebreak();
368                 $kiriwrite_presmodule->addtext($kiriwrite_lang->{common}->{pagetitle});
369                 $kiriwrite_presmodule->addlinebreak();
370                 $kiriwrite_presmodule->addtext($kiriwrite_lang->{common}->{pagename});
371                 $kiriwrite_presmodule->addlinebreak();
372                 $kiriwrite_presmodule->addtext($kiriwrite_lang->{common}->{pagedescription});
373                 $kiriwrite_presmodule->addlinebreak();
374                 $kiriwrite_presmodule->addtext($kiriwrite_lang->{common}->{pagesection});
375                 $kiriwrite_presmodule->addlinebreak();
376                 $kiriwrite_presmodule->addtext($kiriwrite_lang->{common}->{pageautosection});
377                 $kiriwrite_presmodule->addlinebreak();
378                 $kiriwrite_presmodule->addtext($kiriwrite_lang->{common}->{pageautotitle});
379                 $kiriwrite_presmodule->addlinebreak();
380                 $kiriwrite_presmodule->endbox();
381                 $kiriwrite_presmodule->endcell();
382                 $kiriwrite_presmodule->endrow();
383                 $kiriwrite_presmodule->endtable();
385                 $kiriwrite_presmodule->addlinebreak();
386                 $kiriwrite_presmodule->addsubmit($kiriwrite_lang->{template}->{addtemplatebutton});
387                 $kiriwrite_presmodule->addtext(" | ");
388                 $kiriwrite_presmodule->addreset($kiriwrite_lang->{common}->{clearvalues});
389                 $kiriwrite_presmodule->addtext(" | ");
390                 $kiriwrite_presmodule->addlink($kiriwrite_env{"script_filename"} . "?mode=template" , { Text => $kiriwrite_lang->{template}->{returntemplatelist} });
392                 $kiriwrite_presmodule->endbox();
393                 $kiriwrite_presmodule->endform();
395                 return $kiriwrite_presmodule->grab();
397         }
402 sub kiriwrite_template_edit{
403 #################################################################################
404 # kiriwrite_template_edit: Edit a template from the template folder.            #
405 #                                                                               #
406 # Usage:                                                                        #
407 #                                                                               #
408 # kiriwrite_template_edit(filename, [newfilename], [newname], [newdescription], #
409 #                               [templatelayout], [confirm]);                   #
410 #                                                                               #
411 # filename              The current filename of the template to edit.           #
412 # newfilename           The new filename of the template to edit.               #
413 # newname               The new name of the template being edited.              #
414 # newdescription        The new description of the template being edited.       #
415 # templatelayout        The modified/altered template layout.                   #
416 # confirm               Confirms the action to edit a template and its          #
417 #                       settings.                                               #
418 #################################################################################
420         # Get all the variables that have been passed to the subroutine.
422         my ($templatefilename, $templatenewfilename, $templatenewname, $templatenewdescription, $templatelayout, $confirm) = @_;
424         # Check if the confirm variable is blank, if it is then
425         # set confirm to '0'
427         if (!$confirm){
429                 # confirm is uninitalised/blank, so set the value of confirm
430                 # to '0'
432                 $confirm = 0;
434         }
436         # Check if the template filename is blank and if it is, then return
437         # an error.
439         if (!$templatefilename){
441                 kiriwrite_error("templatefilenameblank");
443         }
445         # Connect to the database server.
447         $kiriwrite_dbmodule->connect();
449         # Check if any errors occured while connecting to the database server.
451         if ($kiriwrite_dbmodule->geterror eq "DatabaseConnectionError"){
453                 # A database connection error has occured so return
454                 # an error.
456                 kiriwrite_error("databaseconnectionerror", $kiriwrite_dbmodule->geterror(1));
458         }
460         if ($confirm eq 1){
462                 # Check certain strings to see if they UTF8 compiliant.
464                 kiriwrite_variablecheck($templatenewname, "utf8", 0, 0);
465                 kiriwrite_variablecheck($templatenewdescription, "utf8", 0, 0);
466                 kiriwrite_variablecheck($templatelayout, "utf8", 0, 0);
468                 # Convert the values into proper UTF8 strings.
470                 $templatenewname        = kiriwrite_utf8convert($templatenewname);
471                 $templatenewdescription = kiriwrite_utf8convert($templatenewdescription);
472                 $templatelayout         = kiriwrite_utf8convert($templatelayout);
474                 # Check if the filenames recieved are valid filenames.
476                 kiriwrite_variablecheck($templatenewfilename, "maxlength", 64, 0);
477                 kiriwrite_variablecheck($templatenewdescription, "maxlength", 512, 0);
478                 kiriwrite_variablecheck($templatenewname, "maxlength", 512, 0);
479                 kiriwrite_variablecheck($templatefilename, "maxlength", 64, 0);
480                 kiriwrite_variablecheck($confirm, "maxlength", 1, 0);
482                 kiriwrite_variablecheck($templatefilename, "filename", "", 0);
483                 kiriwrite_variablecheck($templatenewfilename, "filename", "", 0);
485                 # Connect to the template database.
487                 $kiriwrite_dbmodule->connecttemplate();
489                 # Check if any errors had occured.
491                 if ($kiriwrite_dbmodule->geterror eq "TemplateDatabaseInvalidPermissionsSet"){
493                         # The template database has invalid permissions set so
494                         # return an error.
496                         kiriwrite_error("templatedatabaseinvalidpermissions");
498                 }
500                 # Edit the template.
502                 $kiriwrite_dbmodule->edittemplate({ TemplateFilename => $templatefilename, NewTemplateFilename => $templatenewfilename, NewTemplateName => $templatenewname, NewTemplateDescription => $templatenewdescription, NewTemplateLayout => $templatelayout });
504                 # Check if any error occured while editing the template.
506                 if ($kiriwrite_dbmodule->geterror eq "TemplateDatabaseError"){
508                         # A database error has occured, so return an error.
510                         kiriwrite_error("templatedatabaseerror", $kiriwrite_dbmodule->geterror(1));
512                 } elsif ($kiriwrite_dbmodule->geterror eq "TemplateDatabaseInvalidPermissionsSet"){
514                         # The template database has invalid permissions set so return
515                         # an error.
517                         kiriwrite_error("templatedatabaseinvalidpermissions");
519                 } elsif ($kiriwrite_dbmodule->geterror eq "TemplateDoesNotExist"){
521                         # The template does not exist, so process the next template.
523                         kiriwrite_error("templatedoesnotexist");
525                 }
527                 # Disconnect from the database server.
529                 $kiriwrite_dbmodule->disconnect();
531                 # Disconnect from the template database.
533                 $kiriwrite_dbmodule->disconnecttemplate();
535                 # Append a link so that the user can return to the templates list.
537                 $kiriwrite_presmodule->addtext($kiriwrite_lang->{template}->{editedtemplate}, { Style => "pageheader" });
538                 $kiriwrite_presmodule->addlinebreak();
539                 $kiriwrite_presmodule->addlinebreak();
540                 $kiriwrite_presmodule->addtext(kiriwrite_language($kiriwrite_lang->{template}->{editedtemplatemessage}, $templatenewname));
541                 $kiriwrite_presmodule->addlinebreak();
542                 $kiriwrite_presmodule->addlinebreak();
543                 $kiriwrite_presmodule->addlink($kiriwrite_env{"script_filename"} . "?mode=template", { Text => $kiriwrite_lang->{template}->{returntemplatelist} });
545         } else {
547                 # Connect to the template database.
549                 $kiriwrite_dbmodule->connecttemplate();
551                 # Check if any errors had occured.
553                 if ($kiriwrite_dbmodule->geterror eq "TemplateDatabaseInvalidPermissionsSet"){
555                         # The template database has invalid permissions set so
556                         # return an error.
558                         kiriwrite_error("templatedatabaseinvalidpermissions");
560                 }
562                 # Get the template information.
564                 my %template_info = $kiriwrite_dbmodule->gettemplateinfo({ TemplateFilename => $templatefilename });
566                 # Check if any error occured while getting the template information.
568                 if ($kiriwrite_dbmodule->geterror eq "TemplateDatabaseError"){
570                         # A database error has occured, so return an error.
572                         kiriwrite_error("templatedatabaseerror", $kiriwrite_dbmodule->geterror(1));
574                 } elsif ($kiriwrite_dbmodule->geterror eq "TemplateDoesNotExist"){
576                         # The template does not exist, so return an error.
578                         kiriwrite_error("templatedoesnotexist");
580                 }
582                 # Disconnect from the template database.
584                 $kiriwrite_dbmodule->disconnecttemplate();
586                 # Get the values from the query results.
588                 my $template_filename           = $template_info{"TemplateFilename"};
589                 my $template_name               = $template_info{"TemplateName"};
590                 my $template_description        = $template_info{"TemplateDescription"};
591                 my $template_layout             = $template_info{"TemplateLayout"};
592                 my $template_modified           = $template_info{"TemplateLastModified"};
594                 # Check if the values are undefined and set them blank
595                 # if they are.
597                 if (!$template_name){
598                         $template_name = "";
599                 }
601                 if (!$template_description){
602                         $template_description = "";
603                 }
605                 if (!$template_layout){
606                         $template_layout = "";
607                 }
609                 # Write out the form for editing an template with the current template 
610                 # settings put into the correct place.
612                 $kiriwrite_presmodule->addtext($kiriwrite_lang->{template}->{edittemplate}, { Style => "pageheader" });
613                 $kiriwrite_presmodule->addlinebreak();
614                 $kiriwrite_presmodule->addlinebreak();
615                 $kiriwrite_presmodule->startform($kiriwrite_env{"script_filename"}, "POST");
616                 $kiriwrite_presmodule->startbox();
617                 $kiriwrite_presmodule->addhiddendata("mode", "template");
618                 $kiriwrite_presmodule->addhiddendata("action", "edit");
619                 $kiriwrite_presmodule->addhiddendata("confirm", 1);
620                 $kiriwrite_presmodule->addhiddendata("template", $template_filename);
621                 $kiriwrite_presmodule->starttable("", { CellSpacing => 0, CellPadding => 5});
623                 $kiriwrite_presmodule->startheader();
624                 $kiriwrite_presmodule->addheader($kiriwrite_lang->{common}->{setting}, { Style => "tablecellheader" });
625                 $kiriwrite_presmodule->addheader($kiriwrite_lang->{common}->{value}, { Style => "tablecellheader" });
626                 $kiriwrite_presmodule->endheader();
628                 $kiriwrite_presmodule->startrow();
629                 $kiriwrite_presmodule->addcell("tablecell1");
630                 $kiriwrite_presmodule->addtext($kiriwrite_lang->{template}->{templatename});
631                 $kiriwrite_presmodule->endcell();
632                 $kiriwrite_presmodule->addcell("tablecell2");
633                 $kiriwrite_presmodule->addinputbox("newname", { Size => 64, MaxLength => 512, Value => $template_name });
634                 $kiriwrite_presmodule->endcell();
635                 $kiriwrite_presmodule->endrow();
637                 $kiriwrite_presmodule->startrow();
638                 $kiriwrite_presmodule->addcell("tablecell1");
639                 $kiriwrite_presmodule->addtext($kiriwrite_lang->{template}->{templatedescription});
640                 $kiriwrite_presmodule->endcell();
641                 $kiriwrite_presmodule->addcell("tablecell2");
642                 $kiriwrite_presmodule->addinputbox("newdescription", { Size => 64, MaxLength => 512, Value => $template_description });
643                 $kiriwrite_presmodule->endcell();
644                 $kiriwrite_presmodule->endrow();
646                 $kiriwrite_presmodule->startrow();
647                 $kiriwrite_presmodule->addcell("tablecell1");
648                 $kiriwrite_presmodule->addtext($kiriwrite_lang->{template}->{templatefilename});
649                 $kiriwrite_presmodule->endcell();
650                 $kiriwrite_presmodule->addcell("tablecell2");
651                 $kiriwrite_presmodule->addinputbox("newfilename", { Size => 32, MaxLength => 64, Value => $template_filename });
652                 $kiriwrite_presmodule->endcell();
653                 $kiriwrite_presmodule->endrow();
655                 $kiriwrite_presmodule->startrow();
656                 $kiriwrite_presmodule->addcell("tablecell1");
657                 $kiriwrite_presmodule->addtext($kiriwrite_lang->{template}->{templatelayout});
658                 $kiriwrite_presmodule->endcell();
659                 $kiriwrite_presmodule->addcell("tablecell2");
660                 $kiriwrite_presmodule->addtextbox("newlayout", { Rows => 10, Columns => 50, Value => $template_layout});
661                 $kiriwrite_presmodule->addlinebreak();
662                 $kiriwrite_presmodule->addlinebreak();
663                 $kiriwrite_presmodule->startbox("datalist");
664                 $kiriwrite_presmodule->addboldtext($kiriwrite_lang->{common}->{tags});
665                 $kiriwrite_presmodule->addlinebreak();
666                 $kiriwrite_presmodule->addtext($kiriwrite_lang->{common}->{pagecontent});
667                 $kiriwrite_presmodule->addlinebreak();
668                 $kiriwrite_presmodule->addtext($kiriwrite_lang->{common}->{pagetitle});
669                 $kiriwrite_presmodule->addlinebreak();
670                 $kiriwrite_presmodule->addtext($kiriwrite_lang->{common}->{pagename});
671                 $kiriwrite_presmodule->addlinebreak();
672                 $kiriwrite_presmodule->addtext($kiriwrite_lang->{common}->{pagedescription});
673                 $kiriwrite_presmodule->addlinebreak();
674                 $kiriwrite_presmodule->addtext($kiriwrite_lang->{common}->{pagesection});
675                 $kiriwrite_presmodule->addlinebreak();
676                 $kiriwrite_presmodule->addtext($kiriwrite_lang->{common}->{pageautosection});
677                 $kiriwrite_presmodule->addlinebreak();
678                 $kiriwrite_presmodule->addtext($kiriwrite_lang->{common}->{pageautotitle});
679                 $kiriwrite_presmodule->addlinebreak();
680                 $kiriwrite_presmodule->endbox();
681                 $kiriwrite_presmodule->endcell();
682                 $kiriwrite_presmodule->endrow();
684                 $kiriwrite_presmodule->endtable();
686                 $kiriwrite_presmodule->addlinebreak();
688                 $kiriwrite_presmodule->addsubmit($kiriwrite_lang->{template}->{edittemplatebutton});
689                 $kiriwrite_presmodule->addtext(" | ");
690                 $kiriwrite_presmodule->addreset($kiriwrite_lang->{common}->{restorecurrent});
691                 $kiriwrite_presmodule->addtext(" | ");
692                 $kiriwrite_presmodule->addlink($kiriwrite_env{"script_filename"} . "?mode=template", { Text => $kiriwrite_lang->{template}->{returntemplatelist} });
694                 $kiriwrite_presmodule->endbox();
695                 $kiriwrite_presmodule->endform();
697         }
699         # Disconnect from the database server.
701         $kiriwrite_dbmodule->disconnect();
703         return $kiriwrite_presmodule->grab();
707 sub kiriwrite_template_delete{
708 #################################################################################
709 # kiriwrite_template_delete: Delete a template from the template folder.        #
710 #                                                                               #
711 # Usage:                                                                        #
712 #                                                                               #
713 # kiriwrite_template_delete(filename, confirm);                                 #
714 #                                                                               #
715 # filename      Specifies the filename of the database to delete.               #
716 # confirm       Confirms the action to delete a template.                       #
717 #################################################################################
719         # Get the parameters that were passed to the subroutine.
721         my ($template_filename, $template_confirm) = @_;
723         if (!$template_confirm){
724                 $template_confirm = 0;
725         }
727         # Check the length of the variables.
728         kiriwrite_variablecheck($template_filename, "maxlength", 64, 0);
729         kiriwrite_variablecheck($template_confirm, "maxlength", 1, 0);
731         # Check if the template_name string is blank and if it is then
732         # return an error (as the template_name string should not be
733         # blank.
735         if (!$template_filename){
737                 # The template_filename string really is blank, 
738                 # so return an error saying that an empty
739                 # filename was passed (to the subroutine).
741                 kiriwrite_error("templatefilenameblank");
743         }
745         # Check if the template_confirm string is blank and if it is, write
746         # out a form asking the user to confirm the deletion.
748         if ($template_confirm eq 1){
750                 # The action to delete the template from the template database has
751                 # been confirmed so delete the template.
753                 # Connect to the database server.
755                 $kiriwrite_dbmodule->connect();
757                 # Check if any errors occured while connecting to the database server.
759                 if ($kiriwrite_dbmodule->geterror eq "DatabaseConnectionError"){
761                         # A database connection error has occured so return
762                         # an error.
764                         kiriwrite_error("databaseconnectionerror", $kiriwrite_dbmodule->geterror(1));
766                 }
768                 # Check if the template database exists and the file permissions
769                 # are valid and return an error if they aren't.
771                 $kiriwrite_dbmodule->connecttemplate();
773                 if ($kiriwrite_dbmodule->geterror eq "TemplateDatabaseDoesNotExist"){
775                         # The template database does not exist so write a warning
776                         # message.
778                         kiriwrite_error("templatedatabasemissing");
780                 } elsif ($kiriwrite_dbmodule->geterror eq "TemplateDatabaseInvalidPermissionsSet"){
782                         # The template database has invalid permissions set so
783                         # return an error.
785                         kiriwrite_error("templatedatabaseinvalidpermissions");
787                 }
789                 my %template_info = $kiriwrite_dbmodule->gettemplateinfo({ TemplateFilename => $template_filename });
791                 # Check if any error occured while getting the template information.
793                 if ($kiriwrite_dbmodule->geterror eq "TemplateDatabaseError"){
795                         # A database error has occured, so return an error.
797                         kiriwrite_error("templatedatabaseerror", $kiriwrite_dbmodule->geterror(1));
799                 } elsif ($kiriwrite_dbmodule->geterror eq "TemplateDoesNotExist"){
801                         # The template does not exist, so return an error.
803                         kiriwrite_error("templatedoesnotexist");
805                 }
807                 # Delete the selected template.
809                 $kiriwrite_dbmodule->deletetemplate({ TemplateFilename => $template_filename });
811                 # Check if any error occured while deleting the template.
813                 if ($kiriwrite_dbmodule->geterror eq "TemplateDatabaseError"){
815                         # A database error has occured, so return an error.
817                         kiriwrite_error("templatedatabaseerror", $kiriwrite_dbmodule->geterror(1));
819                 } elsif ($kiriwrite_dbmodule->geterror eq "TemplateDoesNotExist"){
821                         # The template does not exist, so process the next template.
823                         kiriwrite_error("templatedoesnotexist");
825                 }
827                 $kiriwrite_dbmodule->disconnecttemplate();
829                 # Get the deleted database name.
831                 my $database_template_name = $template_info{"TemplateName"};
833                 # Disconnect from the database server.
835                 $kiriwrite_dbmodule->disconnect();
837                 $kiriwrite_presmodule->addtext($kiriwrite_lang->{template}->{deletedtemplate}, { Style => "pageheader" });
838                 $kiriwrite_presmodule->addlinebreak();
839                 $kiriwrite_presmodule->addlinebreak();
840                 $kiriwrite_presmodule->addtext(kiriwrite_language($kiriwrite_lang->{template}->{deletedtemplatemessage}, $database_template_name) );
841                 $kiriwrite_presmodule->addlinebreak();
842                 $kiriwrite_presmodule->addlinebreak();
843                 $kiriwrite_presmodule->addlink($kiriwrite_env{"script_filename"} . "?mode=template", { Text => $kiriwrite_lang->{template}->{returntemplatelist} });
845                 return $kiriwrite_presmodule->grab();
847         } elsif ($template_confirm eq 0) {
849                 # The template confirm value is 0 (previously blank and then set to 0), so
850                 # write out a form asking the user to confirm the deletion of the template.
852                 # Connect to the database server.
854                 $kiriwrite_dbmodule->connect();
856                 # Check if any errors occured while connecting to the database server.
858                 if ($kiriwrite_dbmodule->geterror eq "DatabaseConnectionError"){
860                         # A database connection error has occured so return
861                         # an error.
863                         kiriwrite_error("databaseconnectionerror", $kiriwrite_dbmodule->geterror(1));
865                 }
867                 # Connect to the template database.
869                 $kiriwrite_dbmodule->connecttemplate();
871                 if ($kiriwrite_dbmodule->geterror eq "TemplateDatabaseDoesNotExist"){
873                         # The template database does not exist so write a warning
874                         # message.
876                         kiriwrite_error("templatedatabasemissing");
878                 } elsif ($kiriwrite_dbmodule->geterror eq "TemplateDatabaseInvalidPermissionsSet"){
880                         # The template database has invalid permissions set so
881                         # return an error.
883                         kiriwrite_error("templatedatabaseinvalidpermissions");
885                 }
887                 my %template_info = $kiriwrite_dbmodule->gettemplateinfo({ TemplateFilename => $template_filename });
889                 if ($kiriwrite_dbmodule->geterror eq "TemplateDatabaseError"){
891                         # A database error has occured, so return an error.
893                         kiriwrite_error("templatedatabaseerror", $kiriwrite_dbmodule->geterror(1));
895                 } elsif ($kiriwrite_dbmodule->geterror eq "TemplateDoesNotExist"){
897                         # The template does not exist, so return an error.
899                         kiriwrite_error("templatedoesnotexist");
901                 }
903                 my $template_data_filename      = $template_info{"TemplateFilename"};
904                 my $template_data_name          = $template_info{"TemplateName"};
906                 $kiriwrite_dbmodule->disconnecttemplate();
908                 # Disconnect from the database server.
910                 $kiriwrite_dbmodule->disconnect();
912                 # Write out the confirmation form.
914                 $kiriwrite_presmodule->addtext($kiriwrite_lang->{template}->{deletetemplate}, { Style => "pageheader" });
915                 $kiriwrite_presmodule->startform($kiriwrite_env{"script_filename"}, "POST");
916                 $kiriwrite_presmodule->startbox();
917                 $kiriwrite_presmodule->addhiddendata("mode", "template");
918                 $kiriwrite_presmodule->addhiddendata("template", $template_filename);
919                 $kiriwrite_presmodule->addhiddendata("action", "delete");
920                 $kiriwrite_presmodule->addhiddendata("confirm", 1);
921                 $kiriwrite_presmodule->addlinebreak();
922                 $kiriwrite_presmodule->addtext(kiriwrite_language($kiriwrite_lang->{template}->{deletetemplatemessage}, $template_data_name, $template_data_filename));
923                 $kiriwrite_presmodule->addlinebreak();
924                 $kiriwrite_presmodule->addlinebreak();
925                 $kiriwrite_presmodule->addsubmit($kiriwrite_lang->{template}->{deletetemplatebutton});
926                 $kiriwrite_presmodule->addtext(" | ");
927                 $kiriwrite_presmodule->addlink($kiriwrite_env{"script_filename"} . "?mode=template", { Text => $kiriwrite_lang->{template}->{deletetemplatereturntolist} });
928                 $kiriwrite_presmodule->endbox();
929                 $kiriwrite_presmodule->endform();
931                 return $kiriwrite_presmodule->grab();
933         } else {
935                         kiriwrite_error("invalidvariable");
937         }
941 sub kiriwrite_template_list{
942 #################################################################################
943 # kiriwrite_template_list: List the templates in the template folder.           #
944 #                                                                               #
945 # Usage:                                                                        #
946 #                                                                               #
947 # kiriwrite_template_list([browsenumber]);                                      #
948 #                                                                               #
949 # browsenumber  Specifies the page browse number to use.                        #
950 #################################################################################
952         # Define certain values for later.
954         my $template_browsenumber       = shift;
956         my %template_info;
958         my @templates_list;
960         my $template;
961         my $template_filename           = "";
962         my $template_filename_list      = "";
963         my $template_name               = "";
964         my $template_description        = "";
965         my $template_data               = "";
967         my $template_split      = 50;
968         my $template_list       = 0;
970         my $template_count = 0;
972         my $template_style = 0;
973         my $template_stylename = "";
975         my $templatewarning = "";
977         # Connect to the database server.
979         $kiriwrite_dbmodule->connect();
981         # Check if any errors occured while connecting to the database server.
983         if ($kiriwrite_dbmodule->geterror eq "DatabaseConnectionError"){
985                 # A database connection error has occured so return
986                 # an error.
988                 kiriwrite_error("databaseconnectionerror", $kiriwrite_dbmodule->geterror(1));
990         }
992         # Connect to the template database.
994         $kiriwrite_dbmodule->connecttemplate();
996         # Check if any errors had occured.
998         if ($kiriwrite_dbmodule->geterror eq "TemplateDatabaseDoesNotExist"){
1000                 # The template database does not exist so write a warning
1001                 # message.
1003                 $templatewarning = $kiriwrite_lang->{template}->{templatedatabasedoesnotexist};
1005         } elsif ($kiriwrite_dbmodule->geterror eq "TemplateDatabaseInvalidPermissionsSet"){
1007                 # The template database has invalid permissions set so
1008                 # return an error.
1010                 kiriwrite_error("templatedatabaseinvalidpermissions");
1012         } elsif ($kiriwrite_dbmodule->geterror eq "TemplateDatabaseError"){
1014                 # A database error occured while getting the list of
1015                 # templates so return an error with the extended
1016                 # error information.
1018                 kiriwrite_error("templatedatabaseerror", $kiriwrite_dbmodule->geterror(1));
1020         }
1022         # Get the list of template databases.
1024         if (!$templatewarning){
1026                 # Get the total count of filters in the filter database.
1028                 my $template_total_count        = $kiriwrite_dbmodule->gettemplatecount;
1030                 # Check if any errors occured while getting the count of filters.
1032                 if ($kiriwrite_dbmodule->geterror eq "TemplateDatabaseError"){
1034                         # A database error has occured with the filter database.
1036                         kiriwrite_error("templatedatabaseerror", $kiriwrite_dbmodule->geterror(1));
1038                 }
1040                 if (!$template_browsenumber || $template_browsenumber eq 0){
1042                         $template_browsenumber = 1;
1044                 }
1046                 # Check if the template browse number is valid and if it isn't
1047                 # then return an error.
1049                 my $kiriwrite_browsenumber_length_check         = kiriwrite_variablecheck($template_browsenumber, "maxlength", 7, 1);
1050                 my $kiriwrite_browsenumber_number_check         = kiriwrite_variablecheck($template_browsenumber, "numbers", 0, 1);
1052                 if ($kiriwrite_browsenumber_length_check eq 1){
1054                         # The browse number was too long so return
1055                         # an error.
1057                         kiriwrite_error("browsenumbertoolong");
1059                 }
1061                 if ($kiriwrite_browsenumber_number_check eq 1){
1063                         # The browse number wasn't a number so
1064                         # return an error.
1066                         kiriwrite_error("browsenumberinvalid");
1068                 }
1070                 if ($template_total_count ne 0){
1072                         if ($template_total_count eq $template_split){
1074                                 $template_list = substr(($template_total_count / $template_split), 0, 1);
1076                         } else {
1078                                 $template_list = substr(($template_total_count / $template_split), 0, 1) + 1;
1080                         }
1082                 }
1084                 my $start_from = ($template_browsenumber - 1) * $template_split;
1086                 @templates_list = $kiriwrite_dbmodule->gettemplatelist({ StartFrom => $start_from, Limit => $template_split });
1088         }
1090         # Check if any errors had occured.
1092         if ($kiriwrite_dbmodule->geterror eq "TemplateDatabaseError"){
1094                 # A database error occured while getting the list
1095                 # of templates so return an error with the 
1096                 # extended error information.
1098                 kiriwrite_error("templatedatabaseerror", $kiriwrite_dbmodule->geterror(1));
1100         }
1102         # Check if any templates are in the database and if there isn't
1103         # then write a message saying that there are no templates in the
1104         # database.
1106         if (!@database_pages && $template_browsenumber > 1){
1108                         # There were no values given for the page browse
1109                         # number given so write a message saying that
1110                         # there were no pages for the page browse number
1111                         # given.
1113                         $kiriwrite_presmodule->clear();
1114                         $kiriwrite_presmodule->addtext(kiriwrite_language($kiriwrite_lang->{template}->{viewtemplates}, $db_name), { Style => "pageheader" });
1115                         $kiriwrite_presmodule->addlinebreak();
1116                         $kiriwrite_presmodule->addlinebreak();
1117                         $kiriwrite_presmodule->startbox("errorbox");
1118                         $kiriwrite_presmodule->enterdata($kiriwrite_lang->{template}->{notemplatesinpagebrowse});
1119                         $kiriwrite_presmodule->addlinebreak();
1120                         $kiriwrite_presmodule->addlinebreak();
1121                         $kiriwrite_presmodule->addlink($kiriwrite_env{"script_filename"} . "?mode=template" . $database_file, { Text => $kiriwrite_lang->{template}->{returntofirstpagebrowse} });
1122                         $kiriwrite_presmodule->endbox();
1124                         return $kiriwrite_presmodule->grab();
1126         } elsif (!@templates_list && !$templatewarning){
1127                 $templatewarning = $kiriwrite_lang->{template}->{notemplatesavailable};
1128         }
1130         # Process the templates into a template list.
1132         $kiriwrite_presmodule->addtext($kiriwrite_lang->{template}->{viewtemplates}, { Style => "pageheader" });
1133         $kiriwrite_presmodule->addlinebreak();
1134         $kiriwrite_presmodule->addlinebreak();
1136         if ($templatewarning){
1138                 $kiriwrite_presmodule->startbox("errorbox");
1139                 $kiriwrite_presmodule->addtext($templatewarning);
1140                 $kiriwrite_presmodule->endbox();
1142         } else {
1144                 if (!$template_browsenumber || $template_browsenumber eq 0){
1146                         $template_browsenumber = 1;
1148                 }
1150                 # Check if the template browse number is valid and if it isn't
1151                 # then return an error.
1153                 my $kiriwrite_browsenumber_length_check         = kiriwrite_variablecheck($template_browsenumber, "maxlength", 7, 1);
1154                 my $kiriwrite_browsenumber_number_check         = kiriwrite_variablecheck($template_browsenumber, "numbers", 0, 1);
1156                 if ($kiriwrite_browsenumber_length_check eq 1){
1158                         # The browse number was too long so return
1159                         # an error.
1161                         kiriwrite_error("browsenumbertoolong");
1163                 }
1165                 if ($kiriwrite_browsenumber_number_check eq 1){
1167                         # The browse number wasn't a number so
1168                         # return an error.
1170                         kiriwrite_error("browsenumberinvalid");
1172                 }
1174                 # Start a form for using the template browsing list with.
1176                 $kiriwrite_presmodule->startform($kiriwrite_env{"script_filename"}, "GET");
1177                 $kiriwrite_presmodule->addhiddendata("mode", "template");
1179                 # Write out the template browsing list.
1181                 $kiriwrite_presmodule->addtext($kiriwrite_lang->{template}->{showlistpage});
1182                 $kiriwrite_presmodule->addselectbox("browsenumber");
1184                 # Write out the list of available pages to browse.
1185                 
1186                 if (!$template_list_count){
1188                         $template_list_count = 0;
1190                 }
1192                 while ($template_list_count ne $template_list){
1194                         $template_list_count++;
1196                         if ($template_list_count eq 1 && !$template_browsenumber){
1198                                 $kiriwrite_presmodule->addoption($template_list_count, { Value => $template_list_count, Selected => 1 });
1200                         } else {
1202                                 if ($template_browsenumber eq $template_list_count){
1204                                         $kiriwrite_presmodule->addoption($template_list_count, { Value => $template_list_count, Selected => 1 });
1206                                 } else {
1208                                         $kiriwrite_presmodule->addoption($template_list_count, { Value => $template_list_count });
1210                                 }
1212                         }
1214                 }
1216                 $kiriwrite_presmodule->endselectbox();
1217                 $kiriwrite_presmodule->addbutton("action", { Value => "view", Description => $kiriwrite_lang->{template}->{show} });            
1219                 if ($template_list ne $template_browsenumber){
1221                         $kiriwrite_presmodule->addtext(" | ");
1222                         $kiriwrite_presmodule->addlink($kiriwrite_env{"script_filename"} . "?mode=template&action=view&browsenumber=" . ($template_browsenumber + 1), { Text => $kiriwrite_lang->{template}->{nextpage} });
1224                 }
1226                 # Check if the filter browse number is not blank and
1227                 # not set as 0 and hide the Previous page link if
1228                 # it is.
1230                 if ($template_browsenumber > 1){
1232                         $kiriwrite_presmodule->addtext(" | ");
1233                         $kiriwrite_presmodule->addlink($kiriwrite_env{"script_filename"} . "?mode=template&action=view&browsenumber=" . ($template_browsenumber - 1), { Text => $kiriwrite_lang->{template}->{previouspage} });
1235                 }
1237                 $kiriwrite_presmodule->addlinebreak();
1238                 $kiriwrite_presmodule->addlinebreak();
1240                 $kiriwrite_presmodule->starttable("", { CellPadding => 5, CellSpacing => 0 });
1241                 $kiriwrite_presmodule->startheader();
1242                 $kiriwrite_presmodule->addheader($kiriwrite_lang->{template}->{templatefilename}, { Style => "tablecellheader" });
1243                 $kiriwrite_presmodule->addheader($kiriwrite_lang->{template}->{templatename}, { Style => "tablecellheader" });
1244                 $kiriwrite_presmodule->addheader($kiriwrite_lang->{template}->{templatedescription}, { Style => "tablecellheader" });
1245                 $kiriwrite_presmodule->addheader($kiriwrite_lang->{common}->{options}, { Style => "tablecellheader" });
1246                 $kiriwrite_presmodule->endheader();
1248                 foreach $template (@templates_list){
1250                         # Get the template data.
1252                         %template_info = $kiriwrite_dbmodule->gettemplateinfo({ TemplateFilename => $template, Reduced => 1 });
1254                         # Check if any errors occured while trying to get the template
1255                         # data.
1257                         if ($kiriwrite_dbmodule->geterror eq "TemplateDatabaseError"){
1259                                 # A database error has occured, so return an error.
1261                                 kiriwrite_error("templatedatabaseerror", $kiriwrite_dbmodule->geterror(1));
1263                         } elsif ($kiriwrite_dbmodule->geterror eq "TemplateDoesNotExist"){
1265                                 # The template does not exist, so process the next template.
1267                                 next;
1269                         }
1271                         $template_filename      = $template_info{"TemplateFileName"};
1272                         $template_name          = $template_info{"TemplateName"};
1273                         $template_description   = $template_info{"TemplateDescription"};
1275                         # Check what style the row of table cells should be.
1276  
1277                         if ($template_style eq 0){
1278  
1279                                 $template_stylename = "tablecell1";
1280                                 $template_style = 1;
1281  
1282                         } else {
1283  
1284                                 $template_stylename = "tablecell2";
1285                                 $template_style = 0;
1286  
1287                         }
1289                         $kiriwrite_presmodule->startrow();
1290                         $kiriwrite_presmodule->addcell($template_stylename);
1291                         $kiriwrite_presmodule->addtext($template_info{"TemplateFilename"});
1293                         # Check if the blank template value was set.
1295                         if (!$template_info{"TemplateLayout"}){
1296                                 $kiriwrite_presmodule->additalictext(" " . "[Blank Template]");
1297                         }
1299                         $kiriwrite_presmodule->endcell();
1300                         $kiriwrite_presmodule->addcell($template_stylename);
1302                         # Check if the template name is blank and if it is
1303                         # write a message to say there's no name for the
1304                         # template.
1306                         if (!$template_info{"TemplateName"}){
1307                                 $kiriwrite_presmodule->additalictext($kiriwrite_lang->{blank}->{noname});
1308                         } else {
1309                                 $kiriwrite_presmodule->addtext($template_info{"TemplateName"});
1310                         }
1312                         $kiriwrite_presmodule->endcell();
1313                         $kiriwrite_presmodule->addcell($template_stylename);
1315                         # Check if the template description is blank and if
1316                         # it is then write a message to say there's no
1317                         # description for the template.
1319                         if (!$template_info{"TemplateDescription"}){
1320                                 $kiriwrite_presmodule->additalictext($kiriwrite_lang->{blank}->{nodescription});
1321                         } else {
1322                                 $kiriwrite_presmodule->addtext($template_info{"TemplateDescription"});
1323                         }
1325                         $kiriwrite_presmodule->endcell();
1326                         $kiriwrite_presmodule->addcell($template_stylename);
1327                         $kiriwrite_presmodule->addlink($kiriwrite_env{"script_filename"} . "?mode=template&action=edit&template=" . $template_info{"TemplateFilename"}, { Text => $kiriwrite_lang->{options}->{edit} });
1328                         $kiriwrite_presmodule->addlink($kiriwrite_env{"script_filename"} . "?mode=template&action=delete&template=" . $template_info{"TemplateFilename"}, { Text => $kiriwrite_lang->{options}->{delete} });
1329                         $kiriwrite_presmodule->endcell();
1330                         $kiriwrite_presmodule->endrow();
1332                 }
1334                 $kiriwrite_presmodule->endtable();
1335                 $kiriwrite_presmodule->endform();
1337         }
1339         # Disconnect from the database server.
1341         $kiriwrite_dbmodule->disconnect();
1343         $kiriwrite_dbmodule->disconnecttemplate();
1344         return $kiriwrite_presmodule->grab();
1349 1; 
Xestia Software Development
Yn Maystri
© 2006 - 2019 Xestia Software Development
Software

Xestia Address Book
Xestia Calendar
Development

Xestia Gelforn
Everything else

About
News
Privacy Policy