# Selima Website Content Management System # Page.pm: The base web page form. # Copyright (c) 2005-2018 imacat. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. # Author: imacat # First written: 2005-02-28 package Selima::Form::Page; use 5.008; use strict; use warnings; use base qw(Selima::Form); use Selima::FormFunc; use Selima::HTTP; use Selima::MarkAbbr; use Selima::ShortCut; # new: Initialize the HTML form table displayer sub new : method { local ($_, %_); my ($class, $status, $args, $self); ($class, $status, $args) = @_; $args = {} if !defined $args; # $args must be a hash reference http_500 "type of argument 2 must be a hash reference" if ref($args) ne "HASH"; $$args{"type"} = form_type if !exists $$args{"type"}; $$args{"table"} = "pages" if !exists $$args{"table"}; $$args{"deltext"} = C_("Delete this page") if !exists $$args{"deltext"}; if (!exists $$args{"summary"}) { # A form to create a new item if ($$args{"type"} eq "new") { $$args{"summary"} = C_("This table provides you a form to write a new page."); # A form to edit a current item } elsif ($$args{"type"} eq "cur") { $$args{"summary"} = C_("This table provides you a form to edit a current page."); # A form to delete a current item } elsif ($$args{"type"} eq "del") { $$args{"summary"} = C_("This table provides you a form to delete a page."); } } if (!exists $$args{"cols"}) { # A form to create a new item if ($$args{"type"} eq "new") { $$args{"cols"} = [qw(path ord title body kw html hid)]; # A form to edit a current item # A form to delete a current item } elsif ($$args{"type"} eq "cur" || $$args{"type"} eq "del") { $$args{"cols"} = [qw(sn path ord title body kw html hid created createdby updated updatedby)]; } } if (!exists $$args{"title"}) { # A form to create a new item if ($$args{"type"} eq "new") { $$args{"title"} = C_("Write a New Page"); # A form to edit a current item } elsif ($$args{"type"} eq "cur") { $$args{"title"} = C_("Edit a Current Page"); # A form to delete a current item } elsif ($$args{"type"} eq "del") { $$args{"title"} = C_("Delete a Page"); } } if (!exists $$args{"preview"}) { $$args{"preview"} = 1; } if ($$args{"preview"} && !exists $$args{"prevmsg"}) { $$args{"prevmsg"} = C_("Preview this page."); } $self = $class->SUPER::new($status, $args); return $self; } # _html_col_hid: Hide? sub _html_col_hid : method { $_[0]->_html_coltmpl_bool("hid", h_abbr(C_("Hide?")), h_abbr(C_("Hide this page")), h_abbr(C_("Show this page")), h_abbr(C_("Hide this page currently."))); } return 1;