Initial commit.
This commit is contained in:
243
lib/perl5/Selima/DataVars.pm
Normal file
243
lib/perl5/Selima/DataVars.pm
Normal file
@@ -0,0 +1,243 @@
|
||||
# Selima Website Content Management System
|
||||
# DataVars.pm: The core constants and variables.
|
||||
|
||||
# Copyright (c) 2003-2020 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: 2003-03-24
|
||||
|
||||
package Selima::DataVars;
|
||||
use 5.008;
|
||||
use strict;
|
||||
use warnings;
|
||||
use base qw(Exporter);
|
||||
use vars qw(@EXPORT %EXPORT_TAGS @EXPORT_OK);
|
||||
BEGIN {
|
||||
@EXPORT = qw();
|
||||
%EXPORT_TAGS = (
|
||||
absuri => [qw(ABSURI_SKIP_FRAGMENT)],
|
||||
addcol => [qw(ADDCOL_INSERT ADDCOL_UPDATE ADDCOL_NOTIMESTAMP)],
|
||||
author => [qw($AUTHOR $COPYRIGHT)],
|
||||
db => [qw($DBH $DBI_TYPE DBI_NONE DBI_POSTGRESQL DBI_MYSQL
|
||||
DBI_FEATHER_VIEW %DBILOGIN)],
|
||||
dataman => [qw($THIS_TABLE %CURRENT %REQUEST %PREVIEW)],
|
||||
env => [qw($IS_CGI $IS_MODPERL $IS_MP2 $IS_PERLIS)],
|
||||
forms => [qw(%SCRIPTS FORM_THIS FORM_USERS FORM_GROUPS FORM_USERMEM
|
||||
FORM_GROUPMEM FORM_USERPREF FORM_SCPTPRIV FORM_PIC FORM_PAGES
|
||||
FORM_NEWS FORM_LINKCAT FORM_LINKS FORM_ACCTSUBJ FORM_ACCTTRX
|
||||
FORM_CAPTCHA)],
|
||||
groups => [qw(SU_GROUP ADMIN_GROUP ALLUSERS_GROUP GUEST_GROUP)],
|
||||
hostconf=> [qw($VIRTUAL_HOST $HTTPS_HOST $NOLOGIN)],
|
||||
input => [qw(%USER_INPUT $POST $GET $UPLOAD %COOKIES $SESSION $AUTHINFO)],
|
||||
l10n => [qw($DEFAULT_LANG @ALL_LINGUAS $LH $CLH $ALH
|
||||
$LOCALEDIR COMMON_DOMAIN COMMON_LOCALEDIR)],
|
||||
lastmod => [qw($LAST_MODIFIED)],
|
||||
libdir => [qw($SITE_LIBDIR COMMON_LIBDIR)],
|
||||
list => [qw($PAGEBAR_RANGE)],
|
||||
lninfo => [qw(LN_NAME LN_CHARSET LN_FILENAME LN_LOCALE LN_DATABASE
|
||||
LN_HTMLID LN_SPACE_BREAK LN_COUNTRY_FIRST
|
||||
LN_DESC LN_DESC_CURLC LN_DESC_SELFLC LN_SWITCH_TITLE)],
|
||||
mail => [qw(SMTP_HOST)],
|
||||
output => [qw($CONTENT_TYPE $NO_AUTO_OUTPUT %NEWCOOKIES %HTTP_HEADERS
|
||||
$PAGE_PARAM $ALT_PAGE_PARAM)],
|
||||
proctime=> [qw($LOGTIME $T_START)],
|
||||
rebuild => [qw(@REBUILD_TABLES %REBUILD_LABELS)],
|
||||
requri => [qw($DOC_ROOT $ROOT_DIFF $REQUEST_PATH $REQUEST_FILE
|
||||
$REQUEST_URI $REQUEST_FILEQS $REQUEST_SCHEME $REQUEST_HOST
|
||||
$REQUEST_HOSTPORT $REQUEST_HOSTPATH $REQUEST_FULLURI)],
|
||||
scptconf=> [qw($THIS_FILE $MAIN)],
|
||||
siteconf=> [qw($PACKAGE $WEBMASTER $SITENAME_ABBR)],
|
||||
user => [qw(%USERPREF)],
|
||||
);
|
||||
@EXPORT_OK = qw();
|
||||
my %seen;
|
||||
%seen = qw();
|
||||
foreach my $tag (keys %EXPORT_TAGS) {
|
||||
push @EXPORT_OK, grep !$seen{$_}++, @{$EXPORT_TAGS{$tag}};
|
||||
}
|
||||
$EXPORT_TAGS{"all"} = [@EXPORT_OK];
|
||||
# Prototype declaration
|
||||
sub clear();
|
||||
}
|
||||
|
||||
use vars qw($AUTHOR $COPYRIGHT);
|
||||
use vars qw($DBH $DBI_TYPE %DBILOGIN);
|
||||
use vars qw($THIS_TABLE %CURRENT %REQUEST);
|
||||
use vars qw($IS_CGI $IS_MODPERL $IS_MP2 $IS_PERLIS);
|
||||
use vars qw(%SCRIPTS);
|
||||
use vars qw($VIRTUAL_HOST $HTTPS_HOST $NOLOGIN);
|
||||
use vars qw(%USER_INPUT $POST $GET $UPLOAD %COOKIES $SESSION $AUTHINFO);
|
||||
use vars qw($DEFAULT_LANG @ALL_LINGUAS $LH $CLH $ALH);
|
||||
use vars qw($LOCALEDIR);
|
||||
use vars qw($LAST_MODIFIED);
|
||||
use vars qw($SITE_LIBDIR);
|
||||
use vars qw($PAGEBAR_RANGE);
|
||||
use vars qw($CONTENT_TYPE $NO_AUTO_OUTPUT %NEWCOOKIES %HTTP_HEADERS);
|
||||
use vars qw($PAGE_PARAM $ALT_PAGE_PARAM);
|
||||
use vars qw($LOGTIME $T_START);
|
||||
use vars qw(@REBUILD_TABLES %REBUILD_LABELS);
|
||||
use vars qw($DOC_ROOT $ROOT_DIFF $REQUEST_PATH $REQUEST_FILE);
|
||||
use vars qw($REQUEST_URI $REQUEST_FILEQS $REQUEST_SCHEME $REQUEST_HOST);
|
||||
use vars qw($REQUEST_HOSTPORT $REQUEST_HOSTPATH $REQUEST_FULLURI);
|
||||
use vars qw($THIS_FILE $MAIN);
|
||||
use vars qw($PACKAGE $WEBMASTER $SITENAME_ABBR);
|
||||
use vars qw(%USERPREF);
|
||||
use constant ABSURI_SKIP_FRAGMENT => 1;
|
||||
|
||||
use constant ADDCOL_INSERT => 0;
|
||||
use constant ADDCOL_UPDATE => 1;
|
||||
use constant ADDCOL_NOTIMESTAMP => 0;
|
||||
|
||||
use constant DBI_NONE => "";
|
||||
use constant DBI_POSTGRESQL => "PostgreSQL";
|
||||
use constant DBI_MYSQL => "MySQL";
|
||||
use constant DBI_FEATHER_VIEW => "view";
|
||||
|
||||
use constant FORM_THIS => 0;
|
||||
use constant FORM_USERS => 1;
|
||||
use constant FORM_GROUPS => 2;
|
||||
use constant FORM_USERPRIV => 3;
|
||||
use constant FORM_USERMEM => 4;
|
||||
use constant FORM_GROUPMEM => 5;
|
||||
use constant FORM_USERPREF => 6;
|
||||
use constant FORM_SCPTPRIV => 7;
|
||||
use constant FORM_PIC => 8;
|
||||
use constant FORM_PAGES => 9;
|
||||
use constant FORM_NEWS => 10;
|
||||
use constant FORM_LINKCAT => 11;
|
||||
use constant FORM_LINKS => 12;
|
||||
use constant FORM_ACCTSUBJ => 13;
|
||||
use constant FORM_ACCTTRX => 14;
|
||||
# The column name of the CAPTCHA
|
||||
# This is used to deceive the spambots
|
||||
use constant FORM_CAPTCHA => "lastname";
|
||||
|
||||
use constant SU_GROUP => "root";
|
||||
use constant ADMIN_GROUP => "admin";
|
||||
use constant ALLUSERS_GROUP => "users";
|
||||
use constant GUEST_GROUP => "guests";
|
||||
|
||||
use constant COMMON_DOMAIN => "selima";
|
||||
use constant COMMON_LOCALEDIR => $ENV{"DOCUMENT_ROOT"} . "/../../locale";
|
||||
|
||||
use constant COMMON_LIBDIR => $ENV{"DOCUMENT_ROOT"} . "/../../lib/perl5";
|
||||
|
||||
use constant LN_NAME => 0;
|
||||
use constant LN_CHARSET => 1;
|
||||
use constant LN_FILENAME => 2;
|
||||
use constant LN_LOCALE => 3;
|
||||
use constant LN_DATABASE => 4;
|
||||
use constant LN_HTMLID => 5;
|
||||
use constant LN_SPACE_BREAK => 6;
|
||||
#use constant LN_IGNORE_CASE => 7;
|
||||
use constant LN_COUNTRY_FIRST => 8;
|
||||
use constant LN_DESC => 9;
|
||||
use constant LN_DESC_CURLC => 10;
|
||||
use constant LN_DESC_SELFLC => 11;
|
||||
use constant LN_SWITCH_TITLE => 12;
|
||||
|
||||
use constant SMTP_HOST => "localhost";
|
||||
|
||||
# Check the environment type in advance. These variables does not change
|
||||
# at all even under mod_perl.
|
||||
# GATEWAY_INTERFACE is not available yet when this script is loaded
|
||||
$IS_CGI = exists $ENV{"GATEWAY_INTERFACE"} || exists $ENV{"MOD_PERL"};
|
||||
$IS_MODPERL = exists $ENV{"MOD_PERL"};
|
||||
$IS_MP2 = exists $ENV{"MOD_PERL_API_VERSION"} && $ENV{"MOD_PERL_API_VERSION"} >= 2;
|
||||
$IS_PERLIS = exists $ENV{"PERLXS"} && $ENV{"PERLXS"} eq "PerlIS";
|
||||
|
||||
# clear: Clear the data variables
|
||||
sub clear() {
|
||||
local ($_, %_);
|
||||
|
||||
# Reset all the data variables
|
||||
undef $AUTHINFO;
|
||||
|
||||
undef $AUTHOR;
|
||||
undef $COPYRIGHT;
|
||||
|
||||
undef $DBH;
|
||||
undef $DBI_TYPE;
|
||||
%DBILOGIN = qw();
|
||||
|
||||
undef $THIS_TABLE;
|
||||
%CURRENT = qw();
|
||||
%REQUEST = qw();
|
||||
|
||||
%SCRIPTS = qw();
|
||||
|
||||
undef $VIRTUAL_HOST;
|
||||
undef $HTTPS_HOST;
|
||||
undef $NOLOGIN;
|
||||
|
||||
%USER_INPUT = qw();
|
||||
undef $POST;
|
||||
undef $GET;
|
||||
undef $UPLOAD;
|
||||
%COOKIES = qw();
|
||||
|
||||
undef $DEFAULT_LANG;
|
||||
@ALL_LINGUAS = qw();
|
||||
undef $LH;
|
||||
undef $CLH;
|
||||
undef $ALH;
|
||||
undef $LOCALEDIR;
|
||||
|
||||
undef $LAST_MODIFIED;
|
||||
|
||||
undef $SITE_LIBDIR;
|
||||
|
||||
undef $PAGEBAR_RANGE;
|
||||
|
||||
undef $CONTENT_TYPE;
|
||||
undef $NO_AUTO_OUTPUT;
|
||||
%NEWCOOKIES = qw();
|
||||
%HTTP_HEADERS = qw();
|
||||
undef $PAGE_PARAM;
|
||||
undef $ALT_PAGE_PARAM;
|
||||
|
||||
undef $LOGTIME;
|
||||
undef $T_START;
|
||||
|
||||
@REBUILD_TABLES = qw();
|
||||
%REBUILD_LABELS = qw();
|
||||
|
||||
undef $DOC_ROOT;
|
||||
undef $ROOT_DIFF;
|
||||
undef $REQUEST_PATH;
|
||||
undef $REQUEST_FILE;
|
||||
undef $REQUEST_URI;
|
||||
undef $REQUEST_FILEQS;
|
||||
undef $REQUEST_SCHEME;
|
||||
undef $REQUEST_HOST;
|
||||
undef $REQUEST_HOSTPORT;
|
||||
undef $REQUEST_HOSTPATH;
|
||||
undef $REQUEST_FULLURI;
|
||||
|
||||
undef $SESSION;
|
||||
|
||||
undef $THIS_FILE;
|
||||
undef $MAIN;
|
||||
|
||||
undef $PACKAGE;
|
||||
undef $WEBMASTER;
|
||||
undef $SITENAME_ABBR;
|
||||
|
||||
%USERPREF = qw();
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
return 1;
|
||||
Reference in New Issue
Block a user