111 lines
3.4 KiB
Perl
111 lines
3.4 KiB
Perl
# Selima Website Content Management System
|
|
# Guestbook.pm: The base administrative guestbook message list.
|
|
|
|
# Copyright (c) 2004-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 <imacat@mail.imacat.idv.tw>
|
|
# First written: 2004-10-16
|
|
|
|
package Selima::List::Guestbook;
|
|
use 5.008;
|
|
use strict;
|
|
use warnings;
|
|
use base qw(Selima::List);
|
|
|
|
use Selima::AddGet;
|
|
use Selima::DataVars qw(:requri);
|
|
use Selima::ShortCut;
|
|
|
|
# new: Initialize the handler
|
|
sub new : method {
|
|
local ($_, %_);
|
|
my ($self, $class);
|
|
($class, @_) = @_;
|
|
$_[1] = "guestbook" if !defined $_[1];
|
|
$self = $class->SUPER::new(@_);
|
|
# The page title
|
|
$self->{"title"} = $self->{"is_called_form"}?
|
|
C_("Select a Message"):
|
|
C_("Manage Guestbook");
|
|
# The default sort order
|
|
$self->{"DEFAULT_SORTBY"} = "created";
|
|
# Columns that should display its brief instead
|
|
push @{$self->{"COLS_BRIEF"}}, qw(message);
|
|
# Columns should be displayed in a reversed order
|
|
$self->{"reverse"} = 1;
|
|
# The list brief size
|
|
$self->{"DEFAULT_BRIEF_LEN"} = 20;
|
|
# Column labels
|
|
$self->col_labels(
|
|
"name" => C_("Signature"),
|
|
"identity" => C_("Identity"),
|
|
"location" => C_("Location"),
|
|
"message" => C_("Message"),
|
|
"ip" => C_("IP"),
|
|
"host" => C_("Host"),
|
|
"ct" => C_("Country"),
|
|
"pageno" => C_("Page No."),
|
|
"oldpageno" => C_("Old page No."),
|
|
);
|
|
return $self;
|
|
}
|
|
|
|
# html_newlink: Display a link to add a new item
|
|
sub html_newlink : method {
|
|
# Run the parent method
|
|
return $_[0]->SUPER::html_newlink(C_("Write a new message."));
|
|
}
|
|
|
|
# html_search: Display the search box
|
|
sub html_search : method {
|
|
# Run the parent method
|
|
return $_[0]->SUPER::html_search(C_("Search for a message:"));
|
|
}
|
|
|
|
# liststat_message: Return the current list statistics message
|
|
sub liststat_message : method {
|
|
local ($_, %_);
|
|
my $self;
|
|
$self = $_[0];
|
|
|
|
# No record to list
|
|
if ($self->{"total"} == 0) {
|
|
# Inherit the empty list statistics message
|
|
return $self->SUPER::liststat_message;
|
|
# Fit in one page
|
|
} elsif ($self->{"total"} <= $self->{"pagesize"}) {
|
|
# Result comes from a query
|
|
if (defined $self->{"query"}) {
|
|
return C_("Your query found [*,_1,message].", $self->{"total"});
|
|
# List result
|
|
} else {
|
|
return C_("[*,_1,message].", $self->{"total"});
|
|
}
|
|
# More than one page
|
|
} else {
|
|
# Result comes from a query
|
|
if (defined $self->{"query"}) {
|
|
return C_("Your query found [*,_1,message], listing [#,_2] to [#,_3].",
|
|
$self->{"total"}, $self->{"startno"}+1, $self->{"endno"}+1);
|
|
# List result
|
|
} else {
|
|
return C_("[*,_1,message], listing [#,_2] to [#,_3].",
|
|
$self->{"total"}, $self->{"startno"}+1, $self->{"endno"}+1);
|
|
}
|
|
}
|
|
}
|
|
|
|
return 1;
|