Initial commit.
219
htdocs/wov/cgi-bin/counter.cgi
Executable file
@@ -0,0 +1,219 @@
|
||||
#! /usr/bin/perl -w
|
||||
# Woman's Voice
|
||||
# counter.cgi: The visitor counter.
|
||||
|
||||
# Copyright (c) 2003-2021 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-04-07
|
||||
|
||||
use 5.008;
|
||||
use strict;
|
||||
use warnings;
|
||||
use lib $ENV{"DOCUMENT_ROOT"} . qw(/magicat/lib/perl5);
|
||||
use Selima::wov;
|
||||
local $SIG{"__DIE__"} = \&http_500;
|
||||
my $d = new Selima::Destroy;
|
||||
# Prototype declaration
|
||||
sub main();
|
||||
sub dont_update();
|
||||
sub read_counter();
|
||||
sub update_counter();
|
||||
sub log_visitor($);
|
||||
sub counter_cookie();
|
||||
sub html_image($);
|
||||
|
||||
use Fcntl qw(:seek);
|
||||
use Date::Format qw(time2str);
|
||||
use GD;
|
||||
use IO::NestedCapture qw(CAPTURE_STDOUT);
|
||||
use Net::CIDR::Lite qw();
|
||||
|
||||
use constant DATA_FILE => $ENV{"DOCUMENT_ROOT"} . "/magicat/data/counter.dat";
|
||||
use constant LOG_FILE => "/var/log/apache2/wov/counter.log";
|
||||
use vars qw($OUR_NETWORKS @FGCOLOR @BGCOLOR $FONT);
|
||||
# People in our networks will not be counted
|
||||
$OUR_NETWORKS = Net::CIDR::Lite->new(
|
||||
qw(127.0.0.1/8 10.0.0.0/8 211.20.30.96/29));
|
||||
@FGCOLOR = (0, 0, 0); # #000000 Black
|
||||
@BGCOLOR = (255, 255, 255); # #FFFFFF White
|
||||
$FONT = gdLargeFont;
|
||||
use constant TRANSPARENT => 1;
|
||||
use constant COOKIE_NAME => "counter";
|
||||
use constant COUNT_ARG => "countme";
|
||||
use constant IGNORE_ARG => "ignoreme";
|
||||
initenv( -allowed => [qw(GET HEAD)],
|
||||
-session => 0,
|
||||
-dbi => DBI_NONE,
|
||||
-lastmod => 0,
|
||||
-multilang => 0);
|
||||
|
||||
main;
|
||||
exit 0;
|
||||
|
||||
sub main() {
|
||||
local ($_, %_);
|
||||
|
||||
# If we should not update the counter
|
||||
if (dont_update) {
|
||||
# Check last-modified here
|
||||
my (@tables, @files);
|
||||
@tables = qw();
|
||||
@files = (DATA_FILE);
|
||||
http_304 if not_modified @tables, @files;
|
||||
html_image read_counter;
|
||||
|
||||
# Update the counter
|
||||
} else {
|
||||
$_ = html_image update_counter;
|
||||
# Log the visitor
|
||||
log_visitor $_;
|
||||
}
|
||||
|
||||
# Set the counter cookie
|
||||
$NEWCOOKIES{COOKIE_NAME()} = $_ if defined ($_ = counter_cookie);
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
# dont_update: If we should not update the counter
|
||||
sub dont_update() {
|
||||
local ($_, %_);
|
||||
# Find any reason that we should not update the counter
|
||||
# If this visitor came from our own network
|
||||
return 1 if $OUR_NETWORKS->find($ENV{"REMOTE_ADDR"});
|
||||
# If this visitor had been counted
|
||||
return 1 if exists $COOKIES{COOKIE_NAME()};
|
||||
# If we are not told to count this visitor
|
||||
return 1 if !defined $GET->param(COUNT_ARG);
|
||||
# Well, update it
|
||||
return 0;
|
||||
}
|
||||
|
||||
# read_counter: Read the counter
|
||||
sub read_counter() {
|
||||
return -s DATA_FILE? xfread DATA_FILE: 0;
|
||||
}
|
||||
|
||||
# update_counter: Update the counter
|
||||
sub update_counter() {
|
||||
local ($_, %_);
|
||||
# File exists
|
||||
if (-s DATA_FILE) {
|
||||
my $FH;
|
||||
open $FH, "+<", DATA_FILE or http_500 DATA_FILE . ": $!";
|
||||
flock $FH, LOCK_EX or http_500 DATA_FILE . ": $!";
|
||||
$_ = <$FH>;
|
||||
$_++;
|
||||
seek $FH, 0, SEEK_SET or http_500 DATA_FILE . ": $!";
|
||||
truncate $FH, 0 or http_500 DATA_FILE . ": $!";
|
||||
print $FH $_ or http_500 DATA_FILE . ": $!";
|
||||
flock $FH, LOCK_UN or http_500 DATA_FILE . ": $!";
|
||||
close $FH or http_500 DATA_FILE . ": $!";
|
||||
|
||||
# Not exists or zero sized -- create a new one
|
||||
} else {
|
||||
xfwrite DATA_FILE, ($_ = 1);
|
||||
}
|
||||
return $_;
|
||||
}
|
||||
|
||||
# log_visitor: Log the visitor
|
||||
sub log_visitor($) {
|
||||
local ($_, %_);
|
||||
my ($host, $user, $date, $uri, $size, $referer, $ua, $langs, $FD);
|
||||
$size = $_[0];
|
||||
|
||||
# Gather the infomation to log
|
||||
$host = (defined remote_host)? remote_host: $ENV{"REMOTE_ADDR"};
|
||||
$user = (exists $ENV{"REMOTE_USER"} && $ENV{"REMOTE_USER"} ne "")?
|
||||
$ENV{"REMOTE_USER"}: "-";
|
||||
$date = time2str("%d/%b/%Y:%T %z", time);
|
||||
$uri = $REQUEST_URI;
|
||||
$referer = (exists $ENV{"HTTP_REFERER"} && $ENV{"HTTP_REFERER"} ne "")?
|
||||
$ENV{"HTTP_REFERER"}: "-";
|
||||
$ua = (exists $ENV{"HTTP_USER_AGENT"} && $ENV{"HTTP_USER_AGENT"} ne "")?
|
||||
$ENV{"HTTP_USER_AGENT"}: "=";
|
||||
$langs = (exists $ENV{"HTTP_ACCEPT_LANGUAGE"} && $ENV{"HTTP_ACCEPT_LANGUAGE"} ne "")?
|
||||
$ENV{"HTTP_ACCEPT_LANGUAGE"}: "-";
|
||||
|
||||
# Compose the log record 組合紀錄行
|
||||
$_ = sprintf "%s - %s [%s] \"%s %s %s\" 200 %s \"%s\" \"%s\" \"%s\" %s %s\n",
|
||||
$host, $user, $date, $ENV{"REQUEST_METHOD"}, $uri,
|
||||
$ENV{"SERVER_PROTOCOL"}, $size, $referer, $ua, $langs,
|
||||
$ENV{"REMOTE_ADDR"}, country_lookup($ENV{"REMOTE_ADDR"});
|
||||
|
||||
# Save the log record 儲存記錄
|
||||
xfappend LOG_FILE, $_;
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
# counter_cookie: Set the counter cookie
|
||||
sub counter_cookie() {
|
||||
local ($_, %_);
|
||||
# Leave our network alone
|
||||
return if $OUR_NETWORKS->find($ENV{"REMOTE_ADDR"});
|
||||
# Already set
|
||||
return if exists $COOKIES{COOKIE_NAME()};
|
||||
# Count me
|
||||
return new CGI::Cookie( -name=>COOKIE_NAME,
|
||||
-value=>"counted",
|
||||
-path=>$REQUEST_PATH)
|
||||
if defined $GET->param(COUNT_ARG);
|
||||
# Ignore me
|
||||
return new CGI::Cookie( -name=>COOKIE_NAME,
|
||||
-value=>"ignored",
|
||||
-path=>$REQUEST_PATH)
|
||||
if defined $GET->param(IGNORE_ARG);
|
||||
# Leave it alone
|
||||
return;
|
||||
}
|
||||
|
||||
# html_image: Make the image from the counter value
|
||||
sub html_image($) {
|
||||
local $_;
|
||||
my ($counter, $image, $width, $height, $fgcolor, $bgcolor);
|
||||
$counter = $_[0];
|
||||
|
||||
# Group the counter with commas at thousand digits.
|
||||
$counter = fmtno($counter);
|
||||
|
||||
# Initialize the image object
|
||||
# Get the width and height
|
||||
$width = $FONT->width * (length $counter);
|
||||
$height = $FONT->height;
|
||||
# Create an image object
|
||||
$image = GD::Image->new($width, $height);
|
||||
# Create the forground/background color objects
|
||||
$fgcolor = $image->colorAllocate(@FGCOLOR);
|
||||
$bgcolor = $image->colorAllocate(@BGCOLOR);
|
||||
|
||||
# Draw the image
|
||||
# Set the transparent background
|
||||
$image->transparent($bgcolor) if TRANSPARENT;
|
||||
# Paint the background
|
||||
$image->filledRectangle(0, 0, $width, $height, $bgcolor);
|
||||
# Write the text
|
||||
$image->string($FONT, 0, 0, $counter, $fgcolor);
|
||||
|
||||
# Output
|
||||
$CONTENT_TYPE = "image/png";
|
||||
binmode IO::NestedCapture->instance->{"STDOUT_current"}[-1], ":raw";
|
||||
$_ = $image->png;
|
||||
print $_;
|
||||
|
||||
return length $_;
|
||||
}
|
||||
142
htdocs/wov/cgi-bin/last_update.cgi
Executable file
@@ -0,0 +1,142 @@
|
||||
#! /usr/bin/perl -w
|
||||
# Woman's Voice
|
||||
# last_update.cgi: The last-update date of the whole web site.
|
||||
|
||||
# Copyright (c) 2003-2021 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-04-09
|
||||
|
||||
use 5.008;
|
||||
use strict;
|
||||
use warnings;
|
||||
use lib $ENV{"DOCUMENT_ROOT"} . qw(/magicat/lib/perl5);
|
||||
use Selima::wov;
|
||||
local $SIG{"__DIE__"} = \&http_500;
|
||||
my $d = new Selima::Destroy;
|
||||
# Prototype declaration
|
||||
sub main();
|
||||
sub find_files_in(\@\@);
|
||||
sub fmttime_local($);
|
||||
sub html_image($);
|
||||
|
||||
use File::Spec;
|
||||
use GD;
|
||||
use IO::NestedCapture qw(CAPTURE_STDOUT);
|
||||
|
||||
use vars qw(@DIREXCS %RDIREXCS @FGCOLOR @BGCOLOR $FONT);
|
||||
# Directories to be excluded (no leading and trailing slashes)
|
||||
@DIREXCS = qw(magicat);
|
||||
@FGCOLOR = (0, 0, 0); # #000000 Black
|
||||
@BGCOLOR = (255, 255, 255); # #FFFFFF White
|
||||
$FONT = gdLargeFont;
|
||||
use constant TRANSPARENT => 1;
|
||||
initenv( -allowed => [qw(GET HEAD)],
|
||||
-session => 0,
|
||||
-dbi => DBI_NONE,
|
||||
-lastmod => 0,
|
||||
-multilang => 0);
|
||||
%RDIREXCS = map { File::Spec->catfile($DOC_ROOT, $_) => 1 } @DIREXCS;
|
||||
|
||||
main;
|
||||
exit 0;
|
||||
|
||||
sub main() {
|
||||
local ($_, %_);
|
||||
my (@tables, @files);
|
||||
|
||||
@tables = qw();
|
||||
@files = qw();
|
||||
@_ = ($DOC_ROOT);
|
||||
find_files_in(@files, @_);
|
||||
http_304 if not_modified @tables, @files;
|
||||
|
||||
html_image($LAST_MODIFIED);
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
# find_files_in: an easy file finder
|
||||
sub find_files_in(\@\@) {
|
||||
local ($_, %_);
|
||||
my ($files, $dirs, @subdirs, $DH, $ent);
|
||||
($files, $dirs) = @_;
|
||||
|
||||
# Bounce for nothing
|
||||
return if scalar(@$dirs) == 0;
|
||||
# Look in these directories
|
||||
@subdirs = qw();
|
||||
foreach my $dir (@$dirs) {
|
||||
$dir =~ s/\/$//;
|
||||
opendir $DH, $dir or die "$dir: $!";
|
||||
while (defined($_ = readdir $DH)) {
|
||||
next if /^\./;
|
||||
# Using catfile() is better, but a lot slower
|
||||
$ent = File::Spec->catfile($dir, $_);
|
||||
#$ent = "$dir/$_";
|
||||
if (-f $ent) {
|
||||
push @$files, $ent;
|
||||
} elsif (-d $ent) {
|
||||
push @subdirs, $ent
|
||||
if !exists $RDIREXCS{$ent};
|
||||
}
|
||||
}
|
||||
closedir $DH or die "$dir: $!";
|
||||
}
|
||||
# Look in the subdirectories
|
||||
find_files_in @$files, @subdirs;
|
||||
return;
|
||||
}
|
||||
|
||||
# fmttime_local: Format the time using my own format
|
||||
sub fmttime_local($) {
|
||||
@_ = localtime $_[0];
|
||||
return sprintf "%04d.%02d.%02d", $_[5]+1900, $_[4]+1, $_[3];
|
||||
}
|
||||
|
||||
# html_image: Make the image from the last-update value
|
||||
sub html_image($) {
|
||||
local $_;
|
||||
my ($last_update, $image, $width, $height, $fgcolor, $bgcolor);
|
||||
$last_update = $_[0];
|
||||
|
||||
# Format the date to my preferred format
|
||||
$last_update = fmttime_local($last_update);
|
||||
|
||||
# Initialize the image object
|
||||
# Get the width and height
|
||||
$width = $FONT->width * (length $last_update);
|
||||
$height = $FONT->height;
|
||||
# Create an image object
|
||||
$image = GD::Image->new($width, $height);
|
||||
# Create the forground/background color objects
|
||||
$fgcolor = $image->colorAllocate(@FGCOLOR);
|
||||
$bgcolor = $image->colorAllocate(@BGCOLOR);
|
||||
|
||||
# Draw the image
|
||||
# Set the transparent background
|
||||
$image->transparent($bgcolor) if TRANSPARENT;
|
||||
# Paint the background
|
||||
$image->filledRectangle(0, 0, $width, $height, $bgcolor);
|
||||
# Write the text
|
||||
$image->string($FONT, 0, 0, $last_update, $fgcolor);
|
||||
|
||||
# Output
|
||||
$CONTENT_TYPE = "image/png";
|
||||
binmode IO::NestedCapture->instance->{"STDOUT_current"}[-1], ":raw";
|
||||
print $image->png;
|
||||
|
||||
return;
|
||||
}
|
||||
70
htdocs/wov/cgi-bin/mailto.cgi
Executable file
@@ -0,0 +1,70 @@
|
||||
#! /usr/bin/perl -w
|
||||
# Woman's Voice
|
||||
# mailto.cgi: The e-mail hyperlink redirector.
|
||||
|
||||
# Copyright (c) 2003-2021 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-05-13
|
||||
|
||||
use 5.008;
|
||||
use strict;
|
||||
use warnings;
|
||||
use lib $ENV{"DOCUMENT_ROOT"} . qw(/magicat/lib/perl5);
|
||||
use Selima::wov;
|
||||
local $SIG{"__DIE__"} = \&http_500;
|
||||
my $d = new Selima::Destroy;
|
||||
# Prototype declaration
|
||||
sub main();
|
||||
sub check_post();
|
||||
|
||||
use Fcntl qw(:seek);
|
||||
|
||||
initenv(-allowed => [qw(POST)],
|
||||
-session => 0,
|
||||
-dbi => DBI_NONE,
|
||||
-lastmod => 0);
|
||||
|
||||
main;
|
||||
exit 0;
|
||||
|
||||
sub main() {
|
||||
local ($_, %_);
|
||||
my $error;
|
||||
|
||||
# Only POSTed forms are allowed
|
||||
$error = check_post;
|
||||
# If an error occurs
|
||||
if (defined $error) {
|
||||
http_400;
|
||||
|
||||
# Else, save the data
|
||||
} else {
|
||||
http_303 "mailto:" . $POST->param("email");
|
||||
}
|
||||
return;
|
||||
}
|
||||
|
||||
# check_post: Check the POSTed form
|
||||
sub check_post() {
|
||||
local ($_, %_);
|
||||
my ($checker, $error);
|
||||
# Run the checker
|
||||
$checker = new Selima::Checker::MailTo(curform);
|
||||
$error = $checker->check(qw(email));
|
||||
return $error if defined $error;
|
||||
# OK
|
||||
return;
|
||||
}
|
||||
56
htdocs/wov/cgi-bin/search.cgi
Executable file
@@ -0,0 +1,56 @@
|
||||
#! /usr/bin/perl -w
|
||||
# Woman's Voice
|
||||
# search.cgi: The web site full-text search.
|
||||
|
||||
# Copyright (c) 2004-2021 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-11-28
|
||||
|
||||
use 5.008;
|
||||
use strict;
|
||||
use warnings;
|
||||
use lib $ENV{"DOCUMENT_ROOT"} . qw(/magicat/lib/perl5);
|
||||
use Selima::wov;
|
||||
local $SIG{"__DIE__"} = \&http_500;
|
||||
my $d = new Selima::Destroy;
|
||||
# Prototype declaration
|
||||
sub main();
|
||||
|
||||
use Fcntl qw(:seek);
|
||||
|
||||
initenv(-allowed => [qw(GET HEAD)],
|
||||
-session => 0,
|
||||
-dbi_lock => {"nlarts" => LOCK_SH,
|
||||
"newslets" => LOCK_SH,
|
||||
"guestbook" => LOCK_SH,
|
||||
"pages" => LOCK_SH,
|
||||
"links" => LOCK_SH},
|
||||
-lastmod => 1,
|
||||
-page_param => {"keywords" => N_("search, query, full text search")});
|
||||
|
||||
main;
|
||||
exit 0;
|
||||
|
||||
sub main() {
|
||||
local ($_, %_);
|
||||
my $LIST;
|
||||
# List handler handles its own error
|
||||
$LIST = new Selima::wov::List::Search;
|
||||
html_header $LIST->{"title"}, $LIST->{"etitle"}, $LIST->page_param;
|
||||
$LIST->html;
|
||||
html_footer;
|
||||
return;
|
||||
}
|
||||
1
htdocs/wov/copying.html.html
Symbolic link
@@ -0,0 +1 @@
|
||||
copying.html.xhtml
|
||||
132
htdocs/wov/copying.html.xhtml
Normal file
@@ -0,0 +1,132 @@
|
||||
<?xml version="1.0" encoding="UTF-8" ?>
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
|
||||
"http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
|
||||
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="zh-tw">
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="application/xhtml+xml; charset=UTF-8" />
|
||||
<meta http-equiv="Content-Style-Type" content="text/css" />
|
||||
<meta http-equiv="Content-Script-Type" content="text/javascript" />
|
||||
<meta name="author" content="小招, 依瑪貓" />
|
||||
<meta name="copyright" content="© 1999-2020 《女聲》電子報。《女聲》電子報保有所有權利。" />
|
||||
<meta name="keywords" content="著作權, 版權" />
|
||||
<meta name="generator" content="Selima 3.10" />
|
||||
<link rel="start" type="application/xhtml+xml" href="." />
|
||||
<link rel="copyright" type="application/xhtml+xml" href="copying.html" />
|
||||
<link rel="author" href="mailto:editors@mail.wov.idv.tw" />
|
||||
<link rel="search" type="application/xhtml+xml" href="cgi-bin/search.cgi" />
|
||||
<link rel="up" type="application/xhtml+xml" href="." />
|
||||
<link rel="stylesheet" type="text/css" href="stylesheets/common.css" />
|
||||
<link rel="shortcut icon" type="image/x-icon" href="favicon.ico" />
|
||||
<title>女聲著作權聲明</title>
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<div id="topofpage" class="skiptobody">
|
||||
<a accesskey="2" href="#body">跳到網頁內文區。</a>
|
||||
</div>
|
||||
|
||||
|
||||
<div id="nav" class="nav" title="導覽連結區">
|
||||
<div class="accessguide"><a accesskey="L"
|
||||
href="#nav" title="導覽連結區">:::</a></div>
|
||||
|
||||
<form action="cgi-bin/search.cgi" method="get" accept-charset="UTF-8">
|
||||
<div class="navibar">
|
||||
<span><a href="newsletters/">閱讀女聲</a></span> |
|
||||
<span><a href="subscribe.html">訂閱女聲</a></span> |
|
||||
<span><a href="cgi-bin/guestbook.cgi">妳的女聲</a></span> |
|
||||
<span><a href="links/">女網牽手</a></span> |
|
||||
<span><a accesskey="1" href=".">回首頁</a></span> |
|
||||
<span><a href="mailto:editors@mail.wov.idv.tw">寫信給女聲</a></span> |
|
||||
<label for="navquery">檢索:</label><input
|
||||
id="navquery" class="text" type="text" name="query" value="" /><input
|
||||
type="hidden" name="charset" value="UTF-8" /><input
|
||||
type="submit" value="搜尋" />
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
<hr />
|
||||
|
||||
<div id="body" class="body" title="網頁內文區">
|
||||
<div class="accessguide"><a accesskey="C"
|
||||
href="#body" title="網頁內文區">:::</a></div>
|
||||
|
||||
<div class="title">
|
||||
<img src="images/logo"
|
||||
alt="女聲 LOGO" title="女聲 Woman's Voice" />
|
||||
<h1>女聲著作權聲明</h1>
|
||||
<h1 class="en" xml:lang="en-us">Authority Announcement</h1>
|
||||
</div>
|
||||
|
||||
<dl>
|
||||
<dt>女聲著作權聲明</dt>
|
||||
|
||||
<dd>
|
||||
<p>《女聲》電子報除網站留言板外,內文版權所有,歡迎轉載。唯請遵守以下事項:</p>
|
||||
|
||||
<ol>
|
||||
<li><em>必須</em>以下列格式,註明原作者及出處網址:
|
||||
<pre>作者: [作者名] , [完整網址]</pre>
|
||||
</li>
|
||||
|
||||
<li>請註明原作者及出處。</li>
|
||||
|
||||
<li>不得作任何更動、添增、刪改。</li>
|
||||
|
||||
<li>欲作商業或學術轉載(含論文發表、媒體報導、書刊出版)請事先取得我們同意。</li>
|
||||
|
||||
<li>《女聲》網站留言板所有留言著作權與《女聲》電子報無關,另以留言板著作權聲明為準。</li>
|
||||
</ol>
|
||||
</dd>
|
||||
|
||||
<dt>女聲留言板著作權聲明</dt>
|
||||
|
||||
<dd>
|
||||
<p>《女聲》網站留言板所有留言版權屬各留言人所有,與《女聲》電子報無關。《女聲》著作權聲明不適用於留言板留言。欲轉載、引用任何留言板留言,請事先取得各留言人之同意。若留言人未留任何聯絡資料,一律禁止任何轉載、引用。</p>
|
||||
</dd>
|
||||
</dl>
|
||||
|
||||
</div>
|
||||
|
||||
<hr />
|
||||
<div id="footer" class="footer" title="頁尾區">
|
||||
|
||||
<div>
|
||||
<a href="." title="女聲電子報網站"><img
|
||||
src="images/icon" alt="女聲" /></a>|<a
|
||||
href="https://www.imacat.idv.tw/"
|
||||
title="往旅舍依瑪網站"><img
|
||||
src="https://www.imacat.idv.tw/images/icon"
|
||||
alt="歡迎光臨旅舍依瑪" /></a>
|
||||
</div>
|
||||
|
||||
<div>
|
||||
<a href="http://www.w3.org/Style/CSS/Buttons/"
|
||||
title="CSS 樣式表說明" hreflang="en"><img
|
||||
src="images/w3c/mwcts" alt="以 CSS 樣式表製作" /></a>|<a
|
||||
href="http://html-validator.imacat.idv.tw/check/referer"
|
||||
title="本頁的 HTML 驗證結果" hreflang="en"><img
|
||||
src="images/w3c/vxhtml11" alt="XHTML 1.1 正確!" /></a>|<a
|
||||
href="http://jigsaw.w3.org/css-validator/check/referer"
|
||||
title="本頁的 CSS 驗證結果" hreflang="en"><img
|
||||
src="images/w3c/vcss" alt="CSS 正確!" /></a>|<a
|
||||
href="http://www.w3.org/WAI/WCAG1AAA-Conformance"
|
||||
title="無障礙三 A 級標準說明" hreflang="en"><img
|
||||
src="images/w3c/wcag1AAA"
|
||||
alt="W3C 無障礙網頁規範 1.0 三 A 級標準標章" /></a>
|
||||
<p>本頁符合 <a href="http://www.w3.org/TR/xhtml11/" hreflang="en"><abbr
|
||||
title="Extensible HyperText Markup Language">XHTML</abbr> 1.1</a> /
|
||||
<a href="http://www.w3.org/TR/CSS21/" hreflang="en"><abbr
|
||||
title="Cascading Style Sheets">CSS</abbr> 2.1</a> /
|
||||
<a href="http://www.w3.org/TR/WAI-WEBCONTENT/"
|
||||
hreflang="en">無障礙網頁規範 1.0</a> 三 A 級標準</p>
|
||||
</div>
|
||||
|
||||
<div>
|
||||
<p>《女聲》電子報著作權所有,欲轉載引用請先閱讀<a href="copying.html">著作權聲明</a></p>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
</body>
|
||||
</html>
|
||||
BIN
htdocs/wov/data/gender_law_idv.doc
Normal file
BIN
htdocs/wov/data/gender_law_org.doc
Normal file
BIN
htdocs/wov/data/wovs.zip
Normal file
1
htdocs/wov/errors/301.html.html
Symbolic link
@@ -0,0 +1 @@
|
||||
301.html.xhtml
|
||||
105
htdocs/wov/errors/301.html.xhtml
Normal file
@@ -0,0 +1,105 @@
|
||||
<?xml version="1.0" encoding="UTF-8" ?>
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
|
||||
"http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
|
||||
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="zh-tw">
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="application/xhtml+xml; charset=UTF-8" />
|
||||
<meta http-equiv="Content-Style-Type" content="text/css" />
|
||||
<meta http-equiv="Content-Script-Type" content="text/javascript" />
|
||||
<meta name="author" content="小招, 依瑪貓" />
|
||||
<meta name="copyright" content="© 1999-2020 《女聲》電子報。《女聲》電子報保有所有權利。" />
|
||||
<meta name="keywords" content="網址已遷" />
|
||||
<meta name="generator" content="Selima 3.10" />
|
||||
<link rel="start" type="application/xhtml+xml" href="/" />
|
||||
<link rel="copyright" type="application/xhtml+xml" href="/copying.html" />
|
||||
<link rel="author" href="mailto:editors@mail.wov.idv.tw" />
|
||||
<link rel="search" type="application/xhtml+xml" href="/cgi-bin/search.cgi" />
|
||||
<link rel="stylesheet" type="text/css" href="/stylesheets/common.css" />
|
||||
<link rel="shortcut icon" type="image/x-icon" href="/favicon.ico" />
|
||||
<title>HTTP 301 網址已遷</title>
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<div id="topofpage" class="skiptobody">
|
||||
<a accesskey="2" href="#body">跳到網頁內文區。</a>
|
||||
</div>
|
||||
|
||||
|
||||
<div id="nav" class="nav" title="導覽連結區">
|
||||
<div class="accessguide"><a accesskey="L"
|
||||
href="#nav" title="導覽連結區">:::</a></div>
|
||||
|
||||
<form action="/cgi-bin/search.cgi" method="get" accept-charset="UTF-8">
|
||||
<div class="navibar">
|
||||
<span><a href="/newsletters/">閱讀女聲</a></span> |
|
||||
<span><a href="/subscribe.html">訂閱女聲</a></span> |
|
||||
<span><a href="/cgi-bin/guestbook.cgi">妳的女聲</a></span> |
|
||||
<span><a href="/links/">女網牽手</a></span> |
|
||||
<span><a accesskey="1" href="/">回首頁</a></span> |
|
||||
<span><a href="mailto:editors@mail.wov.idv.tw">寫信給女聲</a></span> |
|
||||
<label for="navquery">檢索:</label><input
|
||||
id="navquery" class="text" type="text" name="query" value="" /><input
|
||||
type="hidden" name="charset" value="UTF-8" /><input
|
||||
type="submit" value="搜尋" />
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
<hr />
|
||||
|
||||
<div id="body" class="body" title="網頁內文區">
|
||||
<div class="accessguide"><a accesskey="C"
|
||||
href="#body" title="網頁內文區">:::</a></div>
|
||||
|
||||
<div class="title">
|
||||
<img src="/images/logo"
|
||||
alt="女聲 LOGO" title="女聲 Woman's Voice" />
|
||||
<h1><abbr title="HyperText Transfer Protocol">HTTP</abbr> 301 網址已遷</h1>
|
||||
<h1 class="en" xml:lang="en-us">Moved Permanently</h1>
|
||||
</div>
|
||||
|
||||
<p>本頁已遷址,日後請更新妳的書籤或妳的最愛,並改往<a href="$url">新址</a>。</p>
|
||||
|
||||
</div>
|
||||
|
||||
<hr />
|
||||
<div id="footer" class="footer" title="頁尾區">
|
||||
|
||||
<div>
|
||||
<a href="/" title="女聲電子報網站"><img
|
||||
src="/images/icon" alt="女聲" /></a>|<a
|
||||
href="https://www.imacat.idv.tw/"
|
||||
title="往旅舍依瑪網站"><img
|
||||
src="https://www.imacat.idv.tw/images/icon"
|
||||
alt="歡迎光臨旅舍依瑪" /></a>
|
||||
</div>
|
||||
|
||||
<div>
|
||||
<a href="http://www.w3.org/Style/CSS/Buttons/"
|
||||
title="CSS 樣式表說明" hreflang="en"><img
|
||||
src="/images/w3c/mwcts" alt="以 CSS 樣式表製作" /></a>|<a
|
||||
href="http://html-validator.imacat.idv.tw/check/referer"
|
||||
title="本頁的 HTML 驗證結果" hreflang="en"><img
|
||||
src="/images/w3c/vxhtml11" alt="XHTML 1.1 正確!" /></a>|<a
|
||||
href="http://jigsaw.w3.org/css-validator/check/referer"
|
||||
title="本頁的 CSS 驗證結果" hreflang="en"><img
|
||||
src="/images/w3c/vcss" alt="CSS 正確!" /></a>|<a
|
||||
href="http://www.w3.org/WAI/WCAG1AAA-Conformance"
|
||||
title="無障礙三 A 級標準說明" hreflang="en"><img
|
||||
src="/images/w3c/wcag1AAA"
|
||||
alt="W3C 無障礙網頁規範 1.0 三 A 級標準標章" /></a>
|
||||
<p>本頁符合 <a href="http://www.w3.org/TR/xhtml11/" hreflang="en"><abbr
|
||||
title="Extensible HyperText Markup Language">XHTML</abbr> 1.1</a> /
|
||||
<a href="http://www.w3.org/TR/CSS21/" hreflang="en"><abbr
|
||||
title="Cascading Style Sheets">CSS</abbr> 2.1</a> /
|
||||
<a href="http://www.w3.org/TR/WAI-WEBCONTENT/"
|
||||
hreflang="en">無障礙網頁規範 1.0</a> 三 A 級標準</p>
|
||||
</div>
|
||||
|
||||
<div>
|
||||
<p>《女聲》電子報著作權所有,欲轉載引用請先閱讀<a href="/copying.html">著作權聲明</a></p>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
</body>
|
||||
</html>
|
||||
1
htdocs/wov/errors/303.html.html
Symbolic link
@@ -0,0 +1 @@
|
||||
303.html.xhtml
|
||||
105
htdocs/wov/errors/303.html.xhtml
Normal file
@@ -0,0 +1,105 @@
|
||||
<?xml version="1.0" encoding="UTF-8" ?>
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
|
||||
"http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
|
||||
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="zh-tw">
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="application/xhtml+xml; charset=UTF-8" />
|
||||
<meta http-equiv="Content-Style-Type" content="text/css" />
|
||||
<meta http-equiv="Content-Script-Type" content="text/javascript" />
|
||||
<meta name="author" content="小招, 依瑪貓" />
|
||||
<meta name="copyright" content="© 1999-2020 《女聲》電子報。《女聲》電子報保有所有權利。" />
|
||||
<meta name="keywords" content="續往下址" />
|
||||
<meta name="generator" content="Selima 3.10" />
|
||||
<link rel="start" type="application/xhtml+xml" href="/" />
|
||||
<link rel="copyright" type="application/xhtml+xml" href="/copying.html" />
|
||||
<link rel="author" href="mailto:editors@mail.wov.idv.tw" />
|
||||
<link rel="search" type="application/xhtml+xml" href="/cgi-bin/search.cgi" />
|
||||
<link rel="stylesheet" type="text/css" href="/stylesheets/common.css" />
|
||||
<link rel="shortcut icon" type="image/x-icon" href="/favicon.ico" />
|
||||
<title>HTTP 303 續往下址</title>
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<div id="topofpage" class="skiptobody">
|
||||
<a accesskey="2" href="#body">跳到網頁內文區。</a>
|
||||
</div>
|
||||
|
||||
|
||||
<div id="nav" class="nav" title="導覽連結區">
|
||||
<div class="accessguide"><a accesskey="L"
|
||||
href="#nav" title="導覽連結區">:::</a></div>
|
||||
|
||||
<form action="/cgi-bin/search.cgi" method="get" accept-charset="UTF-8">
|
||||
<div class="navibar">
|
||||
<span><a href="/newsletters/">閱讀女聲</a></span> |
|
||||
<span><a href="/subscribe.html">訂閱女聲</a></span> |
|
||||
<span><a href="/cgi-bin/guestbook.cgi">妳的女聲</a></span> |
|
||||
<span><a href="/links/">女網牽手</a></span> |
|
||||
<span><a accesskey="1" href="/">回首頁</a></span> |
|
||||
<span><a href="mailto:editors@mail.wov.idv.tw">寫信給女聲</a></span> |
|
||||
<label for="navquery">檢索:</label><input
|
||||
id="navquery" class="text" type="text" name="query" value="" /><input
|
||||
type="hidden" name="charset" value="UTF-8" /><input
|
||||
type="submit" value="搜尋" />
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
<hr />
|
||||
|
||||
<div id="body" class="body" title="網頁內文區">
|
||||
<div class="accessguide"><a accesskey="C"
|
||||
href="#body" title="網頁內文區">:::</a></div>
|
||||
|
||||
<div class="title">
|
||||
<img src="/images/logo"
|
||||
alt="女聲 LOGO" title="女聲 Woman's Voice" />
|
||||
<h1><abbr title="HyperText Transfer Protocol">HTTP</abbr> 303 續往下址</h1>
|
||||
<h1 class="en" xml:lang="en-us">See Other</h1>
|
||||
</div>
|
||||
|
||||
<p>請續往<a href="$url">後續的網址</a>。</p>
|
||||
|
||||
</div>
|
||||
|
||||
<hr />
|
||||
<div id="footer" class="footer" title="頁尾區">
|
||||
|
||||
<div>
|
||||
<a href="/" title="女聲電子報網站"><img
|
||||
src="/images/icon" alt="女聲" /></a>|<a
|
||||
href="https://www.imacat.idv.tw/"
|
||||
title="往旅舍依瑪網站"><img
|
||||
src="https://www.imacat.idv.tw/images/icon"
|
||||
alt="歡迎光臨旅舍依瑪" /></a>
|
||||
</div>
|
||||
|
||||
<div>
|
||||
<a href="http://www.w3.org/Style/CSS/Buttons/"
|
||||
title="CSS 樣式表說明" hreflang="en"><img
|
||||
src="/images/w3c/mwcts" alt="以 CSS 樣式表製作" /></a>|<a
|
||||
href="http://html-validator.imacat.idv.tw/check/referer"
|
||||
title="本頁的 HTML 驗證結果" hreflang="en"><img
|
||||
src="/images/w3c/vxhtml11" alt="XHTML 1.1 正確!" /></a>|<a
|
||||
href="http://jigsaw.w3.org/css-validator/check/referer"
|
||||
title="本頁的 CSS 驗證結果" hreflang="en"><img
|
||||
src="/images/w3c/vcss" alt="CSS 正確!" /></a>|<a
|
||||
href="http://www.w3.org/WAI/WCAG1AAA-Conformance"
|
||||
title="無障礙三 A 級標準說明" hreflang="en"><img
|
||||
src="/images/w3c/wcag1AAA"
|
||||
alt="W3C 無障礙網頁規範 1.0 三 A 級標準標章" /></a>
|
||||
<p>本頁符合 <a href="http://www.w3.org/TR/xhtml11/" hreflang="en"><abbr
|
||||
title="Extensible HyperText Markup Language">XHTML</abbr> 1.1</a> /
|
||||
<a href="http://www.w3.org/TR/CSS21/" hreflang="en"><abbr
|
||||
title="Cascading Style Sheets">CSS</abbr> 2.1</a> /
|
||||
<a href="http://www.w3.org/TR/WAI-WEBCONTENT/"
|
||||
hreflang="en">無障礙網頁規範 1.0</a> 三 A 級標準</p>
|
||||
</div>
|
||||
|
||||
<div>
|
||||
<p>《女聲》電子報著作權所有,欲轉載引用請先閱讀<a href="/copying.html">著作權聲明</a></p>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
</body>
|
||||
</html>
|
||||
1
htdocs/wov/errors/307.html.html
Symbolic link
@@ -0,0 +1 @@
|
||||
307.html.xhtml
|
||||
105
htdocs/wov/errors/307.html.xhtml
Normal file
@@ -0,0 +1,105 @@
|
||||
<?xml version="1.0" encoding="UTF-8" ?>
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
|
||||
"http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
|
||||
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="zh-tw">
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="application/xhtml+xml; charset=UTF-8" />
|
||||
<meta http-equiv="Content-Style-Type" content="text/css" />
|
||||
<meta http-equiv="Content-Script-Type" content="text/javascript" />
|
||||
<meta name="author" content="小招, 依瑪貓" />
|
||||
<meta name="copyright" content="© 1999-2020 《女聲》電子報。《女聲》電子報保有所有權利。" />
|
||||
<meta name="keywords" content="網址暫移" />
|
||||
<meta name="generator" content="Selima 3.10" />
|
||||
<link rel="start" type="application/xhtml+xml" href="/" />
|
||||
<link rel="copyright" type="application/xhtml+xml" href="/copying.html" />
|
||||
<link rel="author" href="mailto:editors@mail.wov.idv.tw" />
|
||||
<link rel="search" type="application/xhtml+xml" href="/cgi-bin/search.cgi" />
|
||||
<link rel="stylesheet" type="text/css" href="/stylesheets/common.css" />
|
||||
<link rel="shortcut icon" type="image/x-icon" href="/favicon.ico" />
|
||||
<title>HTTP 307 網址暫移</title>
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<div id="topofpage" class="skiptobody">
|
||||
<a accesskey="2" href="#body">跳到網頁內文區。</a>
|
||||
</div>
|
||||
|
||||
|
||||
<div id="nav" class="nav" title="導覽連結區">
|
||||
<div class="accessguide"><a accesskey="L"
|
||||
href="#nav" title="導覽連結區">:::</a></div>
|
||||
|
||||
<form action="/cgi-bin/search.cgi" method="get" accept-charset="UTF-8">
|
||||
<div class="navibar">
|
||||
<span><a href="/newsletters/">閱讀女聲</a></span> |
|
||||
<span><a href="/subscribe.html">訂閱女聲</a></span> |
|
||||
<span><a href="/cgi-bin/guestbook.cgi">妳的女聲</a></span> |
|
||||
<span><a href="/links/">女網牽手</a></span> |
|
||||
<span><a accesskey="1" href="/">回首頁</a></span> |
|
||||
<span><a href="mailto:editors@mail.wov.idv.tw">寫信給女聲</a></span> |
|
||||
<label for="navquery">檢索:</label><input
|
||||
id="navquery" class="text" type="text" name="query" value="" /><input
|
||||
type="hidden" name="charset" value="UTF-8" /><input
|
||||
type="submit" value="搜尋" />
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
<hr />
|
||||
|
||||
<div id="body" class="body" title="網頁內文區">
|
||||
<div class="accessguide"><a accesskey="C"
|
||||
href="#body" title="網頁內文區">:::</a></div>
|
||||
|
||||
<div class="title">
|
||||
<img src="/images/logo"
|
||||
alt="女聲 LOGO" title="女聲 Woman's Voice" />
|
||||
<h1><abbr title="HyperText Transfer Protocol">HTTP</abbr> 307 網址暫移</h1>
|
||||
<h1 class="en" xml:lang="en-us">Temporary Redirect</h1>
|
||||
</div>
|
||||
|
||||
<p>請參閱本頁<a href="$url">目前的網址</a>。</p>
|
||||
|
||||
</div>
|
||||
|
||||
<hr />
|
||||
<div id="footer" class="footer" title="頁尾區">
|
||||
|
||||
<div>
|
||||
<a href="/" title="女聲電子報網站"><img
|
||||
src="/images/icon" alt="女聲" /></a>|<a
|
||||
href="https://www.imacat.idv.tw/"
|
||||
title="往旅舍依瑪網站"><img
|
||||
src="https://www.imacat.idv.tw/images/icon"
|
||||
alt="歡迎光臨旅舍依瑪" /></a>
|
||||
</div>
|
||||
|
||||
<div>
|
||||
<a href="http://www.w3.org/Style/CSS/Buttons/"
|
||||
title="CSS 樣式表說明" hreflang="en"><img
|
||||
src="/images/w3c/mwcts" alt="以 CSS 樣式表製作" /></a>|<a
|
||||
href="http://html-validator.imacat.idv.tw/check/referer"
|
||||
title="本頁的 HTML 驗證結果" hreflang="en"><img
|
||||
src="/images/w3c/vxhtml11" alt="XHTML 1.1 正確!" /></a>|<a
|
||||
href="http://jigsaw.w3.org/css-validator/check/referer"
|
||||
title="本頁的 CSS 驗證結果" hreflang="en"><img
|
||||
src="/images/w3c/vcss" alt="CSS 正確!" /></a>|<a
|
||||
href="http://www.w3.org/WAI/WCAG1AAA-Conformance"
|
||||
title="無障礙三 A 級標準說明" hreflang="en"><img
|
||||
src="/images/w3c/wcag1AAA"
|
||||
alt="W3C 無障礙網頁規範 1.0 三 A 級標準標章" /></a>
|
||||
<p>本頁符合 <a href="http://www.w3.org/TR/xhtml11/" hreflang="en"><abbr
|
||||
title="Extensible HyperText Markup Language">XHTML</abbr> 1.1</a> /
|
||||
<a href="http://www.w3.org/TR/CSS21/" hreflang="en"><abbr
|
||||
title="Cascading Style Sheets">CSS</abbr> 2.1</a> /
|
||||
<a href="http://www.w3.org/TR/WAI-WEBCONTENT/"
|
||||
hreflang="en">無障礙網頁規範 1.0</a> 三 A 級標準</p>
|
||||
</div>
|
||||
|
||||
<div>
|
||||
<p>《女聲》電子報著作權所有,欲轉載引用請先閱讀<a href="/copying.html">著作權聲明</a></p>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
</body>
|
||||
</html>
|
||||
1
htdocs/wov/errors/400.html.html
Symbolic link
@@ -0,0 +1 @@
|
||||
400.html.xhtml
|
||||
109
htdocs/wov/errors/400.html.xhtml
Normal file
@@ -0,0 +1,109 @@
|
||||
<?xml version="1.0" encoding="UTF-8" ?>
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
|
||||
"http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
|
||||
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="zh-tw">
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="application/xhtml+xml; charset=UTF-8" />
|
||||
<meta http-equiv="Content-Style-Type" content="text/css" />
|
||||
<meta http-equiv="Content-Script-Type" content="text/javascript" />
|
||||
<meta name="author" content="小招, 依瑪貓" />
|
||||
<meta name="copyright" content="© 1999-2020 《女聲》電子報。《女聲》電子報保有所有權利。" />
|
||||
<meta name="keywords" content="語法錯誤" />
|
||||
<meta name="generator" content="Selima 3.10" />
|
||||
<link rel="start" type="application/xhtml+xml" href="/" />
|
||||
<link rel="copyright" type="application/xhtml+xml" href="/copying.html" />
|
||||
<link rel="author" href="mailto:editors@mail.wov.idv.tw" />
|
||||
<link rel="search" type="application/xhtml+xml" href="/cgi-bin/search.cgi" />
|
||||
<link rel="stylesheet" type="text/css" href="/stylesheets/common.css" />
|
||||
<link rel="shortcut icon" type="image/x-icon" href="/favicon.ico" />
|
||||
<title>HTTP 400 語法錯誤</title>
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<div id="topofpage" class="skiptobody">
|
||||
<a accesskey="2" href="#body">跳到網頁內文區。</a>
|
||||
</div>
|
||||
|
||||
|
||||
<div id="nav" class="nav" title="導覽連結區">
|
||||
<div class="accessguide"><a accesskey="L"
|
||||
href="#nav" title="導覽連結區">:::</a></div>
|
||||
|
||||
<form action="/cgi-bin/search.cgi" method="get" accept-charset="UTF-8">
|
||||
<div class="navibar">
|
||||
<span><a href="/newsletters/">閱讀女聲</a></span> |
|
||||
<span><a href="/subscribe.html">訂閱女聲</a></span> |
|
||||
<span><a href="/cgi-bin/guestbook.cgi">妳的女聲</a></span> |
|
||||
<span><a href="/links/">女網牽手</a></span> |
|
||||
<span><a accesskey="1" href="/">回首頁</a></span> |
|
||||
<span><a href="mailto:editors@mail.wov.idv.tw">寫信給女聲</a></span> |
|
||||
<label for="navquery">檢索:</label><input
|
||||
id="navquery" class="text" type="text" name="query" value="" /><input
|
||||
type="hidden" name="charset" value="UTF-8" /><input
|
||||
type="submit" value="搜尋" />
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
<hr />
|
||||
|
||||
<div id="body" class="body" title="網頁內文區">
|
||||
<div class="accessguide"><a accesskey="C"
|
||||
href="#body" title="網頁內文區">:::</a></div>
|
||||
|
||||
<div class="title">
|
||||
<img src="/images/logo"
|
||||
alt="女聲 LOGO" title="女聲 Woman's Voice" />
|
||||
<h1><abbr title="HyperText Transfer Protocol">HTTP</abbr> 400 語法錯誤</h1>
|
||||
<h1 class="en" xml:lang="en-us">Bad Request</h1>
|
||||
</div>
|
||||
|
||||
<!-- errmsg -->
|
||||
|
||||
<p>很抱歉,妳的要求語法錯誤,網站看不懂妳的要求。這可能是瀏覽器的問題,或妳輸入的網址有筆誤。請更正妳的筆誤,或請回<a href="/">《女聲》電子報首頁</a>重新瀏覽。</p>
|
||||
|
||||
<p>若有任何問題,請<a href="mailto:editors@mail.wov.idv.tw">來信告訴我們</a>。</p>
|
||||
|
||||
</div>
|
||||
|
||||
<hr />
|
||||
<div id="footer" class="footer" title="頁尾區">
|
||||
|
||||
<div>
|
||||
<a href="/" title="女聲電子報網站"><img
|
||||
src="/images/icon" alt="女聲" /></a>|<a
|
||||
href="https://www.imacat.idv.tw/"
|
||||
title="往旅舍依瑪網站"><img
|
||||
src="https://www.imacat.idv.tw/images/icon"
|
||||
alt="歡迎光臨旅舍依瑪" /></a>
|
||||
</div>
|
||||
|
||||
<div>
|
||||
<a href="http://www.w3.org/Style/CSS/Buttons/"
|
||||
title="CSS 樣式表說明" hreflang="en"><img
|
||||
src="/images/w3c/mwcts" alt="以 CSS 樣式表製作" /></a>|<a
|
||||
href="http://html-validator.imacat.idv.tw/check/referer"
|
||||
title="本頁的 HTML 驗證結果" hreflang="en"><img
|
||||
src="/images/w3c/vxhtml11" alt="XHTML 1.1 正確!" /></a>|<a
|
||||
href="http://jigsaw.w3.org/css-validator/check/referer"
|
||||
title="本頁的 CSS 驗證結果" hreflang="en"><img
|
||||
src="/images/w3c/vcss" alt="CSS 正確!" /></a>|<a
|
||||
href="http://www.w3.org/WAI/WCAG1AAA-Conformance"
|
||||
title="無障礙三 A 級標準說明" hreflang="en"><img
|
||||
src="/images/w3c/wcag1AAA"
|
||||
alt="W3C 無障礙網頁規範 1.0 三 A 級標準標章" /></a>
|
||||
<p>本頁符合 <a href="http://www.w3.org/TR/xhtml11/" hreflang="en"><abbr
|
||||
title="Extensible HyperText Markup Language">XHTML</abbr> 1.1</a> /
|
||||
<a href="http://www.w3.org/TR/CSS21/" hreflang="en"><abbr
|
||||
title="Cascading Style Sheets">CSS</abbr> 2.1</a> /
|
||||
<a href="http://www.w3.org/TR/WAI-WEBCONTENT/"
|
||||
hreflang="en">無障礙網頁規範 1.0</a> 三 A 級標準</p>
|
||||
</div>
|
||||
|
||||
<div>
|
||||
<p>《女聲》電子報著作權所有,欲轉載引用請先閱讀<a href="/copying.html">著作權聲明</a></p>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
</body>
|
||||
</html>
|
||||
1
htdocs/wov/errors/401.html.html
Symbolic link
@@ -0,0 +1 @@
|
||||
401.html.xhtml
|
||||
107
htdocs/wov/errors/401.html.xhtml
Normal file
@@ -0,0 +1,107 @@
|
||||
<?xml version="1.0" encoding="UTF-8" ?>
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
|
||||
"http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
|
||||
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="zh-tw">
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="application/xhtml+xml; charset=UTF-8" />
|
||||
<meta http-equiv="Content-Style-Type" content="text/css" />
|
||||
<meta http-equiv="Content-Script-Type" content="text/javascript" />
|
||||
<meta name="author" content="小招, 依瑪貓" />
|
||||
<meta name="copyright" content="© 1999-2020 《女聲》電子報。《女聲》電子報保有所有權利。" />
|
||||
<meta name="keywords" content="非請莫入" />
|
||||
<meta name="generator" content="Selima 3.10" />
|
||||
<link rel="start" type="application/xhtml+xml" href="/" />
|
||||
<link rel="copyright" type="application/xhtml+xml" href="/copying.html" />
|
||||
<link rel="author" href="mailto:editors@mail.wov.idv.tw" />
|
||||
<link rel="search" type="application/xhtml+xml" href="/cgi-bin/search.cgi" />
|
||||
<link rel="stylesheet" type="text/css" href="/stylesheets/common.css" />
|
||||
<link rel="shortcut icon" type="image/x-icon" href="/favicon.ico" />
|
||||
<title>HTTP 401 非請莫入</title>
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<div id="topofpage" class="skiptobody">
|
||||
<a accesskey="2" href="#body">跳到網頁內文區。</a>
|
||||
</div>
|
||||
|
||||
|
||||
<div id="nav" class="nav" title="導覽連結區">
|
||||
<div class="accessguide"><a accesskey="L"
|
||||
href="#nav" title="導覽連結區">:::</a></div>
|
||||
|
||||
<form action="/cgi-bin/search.cgi" method="get" accept-charset="UTF-8">
|
||||
<div class="navibar">
|
||||
<span><a href="/newsletters/">閱讀女聲</a></span> |
|
||||
<span><a href="/subscribe.html">訂閱女聲</a></span> |
|
||||
<span><a href="/cgi-bin/guestbook.cgi">妳的女聲</a></span> |
|
||||
<span><a href="/links/">女網牽手</a></span> |
|
||||
<span><a accesskey="1" href="/">回首頁</a></span> |
|
||||
<span><a href="mailto:editors@mail.wov.idv.tw">寫信給女聲</a></span> |
|
||||
<label for="navquery">檢索:</label><input
|
||||
id="navquery" class="text" type="text" name="query" value="" /><input
|
||||
type="hidden" name="charset" value="UTF-8" /><input
|
||||
type="submit" value="搜尋" />
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
<hr />
|
||||
|
||||
<div id="body" class="body" title="網頁內文區">
|
||||
<div class="accessguide"><a accesskey="C"
|
||||
href="#body" title="網頁內文區">:::</a></div>
|
||||
|
||||
<div class="title">
|
||||
<img src="/images/logo"
|
||||
alt="女聲 LOGO" title="女聲 Woman's Voice" />
|
||||
<h1><abbr title="HyperText Transfer Protocol">HTTP</abbr> 401 非請莫入</h1>
|
||||
<h1 class="en" xml:lang="en-us">Unauthorized</h1>
|
||||
</div>
|
||||
|
||||
<p>很抱歉,本頁非請莫入,請回<a href="/">《女聲》電子報首頁</a>重新瀏覽。</p>
|
||||
|
||||
<p>若有任何問題,請<a href="mailto:editors@mail.wov.idv.tw">來信告訴我們</a>。</p>
|
||||
|
||||
</div>
|
||||
|
||||
<hr />
|
||||
<div id="footer" class="footer" title="頁尾區">
|
||||
|
||||
<div>
|
||||
<a href="/" title="女聲電子報網站"><img
|
||||
src="/images/icon" alt="女聲" /></a>|<a
|
||||
href="https://www.imacat.idv.tw/"
|
||||
title="往旅舍依瑪網站"><img
|
||||
src="https://www.imacat.idv.tw/images/icon"
|
||||
alt="歡迎光臨旅舍依瑪" /></a>
|
||||
</div>
|
||||
|
||||
<div>
|
||||
<a href="http://www.w3.org/Style/CSS/Buttons/"
|
||||
title="CSS 樣式表說明" hreflang="en"><img
|
||||
src="/images/w3c/mwcts" alt="以 CSS 樣式表製作" /></a>|<a
|
||||
href="http://html-validator.imacat.idv.tw/check/referer"
|
||||
title="本頁的 HTML 驗證結果" hreflang="en"><img
|
||||
src="/images/w3c/vxhtml11" alt="XHTML 1.1 正確!" /></a>|<a
|
||||
href="http://jigsaw.w3.org/css-validator/check/referer"
|
||||
title="本頁的 CSS 驗證結果" hreflang="en"><img
|
||||
src="/images/w3c/vcss" alt="CSS 正確!" /></a>|<a
|
||||
href="http://www.w3.org/WAI/WCAG1AAA-Conformance"
|
||||
title="無障礙三 A 級標準說明" hreflang="en"><img
|
||||
src="/images/w3c/wcag1AAA"
|
||||
alt="W3C 無障礙網頁規範 1.0 三 A 級標準標章" /></a>
|
||||
<p>本頁符合 <a href="http://www.w3.org/TR/xhtml11/" hreflang="en"><abbr
|
||||
title="Extensible HyperText Markup Language">XHTML</abbr> 1.1</a> /
|
||||
<a href="http://www.w3.org/TR/CSS21/" hreflang="en"><abbr
|
||||
title="Cascading Style Sheets">CSS</abbr> 2.1</a> /
|
||||
<a href="http://www.w3.org/TR/WAI-WEBCONTENT/"
|
||||
hreflang="en">無障礙網頁規範 1.0</a> 三 A 級標準</p>
|
||||
</div>
|
||||
|
||||
<div>
|
||||
<p>《女聲》電子報著作權所有,欲轉載引用請先閱讀<a href="/copying.html">著作權聲明</a></p>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
</body>
|
||||
</html>
|
||||
1
htdocs/wov/errors/403.html.html
Symbolic link
@@ -0,0 +1 @@
|
||||
403.html.xhtml
|
||||
109
htdocs/wov/errors/403.html.xhtml
Normal file
@@ -0,0 +1,109 @@
|
||||
<?xml version="1.0" encoding="UTF-8" ?>
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
|
||||
"http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
|
||||
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="zh-tw">
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="application/xhtml+xml; charset=UTF-8" />
|
||||
<meta http-equiv="Content-Style-Type" content="text/css" />
|
||||
<meta http-equiv="Content-Script-Type" content="text/javascript" />
|
||||
<meta name="author" content="小招, 依瑪貓" />
|
||||
<meta name="copyright" content="© 1999-2020 《女聲》電子報。《女聲》電子報保有所有權利。" />
|
||||
<meta name="keywords" content="禁止進入" />
|
||||
<meta name="generator" content="Selima 3.10" />
|
||||
<link rel="start" type="application/xhtml+xml" href="/" />
|
||||
<link rel="copyright" type="application/xhtml+xml" href="/copying.html" />
|
||||
<link rel="author" href="mailto:editors@mail.wov.idv.tw" />
|
||||
<link rel="search" type="application/xhtml+xml" href="/cgi-bin/search.cgi" />
|
||||
<link rel="stylesheet" type="text/css" href="/stylesheets/common.css" />
|
||||
<link rel="shortcut icon" type="image/x-icon" href="/favicon.ico" />
|
||||
<title>HTTP 403 禁止進入</title>
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<div id="topofpage" class="skiptobody">
|
||||
<a accesskey="2" href="#body">跳到網頁內文區。</a>
|
||||
</div>
|
||||
|
||||
|
||||
<div id="nav" class="nav" title="導覽連結區">
|
||||
<div class="accessguide"><a accesskey="L"
|
||||
href="#nav" title="導覽連結區">:::</a></div>
|
||||
|
||||
<form action="/cgi-bin/search.cgi" method="get" accept-charset="UTF-8">
|
||||
<div class="navibar">
|
||||
<span><a href="/newsletters/">閱讀女聲</a></span> |
|
||||
<span><a href="/subscribe.html">訂閱女聲</a></span> |
|
||||
<span><a href="/cgi-bin/guestbook.cgi">妳的女聲</a></span> |
|
||||
<span><a href="/links/">女網牽手</a></span> |
|
||||
<span><a accesskey="1" href="/">回首頁</a></span> |
|
||||
<span><a href="mailto:editors@mail.wov.idv.tw">寫信給女聲</a></span> |
|
||||
<label for="navquery">檢索:</label><input
|
||||
id="navquery" class="text" type="text" name="query" value="" /><input
|
||||
type="hidden" name="charset" value="UTF-8" /><input
|
||||
type="submit" value="搜尋" />
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
<hr />
|
||||
|
||||
<div id="body" class="body" title="網頁內文區">
|
||||
<div class="accessguide"><a accesskey="C"
|
||||
href="#body" title="網頁內文區">:::</a></div>
|
||||
|
||||
<div class="title">
|
||||
<img src="/images/logo"
|
||||
alt="女聲 LOGO" title="女聲 Woman's Voice" />
|
||||
<h1><abbr title="HyperText Transfer Protocol">HTTP</abbr> 403 禁止進入</h1>
|
||||
<h1 class="en" xml:lang="en-us">Forbidden</h1>
|
||||
</div>
|
||||
|
||||
<!-- errmsg -->
|
||||
|
||||
<p>很抱歉,本頁禁止進入,請回<a href="/">《女聲》電子報首頁</a>重新瀏覽。</p>
|
||||
|
||||
<p>若有任何問題,請<a href="mailto:editors@mail.wov.idv.tw">來信告訴我們</a>。</p>
|
||||
|
||||
</div>
|
||||
|
||||
<hr />
|
||||
<div id="footer" class="footer" title="頁尾區">
|
||||
|
||||
<div>
|
||||
<a href="/" title="女聲電子報網站"><img
|
||||
src="/images/icon" alt="女聲" /></a>|<a
|
||||
href="https://www.imacat.idv.tw/"
|
||||
title="往旅舍依瑪網站"><img
|
||||
src="https://www.imacat.idv.tw/images/icon"
|
||||
alt="歡迎光臨旅舍依瑪" /></a>
|
||||
</div>
|
||||
|
||||
<div>
|
||||
<a href="http://www.w3.org/Style/CSS/Buttons/"
|
||||
title="CSS 樣式表說明" hreflang="en"><img
|
||||
src="/images/w3c/mwcts" alt="以 CSS 樣式表製作" /></a>|<a
|
||||
href="http://html-validator.imacat.idv.tw/check/referer"
|
||||
title="本頁的 HTML 驗證結果" hreflang="en"><img
|
||||
src="/images/w3c/vxhtml11" alt="XHTML 1.1 正確!" /></a>|<a
|
||||
href="http://jigsaw.w3.org/css-validator/check/referer"
|
||||
title="本頁的 CSS 驗證結果" hreflang="en"><img
|
||||
src="/images/w3c/vcss" alt="CSS 正確!" /></a>|<a
|
||||
href="http://www.w3.org/WAI/WCAG1AAA-Conformance"
|
||||
title="無障礙三 A 級標準說明" hreflang="en"><img
|
||||
src="/images/w3c/wcag1AAA"
|
||||
alt="W3C 無障礙網頁規範 1.0 三 A 級標準標章" /></a>
|
||||
<p>本頁符合 <a href="http://www.w3.org/TR/xhtml11/" hreflang="en"><abbr
|
||||
title="Extensible HyperText Markup Language">XHTML</abbr> 1.1</a> /
|
||||
<a href="http://www.w3.org/TR/CSS21/" hreflang="en"><abbr
|
||||
title="Cascading Style Sheets">CSS</abbr> 2.1</a> /
|
||||
<a href="http://www.w3.org/TR/WAI-WEBCONTENT/"
|
||||
hreflang="en">無障礙網頁規範 1.0</a> 三 A 級標準</p>
|
||||
</div>
|
||||
|
||||
<div>
|
||||
<p>《女聲》電子報著作權所有,欲轉載引用請先閱讀<a href="/copying.html">著作權聲明</a></p>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
</body>
|
||||
</html>
|
||||
1
htdocs/wov/errors/404.html.html
Symbolic link
@@ -0,0 +1 @@
|
||||
404.html.xhtml
|
||||
107
htdocs/wov/errors/404.html.xhtml
Normal file
@@ -0,0 +1,107 @@
|
||||
<?xml version="1.0" encoding="UTF-8" ?>
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
|
||||
"http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
|
||||
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="zh-tw">
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="application/xhtml+xml; charset=UTF-8" />
|
||||
<meta http-equiv="Content-Style-Type" content="text/css" />
|
||||
<meta http-equiv="Content-Script-Type" content="text/javascript" />
|
||||
<meta name="author" content="小招, 依瑪貓" />
|
||||
<meta name="copyright" content="© 1999-2020 《女聲》電子報。《女聲》電子報保有所有權利。" />
|
||||
<meta name="keywords" content="找不到網頁" />
|
||||
<meta name="generator" content="Selima 3.10" />
|
||||
<link rel="start" type="application/xhtml+xml" href="/" />
|
||||
<link rel="copyright" type="application/xhtml+xml" href="/copying.html" />
|
||||
<link rel="author" href="mailto:editors@mail.wov.idv.tw" />
|
||||
<link rel="search" type="application/xhtml+xml" href="/cgi-bin/search.cgi" />
|
||||
<link rel="stylesheet" type="text/css" href="/stylesheets/common.css" />
|
||||
<link rel="shortcut icon" type="image/x-icon" href="/favicon.ico" />
|
||||
<title>HTTP 404 找不到網頁</title>
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<div id="topofpage" class="skiptobody">
|
||||
<a accesskey="2" href="#body">跳到網頁內文區。</a>
|
||||
</div>
|
||||
|
||||
|
||||
<div id="nav" class="nav" title="導覽連結區">
|
||||
<div class="accessguide"><a accesskey="L"
|
||||
href="#nav" title="導覽連結區">:::</a></div>
|
||||
|
||||
<form action="/cgi-bin/search.cgi" method="get" accept-charset="UTF-8">
|
||||
<div class="navibar">
|
||||
<span><a href="/newsletters/">閱讀女聲</a></span> |
|
||||
<span><a href="/subscribe.html">訂閱女聲</a></span> |
|
||||
<span><a href="/cgi-bin/guestbook.cgi">妳的女聲</a></span> |
|
||||
<span><a href="/links/">女網牽手</a></span> |
|
||||
<span><a accesskey="1" href="/">回首頁</a></span> |
|
||||
<span><a href="mailto:editors@mail.wov.idv.tw">寫信給女聲</a></span> |
|
||||
<label for="navquery">檢索:</label><input
|
||||
id="navquery" class="text" type="text" name="query" value="" /><input
|
||||
type="hidden" name="charset" value="UTF-8" /><input
|
||||
type="submit" value="搜尋" />
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
<hr />
|
||||
|
||||
<div id="body" class="body" title="網頁內文區">
|
||||
<div class="accessguide"><a accesskey="C"
|
||||
href="#body" title="網頁內文區">:::</a></div>
|
||||
|
||||
<div class="title">
|
||||
<img src="/images/logo"
|
||||
alt="女聲 LOGO" title="女聲 Woman's Voice" />
|
||||
<h1><abbr title="HyperText Transfer Protocol">HTTP</abbr> 404 找不到網頁</h1>
|
||||
<h1 class="en" xml:lang="en-us">Not Found</h1>
|
||||
</div>
|
||||
|
||||
<p>很抱歉,找不到妳想連的那一頁。請檢查妳的網址是否有誤。若妳是由其它地方連上這裡,請<a href="mailto:editors@mail.wov.idv.tw">來信告訴我們</a>。</p>
|
||||
|
||||
<p>妳可以回到<a href="/">《女聲》電子報首頁</a>重新瀏覽。</p>
|
||||
|
||||
</div>
|
||||
|
||||
<hr />
|
||||
<div id="footer" class="footer" title="頁尾區">
|
||||
|
||||
<div>
|
||||
<a href="/" title="女聲電子報網站"><img
|
||||
src="/images/icon" alt="女聲" /></a>|<a
|
||||
href="https://www.imacat.idv.tw/"
|
||||
title="往旅舍依瑪網站"><img
|
||||
src="https://www.imacat.idv.tw/images/icon"
|
||||
alt="歡迎光臨旅舍依瑪" /></a>
|
||||
</div>
|
||||
|
||||
<div>
|
||||
<a href="http://www.w3.org/Style/CSS/Buttons/"
|
||||
title="CSS 樣式表說明" hreflang="en"><img
|
||||
src="/images/w3c/mwcts" alt="以 CSS 樣式表製作" /></a>|<a
|
||||
href="http://html-validator.imacat.idv.tw/check/referer"
|
||||
title="本頁的 HTML 驗證結果" hreflang="en"><img
|
||||
src="/images/w3c/vxhtml11" alt="XHTML 1.1 正確!" /></a>|<a
|
||||
href="http://jigsaw.w3.org/css-validator/check/referer"
|
||||
title="本頁的 CSS 驗證結果" hreflang="en"><img
|
||||
src="/images/w3c/vcss" alt="CSS 正確!" /></a>|<a
|
||||
href="http://www.w3.org/WAI/WCAG1AAA-Conformance"
|
||||
title="無障礙三 A 級標準說明" hreflang="en"><img
|
||||
src="/images/w3c/wcag1AAA"
|
||||
alt="W3C 無障礙網頁規範 1.0 三 A 級標準標章" /></a>
|
||||
<p>本頁符合 <a href="http://www.w3.org/TR/xhtml11/" hreflang="en"><abbr
|
||||
title="Extensible HyperText Markup Language">XHTML</abbr> 1.1</a> /
|
||||
<a href="http://www.w3.org/TR/CSS21/" hreflang="en"><abbr
|
||||
title="Cascading Style Sheets">CSS</abbr> 2.1</a> /
|
||||
<a href="http://www.w3.org/TR/WAI-WEBCONTENT/"
|
||||
hreflang="en">無障礙網頁規範 1.0</a> 三 A 級標準</p>
|
||||
</div>
|
||||
|
||||
<div>
|
||||
<p>《女聲》電子報著作權所有,欲轉載引用請先閱讀<a href="/copying.html">著作權聲明</a></p>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
</body>
|
||||
</html>
|
||||
1
htdocs/wov/errors/405.html.html
Symbolic link
@@ -0,0 +1 @@
|
||||
405.html.xhtml
|
||||
107
htdocs/wov/errors/405.html.xhtml
Normal file
@@ -0,0 +1,107 @@
|
||||
<?xml version="1.0" encoding="UTF-8" ?>
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
|
||||
"http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
|
||||
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="zh-tw">
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="application/xhtml+xml; charset=UTF-8" />
|
||||
<meta http-equiv="Content-Style-Type" content="text/css" />
|
||||
<meta http-equiv="Content-Script-Type" content="text/javascript" />
|
||||
<meta name="author" content="小招, 依瑪貓" />
|
||||
<meta name="copyright" content="© 1999-2020 《女聲》電子報。《女聲》電子報保有所有權利。" />
|
||||
<meta name="keywords" content="要求方式無效" />
|
||||
<meta name="generator" content="Selima 3.10" />
|
||||
<link rel="start" type="application/xhtml+xml" href="/" />
|
||||
<link rel="copyright" type="application/xhtml+xml" href="/copying.html" />
|
||||
<link rel="author" href="mailto:editors@mail.wov.idv.tw" />
|
||||
<link rel="search" type="application/xhtml+xml" href="/cgi-bin/search.cgi" />
|
||||
<link rel="stylesheet" type="text/css" href="/stylesheets/common.css" />
|
||||
<link rel="shortcut icon" type="image/x-icon" href="/favicon.ico" />
|
||||
<title>HTTP 405 要求方式無效</title>
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<div id="topofpage" class="skiptobody">
|
||||
<a accesskey="2" href="#body">跳到網頁內文區。</a>
|
||||
</div>
|
||||
|
||||
|
||||
<div id="nav" class="nav" title="導覽連結區">
|
||||
<div class="accessguide"><a accesskey="L"
|
||||
href="#nav" title="導覽連結區">:::</a></div>
|
||||
|
||||
<form action="/cgi-bin/search.cgi" method="get" accept-charset="UTF-8">
|
||||
<div class="navibar">
|
||||
<span><a href="/newsletters/">閱讀女聲</a></span> |
|
||||
<span><a href="/subscribe.html">訂閱女聲</a></span> |
|
||||
<span><a href="/cgi-bin/guestbook.cgi">妳的女聲</a></span> |
|
||||
<span><a href="/links/">女網牽手</a></span> |
|
||||
<span><a accesskey="1" href="/">回首頁</a></span> |
|
||||
<span><a href="mailto:editors@mail.wov.idv.tw">寫信給女聲</a></span> |
|
||||
<label for="navquery">檢索:</label><input
|
||||
id="navquery" class="text" type="text" name="query" value="" /><input
|
||||
type="hidden" name="charset" value="UTF-8" /><input
|
||||
type="submit" value="搜尋" />
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
<hr />
|
||||
|
||||
<div id="body" class="body" title="網頁內文區">
|
||||
<div class="accessguide"><a accesskey="C"
|
||||
href="#body" title="網頁內文區">:::</a></div>
|
||||
|
||||
<div class="title">
|
||||
<img src="/images/logo"
|
||||
alt="女聲 LOGO" title="女聲 Woman's Voice" />
|
||||
<h1><abbr title="HyperText Transfer Protocol">HTTP</abbr> 405 要求方式無效</h1>
|
||||
<h1 class="en" xml:lang="en-us">Method Not Allowed</h1>
|
||||
</div>
|
||||
|
||||
<p>很抱歉,無法用這個方式連到此頁。請改用以下方式: $allowed 。</p>
|
||||
|
||||
<p>若有任何問題,請<a href="mailto:editors@mail.wov.idv.tw">來信告訴我們</a>。</p>
|
||||
|
||||
</div>
|
||||
|
||||
<hr />
|
||||
<div id="footer" class="footer" title="頁尾區">
|
||||
|
||||
<div>
|
||||
<a href="/" title="女聲電子報網站"><img
|
||||
src="/images/icon" alt="女聲" /></a>|<a
|
||||
href="https://www.imacat.idv.tw/"
|
||||
title="往旅舍依瑪網站"><img
|
||||
src="https://www.imacat.idv.tw/images/icon"
|
||||
alt="歡迎光臨旅舍依瑪" /></a>
|
||||
</div>
|
||||
|
||||
<div>
|
||||
<a href="http://www.w3.org/Style/CSS/Buttons/"
|
||||
title="CSS 樣式表說明" hreflang="en"><img
|
||||
src="/images/w3c/mwcts" alt="以 CSS 樣式表製作" /></a>|<a
|
||||
href="http://html-validator.imacat.idv.tw/check/referer"
|
||||
title="本頁的 HTML 驗證結果" hreflang="en"><img
|
||||
src="/images/w3c/vxhtml11" alt="XHTML 1.1 正確!" /></a>|<a
|
||||
href="http://jigsaw.w3.org/css-validator/check/referer"
|
||||
title="本頁的 CSS 驗證結果" hreflang="en"><img
|
||||
src="/images/w3c/vcss" alt="CSS 正確!" /></a>|<a
|
||||
href="http://www.w3.org/WAI/WCAG1AAA-Conformance"
|
||||
title="無障礙三 A 級標準說明" hreflang="en"><img
|
||||
src="/images/w3c/wcag1AAA"
|
||||
alt="W3C 無障礙網頁規範 1.0 三 A 級標準標章" /></a>
|
||||
<p>本頁符合 <a href="http://www.w3.org/TR/xhtml11/" hreflang="en"><abbr
|
||||
title="Extensible HyperText Markup Language">XHTML</abbr> 1.1</a> /
|
||||
<a href="http://www.w3.org/TR/CSS21/" hreflang="en"><abbr
|
||||
title="Cascading Style Sheets">CSS</abbr> 2.1</a> /
|
||||
<a href="http://www.w3.org/TR/WAI-WEBCONTENT/"
|
||||
hreflang="en">無障礙網頁規範 1.0</a> 三 A 級標準</p>
|
||||
</div>
|
||||
|
||||
<div>
|
||||
<p>《女聲》電子報著作權所有,欲轉載引用請先閱讀<a href="/copying.html">著作權聲明</a></p>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
</body>
|
||||
</html>
|
||||
1
htdocs/wov/errors/410.html.html
Symbolic link
@@ -0,0 +1 @@
|
||||
410.html.xhtml
|
||||
107
htdocs/wov/errors/410.html.xhtml
Normal file
@@ -0,0 +1,107 @@
|
||||
<?xml version="1.0" encoding="UTF-8" ?>
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
|
||||
"http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
|
||||
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="zh-tw">
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="application/xhtml+xml; charset=UTF-8" />
|
||||
<meta http-equiv="Content-Style-Type" content="text/css" />
|
||||
<meta http-equiv="Content-Script-Type" content="text/javascript" />
|
||||
<meta name="author" content="小招, 依瑪貓" />
|
||||
<meta name="copyright" content="© 1999-2020 《女聲》電子報。《女聲》電子報保有所有權利。" />
|
||||
<meta name="keywords" content="已刪除, HTTP 410" />
|
||||
<meta name="generator" content="Selima 3.10" />
|
||||
<link rel="start" type="application/xhtml+xml" href="/" />
|
||||
<link rel="copyright" type="application/xhtml+xml" href="/copying.html" />
|
||||
<link rel="author" href="mailto:editors@mail.wov.idv.tw" />
|
||||
<link rel="search" type="application/xhtml+xml" href="/cgi-bin/search.cgi" />
|
||||
<link rel="stylesheet" type="text/css" href="/stylesheets/common.css" />
|
||||
<link rel="shortcut icon" type="image/x-icon" href="/favicon.ico" />
|
||||
<title>HTTP 410 已刪</title>
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<div id="topofpage" class="skiptobody">
|
||||
<a accesskey="2" href="#body">跳到網頁內文區。</a>
|
||||
</div>
|
||||
|
||||
|
||||
<div id="nav" class="nav" title="導覽連結區">
|
||||
<div class="accessguide"><a accesskey="L"
|
||||
href="#nav" title="導覽連結區">:::</a></div>
|
||||
|
||||
<form action="/cgi-bin/search.cgi" method="get" accept-charset="UTF-8">
|
||||
<div class="navibar">
|
||||
<span><a href="/newsletters/">閱讀女聲</a></span> |
|
||||
<span><a href="/subscribe.html">訂閱女聲</a></span> |
|
||||
<span><a href="/cgi-bin/guestbook.cgi">妳的女聲</a></span> |
|
||||
<span><a href="/links/">女網牽手</a></span> |
|
||||
<span><a accesskey="1" href="/">回首頁</a></span> |
|
||||
<span><a href="mailto:editors@mail.wov.idv.tw">寫信給女聲</a></span> |
|
||||
<label for="navquery">檢索:</label><input
|
||||
id="navquery" class="text" type="text" name="query" value="" /><input
|
||||
type="hidden" name="charset" value="UTF-8" /><input
|
||||
type="submit" value="搜尋" />
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
<hr />
|
||||
|
||||
<div id="body" class="body" title="網頁內文區">
|
||||
<div class="accessguide"><a accesskey="C"
|
||||
href="#body" title="網頁內文區">:::</a></div>
|
||||
|
||||
<div class="title">
|
||||
<img src="/images/logo"
|
||||
alt="女聲 LOGO" title="女聲 Woman's Voice" />
|
||||
<h1><abbr title="HyperText Transfer Protocol">HTTP</abbr> 410 已刪</h1>
|
||||
<h1 class="en" xml:lang="en-us">Gone</h1>
|
||||
</div>
|
||||
|
||||
<p>本頁內容已刪,造成不便請見諒。</p>
|
||||
|
||||
<p>妳可以回到<a href="/">《女聲》電子報首頁</a>重新瀏覽。</p>
|
||||
|
||||
</div>
|
||||
|
||||
<hr />
|
||||
<div id="footer" class="footer" title="頁尾區">
|
||||
|
||||
<div>
|
||||
<a href="/" title="女聲電子報網站"><img
|
||||
src="/images/icon" alt="女聲" /></a>|<a
|
||||
href="https://www.imacat.idv.tw/"
|
||||
title="往旅舍依瑪網站"><img
|
||||
src="https://www.imacat.idv.tw/images/icon"
|
||||
alt="歡迎光臨旅舍依瑪" /></a>
|
||||
</div>
|
||||
|
||||
<div>
|
||||
<a href="http://www.w3.org/Style/CSS/Buttons/"
|
||||
title="CSS 樣式表說明" hreflang="en"><img
|
||||
src="/images/w3c/mwcts" alt="以 CSS 樣式表製作" /></a>|<a
|
||||
href="http://html-validator.imacat.idv.tw/check/referer"
|
||||
title="本頁的 HTML 驗證結果" hreflang="en"><img
|
||||
src="/images/w3c/vxhtml11" alt="XHTML 1.1 正確!" /></a>|<a
|
||||
href="http://jigsaw.w3.org/css-validator/check/referer"
|
||||
title="本頁的 CSS 驗證結果" hreflang="en"><img
|
||||
src="/images/w3c/vcss" alt="CSS 正確!" /></a>|<a
|
||||
href="http://www.w3.org/WAI/WCAG1AAA-Conformance"
|
||||
title="無障礙三 A 級標準說明" hreflang="en"><img
|
||||
src="/images/w3c/wcag1AAA"
|
||||
alt="W3C 無障礙網頁規範 1.0 三 A 級標準標章" /></a>
|
||||
<p>本頁符合 <a href="http://www.w3.org/TR/xhtml11/" hreflang="en"><abbr
|
||||
title="Extensible HyperText Markup Language">XHTML</abbr> 1.1</a> /
|
||||
<a href="http://www.w3.org/TR/CSS21/" hreflang="en"><abbr
|
||||
title="Cascading Style Sheets">CSS</abbr> 2.1</a> /
|
||||
<a href="http://www.w3.org/TR/WAI-WEBCONTENT/"
|
||||
hreflang="en">無障礙網頁規範 1.0</a> 三 A 級標準</p>
|
||||
</div>
|
||||
|
||||
<div>
|
||||
<p>《女聲》電子報著作權所有,欲轉載引用請先閱讀<a href="/copying.html">著作權聲明</a></p>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
</body>
|
||||
</html>
|
||||
1
htdocs/wov/errors/500.html.html
Symbolic link
@@ -0,0 +1 @@
|
||||
500.html.xhtml
|
||||
109
htdocs/wov/errors/500.html.xhtml
Normal file
@@ -0,0 +1,109 @@
|
||||
<?xml version="1.0" encoding="UTF-8" ?>
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
|
||||
"http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
|
||||
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="zh-tw">
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="application/xhtml+xml; charset=UTF-8" />
|
||||
<meta http-equiv="Content-Style-Type" content="text/css" />
|
||||
<meta http-equiv="Content-Script-Type" content="text/javascript" />
|
||||
<meta name="author" content="小招, 依瑪貓" />
|
||||
<meta name="copyright" content="© 1999-2020 《女聲》電子報。《女聲》電子報保有所有權利。" />
|
||||
<meta name="keywords" content="網站執行錯誤" />
|
||||
<meta name="generator" content="Selima 3.10" />
|
||||
<link rel="start" type="application/xhtml+xml" href="/" />
|
||||
<link rel="copyright" type="application/xhtml+xml" href="/copying.html" />
|
||||
<link rel="author" href="mailto:editors@mail.wov.idv.tw" />
|
||||
<link rel="search" type="application/xhtml+xml" href="/cgi-bin/search.cgi" />
|
||||
<link rel="stylesheet" type="text/css" href="/stylesheets/common.css" />
|
||||
<link rel="shortcut icon" type="image/x-icon" href="/favicon.ico" />
|
||||
<title>HTTP 500 網站執行錯誤</title>
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<div id="topofpage" class="skiptobody">
|
||||
<a accesskey="2" href="#body">跳到網頁內文區。</a>
|
||||
</div>
|
||||
|
||||
|
||||
<div id="nav" class="nav" title="導覽連結區">
|
||||
<div class="accessguide"><a accesskey="L"
|
||||
href="#nav" title="導覽連結區">:::</a></div>
|
||||
|
||||
<form action="/cgi-bin/search.cgi" method="get" accept-charset="UTF-8">
|
||||
<div class="navibar">
|
||||
<span><a href="/newsletters/">閱讀女聲</a></span> |
|
||||
<span><a href="/subscribe.html">訂閱女聲</a></span> |
|
||||
<span><a href="/cgi-bin/guestbook.cgi">妳的女聲</a></span> |
|
||||
<span><a href="/links/">女網牽手</a></span> |
|
||||
<span><a accesskey="1" href="/">回首頁</a></span> |
|
||||
<span><a href="mailto:editors@mail.wov.idv.tw">寫信給女聲</a></span> |
|
||||
<label for="navquery">檢索:</label><input
|
||||
id="navquery" class="text" type="text" name="query" value="" /><input
|
||||
type="hidden" name="charset" value="UTF-8" /><input
|
||||
type="submit" value="搜尋" />
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
<hr />
|
||||
|
||||
<div id="body" class="body" title="網頁內文區">
|
||||
<div class="accessguide"><a accesskey="C"
|
||||
href="#body" title="網頁內文區">:::</a></div>
|
||||
|
||||
<div class="title">
|
||||
<img src="/images/logo"
|
||||
alt="女聲 LOGO" title="女聲 Woman's Voice" />
|
||||
<h1><abbr title="HyperText Transfer Protocol">HTTP</abbr> 500 網站執行錯誤</h1>
|
||||
<h1 class="en" xml:lang="en-us">Internal Server Error</h1>
|
||||
</div>
|
||||
|
||||
<!-- errmsg -->
|
||||
|
||||
<p>很抱歉,網站發生錯誤。這通常是 <abbr title="Common Gateway Interface">CGI</abbr> 程式設計問題,請<a href="mailto:editors@mail.wov.idv.tw">來信告訴我們</a>。</p>
|
||||
|
||||
<p>妳可以回到<a href="/">《女聲》電子報首頁</a>重新瀏覽。</p>
|
||||
|
||||
</div>
|
||||
|
||||
<hr />
|
||||
<div id="footer" class="footer" title="頁尾區">
|
||||
|
||||
<div>
|
||||
<a href="/" title="女聲電子報網站"><img
|
||||
src="/images/icon" alt="女聲" /></a>|<a
|
||||
href="https://www.imacat.idv.tw/"
|
||||
title="往旅舍依瑪網站"><img
|
||||
src="https://www.imacat.idv.tw/images/icon"
|
||||
alt="歡迎光臨旅舍依瑪" /></a>
|
||||
</div>
|
||||
|
||||
<div>
|
||||
<a href="http://www.w3.org/Style/CSS/Buttons/"
|
||||
title="CSS 樣式表說明" hreflang="en"><img
|
||||
src="/images/w3c/mwcts" alt="以 CSS 樣式表製作" /></a>|<a
|
||||
href="http://html-validator.imacat.idv.tw/check/referer"
|
||||
title="本頁的 HTML 驗證結果" hreflang="en"><img
|
||||
src="/images/w3c/vxhtml11" alt="XHTML 1.1 正確!" /></a>|<a
|
||||
href="http://jigsaw.w3.org/css-validator/check/referer"
|
||||
title="本頁的 CSS 驗證結果" hreflang="en"><img
|
||||
src="/images/w3c/vcss" alt="CSS 正確!" /></a>|<a
|
||||
href="http://www.w3.org/WAI/WCAG1AAA-Conformance"
|
||||
title="無障礙三 A 級標準說明" hreflang="en"><img
|
||||
src="/images/w3c/wcag1AAA"
|
||||
alt="W3C 無障礙網頁規範 1.0 三 A 級標準標章" /></a>
|
||||
<p>本頁符合 <a href="http://www.w3.org/TR/xhtml11/" hreflang="en"><abbr
|
||||
title="Extensible HyperText Markup Language">XHTML</abbr> 1.1</a> /
|
||||
<a href="http://www.w3.org/TR/CSS21/" hreflang="en"><abbr
|
||||
title="Cascading Style Sheets">CSS</abbr> 2.1</a> /
|
||||
<a href="http://www.w3.org/TR/WAI-WEBCONTENT/"
|
||||
hreflang="en">無障礙網頁規範 1.0</a> 三 A 級標準</p>
|
||||
</div>
|
||||
|
||||
<div>
|
||||
<p>《女聲》電子報著作權所有,欲轉載引用請先閱讀<a href="/copying.html">著作權聲明</a></p>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
</body>
|
||||
</html>
|
||||
1
htdocs/wov/errors/503.html.html
Symbolic link
@@ -0,0 +1 @@
|
||||
503.html.xhtml
|
||||
107
htdocs/wov/errors/503.html.xhtml
Normal file
@@ -0,0 +1,107 @@
|
||||
<?xml version="1.0" encoding="UTF-8" ?>
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
|
||||
"http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
|
||||
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="zh-tw">
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="application/xhtml+xml; charset=UTF-8" />
|
||||
<meta http-equiv="Content-Style-Type" content="text/css" />
|
||||
<meta http-equiv="Content-Script-Type" content="text/javascript" />
|
||||
<meta name="author" content="小招, 依瑪貓" />
|
||||
<meta name="copyright" content="© 1999-2020 《女聲》電子報。《女聲》電子報保有所有權利。" />
|
||||
<meta name="keywords" content="網站暫停服務, HTTP 503" />
|
||||
<meta name="generator" content="Selima 3.10" />
|
||||
<link rel="start" type="application/xhtml+xml" href="/" />
|
||||
<link rel="copyright" type="application/xhtml+xml" href="/copying.html" />
|
||||
<link rel="author" href="mailto:editors@mail.wov.idv.tw" />
|
||||
<link rel="search" type="application/xhtml+xml" href="/cgi-bin/search.cgi" />
|
||||
<link rel="stylesheet" type="text/css" href="/stylesheets/common.css" />
|
||||
<link rel="shortcut icon" type="image/x-icon" href="/favicon.ico" />
|
||||
<title>HTTP 503 網站暫停服務</title>
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<div id="topofpage" class="skiptobody">
|
||||
<a accesskey="2" href="#body">跳到網頁內文區。</a>
|
||||
</div>
|
||||
|
||||
|
||||
<div id="nav" class="nav" title="導覽連結區">
|
||||
<div class="accessguide"><a accesskey="L"
|
||||
href="#nav" title="導覽連結區">:::</a></div>
|
||||
|
||||
<form action="/cgi-bin/search.cgi" method="get" accept-charset="UTF-8">
|
||||
<div class="navibar">
|
||||
<span><a href="/newsletters/">閱讀女聲</a></span> |
|
||||
<span><a href="/subscribe.html">訂閱女聲</a></span> |
|
||||
<span><a href="/cgi-bin/guestbook.cgi">妳的女聲</a></span> |
|
||||
<span><a href="/links/">女網牽手</a></span> |
|
||||
<span><a accesskey="1" href="/">回首頁</a></span> |
|
||||
<span><a href="mailto:editors@mail.wov.idv.tw">寫信給女聲</a></span> |
|
||||
<label for="navquery">檢索:</label><input
|
||||
id="navquery" class="text" type="text" name="query" value="" /><input
|
||||
type="hidden" name="charset" value="UTF-8" /><input
|
||||
type="submit" value="搜尋" />
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
<hr />
|
||||
|
||||
<div id="body" class="body" title="網頁內文區">
|
||||
<div class="accessguide"><a accesskey="C"
|
||||
href="#body" title="網頁內文區">:::</a></div>
|
||||
|
||||
<div class="title">
|
||||
<img src="/images/logo"
|
||||
alt="女聲 LOGO" title="女聲 Woman's Voice" />
|
||||
<h1><abbr title="HyperText Transfer Protocol">HTTP</abbr> 503 網站暫停服務</h1>
|
||||
<h1 class="en" xml:lang="en-us">Service Unavailable</h1>
|
||||
</div>
|
||||
|
||||
<!-- errmsg -->
|
||||
|
||||
<p>很抱歉,網站暫時停止服務。我們正在更新網站,大約要花一個小時左右。請晚點再來,謝謝。</p>
|
||||
|
||||
</div>
|
||||
|
||||
<hr />
|
||||
<div id="footer" class="footer" title="頁尾區">
|
||||
|
||||
<div>
|
||||
<a href="/" title="女聲電子報網站"><img
|
||||
src="/images/icon" alt="女聲" /></a>|<a
|
||||
href="https://www.imacat.idv.tw/"
|
||||
title="往旅舍依瑪網站"><img
|
||||
src="https://www.imacat.idv.tw/images/icon"
|
||||
alt="歡迎光臨旅舍依瑪" /></a>
|
||||
</div>
|
||||
|
||||
<div>
|
||||
<a href="http://www.w3.org/Style/CSS/Buttons/"
|
||||
title="CSS 樣式表說明" hreflang="en"><img
|
||||
src="/images/w3c/mwcts" alt="以 CSS 樣式表製作" /></a>|<a
|
||||
href="http://html-validator.imacat.idv.tw/check/referer"
|
||||
title="本頁的 HTML 驗證結果" hreflang="en"><img
|
||||
src="/images/w3c/vxhtml11" alt="XHTML 1.1 正確!" /></a>|<a
|
||||
href="http://jigsaw.w3.org/css-validator/check/referer"
|
||||
title="本頁的 CSS 驗證結果" hreflang="en"><img
|
||||
src="/images/w3c/vcss" alt="CSS 正確!" /></a>|<a
|
||||
href="http://www.w3.org/WAI/WCAG1AAA-Conformance"
|
||||
title="無障礙三 A 級標準說明" hreflang="en"><img
|
||||
src="/images/w3c/wcag1AAA"
|
||||
alt="W3C 無障礙網頁規範 1.0 三 A 級標準標章" /></a>
|
||||
<p>本頁符合 <a href="http://www.w3.org/TR/xhtml11/" hreflang="en"><abbr
|
||||
title="Extensible HyperText Markup Language">XHTML</abbr> 1.1</a> /
|
||||
<a href="http://www.w3.org/TR/CSS21/" hreflang="en"><abbr
|
||||
title="Cascading Style Sheets">CSS</abbr> 2.1</a> /
|
||||
<a href="http://www.w3.org/TR/WAI-WEBCONTENT/"
|
||||
hreflang="en">無障礙網頁規範 1.0</a> 三 A 級標準</p>
|
||||
</div>
|
||||
|
||||
<div>
|
||||
<p>《女聲》電子報著作權所有,欲轉載引用請先閱讀<a href="/copying.html">著作權聲明</a></p>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
</body>
|
||||
</html>
|
||||
BIN
htdocs/wov/favicon.ico
Normal file
|
After Width: | Height: | Size: 2.2 KiB |
BIN
htdocs/wov/images/backgrnd.gif
Normal file
|
After Width: | Height: | Size: 1.9 KiB |
BIN
htdocs/wov/images/backgrnd.png
Normal file
|
After Width: | Height: | Size: 817 B |
BIN
htdocs/wov/images/email.gif
Normal file
|
After Width: | Height: | Size: 126 B |
BIN
htdocs/wov/images/email.png
Normal file
|
After Width: | Height: | Size: 191 B |
BIN
htdocs/wov/images/icon.gif
Normal file
|
After Width: | Height: | Size: 3.8 KiB |
BIN
htdocs/wov/images/icon.png
Normal file
|
After Width: | Height: | Size: 385 B |
BIN
htdocs/wov/images/logo-half.gif
Normal file
|
After Width: | Height: | Size: 408 B |
BIN
htdocs/wov/images/logo-half.png
Normal file
|
After Width: | Height: | Size: 1.4 KiB |
BIN
htdocs/wov/images/logo.gif
Normal file
|
After Width: | Height: | Size: 735 B |
BIN
htdocs/wov/images/logo.png
Normal file
|
After Width: | Height: | Size: 3.7 KiB |
BIN
htdocs/wov/images/modperl.png
Normal file
|
After Width: | Height: | Size: 1.7 KiB |
1
htdocs/wov/index.html.html
Symbolic link
@@ -0,0 +1 @@
|
||||
index.html.xhtml
|
||||
137
htdocs/wov/index.html.xhtml
Normal file
@@ -0,0 +1,137 @@
|
||||
<?xml version="1.0" encoding="Big5" ?>
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
|
||||
"http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
|
||||
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="zh-tw">
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="application/xhtml+xml; charset=UTF-8" />
|
||||
<meta http-equiv="Content-Style-Type" content="text/css" />
|
||||
<meta http-equiv="Content-Script-Type" content="text/javascript" />
|
||||
<meta name="author" content="小招, 依瑪貓" />
|
||||
<meta name="keywords" content="女聲電子報, 女性主義, 婦運, 性別, 小招, 依瑪貓" />
|
||||
<meta name="copyright" content="© 1999-2012 《女聲》電子報。《女聲》電子報保有所有權利。" />
|
||||
<link rel="start" type="application/xhtml+xml" href="." />
|
||||
<link rel="copyright" type="application/xhtml+xml" href="copying.html" />
|
||||
<link rel="author" href="mailto:editors@mail.wov.idv.tw" />
|
||||
<link rel="search" type="application/xhtml+xml" href="cgi-bin/search.cgi" />
|
||||
<link rel="stylesheet" type="text/css" href="stylesheets/common.css" />
|
||||
<link rel="shortcut icon" type="image/x-icon" href="favicon.ico" />
|
||||
<title>女聲 Woman’s Voice</title>
|
||||
</head>
|
||||
<body class="home">
|
||||
|
||||
<div id="topofpage" class="skiptobody">
|
||||
<a accesskey="2" href="#body">跳到網頁內文區。</a>
|
||||
</div>
|
||||
|
||||
|
||||
<div class="title">
|
||||
<img src="images/logo"
|
||||
alt="女聲 LOGO" title="女聲 Woman’s Voice" />
|
||||
<h1>女聲</h1>
|
||||
<h1 class="en" xml:lang="en-us">Woman’s Voice</h1>
|
||||
</div>
|
||||
|
||||
<address>
|
||||
Since 1999.05.02, last updated <img src="cgi-bin/last_update.cgi" alt="last update" />.<br />
|
||||
妳是第 <img src="cgi-bin/counter.cgi?countme=1" alt="訪客人數" /> 個訪客<!--,目前訂戶
|
||||
<img src="cgi-bin/subs_counter.cgi" alt="訂戶人數" /> 人-->
|
||||
</address>
|
||||
|
||||
<div class="intro">
|
||||
<p>發聲就是政治,是權力,是對主體性的要求。</p>
|
||||
|
||||
<p>女聲就是女人的聲音。聲音有的好聽,有的不好聽,有的悅耳,有的嘈雜。也許是學者、是政要、是學生、是女兒、是媽媽、是女同性戀、是雙性戀、是女工、是菲傭、是公娼、是私娼、是雛妓、是打工辣妹、是家庭主婦、是心理女性。可能都是,也可能都不是。這些都是女人,她們的聲音都同等重要,在差異中尋求最適合自己的生存策略。</p>
|
||||
|
||||
<p>更重要的是,身為女人,是政治行動,不只是天生的命運。</p>
|
||||
</div>
|
||||
|
||||
<div class="bulletin">
|
||||
<div class="accessguide"><a accesskey="C"
|
||||
href="#body" title="網頁內文區">:::</a></div>
|
||||
<div class="bulletin1">
|
||||
<h2>誰的言論、誰有自由?!</h2>
|
||||
|
||||
<p>西方18世紀哲學家伏爾泰有句名言:「雖然我不同意你的觀點,但我要以生命捍衛你說話的權利。」現今台灣主流社會顯然沒這種容納異己的雅量。他們容忍的界限大概就是,男人講話,女人閉嘴;大人有性,小孩沒性;男異性戀可以看裸女,男同性戀卻禁止看裸男。</p>
|
||||
|
||||
<ul>
|
||||
<li><a href="newsletters/wov0015.html">《女聲》第十五期</a></li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="nav" class="nav" title="導覽連結區">
|
||||
<div class="accessguide"><a accesskey="L"
|
||||
href="#nav" title="導覽連結區">:::</a></div>
|
||||
<div class="nav1">
|
||||
<ul>
|
||||
<li><a href="newsletters/">閱讀女聲</a></li>
|
||||
<li><a href="subscribe.html">訂閱女聲</a></li>
|
||||
<li><a href="cgi-bin/guestbook.cgi">妳的女聲</a></li>
|
||||
<li><a href="links/">女網牽手</a></li>
|
||||
<li><a href="mailto:editors@mail.wov.idv.tw">寫信給女聲</a></li>
|
||||
</ul>
|
||||
|
||||
<form action="cgi-bin/search.cgi" method="get" accept-charset="Big5">
|
||||
<div>
|
||||
<label for="query">全文檢索:</label><br />
|
||||
<input class="text" id="query" type="text" name="query" value="" />
|
||||
<input type="hidden" name="charset" value="Big5" />
|
||||
<input class="submit" type="submit" value="搜尋" />
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
<hr />
|
||||
<div id="footer" class="footer" title="頁尾區">
|
||||
<div>
|
||||
<p>請將下列 <abbr title="HyperText Markup Language">HTML</abbr> 加入妳的網頁中:</p>
|
||||
<pre class="linkcode"><div><a href="https://www.wov.idv.tw/"
|
||||
title="往女聲電子報網站"><img
|
||||
src="https://www.wov.idv.tw/images/icon"
|
||||
alt="女聲 Woman&rsquo;s Voice"">
|
||||
style="height: 31px; width: 88px;" /></a></div></pre>
|
||||
<p>別忘了將女聲加入妳的書籤或妳的最愛中喔!</p>
|
||||
</div>
|
||||
|
||||
<div>
|
||||
<a href="." title="女聲電子報網站"><img
|
||||
src="images/icon" alt="女聲" /></a>|<a
|
||||
href="https://www.imacat.idv.tw/"
|
||||
title="往旅舍依瑪網站"><img
|
||||
src="https://www.imacat.idv.tw/images/icon"
|
||||
alt="歡迎光臨旅舍依瑪" /></a>
|
||||
</div>
|
||||
|
||||
<div>
|
||||
<a href="http://www.w3.org/Style/CSS/Buttons/"
|
||||
title="CSS 樣式表說明" hreflang="en"><img
|
||||
src="images/w3c/mwcts" alt="以 CSS 樣式表製作" /></a>|<a
|
||||
href="http://html-validator.imacat.idv.tw/check/referer"
|
||||
title="本頁的 HTML 驗證結果" hreflang="en"><img
|
||||
src="images/w3c/vxhtml11" alt="XHTML 1.1 正確!" /></a>|<a
|
||||
href="http://jigsaw.w3.org/css-validator/check/referer"
|
||||
title="本頁的 CSS 驗證結果" hreflang="en"><img
|
||||
src="images/w3c/vcss" alt="CSS 正確!" /></a>|<a
|
||||
href="http://www.w3.org/WAI/WCAG1AAA-Conformance"
|
||||
title="無障礙三 A 級標準說明" hreflang="en"><img
|
||||
src="images/w3c/wcag1AAA"
|
||||
alt="W3C 無障礙網頁規範 1.0 三 A 級標準標章" /></a>
|
||||
<p>本頁符合 <a href="http://www.w3.org/TR/xhtml11/" hreflang="en"><abbr
|
||||
title="Extensible HyperText Markup Language">XHTML</abbr> 1.1</a> /
|
||||
<a href="http://www.w3.org/TR/CSS21/" hreflang="en"><abbr
|
||||
title="Cascading Style Sheets">CSS</abbr> 2.1</a> /
|
||||
<a href="http://www.w3.org/TR/WAI-WEBCONTENT/"
|
||||
hreflang="en">無障礙網頁規範 1.0</a> 三 A 級標準</p>
|
||||
</div>
|
||||
|
||||
<div>
|
||||
<p>《女聲》電子報著作權所有,欲轉載引用請先閱讀<a
|
||||
href="copying.html">著作權聲明</a></p>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
</body>
|
||||
</html>
|
||||
1
htdocs/wov/links/culture.html.html
Symbolic link
@@ -0,0 +1 @@
|
||||
culture.html.xhtml
|
||||
317
htdocs/wov/links/culture.html.xhtml
Normal file
@@ -0,0 +1,317 @@
|
||||
<?xml version="1.0" encoding="UTF-8" ?>
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
|
||||
"http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
|
||||
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="zh-tw">
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="application/xhtml+xml; charset=UTF-8" />
|
||||
<meta http-equiv="Content-Style-Type" content="text/css" />
|
||||
<meta http-equiv="Content-Script-Type" content="text/javascript" />
|
||||
<meta name="author" content="小招, 依瑪貓" />
|
||||
<meta name="copyright" content="© 1999-2020 《女聲》電子報。《女聲》電子報保有所有權利。" />
|
||||
<meta name="keywords" content="文學, 藝術, 藝文, 文藝" />
|
||||
<meta name="generator" content="Selima 3.10" />
|
||||
<link rel="start" type="application/xhtml+xml" href=".." />
|
||||
<link rel="copyright" type="application/xhtml+xml" href="../copying.html" />
|
||||
<link rel="author" href="mailto:editors@mail.wov.idv.tw" />
|
||||
<link rel="search" type="application/xhtml+xml" href="../cgi-bin/search.cgi" />
|
||||
<link rel="up" type="application/xhtml+xml" href="." />
|
||||
<link rel="stylesheet" type="text/css" href="../stylesheets/common.css" />
|
||||
<link rel="shortcut icon" type="image/x-icon" href="../favicon.ico" />
|
||||
<title>女人文化界</title>
|
||||
</head>
|
||||
<body class="links">
|
||||
|
||||
<div id="topofpage" class="skiptobody">
|
||||
<a accesskey="2" href="#body">跳到網頁內文區。</a>
|
||||
</div>
|
||||
|
||||
|
||||
<div id="nav" class="nav" title="導覽連結區">
|
||||
<div class="accessguide"><a accesskey="L"
|
||||
href="#nav" title="導覽連結區">:::</a></div>
|
||||
|
||||
<form action="../cgi-bin/search.cgi" method="get" accept-charset="UTF-8">
|
||||
<div class="navibar">
|
||||
<span><a href="../newsletters/">閱讀女聲</a></span> |
|
||||
<span><a href="../subscribe.html">訂閱女聲</a></span> |
|
||||
<span><a href="../cgi-bin/guestbook.cgi">妳的女聲</a></span> |
|
||||
<span><a href=".">女網牽手</a></span> |
|
||||
<span><a accesskey="1" href="..">回首頁</a></span> |
|
||||
<span><a href="mailto:editors@mail.wov.idv.tw">寫信給女聲</a></span> |
|
||||
<label for="navquery">檢索:</label><input
|
||||
id="navquery" class="text" type="text" name="query" value="" /><input
|
||||
type="hidden" name="charset" value="UTF-8" /><input
|
||||
type="submit" value="搜尋" />
|
||||
</div>
|
||||
</form>
|
||||
<hr />
|
||||
|
||||
<div class="navibar">
|
||||
<span><a href="orgs.html">一大群女人</a></span> |
|
||||
<span><a href="culture.html">女人文化界</a></span> |
|
||||
<span><a href="lesbian.html">女人愛女人</a></span> |
|
||||
<span><a href="science.html">女性與科技</a></span> |
|
||||
<span><a href="history.html">回首的女人</a></span> |
|
||||
<span><a href="general.html">多樣的女人</a></span> |
|
||||
<span><a href="others.html">好人</a></span> |
|
||||
<span><a href="intell.html">好學的女人</a></span> |
|
||||
<span><a href="feminist.html">抗爭的女人</a></span> |
|
||||
<span><a href="labor.html">勞動的女人</a></span> |
|
||||
<span><a href="medicine.html">愛惜身體的女人</a></span> |
|
||||
<span><a href="queer.html">搞怪的女人</a></span> |
|
||||
<span><a href="literate.html">舞文弄墨的女人</a></span> |
|
||||
<span><a href="sex.html">隨性的女人</a></span>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
<hr />
|
||||
|
||||
<div id="body" class="body" title="網頁內文區">
|
||||
<div class="accessguide"><a accesskey="C"
|
||||
href="#body" title="網頁內文區">:::</a></div>
|
||||
|
||||
<div class="title">
|
||||
<img src="../images/logo"
|
||||
alt="女聲 LOGO" title="女聲 Woman's Voice" />
|
||||
<h1>女人文化界</h1>
|
||||
<h1 class="en" xml:lang="en-us">Cultural Women</h1>
|
||||
</div>
|
||||
|
||||
<div class="breadcrumb">
|
||||
<a href=".">女網牽手</a> /
|
||||
女人文化界
|
||||
</div>
|
||||
|
||||
<ol class="linkslist">
|
||||
<li>
|
||||
<form action="../cgi-bin/mailto.cgi" method="post">
|
||||
<div>
|
||||
<cite>女書店 <span class="en" xml:lang="en-us">Fembooks</span></cite><br />
|
||||
網址: <a href="http://www.fembooks.com.tw/">http://www.fembooks.com.tw/</a><br />
|
||||
E-mail : <input type="hidden" name="email" value="fembooks at ms27.hinet.net" />
|
||||
<input type="image" src="../images/email" alt="E-mail" />
|
||||
fembooks<span>@</span>ms27.hinet.net<br />
|
||||
地址: 106 臺北市大安區新生南路三段 56 巷 7 號 2 樓<br />
|
||||
電話: (02) 2363-8244<br />
|
||||
傳真: (02) 2363-1381<br />
|
||||
出版、販賣各種女性主義、性別議題相關書籍。<br />
|
||||
</div>
|
||||
</form>
|
||||
</li>
|
||||
|
||||
<li>
|
||||
<form action="../cgi-bin/mailto.cgi" method="post">
|
||||
<div>
|
||||
<a href="http://www.msmagazine.com/"><img class="linkicon"
|
||||
src="http://www.msmagazine.com/images/Ms.gif"
|
||||
alt="Ms. Magazine" /></a><br />
|
||||
<cite><span class="en" xml:lang="en-us">Ms. Magazine</span></cite><br />
|
||||
網址: <a href="http://www.msmagazine.com/">http://www.msmagazine.com/</a><br />
|
||||
E-mail : <input type="hidden" name="email" value="info at msmagazine.com" />
|
||||
<input type="image" src="../images/email" alt="E-mail" />
|
||||
info<span>@</span>msmagazine.com<br />
|
||||
地址: 20 Exchange Place 22nd floor New York, NY 10005<br />
|
||||
電話: +1 (212) 509-2092<br />
|
||||
傳真: +1 (212) 509-2407<br />
|
||||
美國歷史悠久的女性主義雜誌。<br />
|
||||
</div>
|
||||
</form>
|
||||
</li>
|
||||
|
||||
<li>
|
||||
<form action="../cgi-bin/mailto.cgi" method="post">
|
||||
<div>
|
||||
<cite><span class="en" xml:lang="en-us">Feminist Press</span></cite><br />
|
||||
網址: <a href="http://www.feministpress.org/">http://www.feministpress.org/</a><br />
|
||||
E-mail : <input type="hidden" name="email" value="jroncker at gc.cuny.edu" />
|
||||
<input type="image" src="../images/email" alt="E-mail" />
|
||||
jroncker<span>@</span>gc.cuny.edu<br />
|
||||
電話: 212-817-7925<br />
|
||||
傳真: 212-817-1593<br />
|
||||
待撰寫。<br />
|
||||
</div>
|
||||
</form>
|
||||
</li>
|
||||
|
||||
<li>
|
||||
<form action="../cgi-bin/mailto.cgi" method="post">
|
||||
<div>
|
||||
<cite><span class="en" xml:lang="en-us">Feminist Studies</span></cite><br />
|
||||
網址: <a href="http://www.feministstudies.org/index.html">http://www.feministstudies.org/index.html</a><br />
|
||||
E-mail : <input type="hidden" name="email" value="sgroves at feministstudies.org" />
|
||||
<input type="image" src="../images/email" alt="E-mail" />
|
||||
sgroves<span>@</span>feministstudies.org<br />
|
||||
待說明。<br />
|
||||
</div>
|
||||
</form>
|
||||
</li>
|
||||
|
||||
<li>
|
||||
<form action="../cgi-bin/mailto.cgi" method="post">
|
||||
<div>
|
||||
<cite><span class="en" xml:lang="en-us">Women's Studied Resources</span></cite><br />
|
||||
網址: <a href="http://bailiwick.lib.uiowa.edu/wstudies/">http://bailiwick.lib.uiowa.edu/wstudies/</a><br />
|
||||
E-mail : <input type="hidden" name="email" value="Karla-Tonella at uiowa.edu" />
|
||||
<input type="image" src="../images/email" alt="E-mail" />
|
||||
Karla-Tonella<span>@</span>uiowa.edu<br />
|
||||
待撰寫。<br />
|
||||
</div>
|
||||
</form>
|
||||
</li>
|
||||
|
||||
<li>
|
||||
<form action="../cgi-bin/mailto.cgi" method="post">
|
||||
<div>
|
||||
<cite><span class="en" xml:lang="en-us">GODEY'S LADY'S BOOK Online</span></cite><br />
|
||||
網址: <a href="http://www.history.rochester.edu/godeys/">http://www.history.rochester.edu/godeys/</a><br />
|
||||
E-mail : <input type="hidden" name="email" value="mapi at mail.rochester.edu" />
|
||||
<input type="image" src="../images/email" alt="E-mail" />
|
||||
mapi<span>@</span>mail.rochester.edu<br />
|
||||
待撰寫。<br />
|
||||
</div>
|
||||
</form>
|
||||
</li>
|
||||
|
||||
<li>
|
||||
<form action="../cgi-bin/mailto.cgi" method="post">
|
||||
<div>
|
||||
<cite>集合出版社 <span class="en" xml:lang="en-us">Must Muster Publisher</span></cite><br />
|
||||
網址: <a href="http://www.2her.com.tw/">http://www.2her.com.tw/</a><br />
|
||||
E-mail : <input type="hidden" name="email" value="courious at saturn.seed.net.tw" />
|
||||
<input type="image" src="../images/email" alt="E-mail" />
|
||||
courious<span>@</span>saturn.seed.net.tw<br />
|
||||
地址: 板橋郵政18-113號信箱<br />
|
||||
電話: 02-22228365<br />
|
||||
傳真: 02-22225872<br />
|
||||
以出版女同志正面作品為主的出版社<br />
|
||||
</div>
|
||||
</form>
|
||||
</li>
|
||||
|
||||
<li>
|
||||
<form action="../cgi-bin/mailto.cgi" method="post">
|
||||
<div>
|
||||
<a href="http://www.feminist.cn/"><img class="linkicon"
|
||||
src="http://www.feminist.cn/images/f9.gif"
|
||||
alt="女权在线" /></a><br />
|
||||
<cite>女权在线</cite><br />
|
||||
網址: <a href="http://www.feminist.cn/">http://www.feminist.cn/</a><br />
|
||||
E-mail : <input type="hidden" name="email" value="feminist at 163.com" />
|
||||
<input type="image" src="../images/email" alt="E-mail" />
|
||||
feminist<span>@</span>163.com<br />
|
||||
電話: 138-16755142<br />
|
||||
中国大陆女性主义者集结地,以倡导两性平等为宗旨的公益性站点.<br />
|
||||
</div>
|
||||
</form>
|
||||
</li>
|
||||
|
||||
</ol>
|
||||
|
||||
<hr />
|
||||
<h2>女網牽手‧和妳牽手</h2>
|
||||
|
||||
<div class="intro">
|
||||
<p>女人上網,伴手相牽。我們希望和各種不同國女人發聲的網站,或為女人努力發聲的網站串連起來,匯集成女人自己的網路空間。若妳也願意和我們牽手,請填好下表寄出。我們將儘快查詢妳的網址是否正確,然後加入女網牽手中。</p>
|
||||
</div>
|
||||
|
||||
<form class="regform" action="mailto:editors@mail.wov.idv.tw?subject=%5B%E5%A5%B3%E8%81%B2%E5%9B%9E%E5%87%BD%5D%20%E7%B6%B2%E7%AB%99%E7%99%BB%E9%8C%84"
|
||||
method="post" enctype="text/plain" accept-charset="UTF-8"
|
||||
onsubmit="return isRegisterOK(this);">
|
||||
<div>
|
||||
<input type="hidden" name="charset" value="UTF-8" />
|
||||
<table summary="本表提供登錄女聲女網簽手的表單,網站資料欄位名稱,和填寫該資料的輸入格。">
|
||||
<colgroup><col /><col /></colgroup>
|
||||
<tbody>
|
||||
<tr>
|
||||
<th scope="row"><label for="title">站名:</label></th>
|
||||
<td><input id="title" class="text" type="text" name="title" size="40" value="" /></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th scope="row"><label for="title_2ln">站名(第二語言,可略):</label></th>
|
||||
<td><input id="title_2ln" class="text" type="text" name="title_2ln" size="40" value="" /></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th scope="row"><label for="url">網址:</label></th>
|
||||
<td><input id="url" class="text" type="text" name="url" size="40" value="http://" /></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th scope="row"><label for="icon">連結小圖:</label></th>
|
||||
<td><input id="icon" class="text" type="text" name="icon" size="40" value="http://" /></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th scope="row"><label for="cat0">分類:</label></th>
|
||||
<td><input id="cat0" class="text" type="text" name="cat0" size="40" value="" /><br />
|
||||
<input id="cat1" class="text" type="text" name="cat1" size="40" value="" /><br />
|
||||
<input id="cat2" class="text" type="text" name="cat2" size="40" value="" /></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th scope="row"><label for="dsc">簡介:</label></th>
|
||||
<td><textarea id="dsc" name="dsc" cols="45" rows="10"
|
||||
onfocus="if (this.value == "請填上簡介。") this.value = "";">請填上簡介。</textarea></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th scope="row"><label for="email">E-mail :</label></th>
|
||||
<td><input id="email" class="text" type="text" name="email" size="40" value="" /></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th scope="row"><label for="addr">連絡地址:</label></th>
|
||||
<td><input id="addr" class="text" type="text" name="addr" size="40" value="" /></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th scope="row"><label for="tel">連絡電話:</label></th>
|
||||
<td><input id="tel" class="text" type="text" name="tel" size="40" value="" /></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th scope="row"><label for="fax">連絡傳真:</label></th>
|
||||
<td><input id="fax" class="text" type="text" name="fax" size="40" value="" /></td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
<input type="submit" value="和我簽手" />
|
||||
</div>
|
||||
</form>
|
||||
|
||||
</div>
|
||||
|
||||
<hr />
|
||||
<div id="footer" class="footer" title="頁尾區">
|
||||
|
||||
<div>
|
||||
<a href=".." title="女聲電子報網站"><img
|
||||
src="../images/icon" alt="女聲" /></a>|<a
|
||||
href="https://www.imacat.idv.tw/"
|
||||
title="往旅舍依瑪網站"><img
|
||||
src="https://www.imacat.idv.tw/images/icon"
|
||||
alt="歡迎光臨旅舍依瑪" /></a>
|
||||
</div>
|
||||
|
||||
<div>
|
||||
<a href="http://www.w3.org/Style/CSS/Buttons/"
|
||||
title="CSS 樣式表說明" hreflang="en"><img
|
||||
src="../images/w3c/mwcts" alt="以 CSS 樣式表製作" /></a>|<a
|
||||
href="http://html-validator.imacat.idv.tw/check/referer"
|
||||
title="本頁的 HTML 驗證結果" hreflang="en"><img
|
||||
src="../images/w3c/vxhtml11" alt="XHTML 1.1 正確!" /></a>|<a
|
||||
href="http://jigsaw.w3.org/css-validator/check/referer"
|
||||
title="本頁的 CSS 驗證結果" hreflang="en"><img
|
||||
src="../images/w3c/vcss" alt="CSS 正確!" /></a>|<a
|
||||
href="http://www.w3.org/WAI/WCAG1AAA-Conformance"
|
||||
title="無障礙三 A 級標準說明" hreflang="en"><img
|
||||
src="../images/w3c/wcag1AAA"
|
||||
alt="W3C 無障礙網頁規範 1.0 三 A 級標準標章" /></a>
|
||||
<p>本頁符合 <a href="http://www.w3.org/TR/xhtml11/" hreflang="en"><abbr
|
||||
title="Extensible HyperText Markup Language">XHTML</abbr> 1.1</a> /
|
||||
<a href="http://www.w3.org/TR/CSS21/" hreflang="en"><abbr
|
||||
title="Cascading Style Sheets">CSS</abbr> 2.1</a> /
|
||||
<a href="http://www.w3.org/TR/WAI-WEBCONTENT/"
|
||||
hreflang="en">無障礙網頁規範 1.0</a> 三 A 級標準</p>
|
||||
</div>
|
||||
|
||||
<div>
|
||||
<p>《女聲》電子報著作權所有,欲轉載引用請先閱讀<a href="../copying.html">著作權聲明</a></p>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
</body>
|
||||
</html>
|
||||
1
htdocs/wov/links/feminist.html.html
Symbolic link
@@ -0,0 +1 @@
|
||||
feminist.html.xhtml
|
||||
431
htdocs/wov/links/feminist.html.xhtml
Normal file
@@ -0,0 +1,431 @@
|
||||
<?xml version="1.0" encoding="UTF-8" ?>
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
|
||||
"http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
|
||||
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="zh-tw">
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="application/xhtml+xml; charset=UTF-8" />
|
||||
<meta http-equiv="Content-Style-Type" content="text/css" />
|
||||
<meta http-equiv="Content-Script-Type" content="text/javascript" />
|
||||
<meta name="author" content="小招, 依瑪貓" />
|
||||
<meta name="copyright" content="© 1999-2020 《女聲》電子報。《女聲》電子報保有所有權利。" />
|
||||
<meta name="keywords" content="女性主義, 婦運, 女權, 性別" />
|
||||
<meta name="generator" content="Selima 3.10" />
|
||||
<link rel="start" type="application/xhtml+xml" href=".." />
|
||||
<link rel="copyright" type="application/xhtml+xml" href="../copying.html" />
|
||||
<link rel="author" href="mailto:editors@mail.wov.idv.tw" />
|
||||
<link rel="search" type="application/xhtml+xml" href="../cgi-bin/search.cgi" />
|
||||
<link rel="up" type="application/xhtml+xml" href="." />
|
||||
<link rel="stylesheet" type="text/css" href="../stylesheets/common.css" />
|
||||
<link rel="shortcut icon" type="image/x-icon" href="../favicon.ico" />
|
||||
<title>抗爭的女人</title>
|
||||
</head>
|
||||
<body class="links">
|
||||
|
||||
<div id="topofpage" class="skiptobody">
|
||||
<a accesskey="2" href="#body">跳到網頁內文區。</a>
|
||||
</div>
|
||||
|
||||
|
||||
<div id="nav" class="nav" title="導覽連結區">
|
||||
<div class="accessguide"><a accesskey="L"
|
||||
href="#nav" title="導覽連結區">:::</a></div>
|
||||
|
||||
<form action="../cgi-bin/search.cgi" method="get" accept-charset="UTF-8">
|
||||
<div class="navibar">
|
||||
<span><a href="../newsletters/">閱讀女聲</a></span> |
|
||||
<span><a href="../subscribe.html">訂閱女聲</a></span> |
|
||||
<span><a href="../cgi-bin/guestbook.cgi">妳的女聲</a></span> |
|
||||
<span><a href=".">女網牽手</a></span> |
|
||||
<span><a accesskey="1" href="..">回首頁</a></span> |
|
||||
<span><a href="mailto:editors@mail.wov.idv.tw">寫信給女聲</a></span> |
|
||||
<label for="navquery">檢索:</label><input
|
||||
id="navquery" class="text" type="text" name="query" value="" /><input
|
||||
type="hidden" name="charset" value="UTF-8" /><input
|
||||
type="submit" value="搜尋" />
|
||||
</div>
|
||||
</form>
|
||||
<hr />
|
||||
|
||||
<div class="navibar">
|
||||
<span><a href="orgs.html">一大群女人</a></span> |
|
||||
<span><a href="culture.html">女人文化界</a></span> |
|
||||
<span><a href="lesbian.html">女人愛女人</a></span> |
|
||||
<span><a href="science.html">女性與科技</a></span> |
|
||||
<span><a href="history.html">回首的女人</a></span> |
|
||||
<span><a href="general.html">多樣的女人</a></span> |
|
||||
<span><a href="others.html">好人</a></span> |
|
||||
<span><a href="intell.html">好學的女人</a></span> |
|
||||
<span><a href="feminist.html">抗爭的女人</a></span> |
|
||||
<span><a href="labor.html">勞動的女人</a></span> |
|
||||
<span><a href="medicine.html">愛惜身體的女人</a></span> |
|
||||
<span><a href="queer.html">搞怪的女人</a></span> |
|
||||
<span><a href="literate.html">舞文弄墨的女人</a></span> |
|
||||
<span><a href="sex.html">隨性的女人</a></span>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
<hr />
|
||||
|
||||
<div id="body" class="body" title="網頁內文區">
|
||||
<div class="accessguide"><a accesskey="C"
|
||||
href="#body" title="網頁內文區">:::</a></div>
|
||||
|
||||
<div class="title">
|
||||
<img src="../images/logo"
|
||||
alt="女聲 LOGO" title="女聲 Woman's Voice" />
|
||||
<h1>抗爭的女人</h1>
|
||||
<h1 class="en" xml:lang="en-us">Struggling Women</h1>
|
||||
</div>
|
||||
|
||||
<div class="breadcrumb">
|
||||
<a href=".">女網牽手</a> /
|
||||
抗爭的女人
|
||||
</div>
|
||||
|
||||
<ol class="linkslist">
|
||||
<li>
|
||||
<cite>女學會資訊網</cite><br />
|
||||
網址: <a href="http://www.feminist.sinica.edu.tw/">http://www.feminist.sinica.edu.tw</a><br />
|
||||
(待撰寫)<br />
|
||||
</li>
|
||||
|
||||
<li>
|
||||
<form action="../cgi-bin/mailto.cgi" method="post">
|
||||
<div>
|
||||
<a href="http://www.feminist.org/"><img class="linkicon"
|
||||
src="http://www.feminist.org/fmf/graphics/fmfsmall.gif"
|
||||
alt="Feminist Majority Foundation" /></a><br />
|
||||
<cite><span class="en" xml:lang="en-us">Feminist Majority Foundation</span></cite><br />
|
||||
網址: <a href="http://www.feminist.org/">http://www.feminist.org/</a><br />
|
||||
E-mail : <input type="hidden" name="email" value="femajority at feminist.org" />
|
||||
<input type="image" src="../images/email" alt="E-mail" />
|
||||
femajority<span>@</span>feminist.org<br />
|
||||
地址: 1600 Wilson Boulevard, Suite 801, Arlington, VA 22209<br />
|
||||
電話: +1 (703) 522-2214<br />
|
||||
傳真: +1 (703) 522-2219<br />
|
||||
(待撰寫)<br />
|
||||
</div>
|
||||
</form>
|
||||
</li>
|
||||
|
||||
<li>
|
||||
<form action="../cgi-bin/mailto.cgi" method="post">
|
||||
<div>
|
||||
<a href="http://sex.ncu.edu.tw/"><img class="linkicon"
|
||||
src="http://sex.ncu.edu.tw/history/title.gif"
|
||||
alt="中央性/別研究室" /></a><br />
|
||||
<cite>中央性/別研究室 <span class="en" xml:lang="en-us">Center for the Study of Sexualities</span></cite><br />
|
||||
網址: <a href="http://sex.ncu.edu.tw/">http://sex.ncu.edu.tw/</a><br />
|
||||
E-mail : <input type="hidden" name="email" value="sex at ncu.edu.tw" />
|
||||
<input type="image" src="../images/email" alt="E-mail" />
|
||||
sex<span>@</span>ncu.edu.tw<br />
|
||||
電話: (03) 426-2926<br />
|
||||
傳真: (03) 426-2927<br />
|
||||
由何春蕤等教授所組成的研究室,持續關注多元性別與性取向的權利。<br />
|
||||
</div>
|
||||
</form>
|
||||
</li>
|
||||
|
||||
<li>
|
||||
<form action="../cgi-bin/mailto.cgi" method="post">
|
||||
<div>
|
||||
<a href="http://www.msmagazine.com/"><img class="linkicon"
|
||||
src="http://www.msmagazine.com/images/Ms.gif"
|
||||
alt="Ms. Magazine" /></a><br />
|
||||
<cite><span class="en" xml:lang="en-us">Ms. Magazine</span></cite><br />
|
||||
網址: <a href="http://www.msmagazine.com/">http://www.msmagazine.com/</a><br />
|
||||
E-mail : <input type="hidden" name="email" value="info at msmagazine.com" />
|
||||
<input type="image" src="../images/email" alt="E-mail" />
|
||||
info<span>@</span>msmagazine.com<br />
|
||||
地址: 20 Exchange Place 22nd floor New York, NY 10005<br />
|
||||
電話: +1 (212) 509-2092<br />
|
||||
傳真: +1 (212) 509-2407<br />
|
||||
美國歷史悠久的女性主義雜誌。<br />
|
||||
</div>
|
||||
</form>
|
||||
</li>
|
||||
|
||||
<li>
|
||||
<cite>性別與空間研究室</cite><br />
|
||||
網址: <a href="http://www.bp.ntu.edu.tw/WebUsers/hdbih/new_page_5.htm">http://www.bp.ntu.edu.tw/WebUsers/hdbih/new_page_5.htm</a><br />
|
||||
(待撰寫)<br />
|
||||
</li>
|
||||
|
||||
<li>
|
||||
<form action="../cgi-bin/mailto.cgi" method="post">
|
||||
<div>
|
||||
<cite>財團法人婦女新知基金會 <span class="en" xml:lang="en-us">Awakening Foundation</span></cite><br />
|
||||
網址: <a href="http://www.awakening.org.tw/">http://www.awakening.org.tw/</a><br />
|
||||
E-mail : <input type="hidden" name="email" value="hsinchi at ms10.hinet.net" />
|
||||
<input type="image" src="../images/email" alt="E-mail" />
|
||||
hsinchi<span>@</span>ms10.hinet.net<br />
|
||||
地址: 104 臺北市大同區長安東路二段 230 號 2 樓之 1<br />
|
||||
電話: (02) 2711-2814 (02) 2711-2874<br />
|
||||
傳真: (02) 2711-2571<br />
|
||||
臺灣第一個婦運團體,目前持續推動民法親屬篇的改革。<br />
|
||||
</div>
|
||||
</form>
|
||||
</li>
|
||||
|
||||
<li>
|
||||
<a href="http://www.now.org/"><img class="linkicon"
|
||||
src="http://www.now.org/purplgsm.gif"
|
||||
alt="National Organization for Women (NOW)" /></a><br />
|
||||
<cite><span class="en" xml:lang="en-us">National Organization for Women (NOW)</span></cite><br />
|
||||
網址: <a href="http://www.now.org/">http://www.now.org/</a><br />
|
||||
全美最大的婦運組織,在全美各地當設有分部。<br />
|
||||
</li>
|
||||
|
||||
<li>
|
||||
<cite>女性主義【自己的房間】BBS站 <span class="en" xml:lang="en-us">Feminism Net BBS "The Room of One's Own "</span></cite><br />
|
||||
網址: <a href="telnet://bbs.feminism.net/">telnet://bbs.feminism.net/</a><br />
|
||||
(待撰寫)<br />
|
||||
</li>
|
||||
|
||||
<li>
|
||||
<cite>豪爽女人何春蕤個人網頁</cite><br />
|
||||
網址: <a href="http://sex.ncu.edu.tw/members/ho/index.htm">http://sex.ncu.edu.tw/members/ho/index.htm</a><br />
|
||||
(待撰寫)<br />
|
||||
</li>
|
||||
|
||||
<li>
|
||||
<form action="../cgi-bin/mailto.cgi" method="post">
|
||||
<div>
|
||||
<cite><span class="en" xml:lang="en-us">The Center for Reproductive Law and Policy (CRLP)</span></cite><br />
|
||||
網址: <a href="http://www.crlp.org/">http://www.crlp.org/</a><br />
|
||||
E-mail : <input type="hidden" name="email" value="info at crlp.org" />
|
||||
<input type="image" src="../images/email" alt="E-mail" />
|
||||
info<span>@</span>crlp.org<br />
|
||||
地址: 120 Wall St., New York, NY 10005<br />
|
||||
電話: +1 (917) 637-3600<br />
|
||||
傳真: +1 (917) 637-3666<br />
|
||||
(待撰寫)<br />
|
||||
</div>
|
||||
</form>
|
||||
</li>
|
||||
|
||||
<li>
|
||||
<form action="../cgi-bin/mailto.cgi" method="post">
|
||||
<div>
|
||||
<cite><span class="en" xml:lang="en-us">Abortion Access Project</span></cite><br />
|
||||
網址: <a href="http://www.repro-activist.org/">http://www.repro-activist.org/</a><br />
|
||||
E-mail : <input type="hidden" name="email" value="info at repro-activist.org" />
|
||||
<input type="image" src="../images/email" alt="E-mail" />
|
||||
info<span>@</span>repro-activist.org<br />
|
||||
地址: 552 Massachusetts Avenue, Suite 215, Cambridge, Massachusetts 02139 USA<br />
|
||||
電話: +1 (617) 661-1161<br />
|
||||
傳真: +1 (617) 492-1915<br />
|
||||
(待撰寫)<br />
|
||||
</div>
|
||||
</form>
|
||||
</li>
|
||||
|
||||
<li>
|
||||
<cite><span class="en" xml:lang="en-us">EquityFeminism.Com</span></cite><br />
|
||||
網址: <a href="http://www.equityfeminism.com/">http://www.equityfeminism.com/</a><br />
|
||||
(待撰寫)<br />
|
||||
</li>
|
||||
|
||||
<li>
|
||||
<cite><span class="en" xml:lang="en-us">The National Abortion and Reproductive Rights Action League (NARAL)</span></cite><br />
|
||||
網址: <a href="http://www.naral.org/">http://www.naral.org/</a><br />
|
||||
Abortion and Reproductive Rights: Choice For Women<br />
|
||||
</li>
|
||||
|
||||
<li>
|
||||
<form action="../cgi-bin/mailto.cgi" method="post">
|
||||
<div>
|
||||
<cite>日日春</cite><br />
|
||||
網址: <a href="http://www.taconet.com.tw/Home/">http://www.taconet.com.tw/Home/</a><br />
|
||||
E-mail : <input type="hidden" name="email" value="sfww at ms11.url.com.tw" />
|
||||
<input type="image" src="../images/email" alt="E-mail" />
|
||||
sfww<span>@</span>ms11.url.com.tw<br />
|
||||
台北市公娼自救會網站<br />
|
||||
</div>
|
||||
</form>
|
||||
</li>
|
||||
|
||||
<li>
|
||||
<form action="../cgi-bin/mailto.cgi" method="post">
|
||||
<div>
|
||||
<cite><span class="en" xml:lang="en-us">Feminist Press</span></cite><br />
|
||||
網址: <a href="http://www.feministpress.org/">http://www.feministpress.org/</a><br />
|
||||
E-mail : <input type="hidden" name="email" value="jroncker at gc.cuny.edu" />
|
||||
<input type="image" src="../images/email" alt="E-mail" />
|
||||
jroncker<span>@</span>gc.cuny.edu<br />
|
||||
電話: 212-817-7925<br />
|
||||
傳真: 212-817-1593<br />
|
||||
待撰寫。<br />
|
||||
</div>
|
||||
</form>
|
||||
</li>
|
||||
|
||||
<li>
|
||||
<form action="../cgi-bin/mailto.cgi" method="post">
|
||||
<div>
|
||||
<cite><span class="en" xml:lang="en-us">Feminist Women's Health Center</span></cite><br />
|
||||
網址: <a href="http://www.fwhc.org/">http://www.fwhc.org/</a><br />
|
||||
E-mail : <input type="hidden" name="email" value="info at fwhc.org" />
|
||||
<input type="image" src="../images/email" alt="E-mail" />
|
||||
info<span>@</span>fwhc.org<br />
|
||||
待撰寫。<br />
|
||||
</div>
|
||||
</form>
|
||||
</li>
|
||||
|
||||
<li>
|
||||
<form action="../cgi-bin/mailto.cgi" method="post">
|
||||
<div>
|
||||
<cite><span class="en" xml:lang="en-us">Margaret Sanger Papers Project</span></cite><br />
|
||||
網址: <a href="http://www.nyu.edu/projects/sanger/">http://www.nyu.edu/projects/sanger/</a><br />
|
||||
E-mail : <input type="hidden" name="email" value="cathy.hajo at nyu.edu" />
|
||||
<input type="image" src="../images/email" alt="E-mail" />
|
||||
cathy.hajo<span>@</span>nyu.edu<br />
|
||||
待撰寫。<br />
|
||||
</div>
|
||||
</form>
|
||||
</li>
|
||||
|
||||
<li>
|
||||
<form action="../cgi-bin/mailto.cgi" method="post">
|
||||
<div>
|
||||
<a href="http://www.feminism.cn/"><img class="linkicon"
|
||||
src="http://www.feminism.cn/images/feminismlogo1.jpg"
|
||||
alt="女权中国" /></a><br />
|
||||
<cite>女权中国</cite><br />
|
||||
網址: <a href="http://www.feminism.cn/">http://www.feminism.cn/</a><br />
|
||||
E-mail : <input type="hidden" name="email" value="feminism at 163.com" />
|
||||
<input type="image" src="../images/email" alt="E-mail" />
|
||||
feminism<span>@</span>163.com<br />
|
||||
中国本土最大的女权主义学术资源网站<br />
|
||||
</div>
|
||||
</form>
|
||||
</li>
|
||||
|
||||
<li>
|
||||
<form action="../cgi-bin/mailto.cgi" method="post">
|
||||
<div>
|
||||
<a href="http://www.feminist.cn/"><img class="linkicon"
|
||||
src="http://www.feminist.cn/images/f9.gif"
|
||||
alt="女权在线" /></a><br />
|
||||
<cite>女权在线</cite><br />
|
||||
網址: <a href="http://www.feminist.cn/">http://www.feminist.cn/</a><br />
|
||||
E-mail : <input type="hidden" name="email" value="feminist at 163.com" />
|
||||
<input type="image" src="../images/email" alt="E-mail" />
|
||||
feminist<span>@</span>163.com<br />
|
||||
電話: 138-16755142<br />
|
||||
中国大陆女性主义者集结地,以倡导两性平等为宗旨的公益性站点.<br />
|
||||
</div>
|
||||
</form>
|
||||
</li>
|
||||
|
||||
</ol>
|
||||
|
||||
<hr />
|
||||
<h2>女網牽手‧和妳牽手</h2>
|
||||
|
||||
<div class="intro">
|
||||
<p>女人上網,伴手相牽。我們希望和各種不同國女人發聲的網站,或為女人努力發聲的網站串連起來,匯集成女人自己的網路空間。若妳也願意和我們牽手,請填好下表寄出。我們將儘快查詢妳的網址是否正確,然後加入女網牽手中。</p>
|
||||
</div>
|
||||
|
||||
<form class="regform" action="mailto:editors@mail.wov.idv.tw?subject=%5B%E5%A5%B3%E8%81%B2%E5%9B%9E%E5%87%BD%5D%20%E7%B6%B2%E7%AB%99%E7%99%BB%E9%8C%84"
|
||||
method="post" enctype="text/plain" accept-charset="UTF-8"
|
||||
onsubmit="return isRegisterOK(this);">
|
||||
<div>
|
||||
<input type="hidden" name="charset" value="UTF-8" />
|
||||
<table summary="本表提供登錄女聲女網簽手的表單,網站資料欄位名稱,和填寫該資料的輸入格。">
|
||||
<colgroup><col /><col /></colgroup>
|
||||
<tbody>
|
||||
<tr>
|
||||
<th scope="row"><label for="title">站名:</label></th>
|
||||
<td><input id="title" class="text" type="text" name="title" size="40" value="" /></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th scope="row"><label for="title_2ln">站名(第二語言,可略):</label></th>
|
||||
<td><input id="title_2ln" class="text" type="text" name="title_2ln" size="40" value="" /></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th scope="row"><label for="url">網址:</label></th>
|
||||
<td><input id="url" class="text" type="text" name="url" size="40" value="http://" /></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th scope="row"><label for="icon">連結小圖:</label></th>
|
||||
<td><input id="icon" class="text" type="text" name="icon" size="40" value="http://" /></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th scope="row"><label for="cat0">分類:</label></th>
|
||||
<td><input id="cat0" class="text" type="text" name="cat0" size="40" value="" /><br />
|
||||
<input id="cat1" class="text" type="text" name="cat1" size="40" value="" /><br />
|
||||
<input id="cat2" class="text" type="text" name="cat2" size="40" value="" /></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th scope="row"><label for="dsc">簡介:</label></th>
|
||||
<td><textarea id="dsc" name="dsc" cols="45" rows="10"
|
||||
onfocus="if (this.value == "請填上簡介。") this.value = "";">請填上簡介。</textarea></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th scope="row"><label for="email">E-mail :</label></th>
|
||||
<td><input id="email" class="text" type="text" name="email" size="40" value="" /></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th scope="row"><label for="addr">連絡地址:</label></th>
|
||||
<td><input id="addr" class="text" type="text" name="addr" size="40" value="" /></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th scope="row"><label for="tel">連絡電話:</label></th>
|
||||
<td><input id="tel" class="text" type="text" name="tel" size="40" value="" /></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th scope="row"><label for="fax">連絡傳真:</label></th>
|
||||
<td><input id="fax" class="text" type="text" name="fax" size="40" value="" /></td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
<input type="submit" value="和我簽手" />
|
||||
</div>
|
||||
</form>
|
||||
|
||||
</div>
|
||||
|
||||
<hr />
|
||||
<div id="footer" class="footer" title="頁尾區">
|
||||
|
||||
<div>
|
||||
<a href=".." title="女聲電子報網站"><img
|
||||
src="../images/icon" alt="女聲" /></a>|<a
|
||||
href="https://www.imacat.idv.tw/"
|
||||
title="往旅舍依瑪網站"><img
|
||||
src="https://www.imacat.idv.tw/images/icon"
|
||||
alt="歡迎光臨旅舍依瑪" /></a>
|
||||
</div>
|
||||
|
||||
<div>
|
||||
<a href="http://www.w3.org/Style/CSS/Buttons/"
|
||||
title="CSS 樣式表說明" hreflang="en"><img
|
||||
src="../images/w3c/mwcts" alt="以 CSS 樣式表製作" /></a>|<a
|
||||
href="http://html-validator.imacat.idv.tw/check/referer"
|
||||
title="本頁的 HTML 驗證結果" hreflang="en"><img
|
||||
src="../images/w3c/vxhtml11" alt="XHTML 1.1 正確!" /></a>|<a
|
||||
href="http://jigsaw.w3.org/css-validator/check/referer"
|
||||
title="本頁的 CSS 驗證結果" hreflang="en"><img
|
||||
src="../images/w3c/vcss" alt="CSS 正確!" /></a>|<a
|
||||
href="http://www.w3.org/WAI/WCAG1AAA-Conformance"
|
||||
title="無障礙三 A 級標準說明" hreflang="en"><img
|
||||
src="../images/w3c/wcag1AAA"
|
||||
alt="W3C 無障礙網頁規範 1.0 三 A 級標準標章" /></a>
|
||||
<p>本頁符合 <a href="http://www.w3.org/TR/xhtml11/" hreflang="en"><abbr
|
||||
title="Extensible HyperText Markup Language">XHTML</abbr> 1.1</a> /
|
||||
<a href="http://www.w3.org/TR/CSS21/" hreflang="en"><abbr
|
||||
title="Cascading Style Sheets">CSS</abbr> 2.1</a> /
|
||||
<a href="http://www.w3.org/TR/WAI-WEBCONTENT/"
|
||||
hreflang="en">無障礙網頁規範 1.0</a> 三 A 級標準</p>
|
||||
</div>
|
||||
|
||||
<div>
|
||||
<p>《女聲》電子報著作權所有,欲轉載引用請先閱讀<a href="../copying.html">著作權聲明</a></p>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
</body>
|
||||
</html>
|
||||
1
htdocs/wov/links/general.html.html
Symbolic link
@@ -0,0 +1 @@
|
||||
general.html.xhtml
|
||||
237
htdocs/wov/links/general.html.xhtml
Normal file
@@ -0,0 +1,237 @@
|
||||
<?xml version="1.0" encoding="UTF-8" ?>
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
|
||||
"http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
|
||||
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="zh-tw">
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="application/xhtml+xml; charset=UTF-8" />
|
||||
<meta http-equiv="Content-Style-Type" content="text/css" />
|
||||
<meta http-equiv="Content-Script-Type" content="text/javascript" />
|
||||
<meta name="author" content="小招, 依瑪貓" />
|
||||
<meta name="copyright" content="© 1999-2020 《女聲》電子報。《女聲》電子報保有所有權利。" />
|
||||
<meta name="keywords" content="綜合, 入口網站" />
|
||||
<meta name="generator" content="Selima 3.10" />
|
||||
<link rel="start" type="application/xhtml+xml" href=".." />
|
||||
<link rel="copyright" type="application/xhtml+xml" href="../copying.html" />
|
||||
<link rel="author" href="mailto:editors@mail.wov.idv.tw" />
|
||||
<link rel="search" type="application/xhtml+xml" href="../cgi-bin/search.cgi" />
|
||||
<link rel="up" type="application/xhtml+xml" href="." />
|
||||
<link rel="stylesheet" type="text/css" href="../stylesheets/common.css" />
|
||||
<link rel="shortcut icon" type="image/x-icon" href="../favicon.ico" />
|
||||
<title>多樣的女人</title>
|
||||
</head>
|
||||
<body class="links">
|
||||
|
||||
<div id="topofpage" class="skiptobody">
|
||||
<a accesskey="2" href="#body">跳到網頁內文區。</a>
|
||||
</div>
|
||||
|
||||
|
||||
<div id="nav" class="nav" title="導覽連結區">
|
||||
<div class="accessguide"><a accesskey="L"
|
||||
href="#nav" title="導覽連結區">:::</a></div>
|
||||
|
||||
<form action="../cgi-bin/search.cgi" method="get" accept-charset="UTF-8">
|
||||
<div class="navibar">
|
||||
<span><a href="../newsletters/">閱讀女聲</a></span> |
|
||||
<span><a href="../subscribe.html">訂閱女聲</a></span> |
|
||||
<span><a href="../cgi-bin/guestbook.cgi">妳的女聲</a></span> |
|
||||
<span><a href=".">女網牽手</a></span> |
|
||||
<span><a accesskey="1" href="..">回首頁</a></span> |
|
||||
<span><a href="mailto:editors@mail.wov.idv.tw">寫信給女聲</a></span> |
|
||||
<label for="navquery">檢索:</label><input
|
||||
id="navquery" class="text" type="text" name="query" value="" /><input
|
||||
type="hidden" name="charset" value="UTF-8" /><input
|
||||
type="submit" value="搜尋" />
|
||||
</div>
|
||||
</form>
|
||||
<hr />
|
||||
|
||||
<div class="navibar">
|
||||
<span><a href="orgs.html">一大群女人</a></span> |
|
||||
<span><a href="culture.html">女人文化界</a></span> |
|
||||
<span><a href="lesbian.html">女人愛女人</a></span> |
|
||||
<span><a href="science.html">女性與科技</a></span> |
|
||||
<span><a href="history.html">回首的女人</a></span> |
|
||||
<span><a href="general.html">多樣的女人</a></span> |
|
||||
<span><a href="others.html">好人</a></span> |
|
||||
<span><a href="intell.html">好學的女人</a></span> |
|
||||
<span><a href="feminist.html">抗爭的女人</a></span> |
|
||||
<span><a href="labor.html">勞動的女人</a></span> |
|
||||
<span><a href="medicine.html">愛惜身體的女人</a></span> |
|
||||
<span><a href="queer.html">搞怪的女人</a></span> |
|
||||
<span><a href="literate.html">舞文弄墨的女人</a></span> |
|
||||
<span><a href="sex.html">隨性的女人</a></span>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
<hr />
|
||||
|
||||
<div id="body" class="body" title="網頁內文區">
|
||||
<div class="accessguide"><a accesskey="C"
|
||||
href="#body" title="網頁內文區">:::</a></div>
|
||||
|
||||
<div class="title">
|
||||
<img src="../images/logo"
|
||||
alt="女聲 LOGO" title="女聲 Woman's Voice" />
|
||||
<h1>多樣的女人</h1>
|
||||
<h1 class="en" xml:lang="en-us">Mass Women</h1>
|
||||
</div>
|
||||
|
||||
<div class="breadcrumb">
|
||||
<a href=".">女網牽手</a> /
|
||||
多樣的女人
|
||||
</div>
|
||||
|
||||
<ol class="linkslist">
|
||||
<li>
|
||||
<form action="../cgi-bin/mailto.cgi" method="post">
|
||||
<div>
|
||||
<cite><span class="en" xml:lang="en-us">Sunshine for Women</span></cite><br />
|
||||
網址: <a href="http://www.pinn.net/~sunshine/main.html">http://www.pinn.net/~sunshine/main.html</a><br />
|
||||
E-mail : <input type="hidden" name="email" value="sunshine at pinn.net" />
|
||||
<input type="image" src="../images/email" alt="E-mail" />
|
||||
sunshine<span>@</span>pinn.net<br />
|
||||
(待撰寫)<br />
|
||||
</div>
|
||||
</form>
|
||||
</li>
|
||||
|
||||
<li>
|
||||
<cite><span class="en" xml:lang="en-us">iVillage.com</span></cite><br />
|
||||
網址: <a href="http://www.ivillage.com/">http://www.ivillage.com/</a><br />
|
||||
(待撰寫)<br />
|
||||
</li>
|
||||
|
||||
<li>
|
||||
<cite><span class="en" xml:lang="en-us">Oxygen.com</span></cite><br />
|
||||
網址: <a href="http://oxygen.com/">http://oxygen.com/</a><br />
|
||||
Oxygen Media is a 24-hour cable television network on a mission to bring women (and the men who love them) the edgiest, most innovative entertainment on television.<br />
|
||||
</li>
|
||||
|
||||
<li>
|
||||
<form action="../cgi-bin/mailto.cgi" method="post">
|
||||
<div>
|
||||
<a href="http://www.feminist.cn/"><img class="linkicon"
|
||||
src="http://www.feminist.cn/images/f9.gif"
|
||||
alt="女权在线" /></a><br />
|
||||
<cite>女权在线</cite><br />
|
||||
網址: <a href="http://www.feminist.cn/">http://www.feminist.cn/</a><br />
|
||||
E-mail : <input type="hidden" name="email" value="feminist at 163.com" />
|
||||
<input type="image" src="../images/email" alt="E-mail" />
|
||||
feminist<span>@</span>163.com<br />
|
||||
電話: 138-16755142<br />
|
||||
中国大陆女性主义者集结地,以倡导两性平等为宗旨的公益性站点.<br />
|
||||
</div>
|
||||
</form>
|
||||
</li>
|
||||
|
||||
</ol>
|
||||
|
||||
<hr />
|
||||
<h2>女網牽手‧和妳牽手</h2>
|
||||
|
||||
<div class="intro">
|
||||
<p>女人上網,伴手相牽。我們希望和各種不同國女人發聲的網站,或為女人努力發聲的網站串連起來,匯集成女人自己的網路空間。若妳也願意和我們牽手,請填好下表寄出。我們將儘快查詢妳的網址是否正確,然後加入女網牽手中。</p>
|
||||
</div>
|
||||
|
||||
<form class="regform" action="mailto:editors@mail.wov.idv.tw?subject=%5B%E5%A5%B3%E8%81%B2%E5%9B%9E%E5%87%BD%5D%20%E7%B6%B2%E7%AB%99%E7%99%BB%E9%8C%84"
|
||||
method="post" enctype="text/plain" accept-charset="UTF-8"
|
||||
onsubmit="return isRegisterOK(this);">
|
||||
<div>
|
||||
<input type="hidden" name="charset" value="UTF-8" />
|
||||
<table summary="本表提供登錄女聲女網簽手的表單,網站資料欄位名稱,和填寫該資料的輸入格。">
|
||||
<colgroup><col /><col /></colgroup>
|
||||
<tbody>
|
||||
<tr>
|
||||
<th scope="row"><label for="title">站名:</label></th>
|
||||
<td><input id="title" class="text" type="text" name="title" size="40" value="" /></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th scope="row"><label for="title_2ln">站名(第二語言,可略):</label></th>
|
||||
<td><input id="title_2ln" class="text" type="text" name="title_2ln" size="40" value="" /></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th scope="row"><label for="url">網址:</label></th>
|
||||
<td><input id="url" class="text" type="text" name="url" size="40" value="http://" /></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th scope="row"><label for="icon">連結小圖:</label></th>
|
||||
<td><input id="icon" class="text" type="text" name="icon" size="40" value="http://" /></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th scope="row"><label for="cat0">分類:</label></th>
|
||||
<td><input id="cat0" class="text" type="text" name="cat0" size="40" value="" /><br />
|
||||
<input id="cat1" class="text" type="text" name="cat1" size="40" value="" /><br />
|
||||
<input id="cat2" class="text" type="text" name="cat2" size="40" value="" /></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th scope="row"><label for="dsc">簡介:</label></th>
|
||||
<td><textarea id="dsc" name="dsc" cols="45" rows="10"
|
||||
onfocus="if (this.value == "請填上簡介。") this.value = "";">請填上簡介。</textarea></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th scope="row"><label for="email">E-mail :</label></th>
|
||||
<td><input id="email" class="text" type="text" name="email" size="40" value="" /></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th scope="row"><label for="addr">連絡地址:</label></th>
|
||||
<td><input id="addr" class="text" type="text" name="addr" size="40" value="" /></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th scope="row"><label for="tel">連絡電話:</label></th>
|
||||
<td><input id="tel" class="text" type="text" name="tel" size="40" value="" /></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th scope="row"><label for="fax">連絡傳真:</label></th>
|
||||
<td><input id="fax" class="text" type="text" name="fax" size="40" value="" /></td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
<input type="submit" value="和我簽手" />
|
||||
</div>
|
||||
</form>
|
||||
|
||||
</div>
|
||||
|
||||
<hr />
|
||||
<div id="footer" class="footer" title="頁尾區">
|
||||
|
||||
<div>
|
||||
<a href=".." title="女聲電子報網站"><img
|
||||
src="../images/icon" alt="女聲" /></a>|<a
|
||||
href="https://www.imacat.idv.tw/"
|
||||
title="往旅舍依瑪網站"><img
|
||||
src="https://www.imacat.idv.tw/images/icon"
|
||||
alt="歡迎光臨旅舍依瑪" /></a>
|
||||
</div>
|
||||
|
||||
<div>
|
||||
<a href="http://www.w3.org/Style/CSS/Buttons/"
|
||||
title="CSS 樣式表說明" hreflang="en"><img
|
||||
src="../images/w3c/mwcts" alt="以 CSS 樣式表製作" /></a>|<a
|
||||
href="http://html-validator.imacat.idv.tw/check/referer"
|
||||
title="本頁的 HTML 驗證結果" hreflang="en"><img
|
||||
src="../images/w3c/vxhtml11" alt="XHTML 1.1 正確!" /></a>|<a
|
||||
href="http://jigsaw.w3.org/css-validator/check/referer"
|
||||
title="本頁的 CSS 驗證結果" hreflang="en"><img
|
||||
src="../images/w3c/vcss" alt="CSS 正確!" /></a>|<a
|
||||
href="http://www.w3.org/WAI/WCAG1AAA-Conformance"
|
||||
title="無障礙三 A 級標準說明" hreflang="en"><img
|
||||
src="../images/w3c/wcag1AAA"
|
||||
alt="W3C 無障礙網頁規範 1.0 三 A 級標準標章" /></a>
|
||||
<p>本頁符合 <a href="http://www.w3.org/TR/xhtml11/" hreflang="en"><abbr
|
||||
title="Extensible HyperText Markup Language">XHTML</abbr> 1.1</a> /
|
||||
<a href="http://www.w3.org/TR/CSS21/" hreflang="en"><abbr
|
||||
title="Cascading Style Sheets">CSS</abbr> 2.1</a> /
|
||||
<a href="http://www.w3.org/TR/WAI-WEBCONTENT/"
|
||||
hreflang="en">無障礙網頁規範 1.0</a> 三 A 級標準</p>
|
||||
</div>
|
||||
|
||||
<div>
|
||||
<p>《女聲》電子報著作權所有,欲轉載引用請先閱讀<a href="../copying.html">著作權聲明</a></p>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
</body>
|
||||
</html>
|
||||
1
htdocs/wov/links/history.html.html
Symbolic link
@@ -0,0 +1 @@
|
||||
history.html.xhtml
|
||||
260
htdocs/wov/links/history.html.xhtml
Normal file
@@ -0,0 +1,260 @@
|
||||
<?xml version="1.0" encoding="UTF-8" ?>
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
|
||||
"http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
|
||||
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="zh-tw">
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="application/xhtml+xml; charset=UTF-8" />
|
||||
<meta http-equiv="Content-Style-Type" content="text/css" />
|
||||
<meta http-equiv="Content-Script-Type" content="text/javascript" />
|
||||
<meta name="author" content="小招, 依瑪貓" />
|
||||
<meta name="copyright" content="© 1999-2020 《女聲》電子報。《女聲》電子報保有所有權利。" />
|
||||
<meta name="keywords" content="婦女史" />
|
||||
<meta name="generator" content="Selima 3.10" />
|
||||
<link rel="start" type="application/xhtml+xml" href=".." />
|
||||
<link rel="copyright" type="application/xhtml+xml" href="../copying.html" />
|
||||
<link rel="author" href="mailto:editors@mail.wov.idv.tw" />
|
||||
<link rel="search" type="application/xhtml+xml" href="../cgi-bin/search.cgi" />
|
||||
<link rel="up" type="application/xhtml+xml" href="." />
|
||||
<link rel="stylesheet" type="text/css" href="../stylesheets/common.css" />
|
||||
<link rel="shortcut icon" type="image/x-icon" href="../favicon.ico" />
|
||||
<title>回首的女人</title>
|
||||
</head>
|
||||
<body class="links">
|
||||
|
||||
<div id="topofpage" class="skiptobody">
|
||||
<a accesskey="2" href="#body">跳到網頁內文區。</a>
|
||||
</div>
|
||||
|
||||
|
||||
<div id="nav" class="nav" title="導覽連結區">
|
||||
<div class="accessguide"><a accesskey="L"
|
||||
href="#nav" title="導覽連結區">:::</a></div>
|
||||
|
||||
<form action="../cgi-bin/search.cgi" method="get" accept-charset="UTF-8">
|
||||
<div class="navibar">
|
||||
<span><a href="../newsletters/">閱讀女聲</a></span> |
|
||||
<span><a href="../subscribe.html">訂閱女聲</a></span> |
|
||||
<span><a href="../cgi-bin/guestbook.cgi">妳的女聲</a></span> |
|
||||
<span><a href=".">女網牽手</a></span> |
|
||||
<span><a accesskey="1" href="..">回首頁</a></span> |
|
||||
<span><a href="mailto:editors@mail.wov.idv.tw">寫信給女聲</a></span> |
|
||||
<label for="navquery">檢索:</label><input
|
||||
id="navquery" class="text" type="text" name="query" value="" /><input
|
||||
type="hidden" name="charset" value="UTF-8" /><input
|
||||
type="submit" value="搜尋" />
|
||||
</div>
|
||||
</form>
|
||||
<hr />
|
||||
|
||||
<div class="navibar">
|
||||
<span><a href="orgs.html">一大群女人</a></span> |
|
||||
<span><a href="culture.html">女人文化界</a></span> |
|
||||
<span><a href="lesbian.html">女人愛女人</a></span> |
|
||||
<span><a href="science.html">女性與科技</a></span> |
|
||||
<span><a href="history.html">回首的女人</a></span> |
|
||||
<span><a href="general.html">多樣的女人</a></span> |
|
||||
<span><a href="others.html">好人</a></span> |
|
||||
<span><a href="intell.html">好學的女人</a></span> |
|
||||
<span><a href="feminist.html">抗爭的女人</a></span> |
|
||||
<span><a href="labor.html">勞動的女人</a></span> |
|
||||
<span><a href="medicine.html">愛惜身體的女人</a></span> |
|
||||
<span><a href="queer.html">搞怪的女人</a></span> |
|
||||
<span><a href="literate.html">舞文弄墨的女人</a></span> |
|
||||
<span><a href="sex.html">隨性的女人</a></span>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
<hr />
|
||||
|
||||
<div id="body" class="body" title="網頁內文區">
|
||||
<div class="accessguide"><a accesskey="C"
|
||||
href="#body" title="網頁內文區">:::</a></div>
|
||||
|
||||
<div class="title">
|
||||
<img src="../images/logo"
|
||||
alt="女聲 LOGO" title="女聲 Woman's Voice" />
|
||||
<h1>回首的女人</h1>
|
||||
<h1 class="en" xml:lang="en-us">Historical Women</h1>
|
||||
</div>
|
||||
|
||||
<div class="breadcrumb">
|
||||
<a href=".">女網牽手</a> /
|
||||
回首的女人
|
||||
</div>
|
||||
|
||||
<ol class="linkslist">
|
||||
<li>
|
||||
<cite>宋代婦女生活</cite><br />
|
||||
網址: <a href="http://libweb.zju.edu.cn/renwen/Site/women/index.html">http://libweb.zju.edu.cn/renwen/Site/women/index.html</a><br />
|
||||
(待撰寫)<br />
|
||||
</li>
|
||||
|
||||
<li>
|
||||
<cite><span class="en" xml:lang="en-us">Gender & History</span></cite><br />
|
||||
網址: <a href="http://www.blackwellpublishing.com/journal.asp?ref=0953-5233&site=1">http://www.blackwellpublishing.com/journal.asp?ref=0953-5233&site=1</a><br />
|
||||
待撰寫<br />
|
||||
</li>
|
||||
|
||||
<li>
|
||||
<form action="../cgi-bin/mailto.cgi" method="post">
|
||||
<div>
|
||||
<cite><span class="en" xml:lang="en-us">Sunshine for Women</span></cite><br />
|
||||
網址: <a href="http://www.pinn.net/~sunshine/main.html">http://www.pinn.net/~sunshine/main.html</a><br />
|
||||
E-mail : <input type="hidden" name="email" value="sunshine at pinn.net" />
|
||||
<input type="image" src="../images/email" alt="E-mail" />
|
||||
sunshine<span>@</span>pinn.net<br />
|
||||
(待撰寫)<br />
|
||||
</div>
|
||||
</form>
|
||||
</li>
|
||||
|
||||
<li>
|
||||
<cite><span class="en" xml:lang="en-us">American Women's History: A Research Guide</span></cite><br />
|
||||
網址: <a href="http://www.mtsu.edu/~kmiddlet/history/women.html">http://www.mtsu.edu/~kmiddlet/history/women.html</a><br />
|
||||
(待撰寫)<br />
|
||||
</li>
|
||||
|
||||
<li>
|
||||
<cite>「婦女與性別史研究群」</cite><br />
|
||||
網址: <a href="http://www.sinica.edu.tw/~women/index.htm">http://www.sinica.edu.tw/~women/index.htm</a><br />
|
||||
中央研究近代史研究所「 婦女與性別史研究群」網站<br />
|
||||
</li>
|
||||
|
||||
<li>
|
||||
<form action="../cgi-bin/mailto.cgi" method="post">
|
||||
<div>
|
||||
<cite><span class="en" xml:lang="en-us">Journal of Women's History</span></cite><br />
|
||||
網址: <a href="http://muse.jhu.edu/journals/journal_of_womens_history/">http://muse.jhu.edu/journals/journal_of_womens_history/</a><br />
|
||||
E-mail : <input type="hidden" name="email" value="muse at muse.jhu.edu" />
|
||||
<input type="image" src="../images/email" alt="E-mail" />
|
||||
muse<span>@</span>muse.jhu.edu<br />
|
||||
電話: (410) 516-6989<br />
|
||||
傳真: (410) 516-6968<br />
|
||||
待撰寫。<br />
|
||||
</div>
|
||||
</form>
|
||||
</li>
|
||||
|
||||
<li>
|
||||
<form action="../cgi-bin/mailto.cgi" method="post">
|
||||
<div>
|
||||
<cite><span class="en" xml:lang="en-us">GODEY'S LADY'S BOOK Online</span></cite><br />
|
||||
網址: <a href="http://www.history.rochester.edu/godeys/">http://www.history.rochester.edu/godeys/</a><br />
|
||||
E-mail : <input type="hidden" name="email" value="mapi at mail.rochester.edu" />
|
||||
<input type="image" src="../images/email" alt="E-mail" />
|
||||
mapi<span>@</span>mail.rochester.edu<br />
|
||||
待撰寫。<br />
|
||||
</div>
|
||||
</form>
|
||||
</li>
|
||||
|
||||
</ol>
|
||||
|
||||
<hr />
|
||||
<h2>女網牽手‧和妳牽手</h2>
|
||||
|
||||
<div class="intro">
|
||||
<p>女人上網,伴手相牽。我們希望和各種不同國女人發聲的網站,或為女人努力發聲的網站串連起來,匯集成女人自己的網路空間。若妳也願意和我們牽手,請填好下表寄出。我們將儘快查詢妳的網址是否正確,然後加入女網牽手中。</p>
|
||||
</div>
|
||||
|
||||
<form class="regform" action="mailto:editors@mail.wov.idv.tw?subject=%5B%E5%A5%B3%E8%81%B2%E5%9B%9E%E5%87%BD%5D%20%E7%B6%B2%E7%AB%99%E7%99%BB%E9%8C%84"
|
||||
method="post" enctype="text/plain" accept-charset="UTF-8"
|
||||
onsubmit="return isRegisterOK(this);">
|
||||
<div>
|
||||
<input type="hidden" name="charset" value="UTF-8" />
|
||||
<table summary="本表提供登錄女聲女網簽手的表單,網站資料欄位名稱,和填寫該資料的輸入格。">
|
||||
<colgroup><col /><col /></colgroup>
|
||||
<tbody>
|
||||
<tr>
|
||||
<th scope="row"><label for="title">站名:</label></th>
|
||||
<td><input id="title" class="text" type="text" name="title" size="40" value="" /></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th scope="row"><label for="title_2ln">站名(第二語言,可略):</label></th>
|
||||
<td><input id="title_2ln" class="text" type="text" name="title_2ln" size="40" value="" /></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th scope="row"><label for="url">網址:</label></th>
|
||||
<td><input id="url" class="text" type="text" name="url" size="40" value="http://" /></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th scope="row"><label for="icon">連結小圖:</label></th>
|
||||
<td><input id="icon" class="text" type="text" name="icon" size="40" value="http://" /></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th scope="row"><label for="cat0">分類:</label></th>
|
||||
<td><input id="cat0" class="text" type="text" name="cat0" size="40" value="" /><br />
|
||||
<input id="cat1" class="text" type="text" name="cat1" size="40" value="" /><br />
|
||||
<input id="cat2" class="text" type="text" name="cat2" size="40" value="" /></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th scope="row"><label for="dsc">簡介:</label></th>
|
||||
<td><textarea id="dsc" name="dsc" cols="45" rows="10"
|
||||
onfocus="if (this.value == "請填上簡介。") this.value = "";">請填上簡介。</textarea></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th scope="row"><label for="email">E-mail :</label></th>
|
||||
<td><input id="email" class="text" type="text" name="email" size="40" value="" /></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th scope="row"><label for="addr">連絡地址:</label></th>
|
||||
<td><input id="addr" class="text" type="text" name="addr" size="40" value="" /></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th scope="row"><label for="tel">連絡電話:</label></th>
|
||||
<td><input id="tel" class="text" type="text" name="tel" size="40" value="" /></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th scope="row"><label for="fax">連絡傳真:</label></th>
|
||||
<td><input id="fax" class="text" type="text" name="fax" size="40" value="" /></td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
<input type="submit" value="和我簽手" />
|
||||
</div>
|
||||
</form>
|
||||
|
||||
</div>
|
||||
|
||||
<hr />
|
||||
<div id="footer" class="footer" title="頁尾區">
|
||||
|
||||
<div>
|
||||
<a href=".." title="女聲電子報網站"><img
|
||||
src="../images/icon" alt="女聲" /></a>|<a
|
||||
href="https://www.imacat.idv.tw/"
|
||||
title="往旅舍依瑪網站"><img
|
||||
src="https://www.imacat.idv.tw/images/icon"
|
||||
alt="歡迎光臨旅舍依瑪" /></a>
|
||||
</div>
|
||||
|
||||
<div>
|
||||
<a href="http://www.w3.org/Style/CSS/Buttons/"
|
||||
title="CSS 樣式表說明" hreflang="en"><img
|
||||
src="../images/w3c/mwcts" alt="以 CSS 樣式表製作" /></a>|<a
|
||||
href="http://html-validator.imacat.idv.tw/check/referer"
|
||||
title="本頁的 HTML 驗證結果" hreflang="en"><img
|
||||
src="../images/w3c/vxhtml11" alt="XHTML 1.1 正確!" /></a>|<a
|
||||
href="http://jigsaw.w3.org/css-validator/check/referer"
|
||||
title="本頁的 CSS 驗證結果" hreflang="en"><img
|
||||
src="../images/w3c/vcss" alt="CSS 正確!" /></a>|<a
|
||||
href="http://www.w3.org/WAI/WCAG1AAA-Conformance"
|
||||
title="無障礙三 A 級標準說明" hreflang="en"><img
|
||||
src="../images/w3c/wcag1AAA"
|
||||
alt="W3C 無障礙網頁規範 1.0 三 A 級標準標章" /></a>
|
||||
<p>本頁符合 <a href="http://www.w3.org/TR/xhtml11/" hreflang="en"><abbr
|
||||
title="Extensible HyperText Markup Language">XHTML</abbr> 1.1</a> /
|
||||
<a href="http://www.w3.org/TR/CSS21/" hreflang="en"><abbr
|
||||
title="Cascading Style Sheets">CSS</abbr> 2.1</a> /
|
||||
<a href="http://www.w3.org/TR/WAI-WEBCONTENT/"
|
||||
hreflang="en">無障礙網頁規範 1.0</a> 三 A 級標準</p>
|
||||
</div>
|
||||
|
||||
<div>
|
||||
<p>《女聲》電子報著作權所有,欲轉載引用請先閱讀<a href="../copying.html">著作權聲明</a></p>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
</body>
|
||||
</html>
|
||||
1
htdocs/wov/links/index.html.html
Symbolic link
@@ -0,0 +1 @@
|
||||
index.html.xhtml
|
||||
206
htdocs/wov/links/index.html.xhtml
Normal file
@@ -0,0 +1,206 @@
|
||||
<?xml version="1.0" encoding="UTF-8" ?>
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
|
||||
"http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
|
||||
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="zh-tw">
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="application/xhtml+xml; charset=UTF-8" />
|
||||
<meta http-equiv="Content-Style-Type" content="text/css" />
|
||||
<meta http-equiv="Content-Script-Type" content="text/javascript" />
|
||||
<meta name="author" content="小招, 依瑪貓" />
|
||||
<meta name="copyright" content="© 1999-2020 《女聲》電子報。《女聲》電子報保有所有權利。" />
|
||||
<meta name="keywords" content="相關連結" />
|
||||
<meta name="generator" content="Selima 3.10" />
|
||||
<link rel="start" type="application/xhtml+xml" href=".." />
|
||||
<link rel="copyright" type="application/xhtml+xml" href="../copying.html" />
|
||||
<link rel="author" href="mailto:editors@mail.wov.idv.tw" />
|
||||
<link rel="search" type="application/xhtml+xml" href="../cgi-bin/search.cgi" />
|
||||
<link rel="up" type="application/xhtml+xml" href=".." />
|
||||
<link rel="stylesheet" type="text/css" href="../stylesheets/common.css" />
|
||||
<script type="text/javascript" src="../scripts/common.js"></script>
|
||||
<script type="text/javascript" src="../scripts/lang.zh-tw.js"></script>
|
||||
<script type="text/javascript" src="../scripts/links.js"></script>
|
||||
<link rel="shortcut icon" type="image/x-icon" href="../favicon.ico" />
|
||||
<title>女網牽手</title>
|
||||
</head>
|
||||
<body class="links">
|
||||
|
||||
<div id="topofpage" class="skiptobody">
|
||||
<a accesskey="2" href="#body">跳到網頁內文區。</a>
|
||||
</div>
|
||||
|
||||
|
||||
<div id="nav" class="nav" title="導覽連結區">
|
||||
<div class="accessguide"><a accesskey="L"
|
||||
href="#nav" title="導覽連結區">:::</a></div>
|
||||
|
||||
<form action="../cgi-bin/search.cgi" method="get" accept-charset="UTF-8">
|
||||
<div class="navibar">
|
||||
<span><a href="../newsletters/">閱讀女聲</a></span> |
|
||||
<span><a href="../subscribe.html">訂閱女聲</a></span> |
|
||||
<span><a href="../cgi-bin/guestbook.cgi">妳的女聲</a></span> |
|
||||
<span><a href=".">女網牽手</a></span> |
|
||||
<span><a accesskey="1" href="..">回首頁</a></span> |
|
||||
<span><a href="mailto:editors@mail.wov.idv.tw">寫信給女聲</a></span> |
|
||||
<label for="navquery">檢索:</label><input
|
||||
id="navquery" class="text" type="text" name="query" value="" /><input
|
||||
type="hidden" name="charset" value="UTF-8" /><input
|
||||
type="submit" value="搜尋" />
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
<hr />
|
||||
|
||||
<div id="body" class="body" title="網頁內文區">
|
||||
<div class="accessguide"><a accesskey="C"
|
||||
href="#body" title="網頁內文區">:::</a></div>
|
||||
|
||||
<div class="title">
|
||||
<img src="../images/logo"
|
||||
alt="女聲 LOGO" title="女聲 Woman's Voice" />
|
||||
<h1>女網牽手</h1>
|
||||
<h1 class="en" xml:lang="en-us">Woman Interconnect</h1>
|
||||
</div>
|
||||
|
||||
<div class="intro">
|
||||
<p>女人牽手,總是多了一份親暱。</p>
|
||||
|
||||
<p>幼稚園、小學時期,女人們牽手上廁所;中學時期,女人們牽手面對成長的
|
||||
喜怒哀樂;畢業後或念大學,或出社會,女人們牽手分享彼此的感情世界與就業
|
||||
環境……藉由牽手,女人的情感、資訊流轉,女人的生命由此連結。</p>
|
||||
|
||||
<p>稍離現實的生活,女人進入虛擬網路的空間,藉由女網牽手,女人永不孤獨。</p>
|
||||
</div>
|
||||
|
||||
<div class="splittoc">
|
||||
<div class="tocl">
|
||||
<ul>
|
||||
<li><a href="orgs.html">一大群女人 <span class="note">(6)</span></a></li>
|
||||
<li><a href="lesbian.html">女人愛女人 <span class="note">(6)</span></a></li>
|
||||
<li><a href="history.html">回首的女人 <span class="note">(7)</span></a></li>
|
||||
<li><a href="others.html">好人 <span class="note">(5)</span></a></li>
|
||||
<li><a href="feminist.html">抗爭的女人 <span class="note">(19)</span></a></li>
|
||||
<li><a href="medicine.html">愛惜身體的女人 <span class="note">(6)</span></a></li>
|
||||
<li><a href="literate.html">舞文弄墨的女人 <span class="note">(1)</span></a></li>
|
||||
</ul>
|
||||
</div>
|
||||
<div class="tocr">
|
||||
<ul>
|
||||
<li><a href="culture.html">女人文化界 <span class="note">(8)</span></a></li>
|
||||
<li><a href="science.html">女性與科技 <span class="note">(1)</span></a></li>
|
||||
<li><a href="general.html">多樣的女人 <span class="note">(4)</span></a></li>
|
||||
<li><a href="intell.html">好學的女人 <span class="note">(17)</span></a></li>
|
||||
<li><a href="labor.html">勞動的女人 <span class="note">(1)</span></a></li>
|
||||
<li><a href="queer.html">搞怪的女人 <span class="note">(3)</span></a></li>
|
||||
<li><a href="sex.html">隨性的女人 <span class="note">(1)</span></a></li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<hr />
|
||||
<h2>女網牽手‧和妳牽手</h2>
|
||||
|
||||
<div class="intro">
|
||||
<p>女人上網,伴手相牽。我們希望和各種不同國女人發聲的網站,或為女人努力發聲的網站串連起來,匯集成女人自己的網路空間。若妳也願意和我們牽手,請填好下表寄出。我們將儘快查詢妳的網址是否正確,然後加入女網牽手中。</p>
|
||||
</div>
|
||||
|
||||
<form class="regform" action="mailto:editors@mail.wov.idv.tw?subject=%5B%E5%A5%B3%E8%81%B2%E5%9B%9E%E5%87%BD%5D%20%E7%B6%B2%E7%AB%99%E7%99%BB%E9%8C%84"
|
||||
method="post" enctype="text/plain" accept-charset="UTF-8"
|
||||
onsubmit="return isRegisterOK(this);">
|
||||
<div>
|
||||
<input type="hidden" name="charset" value="UTF-8" />
|
||||
<table summary="本表提供登錄女聲女網簽手的表單,網站資料欄位名稱,和填寫該資料的輸入格。">
|
||||
<colgroup><col /><col /></colgroup>
|
||||
<tbody>
|
||||
<tr>
|
||||
<th scope="row"><label for="title">站名:</label></th>
|
||||
<td><input id="title" class="text" type="text" name="title" size="40" value="" /></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th scope="row"><label for="title_2ln">站名(第二語言,可略):</label></th>
|
||||
<td><input id="title_2ln" class="text" type="text" name="title_2ln" size="40" value="" /></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th scope="row"><label for="url">網址:</label></th>
|
||||
<td><input id="url" class="text" type="text" name="url" size="40" value="http://" /></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th scope="row"><label for="icon">連結小圖:</label></th>
|
||||
<td><input id="icon" class="text" type="text" name="icon" size="40" value="http://" /></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th scope="row"><label for="cat0">分類:</label></th>
|
||||
<td><input id="cat0" class="text" type="text" name="cat0" size="40" value="" /><br />
|
||||
<input id="cat1" class="text" type="text" name="cat1" size="40" value="" /><br />
|
||||
<input id="cat2" class="text" type="text" name="cat2" size="40" value="" /></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th scope="row"><label for="dsc">簡介:</label></th>
|
||||
<td><textarea id="dsc" name="dsc" cols="45" rows="10"
|
||||
onfocus="if (this.value == "請填上簡介。") this.value = "";">請填上簡介。</textarea></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th scope="row"><label for="email">E-mail :</label></th>
|
||||
<td><input id="email" class="text" type="text" name="email" size="40" value="" /></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th scope="row"><label for="addr">連絡地址:</label></th>
|
||||
<td><input id="addr" class="text" type="text" name="addr" size="40" value="" /></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th scope="row"><label for="tel">連絡電話:</label></th>
|
||||
<td><input id="tel" class="text" type="text" name="tel" size="40" value="" /></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th scope="row"><label for="fax">連絡傳真:</label></th>
|
||||
<td><input id="fax" class="text" type="text" name="fax" size="40" value="" /></td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
<input type="submit" value="和我簽手" />
|
||||
</div>
|
||||
</form>
|
||||
|
||||
</div>
|
||||
|
||||
<hr />
|
||||
<div id="footer" class="footer" title="頁尾區">
|
||||
|
||||
<div>
|
||||
<a href=".." title="女聲電子報網站"><img
|
||||
src="../images/icon" alt="女聲" /></a>|<a
|
||||
href="https://www.imacat.idv.tw/"
|
||||
title="往旅舍依瑪網站"><img
|
||||
src="https://www.imacat.idv.tw/images/icon"
|
||||
alt="歡迎光臨旅舍依瑪" /></a>
|
||||
</div>
|
||||
|
||||
<div>
|
||||
<a href="http://www.w3.org/Style/CSS/Buttons/"
|
||||
title="CSS 樣式表說明" hreflang="en"><img
|
||||
src="../images/w3c/mwcts" alt="以 CSS 樣式表製作" /></a>|<a
|
||||
href="http://html-validator.imacat.idv.tw/check/referer"
|
||||
title="本頁的 HTML 驗證結果" hreflang="en"><img
|
||||
src="../images/w3c/vxhtml11" alt="XHTML 1.1 正確!" /></a>|<a
|
||||
href="http://jigsaw.w3.org/css-validator/check/referer"
|
||||
title="本頁的 CSS 驗證結果" hreflang="en"><img
|
||||
src="../images/w3c/vcss" alt="CSS 正確!" /></a>|<a
|
||||
href="http://www.w3.org/WAI/WCAG1AAA-Conformance"
|
||||
title="無障礙三 A 級標準說明" hreflang="en"><img
|
||||
src="../images/w3c/wcag1AAA"
|
||||
alt="W3C 無障礙網頁規範 1.0 三 A 級標準標章" /></a>
|
||||
<p>本頁符合 <a href="http://www.w3.org/TR/xhtml11/" hreflang="en"><abbr
|
||||
title="Extensible HyperText Markup Language">XHTML</abbr> 1.1</a> /
|
||||
<a href="http://www.w3.org/TR/CSS21/" hreflang="en"><abbr
|
||||
title="Cascading Style Sheets">CSS</abbr> 2.1</a> /
|
||||
<a href="http://www.w3.org/TR/WAI-WEBCONTENT/"
|
||||
hreflang="en">無障礙網頁規範 1.0</a> 三 A 級標準</p>
|
||||
</div>
|
||||
|
||||
<div>
|
||||
<p>《女聲》電子報著作權所有,欲轉載引用請先閱讀<a href="../copying.html">著作權聲明</a></p>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
</body>
|
||||
</html>
|
||||
1
htdocs/wov/links/intell.html.html
Symbolic link
@@ -0,0 +1 @@
|
||||
intell.html.xhtml
|
||||
411
htdocs/wov/links/intell.html.xhtml
Normal file
@@ -0,0 +1,411 @@
|
||||
<?xml version="1.0" encoding="UTF-8" ?>
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
|
||||
"http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
|
||||
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="zh-tw">
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="application/xhtml+xml; charset=UTF-8" />
|
||||
<meta http-equiv="Content-Style-Type" content="text/css" />
|
||||
<meta http-equiv="Content-Script-Type" content="text/javascript" />
|
||||
<meta name="author" content="小招, 依瑪貓" />
|
||||
<meta name="copyright" content="© 1999-2020 《女聲》電子報。《女聲》電子報保有所有權利。" />
|
||||
<meta name="keywords" content="學校, 研究所, 學術小組" />
|
||||
<meta name="generator" content="Selima 3.10" />
|
||||
<link rel="start" type="application/xhtml+xml" href=".." />
|
||||
<link rel="copyright" type="application/xhtml+xml" href="../copying.html" />
|
||||
<link rel="author" href="mailto:editors@mail.wov.idv.tw" />
|
||||
<link rel="search" type="application/xhtml+xml" href="../cgi-bin/search.cgi" />
|
||||
<link rel="up" type="application/xhtml+xml" href="." />
|
||||
<link rel="stylesheet" type="text/css" href="../stylesheets/common.css" />
|
||||
<link rel="shortcut icon" type="image/x-icon" href="../favicon.ico" />
|
||||
<title>好學的女人</title>
|
||||
</head>
|
||||
<body class="links">
|
||||
|
||||
<div id="topofpage" class="skiptobody">
|
||||
<a accesskey="2" href="#body">跳到網頁內文區。</a>
|
||||
</div>
|
||||
|
||||
|
||||
<div id="nav" class="nav" title="導覽連結區">
|
||||
<div class="accessguide"><a accesskey="L"
|
||||
href="#nav" title="導覽連結區">:::</a></div>
|
||||
|
||||
<form action="../cgi-bin/search.cgi" method="get" accept-charset="UTF-8">
|
||||
<div class="navibar">
|
||||
<span><a href="../newsletters/">閱讀女聲</a></span> |
|
||||
<span><a href="../subscribe.html">訂閱女聲</a></span> |
|
||||
<span><a href="../cgi-bin/guestbook.cgi">妳的女聲</a></span> |
|
||||
<span><a href=".">女網牽手</a></span> |
|
||||
<span><a accesskey="1" href="..">回首頁</a></span> |
|
||||
<span><a href="mailto:editors@mail.wov.idv.tw">寫信給女聲</a></span> |
|
||||
<label for="navquery">檢索:</label><input
|
||||
id="navquery" class="text" type="text" name="query" value="" /><input
|
||||
type="hidden" name="charset" value="UTF-8" /><input
|
||||
type="submit" value="搜尋" />
|
||||
</div>
|
||||
</form>
|
||||
<hr />
|
||||
|
||||
<div class="navibar">
|
||||
<span><a href="orgs.html">一大群女人</a></span> |
|
||||
<span><a href="culture.html">女人文化界</a></span> |
|
||||
<span><a href="lesbian.html">女人愛女人</a></span> |
|
||||
<span><a href="science.html">女性與科技</a></span> |
|
||||
<span><a href="history.html">回首的女人</a></span> |
|
||||
<span><a href="general.html">多樣的女人</a></span> |
|
||||
<span><a href="others.html">好人</a></span> |
|
||||
<span><a href="intell.html">好學的女人</a></span> |
|
||||
<span><a href="feminist.html">抗爭的女人</a></span> |
|
||||
<span><a href="labor.html">勞動的女人</a></span> |
|
||||
<span><a href="medicine.html">愛惜身體的女人</a></span> |
|
||||
<span><a href="queer.html">搞怪的女人</a></span> |
|
||||
<span><a href="literate.html">舞文弄墨的女人</a></span> |
|
||||
<span><a href="sex.html">隨性的女人</a></span>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
<hr />
|
||||
|
||||
<div id="body" class="body" title="網頁內文區">
|
||||
<div class="accessguide"><a accesskey="C"
|
||||
href="#body" title="網頁內文區">:::</a></div>
|
||||
|
||||
<div class="title">
|
||||
<img src="../images/logo"
|
||||
alt="女聲 LOGO" title="女聲 Woman's Voice" />
|
||||
<h1>好學的女人</h1>
|
||||
<h1 class="en" xml:lang="en-us">Studious Women</h1>
|
||||
</div>
|
||||
|
||||
<div class="breadcrumb">
|
||||
<a href=".">女網牽手</a> /
|
||||
好學的女人
|
||||
</div>
|
||||
|
||||
<ol class="linkslist">
|
||||
<li>
|
||||
<cite>女學會資訊網</cite><br />
|
||||
網址: <a href="http://www.feminist.sinica.edu.tw/">http://www.feminist.sinica.edu.tw</a><br />
|
||||
(待撰寫)<br />
|
||||
</li>
|
||||
|
||||
<li>
|
||||
<form action="../cgi-bin/mailto.cgi" method="post">
|
||||
<div>
|
||||
<a href="http://sex.ncu.edu.tw/"><img class="linkicon"
|
||||
src="http://sex.ncu.edu.tw/history/title.gif"
|
||||
alt="中央性/別研究室" /></a><br />
|
||||
<cite>中央性/別研究室 <span class="en" xml:lang="en-us">Center for the Study of Sexualities</span></cite><br />
|
||||
網址: <a href="http://sex.ncu.edu.tw/">http://sex.ncu.edu.tw/</a><br />
|
||||
E-mail : <input type="hidden" name="email" value="sex at ncu.edu.tw" />
|
||||
<input type="image" src="../images/email" alt="E-mail" />
|
||||
sex<span>@</span>ncu.edu.tw<br />
|
||||
電話: (03) 426-2926<br />
|
||||
傳真: (03) 426-2927<br />
|
||||
由何春蕤等教授所組成的研究室,持續關注多元性別與性取向的權利。<br />
|
||||
</div>
|
||||
</form>
|
||||
</li>
|
||||
|
||||
<li>
|
||||
<form action="../cgi-bin/mailto.cgi" method="post">
|
||||
<div>
|
||||
<cite><span class="en" xml:lang="en-us">Kinsey Institute for Research in Sex, Gender, and Reproduction</span></cite><br />
|
||||
網址: <a href="http://www.indiana.edu/~kinsey/index.html">http://www.indiana.edu/~kinsey/index.html</a><br />
|
||||
E-mail : <input type="hidden" name="email" value="kinsey at indiana.edu" />
|
||||
<input type="image" src="../images/email" alt="E-mail" />
|
||||
kinsey<span>@</span>indiana.edu<br />
|
||||
地址: Morrison Hall 302, 1165 E. Third St. Bloomington, IN 47405 USA<br />
|
||||
電話: 812/855-7686<br />
|
||||
傳真: 812/855-8277<br />
|
||||
(待撰寫)<br />
|
||||
</div>
|
||||
</form>
|
||||
</li>
|
||||
|
||||
<li>
|
||||
<cite>性別與空間研究室</cite><br />
|
||||
網址: <a href="http://www.bp.ntu.edu.tw/WebUsers/hdbih/new_page_5.htm">http://www.bp.ntu.edu.tw/WebUsers/hdbih/new_page_5.htm</a><br />
|
||||
(待撰寫)<br />
|
||||
</li>
|
||||
|
||||
<li>
|
||||
<cite>豪爽女人何春蕤個人網頁</cite><br />
|
||||
網址: <a href="http://sex.ncu.edu.tw/members/ho/index.htm">http://sex.ncu.edu.tw/members/ho/index.htm</a><br />
|
||||
(待撰寫)<br />
|
||||
</li>
|
||||
|
||||
<li>
|
||||
<form action="../cgi-bin/mailto.cgi" method="post">
|
||||
<div>
|
||||
<cite><span class="en" xml:lang="en-us">American College of Nurse-Midwives : With Women, For a Lifetime</span></cite><br />
|
||||
網址: <a href="http://www.midwife.org/">http://www.midwife.org/</a><br />
|
||||
E-mail : <input type="hidden" name="email" value="info at acnm.org" />
|
||||
<input type="image" src="../images/email" alt="E-mail" />
|
||||
info<span>@</span>acnm.org<br />
|
||||
地址: 818 Connecticut Avenue NW, Suite 900, Washington, DC 20006<br />
|
||||
電話: +1 (202) 728-9860<br />
|
||||
傳真: +1 (202) 728-9897<br />
|
||||
(待撰寫)<br />
|
||||
</div>
|
||||
</form>
|
||||
</li>
|
||||
|
||||
<li>
|
||||
<cite><span class="en" xml:lang="en-us">The Ada Project (TAP)</span></cite><br />
|
||||
網址: <a href="http://tap.mills.edu/index.jsp">http://tap.mills.edu/index.jsp</a><br />
|
||||
女性交流電腦方面資訊及資源的網站<br />
|
||||
</li>
|
||||
|
||||
<li>
|
||||
<cite>「婦女與性別史研究群」</cite><br />
|
||||
網址: <a href="http://www.sinica.edu.tw/~women/index.htm">http://www.sinica.edu.tw/~women/index.htm</a><br />
|
||||
中央研究近代史研究所「 婦女與性別史研究群」網站<br />
|
||||
</li>
|
||||
|
||||
<li>
|
||||
<form action="../cgi-bin/mailto.cgi" method="post">
|
||||
<div>
|
||||
<a href="http://www.inform.umd.edu/EdRes/Topic/WomensStudies/"><img class="linkicon"
|
||||
src="http://www.inform.umd.edu/WomensStudies/gifs/wsd.gif"
|
||||
alt="The University of Maryland Women's Studies Database" /></a><br />
|
||||
<cite><span class="en" xml:lang="en-us">The University of Maryland Women's Studies Database</span></cite><br />
|
||||
網址: <a href="http://www.inform.umd.edu/EdRes/Topic/WomensStudies/">http://www.inform.umd.edu/EdRes/Topic/WomensStudies/</a><br />
|
||||
E-mail : <input type="hidden" name="email" value="ws-editor at umail.umd.edu" />
|
||||
<input type="image" src="../images/email" alt="E-mail" />
|
||||
ws-editor<span>@</span>umail.umd.edu<br />
|
||||
(待撰寫)<br />
|
||||
</div>
|
||||
</form>
|
||||
</li>
|
||||
|
||||
<li>
|
||||
<form action="../cgi-bin/mailto.cgi" method="post">
|
||||
<div>
|
||||
<cite><span class="en" xml:lang="en-us">The University of Melbourne - Key Centre for Women's Health</span></cite><br />
|
||||
網址: <a href="http://www.kcwh.unimelb.edu.au/index.html">http://www.kcwh.unimelb.edu.au/index.html</a><br />
|
||||
E-mail : <input type="hidden" name="email" value="j.law at kcwh.unimelb.edu.au" />
|
||||
<input type="image" src="../images/email" alt="E-mail" />
|
||||
j.law<span>@</span>kcwh.unimelb.edu.au<br />
|
||||
地址: Key Centre for Women's Health in Society, The University of Melbourne Victoria, Carlton 3053, Australia<br />
|
||||
電話: (+61 3) 8344 4333<br />
|
||||
傳真: (+61 3) 9347 9824<br />
|
||||
(待撰寫)<br />
|
||||
</div>
|
||||
</form>
|
||||
</li>
|
||||
|
||||
<li>
|
||||
<form action="../cgi-bin/mailto.cgi" method="post">
|
||||
<div>
|
||||
<a href="http://ad.nccu.edu.tw/wisconsin/"><img class="linkicon"
|
||||
src="http://ad.nccu.edu.tw/wisconsin/images/tit1.gif"
|
||||
alt="Wisconsin's 傳播空間。" /></a><br />
|
||||
<cite>Wisconsin's 傳播空間。</cite><br />
|
||||
網址: <a href="http://ad.nccu.edu.tw/wisconsin/">http://ad.nccu.edu.tw/wisconsin/</a><br />
|
||||
E-mail : <input type="hidden" name="email" value="hhsun at nccu.edu.tw" />
|
||||
<input type="image" src="../images/email" alt="E-mail" />
|
||||
hhsun<span>@</span>nccu.edu.tw<br />
|
||||
孫秀蕙的個人網站。<br />
|
||||
</div>
|
||||
</form>
|
||||
</li>
|
||||
|
||||
<li>
|
||||
<form action="../cgi-bin/mailto.cgi" method="post">
|
||||
<div>
|
||||
<cite>醫療•性別•社會學:吳嘉苓的網路世界</cite><br />
|
||||
網址: <a href="http://www.social.ntu.edu.tw/~chialing/">http://www.social.ntu.edu.tw/~chialing/</a><br />
|
||||
E-mail : <input type="hidden" name="email" value="clwu at ccms.ntu.edu.tw" />
|
||||
<input type="image" src="../images/email" alt="E-mail" />
|
||||
clwu<span>@</span>ccms.ntu.edu.tw<br />
|
||||
地址: 106 臺北市大安區羅斯福路四段 1 號 臺大社會系<br />
|
||||
電話: (02) 2636-0231 轉 3510<br />
|
||||
臺大社會系吳嘉苓的網站。<br />
|
||||
</div>
|
||||
</form>
|
||||
</li>
|
||||
|
||||
<li>
|
||||
<form action="../cgi-bin/mailto.cgi" method="post">
|
||||
<div>
|
||||
<cite><span class="en" xml:lang="en-us">SFU Women's Studies Home Page</span></cite><br />
|
||||
網址: <a href="http://www.sfu.ca/womens-studies/index.html">http://www.sfu.ca/womens-studies/index.html</a><br />
|
||||
E-mail : <input type="hidden" name="email" value="cgoodman at sfu.ca" />
|
||||
<input type="image" src="../images/email" alt="E-mail" />
|
||||
cgoodman<span>@</span>sfu.ca<br />
|
||||
地址: 8888 University Drive, Burnaby, B.C. Canada V5A 1S6<br />
|
||||
電話: (604) 291-3333<br />
|
||||
傳真: (604) 291-5518<br />
|
||||
待撰寫<br />
|
||||
</div>
|
||||
</form>
|
||||
</li>
|
||||
|
||||
<li>
|
||||
<form action="../cgi-bin/mailto.cgi" method="post">
|
||||
<div>
|
||||
<cite><span class="en" xml:lang="en-us">Feminist Studies</span></cite><br />
|
||||
網址: <a href="http://www.feministstudies.org/index.html">http://www.feministstudies.org/index.html</a><br />
|
||||
E-mail : <input type="hidden" name="email" value="sgroves at feministstudies.org" />
|
||||
<input type="image" src="../images/email" alt="E-mail" />
|
||||
sgroves<span>@</span>feministstudies.org<br />
|
||||
待說明。<br />
|
||||
</div>
|
||||
</form>
|
||||
</li>
|
||||
|
||||
<li>
|
||||
<form action="../cgi-bin/mailto.cgi" method="post">
|
||||
<div>
|
||||
<cite><span class="en" xml:lang="en-us">Journal of Women's History</span></cite><br />
|
||||
網址: <a href="http://muse.jhu.edu/journals/journal_of_womens_history/">http://muse.jhu.edu/journals/journal_of_womens_history/</a><br />
|
||||
E-mail : <input type="hidden" name="email" value="muse at muse.jhu.edu" />
|
||||
<input type="image" src="../images/email" alt="E-mail" />
|
||||
muse<span>@</span>muse.jhu.edu<br />
|
||||
電話: (410) 516-6989<br />
|
||||
傳真: (410) 516-6968<br />
|
||||
待撰寫。<br />
|
||||
</div>
|
||||
</form>
|
||||
</li>
|
||||
|
||||
<li>
|
||||
<form action="../cgi-bin/mailto.cgi" method="post">
|
||||
<div>
|
||||
<cite><span class="en" xml:lang="en-us">Women's Studied Resources</span></cite><br />
|
||||
網址: <a href="http://bailiwick.lib.uiowa.edu/wstudies/">http://bailiwick.lib.uiowa.edu/wstudies/</a><br />
|
||||
E-mail : <input type="hidden" name="email" value="Karla-Tonella at uiowa.edu" />
|
||||
<input type="image" src="../images/email" alt="E-mail" />
|
||||
Karla-Tonella<span>@</span>uiowa.edu<br />
|
||||
待撰寫。<br />
|
||||
</div>
|
||||
</form>
|
||||
</li>
|
||||
|
||||
<li>
|
||||
<form action="../cgi-bin/mailto.cgi" method="post">
|
||||
<div>
|
||||
<a href="http://www.feminism.cn/"><img class="linkicon"
|
||||
src="http://www.feminism.cn/images/feminismlogo1.jpg"
|
||||
alt="女权中国" /></a><br />
|
||||
<cite>女权中国</cite><br />
|
||||
網址: <a href="http://www.feminism.cn/">http://www.feminism.cn/</a><br />
|
||||
E-mail : <input type="hidden" name="email" value="feminism at 163.com" />
|
||||
<input type="image" src="../images/email" alt="E-mail" />
|
||||
feminism<span>@</span>163.com<br />
|
||||
中国本土最大的女权主义学术资源网站<br />
|
||||
</div>
|
||||
</form>
|
||||
</li>
|
||||
|
||||
</ol>
|
||||
|
||||
<hr />
|
||||
<h2>女網牽手‧和妳牽手</h2>
|
||||
|
||||
<div class="intro">
|
||||
<p>女人上網,伴手相牽。我們希望和各種不同國女人發聲的網站,或為女人努力發聲的網站串連起來,匯集成女人自己的網路空間。若妳也願意和我們牽手,請填好下表寄出。我們將儘快查詢妳的網址是否正確,然後加入女網牽手中。</p>
|
||||
</div>
|
||||
|
||||
<form class="regform" action="mailto:editors@mail.wov.idv.tw?subject=%5B%E5%A5%B3%E8%81%B2%E5%9B%9E%E5%87%BD%5D%20%E7%B6%B2%E7%AB%99%E7%99%BB%E9%8C%84"
|
||||
method="post" enctype="text/plain" accept-charset="UTF-8"
|
||||
onsubmit="return isRegisterOK(this);">
|
||||
<div>
|
||||
<input type="hidden" name="charset" value="UTF-8" />
|
||||
<table summary="本表提供登錄女聲女網簽手的表單,網站資料欄位名稱,和填寫該資料的輸入格。">
|
||||
<colgroup><col /><col /></colgroup>
|
||||
<tbody>
|
||||
<tr>
|
||||
<th scope="row"><label for="title">站名:</label></th>
|
||||
<td><input id="title" class="text" type="text" name="title" size="40" value="" /></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th scope="row"><label for="title_2ln">站名(第二語言,可略):</label></th>
|
||||
<td><input id="title_2ln" class="text" type="text" name="title_2ln" size="40" value="" /></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th scope="row"><label for="url">網址:</label></th>
|
||||
<td><input id="url" class="text" type="text" name="url" size="40" value="http://" /></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th scope="row"><label for="icon">連結小圖:</label></th>
|
||||
<td><input id="icon" class="text" type="text" name="icon" size="40" value="http://" /></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th scope="row"><label for="cat0">分類:</label></th>
|
||||
<td><input id="cat0" class="text" type="text" name="cat0" size="40" value="" /><br />
|
||||
<input id="cat1" class="text" type="text" name="cat1" size="40" value="" /><br />
|
||||
<input id="cat2" class="text" type="text" name="cat2" size="40" value="" /></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th scope="row"><label for="dsc">簡介:</label></th>
|
||||
<td><textarea id="dsc" name="dsc" cols="45" rows="10"
|
||||
onfocus="if (this.value == "請填上簡介。") this.value = "";">請填上簡介。</textarea></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th scope="row"><label for="email">E-mail :</label></th>
|
||||
<td><input id="email" class="text" type="text" name="email" size="40" value="" /></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th scope="row"><label for="addr">連絡地址:</label></th>
|
||||
<td><input id="addr" class="text" type="text" name="addr" size="40" value="" /></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th scope="row"><label for="tel">連絡電話:</label></th>
|
||||
<td><input id="tel" class="text" type="text" name="tel" size="40" value="" /></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th scope="row"><label for="fax">連絡傳真:</label></th>
|
||||
<td><input id="fax" class="text" type="text" name="fax" size="40" value="" /></td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
<input type="submit" value="和我簽手" />
|
||||
</div>
|
||||
</form>
|
||||
|
||||
</div>
|
||||
|
||||
<hr />
|
||||
<div id="footer" class="footer" title="頁尾區">
|
||||
|
||||
<div>
|
||||
<a href=".." title="女聲電子報網站"><img
|
||||
src="../images/icon" alt="女聲" /></a>|<a
|
||||
href="https://www.imacat.idv.tw/"
|
||||
title="往旅舍依瑪網站"><img
|
||||
src="https://www.imacat.idv.tw/images/icon"
|
||||
alt="歡迎光臨旅舍依瑪" /></a>
|
||||
</div>
|
||||
|
||||
<div>
|
||||
<a href="http://www.w3.org/Style/CSS/Buttons/"
|
||||
title="CSS 樣式表說明" hreflang="en"><img
|
||||
src="../images/w3c/mwcts" alt="以 CSS 樣式表製作" /></a>|<a
|
||||
href="http://html-validator.imacat.idv.tw/check/referer"
|
||||
title="本頁的 HTML 驗證結果" hreflang="en"><img
|
||||
src="../images/w3c/vxhtml11" alt="XHTML 1.1 正確!" /></a>|<a
|
||||
href="http://jigsaw.w3.org/css-validator/check/referer"
|
||||
title="本頁的 CSS 驗證結果" hreflang="en"><img
|
||||
src="../images/w3c/vcss" alt="CSS 正確!" /></a>|<a
|
||||
href="http://www.w3.org/WAI/WCAG1AAA-Conformance"
|
||||
title="無障礙三 A 級標準說明" hreflang="en"><img
|
||||
src="../images/w3c/wcag1AAA"
|
||||
alt="W3C 無障礙網頁規範 1.0 三 A 級標準標章" /></a>
|
||||
<p>本頁符合 <a href="http://www.w3.org/TR/xhtml11/" hreflang="en"><abbr
|
||||
title="Extensible HyperText Markup Language">XHTML</abbr> 1.1</a> /
|
||||
<a href="http://www.w3.org/TR/CSS21/" hreflang="en"><abbr
|
||||
title="Cascading Style Sheets">CSS</abbr> 2.1</a> /
|
||||
<a href="http://www.w3.org/TR/WAI-WEBCONTENT/"
|
||||
hreflang="en">無障礙網頁規範 1.0</a> 三 A 級標準</p>
|
||||
</div>
|
||||
|
||||
<div>
|
||||
<p>《女聲》電子報著作權所有,欲轉載引用請先閱讀<a href="../copying.html">著作權聲明</a></p>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
</body>
|
||||
</html>
|
||||
1
htdocs/wov/links/labor.html.html
Symbolic link
@@ -0,0 +1 @@
|
||||
labor.html.xhtml
|
||||
208
htdocs/wov/links/labor.html.xhtml
Normal file
@@ -0,0 +1,208 @@
|
||||
<?xml version="1.0" encoding="UTF-8" ?>
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
|
||||
"http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
|
||||
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="zh-tw">
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="application/xhtml+xml; charset=UTF-8" />
|
||||
<meta http-equiv="Content-Style-Type" content="text/css" />
|
||||
<meta http-equiv="Content-Script-Type" content="text/javascript" />
|
||||
<meta name="author" content="小招, 依瑪貓" />
|
||||
<meta name="copyright" content="© 1999-2020 《女聲》電子報。《女聲》電子報保有所有權利。" />
|
||||
<meta name="keywords" content="女工" />
|
||||
<meta name="generator" content="Selima 3.10" />
|
||||
<link rel="start" type="application/xhtml+xml" href=".." />
|
||||
<link rel="copyright" type="application/xhtml+xml" href="../copying.html" />
|
||||
<link rel="author" href="mailto:editors@mail.wov.idv.tw" />
|
||||
<link rel="search" type="application/xhtml+xml" href="../cgi-bin/search.cgi" />
|
||||
<link rel="up" type="application/xhtml+xml" href="." />
|
||||
<link rel="stylesheet" type="text/css" href="../stylesheets/common.css" />
|
||||
<link rel="shortcut icon" type="image/x-icon" href="../favicon.ico" />
|
||||
<title>勞動的女人</title>
|
||||
</head>
|
||||
<body class="links">
|
||||
|
||||
<div id="topofpage" class="skiptobody">
|
||||
<a accesskey="2" href="#body">跳到網頁內文區。</a>
|
||||
</div>
|
||||
|
||||
|
||||
<div id="nav" class="nav" title="導覽連結區">
|
||||
<div class="accessguide"><a accesskey="L"
|
||||
href="#nav" title="導覽連結區">:::</a></div>
|
||||
|
||||
<form action="../cgi-bin/search.cgi" method="get" accept-charset="UTF-8">
|
||||
<div class="navibar">
|
||||
<span><a href="../newsletters/">閱讀女聲</a></span> |
|
||||
<span><a href="../subscribe.html">訂閱女聲</a></span> |
|
||||
<span><a href="../cgi-bin/guestbook.cgi">妳的女聲</a></span> |
|
||||
<span><a href=".">女網牽手</a></span> |
|
||||
<span><a accesskey="1" href="..">回首頁</a></span> |
|
||||
<span><a href="mailto:editors@mail.wov.idv.tw">寫信給女聲</a></span> |
|
||||
<label for="navquery">檢索:</label><input
|
||||
id="navquery" class="text" type="text" name="query" value="" /><input
|
||||
type="hidden" name="charset" value="UTF-8" /><input
|
||||
type="submit" value="搜尋" />
|
||||
</div>
|
||||
</form>
|
||||
<hr />
|
||||
|
||||
<div class="navibar">
|
||||
<span><a href="orgs.html">一大群女人</a></span> |
|
||||
<span><a href="culture.html">女人文化界</a></span> |
|
||||
<span><a href="lesbian.html">女人愛女人</a></span> |
|
||||
<span><a href="science.html">女性與科技</a></span> |
|
||||
<span><a href="history.html">回首的女人</a></span> |
|
||||
<span><a href="general.html">多樣的女人</a></span> |
|
||||
<span><a href="others.html">好人</a></span> |
|
||||
<span><a href="intell.html">好學的女人</a></span> |
|
||||
<span><a href="feminist.html">抗爭的女人</a></span> |
|
||||
<span><a href="labor.html">勞動的女人</a></span> |
|
||||
<span><a href="medicine.html">愛惜身體的女人</a></span> |
|
||||
<span><a href="queer.html">搞怪的女人</a></span> |
|
||||
<span><a href="literate.html">舞文弄墨的女人</a></span> |
|
||||
<span><a href="sex.html">隨性的女人</a></span>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
<hr />
|
||||
|
||||
<div id="body" class="body" title="網頁內文區">
|
||||
<div class="accessguide"><a accesskey="C"
|
||||
href="#body" title="網頁內文區">:::</a></div>
|
||||
|
||||
<div class="title">
|
||||
<img src="../images/logo"
|
||||
alt="女聲 LOGO" title="女聲 Woman's Voice" />
|
||||
<h1>勞動的女人</h1>
|
||||
<h1 class="en" xml:lang="en-us">Working Women</h1>
|
||||
</div>
|
||||
|
||||
<div class="breadcrumb">
|
||||
<a href=".">女網牽手</a> /
|
||||
勞動的女人
|
||||
</div>
|
||||
|
||||
<ol class="linkslist">
|
||||
<li>
|
||||
<form action="../cgi-bin/mailto.cgi" method="post">
|
||||
<div>
|
||||
<cite>日日春</cite><br />
|
||||
網址: <a href="http://www.taconet.com.tw/Home/">http://www.taconet.com.tw/Home/</a><br />
|
||||
E-mail : <input type="hidden" name="email" value="sfww at ms11.url.com.tw" />
|
||||
<input type="image" src="../images/email" alt="E-mail" />
|
||||
sfww<span>@</span>ms11.url.com.tw<br />
|
||||
台北市公娼自救會網站<br />
|
||||
</div>
|
||||
</form>
|
||||
</li>
|
||||
|
||||
</ol>
|
||||
|
||||
<hr />
|
||||
<h2>女網牽手‧和妳牽手</h2>
|
||||
|
||||
<div class="intro">
|
||||
<p>女人上網,伴手相牽。我們希望和各種不同國女人發聲的網站,或為女人努力發聲的網站串連起來,匯集成女人自己的網路空間。若妳也願意和我們牽手,請填好下表寄出。我們將儘快查詢妳的網址是否正確,然後加入女網牽手中。</p>
|
||||
</div>
|
||||
|
||||
<form class="regform" action="mailto:editors@mail.wov.idv.tw?subject=%5B%E5%A5%B3%E8%81%B2%E5%9B%9E%E5%87%BD%5D%20%E7%B6%B2%E7%AB%99%E7%99%BB%E9%8C%84"
|
||||
method="post" enctype="text/plain" accept-charset="UTF-8"
|
||||
onsubmit="return isRegisterOK(this);">
|
||||
<div>
|
||||
<input type="hidden" name="charset" value="UTF-8" />
|
||||
<table summary="本表提供登錄女聲女網簽手的表單,網站資料欄位名稱,和填寫該資料的輸入格。">
|
||||
<colgroup><col /><col /></colgroup>
|
||||
<tbody>
|
||||
<tr>
|
||||
<th scope="row"><label for="title">站名:</label></th>
|
||||
<td><input id="title" class="text" type="text" name="title" size="40" value="" /></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th scope="row"><label for="title_2ln">站名(第二語言,可略):</label></th>
|
||||
<td><input id="title_2ln" class="text" type="text" name="title_2ln" size="40" value="" /></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th scope="row"><label for="url">網址:</label></th>
|
||||
<td><input id="url" class="text" type="text" name="url" size="40" value="http://" /></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th scope="row"><label for="icon">連結小圖:</label></th>
|
||||
<td><input id="icon" class="text" type="text" name="icon" size="40" value="http://" /></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th scope="row"><label for="cat0">分類:</label></th>
|
||||
<td><input id="cat0" class="text" type="text" name="cat0" size="40" value="" /><br />
|
||||
<input id="cat1" class="text" type="text" name="cat1" size="40" value="" /><br />
|
||||
<input id="cat2" class="text" type="text" name="cat2" size="40" value="" /></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th scope="row"><label for="dsc">簡介:</label></th>
|
||||
<td><textarea id="dsc" name="dsc" cols="45" rows="10"
|
||||
onfocus="if (this.value == "請填上簡介。") this.value = "";">請填上簡介。</textarea></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th scope="row"><label for="email">E-mail :</label></th>
|
||||
<td><input id="email" class="text" type="text" name="email" size="40" value="" /></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th scope="row"><label for="addr">連絡地址:</label></th>
|
||||
<td><input id="addr" class="text" type="text" name="addr" size="40" value="" /></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th scope="row"><label for="tel">連絡電話:</label></th>
|
||||
<td><input id="tel" class="text" type="text" name="tel" size="40" value="" /></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th scope="row"><label for="fax">連絡傳真:</label></th>
|
||||
<td><input id="fax" class="text" type="text" name="fax" size="40" value="" /></td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
<input type="submit" value="和我簽手" />
|
||||
</div>
|
||||
</form>
|
||||
|
||||
</div>
|
||||
|
||||
<hr />
|
||||
<div id="footer" class="footer" title="頁尾區">
|
||||
|
||||
<div>
|
||||
<a href=".." title="女聲電子報網站"><img
|
||||
src="../images/icon" alt="女聲" /></a>|<a
|
||||
href="https://www.imacat.idv.tw/"
|
||||
title="往旅舍依瑪網站"><img
|
||||
src="https://www.imacat.idv.tw/images/icon"
|
||||
alt="歡迎光臨旅舍依瑪" /></a>
|
||||
</div>
|
||||
|
||||
<div>
|
||||
<a href="http://www.w3.org/Style/CSS/Buttons/"
|
||||
title="CSS 樣式表說明" hreflang="en"><img
|
||||
src="../images/w3c/mwcts" alt="以 CSS 樣式表製作" /></a>|<a
|
||||
href="http://html-validator.imacat.idv.tw/check/referer"
|
||||
title="本頁的 HTML 驗證結果" hreflang="en"><img
|
||||
src="../images/w3c/vxhtml11" alt="XHTML 1.1 正確!" /></a>|<a
|
||||
href="http://jigsaw.w3.org/css-validator/check/referer"
|
||||
title="本頁的 CSS 驗證結果" hreflang="en"><img
|
||||
src="../images/w3c/vcss" alt="CSS 正確!" /></a>|<a
|
||||
href="http://www.w3.org/WAI/WCAG1AAA-Conformance"
|
||||
title="無障礙三 A 級標準說明" hreflang="en"><img
|
||||
src="../images/w3c/wcag1AAA"
|
||||
alt="W3C 無障礙網頁規範 1.0 三 A 級標準標章" /></a>
|
||||
<p>本頁符合 <a href="http://www.w3.org/TR/xhtml11/" hreflang="en"><abbr
|
||||
title="Extensible HyperText Markup Language">XHTML</abbr> 1.1</a> /
|
||||
<a href="http://www.w3.org/TR/CSS21/" hreflang="en"><abbr
|
||||
title="Cascading Style Sheets">CSS</abbr> 2.1</a> /
|
||||
<a href="http://www.w3.org/TR/WAI-WEBCONTENT/"
|
||||
hreflang="en">無障礙網頁規範 1.0</a> 三 A 級標準</p>
|
||||
</div>
|
||||
|
||||
<div>
|
||||
<p>《女聲》電子報著作權所有,欲轉載引用請先閱讀<a href="../copying.html">著作權聲明</a></p>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
</body>
|
||||
</html>
|
||||
1
htdocs/wov/links/lesbian.html.html
Symbolic link
@@ -0,0 +1 @@
|
||||
lesbian.html.xhtml
|
||||
264
htdocs/wov/links/lesbian.html.xhtml
Normal file
@@ -0,0 +1,264 @@
|
||||
<?xml version="1.0" encoding="UTF-8" ?>
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
|
||||
"http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
|
||||
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="zh-tw">
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="application/xhtml+xml; charset=UTF-8" />
|
||||
<meta http-equiv="Content-Style-Type" content="text/css" />
|
||||
<meta http-equiv="Content-Script-Type" content="text/javascript" />
|
||||
<meta name="author" content="小招, 依瑪貓" />
|
||||
<meta name="copyright" content="© 1999-2020 《女聲》電子報。《女聲》電子報保有所有權利。" />
|
||||
<meta name="keywords" content="女同志, 女同性戀" />
|
||||
<meta name="generator" content="Selima 3.10" />
|
||||
<link rel="start" type="application/xhtml+xml" href=".." />
|
||||
<link rel="copyright" type="application/xhtml+xml" href="../copying.html" />
|
||||
<link rel="author" href="mailto:editors@mail.wov.idv.tw" />
|
||||
<link rel="search" type="application/xhtml+xml" href="../cgi-bin/search.cgi" />
|
||||
<link rel="up" type="application/xhtml+xml" href="." />
|
||||
<link rel="stylesheet" type="text/css" href="../stylesheets/common.css" />
|
||||
<link rel="shortcut icon" type="image/x-icon" href="../favicon.ico" />
|
||||
<title>女人愛女人</title>
|
||||
</head>
|
||||
<body class="links">
|
||||
|
||||
<div id="topofpage" class="skiptobody">
|
||||
<a accesskey="2" href="#body">跳到網頁內文區。</a>
|
||||
</div>
|
||||
|
||||
|
||||
<div id="nav" class="nav" title="導覽連結區">
|
||||
<div class="accessguide"><a accesskey="L"
|
||||
href="#nav" title="導覽連結區">:::</a></div>
|
||||
|
||||
<form action="../cgi-bin/search.cgi" method="get" accept-charset="UTF-8">
|
||||
<div class="navibar">
|
||||
<span><a href="../newsletters/">閱讀女聲</a></span> |
|
||||
<span><a href="../subscribe.html">訂閱女聲</a></span> |
|
||||
<span><a href="../cgi-bin/guestbook.cgi">妳的女聲</a></span> |
|
||||
<span><a href=".">女網牽手</a></span> |
|
||||
<span><a accesskey="1" href="..">回首頁</a></span> |
|
||||
<span><a href="mailto:editors@mail.wov.idv.tw">寫信給女聲</a></span> |
|
||||
<label for="navquery">檢索:</label><input
|
||||
id="navquery" class="text" type="text" name="query" value="" /><input
|
||||
type="hidden" name="charset" value="UTF-8" /><input
|
||||
type="submit" value="搜尋" />
|
||||
</div>
|
||||
</form>
|
||||
<hr />
|
||||
|
||||
<div class="navibar">
|
||||
<span><a href="orgs.html">一大群女人</a></span> |
|
||||
<span><a href="culture.html">女人文化界</a></span> |
|
||||
<span><a href="lesbian.html">女人愛女人</a></span> |
|
||||
<span><a href="science.html">女性與科技</a></span> |
|
||||
<span><a href="history.html">回首的女人</a></span> |
|
||||
<span><a href="general.html">多樣的女人</a></span> |
|
||||
<span><a href="others.html">好人</a></span> |
|
||||
<span><a href="intell.html">好學的女人</a></span> |
|
||||
<span><a href="feminist.html">抗爭的女人</a></span> |
|
||||
<span><a href="labor.html">勞動的女人</a></span> |
|
||||
<span><a href="medicine.html">愛惜身體的女人</a></span> |
|
||||
<span><a href="queer.html">搞怪的女人</a></span> |
|
||||
<span><a href="literate.html">舞文弄墨的女人</a></span> |
|
||||
<span><a href="sex.html">隨性的女人</a></span>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
<hr />
|
||||
|
||||
<div id="body" class="body" title="網頁內文區">
|
||||
<div class="accessguide"><a accesskey="C"
|
||||
href="#body" title="網頁內文區">:::</a></div>
|
||||
|
||||
<div class="title">
|
||||
<img src="../images/logo"
|
||||
alt="女聲 LOGO" title="女聲 Woman's Voice" />
|
||||
<h1>女人愛女人</h1>
|
||||
<h1 class="en" xml:lang="en-us">Women Love Women</h1>
|
||||
</div>
|
||||
|
||||
<div class="breadcrumb">
|
||||
<a href=".">女網牽手</a> /
|
||||
女人愛女人
|
||||
</div>
|
||||
|
||||
<ol class="linkslist">
|
||||
<li>
|
||||
<cite><span class="en" xml:lang="en-us">Lesbian.org</span></cite><br />
|
||||
網址: <a href="http://www.lesbian.org/">http://www.lesbian.org/</a><br />
|
||||
(待撰寫)<br />
|
||||
</li>
|
||||
|
||||
<li>
|
||||
<a href="http://www.leschina.com/"><img class="linkicon"
|
||||
src="http://www.leschina.com/leschina/logoo.gif"
|
||||
alt="深秋小屋" /></a><br />
|
||||
<cite>深秋小屋</cite><br />
|
||||
網址: <a href="http://www.leschina.com/">http://www.leschina.com/</a><br />
|
||||
大陸女同志 dongdong 和 xixi 做的女同志網路社區。<br />
|
||||
</li>
|
||||
|
||||
<li>
|
||||
<cite>小摩拉子壘球隊 <span class="en" xml:lang="en-us">More Les</span></cite><br />
|
||||
網址: <a href="http://home.kimo.com.tw/moreles1998/">http://home.kimo.com.tw/moreles1998/</a><br />
|
||||
(待撰寫)<br />
|
||||
</li>
|
||||
|
||||
<li>
|
||||
<form action="../cgi-bin/mailto.cgi" method="post">
|
||||
<div>
|
||||
<cite>集合出版社 <span class="en" xml:lang="en-us">Must Muster Publisher</span></cite><br />
|
||||
網址: <a href="http://www.2her.com.tw/">http://www.2her.com.tw/</a><br />
|
||||
E-mail : <input type="hidden" name="email" value="courious at saturn.seed.net.tw" />
|
||||
<input type="image" src="../images/email" alt="E-mail" />
|
||||
courious<span>@</span>saturn.seed.net.tw<br />
|
||||
地址: 板橋郵政18-113號信箱<br />
|
||||
電話: 02-22228365<br />
|
||||
傳真: 02-22225872<br />
|
||||
以出版女同志正面作品為主的出版社<br />
|
||||
</div>
|
||||
</form>
|
||||
</li>
|
||||
|
||||
<li>
|
||||
<form action="../cgi-bin/mailto.cgi" method="post">
|
||||
<div>
|
||||
<a href="http://www.feminism.cn/"><img class="linkicon"
|
||||
src="http://www.feminism.cn/images/feminismlogo1.jpg"
|
||||
alt="女权中国" /></a><br />
|
||||
<cite>女权中国</cite><br />
|
||||
網址: <a href="http://www.feminism.cn/">http://www.feminism.cn/</a><br />
|
||||
E-mail : <input type="hidden" name="email" value="feminism at 163.com" />
|
||||
<input type="image" src="../images/email" alt="E-mail" />
|
||||
feminism<span>@</span>163.com<br />
|
||||
中国本土最大的女权主义学术资源网站<br />
|
||||
</div>
|
||||
</form>
|
||||
</li>
|
||||
|
||||
<li>
|
||||
<form action="../cgi-bin/mailto.cgi" method="post">
|
||||
<div>
|
||||
<a href="https://www.imacat.idv.tw/"><img class="linkicon"
|
||||
src="https://www.imacat.idv.tw/images/icon"
|
||||
alt="旅舍依瑪" /></a><br />
|
||||
<cite>旅舍依瑪 <span class="en" xml:lang="en-us">Tavern Imacat's</span></cite><br />
|
||||
網址: <a href="https://www.imacat.idv.tw/">https://www.imacat.idv.tw/</a><br />
|
||||
E-mail : <input type="hidden" name="email" value="imacat at mail.imacat.idv.tw" />
|
||||
<input type="image" src="../images/email" alt="E-mail" />
|
||||
imacat<span>@</span>mail.imacat.idv.tw<br />
|
||||
(待撰寫)<br />
|
||||
</div>
|
||||
</form>
|
||||
</li>
|
||||
|
||||
</ol>
|
||||
|
||||
<hr />
|
||||
<h2>女網牽手‧和妳牽手</h2>
|
||||
|
||||
<div class="intro">
|
||||
<p>女人上網,伴手相牽。我們希望和各種不同國女人發聲的網站,或為女人努力發聲的網站串連起來,匯集成女人自己的網路空間。若妳也願意和我們牽手,請填好下表寄出。我們將儘快查詢妳的網址是否正確,然後加入女網牽手中。</p>
|
||||
</div>
|
||||
|
||||
<form class="regform" action="mailto:editors@mail.wov.idv.tw?subject=%5B%E5%A5%B3%E8%81%B2%E5%9B%9E%E5%87%BD%5D%20%E7%B6%B2%E7%AB%99%E7%99%BB%E9%8C%84"
|
||||
method="post" enctype="text/plain" accept-charset="UTF-8"
|
||||
onsubmit="return isRegisterOK(this);">
|
||||
<div>
|
||||
<input type="hidden" name="charset" value="UTF-8" />
|
||||
<table summary="本表提供登錄女聲女網簽手的表單,網站資料欄位名稱,和填寫該資料的輸入格。">
|
||||
<colgroup><col /><col /></colgroup>
|
||||
<tbody>
|
||||
<tr>
|
||||
<th scope="row"><label for="title">站名:</label></th>
|
||||
<td><input id="title" class="text" type="text" name="title" size="40" value="" /></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th scope="row"><label for="title_2ln">站名(第二語言,可略):</label></th>
|
||||
<td><input id="title_2ln" class="text" type="text" name="title_2ln" size="40" value="" /></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th scope="row"><label for="url">網址:</label></th>
|
||||
<td><input id="url" class="text" type="text" name="url" size="40" value="http://" /></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th scope="row"><label for="icon">連結小圖:</label></th>
|
||||
<td><input id="icon" class="text" type="text" name="icon" size="40" value="http://" /></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th scope="row"><label for="cat0">分類:</label></th>
|
||||
<td><input id="cat0" class="text" type="text" name="cat0" size="40" value="" /><br />
|
||||
<input id="cat1" class="text" type="text" name="cat1" size="40" value="" /><br />
|
||||
<input id="cat2" class="text" type="text" name="cat2" size="40" value="" /></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th scope="row"><label for="dsc">簡介:</label></th>
|
||||
<td><textarea id="dsc" name="dsc" cols="45" rows="10"
|
||||
onfocus="if (this.value == "請填上簡介。") this.value = "";">請填上簡介。</textarea></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th scope="row"><label for="email">E-mail :</label></th>
|
||||
<td><input id="email" class="text" type="text" name="email" size="40" value="" /></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th scope="row"><label for="addr">連絡地址:</label></th>
|
||||
<td><input id="addr" class="text" type="text" name="addr" size="40" value="" /></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th scope="row"><label for="tel">連絡電話:</label></th>
|
||||
<td><input id="tel" class="text" type="text" name="tel" size="40" value="" /></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th scope="row"><label for="fax">連絡傳真:</label></th>
|
||||
<td><input id="fax" class="text" type="text" name="fax" size="40" value="" /></td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
<input type="submit" value="和我簽手" />
|
||||
</div>
|
||||
</form>
|
||||
|
||||
</div>
|
||||
|
||||
<hr />
|
||||
<div id="footer" class="footer" title="頁尾區">
|
||||
|
||||
<div>
|
||||
<a href=".." title="女聲電子報網站"><img
|
||||
src="../images/icon" alt="女聲" /></a>|<a
|
||||
href="https://www.imacat.idv.tw/"
|
||||
title="往旅舍依瑪網站"><img
|
||||
src="https://www.imacat.idv.tw/images/icon"
|
||||
alt="歡迎光臨旅舍依瑪" /></a>
|
||||
</div>
|
||||
|
||||
<div>
|
||||
<a href="http://www.w3.org/Style/CSS/Buttons/"
|
||||
title="CSS 樣式表說明" hreflang="en"><img
|
||||
src="../images/w3c/mwcts" alt="以 CSS 樣式表製作" /></a>|<a
|
||||
href="http://html-validator.imacat.idv.tw/check/referer"
|
||||
title="本頁的 HTML 驗證結果" hreflang="en"><img
|
||||
src="../images/w3c/vxhtml11" alt="XHTML 1.1 正確!" /></a>|<a
|
||||
href="http://jigsaw.w3.org/css-validator/check/referer"
|
||||
title="本頁的 CSS 驗證結果" hreflang="en"><img
|
||||
src="../images/w3c/vcss" alt="CSS 正確!" /></a>|<a
|
||||
href="http://www.w3.org/WAI/WCAG1AAA-Conformance"
|
||||
title="無障礙三 A 級標準說明" hreflang="en"><img
|
||||
src="../images/w3c/wcag1AAA"
|
||||
alt="W3C 無障礙網頁規範 1.0 三 A 級標準標章" /></a>
|
||||
<p>本頁符合 <a href="http://www.w3.org/TR/xhtml11/" hreflang="en"><abbr
|
||||
title="Extensible HyperText Markup Language">XHTML</abbr> 1.1</a> /
|
||||
<a href="http://www.w3.org/TR/CSS21/" hreflang="en"><abbr
|
||||
title="Cascading Style Sheets">CSS</abbr> 2.1</a> /
|
||||
<a href="http://www.w3.org/TR/WAI-WEBCONTENT/"
|
||||
hreflang="en">無障礙網頁規範 1.0</a> 三 A 級標準</p>
|
||||
</div>
|
||||
|
||||
<div>
|
||||
<p>《女聲》電子報著作權所有,欲轉載引用請先閱讀<a href="../copying.html">著作權聲明</a></p>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
</body>
|
||||
</html>
|
||||
1
htdocs/wov/links/literate.html.html
Symbolic link
@@ -0,0 +1 @@
|
||||
literate.html.xhtml
|
||||
201
htdocs/wov/links/literate.html.xhtml
Normal file
@@ -0,0 +1,201 @@
|
||||
<?xml version="1.0" encoding="UTF-8" ?>
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
|
||||
"http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
|
||||
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="zh-tw">
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="application/xhtml+xml; charset=UTF-8" />
|
||||
<meta http-equiv="Content-Style-Type" content="text/css" />
|
||||
<meta http-equiv="Content-Script-Type" content="text/javascript" />
|
||||
<meta name="author" content="小招, 依瑪貓" />
|
||||
<meta name="copyright" content="© 1999-2020 《女聲》電子報。《女聲》電子報保有所有權利。" />
|
||||
<meta name="keywords" content="文學, 書寫" />
|
||||
<meta name="generator" content="Selima 3.10" />
|
||||
<link rel="start" type="application/xhtml+xml" href=".." />
|
||||
<link rel="copyright" type="application/xhtml+xml" href="../copying.html" />
|
||||
<link rel="author" href="mailto:editors@mail.wov.idv.tw" />
|
||||
<link rel="search" type="application/xhtml+xml" href="../cgi-bin/search.cgi" />
|
||||
<link rel="up" type="application/xhtml+xml" href="." />
|
||||
<link rel="stylesheet" type="text/css" href="../stylesheets/common.css" />
|
||||
<link rel="shortcut icon" type="image/x-icon" href="../favicon.ico" />
|
||||
<title>舞文弄墨的女人</title>
|
||||
</head>
|
||||
<body class="links">
|
||||
|
||||
<div id="topofpage" class="skiptobody">
|
||||
<a accesskey="2" href="#body">跳到網頁內文區。</a>
|
||||
</div>
|
||||
|
||||
|
||||
<div id="nav" class="nav" title="導覽連結區">
|
||||
<div class="accessguide"><a accesskey="L"
|
||||
href="#nav" title="導覽連結區">:::</a></div>
|
||||
|
||||
<form action="../cgi-bin/search.cgi" method="get" accept-charset="UTF-8">
|
||||
<div class="navibar">
|
||||
<span><a href="../newsletters/">閱讀女聲</a></span> |
|
||||
<span><a href="../subscribe.html">訂閱女聲</a></span> |
|
||||
<span><a href="../cgi-bin/guestbook.cgi">妳的女聲</a></span> |
|
||||
<span><a href=".">女網牽手</a></span> |
|
||||
<span><a accesskey="1" href="..">回首頁</a></span> |
|
||||
<span><a href="mailto:editors@mail.wov.idv.tw">寫信給女聲</a></span> |
|
||||
<label for="navquery">檢索:</label><input
|
||||
id="navquery" class="text" type="text" name="query" value="" /><input
|
||||
type="hidden" name="charset" value="UTF-8" /><input
|
||||
type="submit" value="搜尋" />
|
||||
</div>
|
||||
</form>
|
||||
<hr />
|
||||
|
||||
<div class="navibar">
|
||||
<span><a href="orgs.html">一大群女人</a></span> |
|
||||
<span><a href="culture.html">女人文化界</a></span> |
|
||||
<span><a href="lesbian.html">女人愛女人</a></span> |
|
||||
<span><a href="science.html">女性與科技</a></span> |
|
||||
<span><a href="history.html">回首的女人</a></span> |
|
||||
<span><a href="general.html">多樣的女人</a></span> |
|
||||
<span><a href="others.html">好人</a></span> |
|
||||
<span><a href="intell.html">好學的女人</a></span> |
|
||||
<span><a href="feminist.html">抗爭的女人</a></span> |
|
||||
<span><a href="labor.html">勞動的女人</a></span> |
|
||||
<span><a href="medicine.html">愛惜身體的女人</a></span> |
|
||||
<span><a href="queer.html">搞怪的女人</a></span> |
|
||||
<span><a href="literate.html">舞文弄墨的女人</a></span> |
|
||||
<span><a href="sex.html">隨性的女人</a></span>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
<hr />
|
||||
|
||||
<div id="body" class="body" title="網頁內文區">
|
||||
<div class="accessguide"><a accesskey="C"
|
||||
href="#body" title="網頁內文區">:::</a></div>
|
||||
|
||||
<div class="title">
|
||||
<img src="../images/logo"
|
||||
alt="女聲 LOGO" title="女聲 Woman's Voice" />
|
||||
<h1>舞文弄墨的女人</h1>
|
||||
<h1 class="en" xml:lang="en-us">Literary Women</h1>
|
||||
</div>
|
||||
|
||||
<div class="breadcrumb">
|
||||
<a href=".">女網牽手</a> /
|
||||
舞文弄墨的女人
|
||||
</div>
|
||||
|
||||
<ol class="linkslist">
|
||||
<li>
|
||||
<cite>輔大英美所 文學批評資料庫 女性主義與性別研究</cite><br />
|
||||
網址: <a href="http://www.eng.fju.edu.tw/Literary_Criticism/feminism/">http://www.eng.fju.edu.tw/Literary_Criticism/feminism/</a><br />
|
||||
(待撰寫)<br />
|
||||
</li>
|
||||
|
||||
</ol>
|
||||
|
||||
<hr />
|
||||
<h2>女網牽手‧和妳牽手</h2>
|
||||
|
||||
<div class="intro">
|
||||
<p>女人上網,伴手相牽。我們希望和各種不同國女人發聲的網站,或為女人努力發聲的網站串連起來,匯集成女人自己的網路空間。若妳也願意和我們牽手,請填好下表寄出。我們將儘快查詢妳的網址是否正確,然後加入女網牽手中。</p>
|
||||
</div>
|
||||
|
||||
<form class="regform" action="mailto:editors@mail.wov.idv.tw?subject=%5B%E5%A5%B3%E8%81%B2%E5%9B%9E%E5%87%BD%5D%20%E7%B6%B2%E7%AB%99%E7%99%BB%E9%8C%84"
|
||||
method="post" enctype="text/plain" accept-charset="UTF-8"
|
||||
onsubmit="return isRegisterOK(this);">
|
||||
<div>
|
||||
<input type="hidden" name="charset" value="UTF-8" />
|
||||
<table summary="本表提供登錄女聲女網簽手的表單,網站資料欄位名稱,和填寫該資料的輸入格。">
|
||||
<colgroup><col /><col /></colgroup>
|
||||
<tbody>
|
||||
<tr>
|
||||
<th scope="row"><label for="title">站名:</label></th>
|
||||
<td><input id="title" class="text" type="text" name="title" size="40" value="" /></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th scope="row"><label for="title_2ln">站名(第二語言,可略):</label></th>
|
||||
<td><input id="title_2ln" class="text" type="text" name="title_2ln" size="40" value="" /></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th scope="row"><label for="url">網址:</label></th>
|
||||
<td><input id="url" class="text" type="text" name="url" size="40" value="http://" /></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th scope="row"><label for="icon">連結小圖:</label></th>
|
||||
<td><input id="icon" class="text" type="text" name="icon" size="40" value="http://" /></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th scope="row"><label for="cat0">分類:</label></th>
|
||||
<td><input id="cat0" class="text" type="text" name="cat0" size="40" value="" /><br />
|
||||
<input id="cat1" class="text" type="text" name="cat1" size="40" value="" /><br />
|
||||
<input id="cat2" class="text" type="text" name="cat2" size="40" value="" /></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th scope="row"><label for="dsc">簡介:</label></th>
|
||||
<td><textarea id="dsc" name="dsc" cols="45" rows="10"
|
||||
onfocus="if (this.value == "請填上簡介。") this.value = "";">請填上簡介。</textarea></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th scope="row"><label for="email">E-mail :</label></th>
|
||||
<td><input id="email" class="text" type="text" name="email" size="40" value="" /></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th scope="row"><label for="addr">連絡地址:</label></th>
|
||||
<td><input id="addr" class="text" type="text" name="addr" size="40" value="" /></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th scope="row"><label for="tel">連絡電話:</label></th>
|
||||
<td><input id="tel" class="text" type="text" name="tel" size="40" value="" /></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th scope="row"><label for="fax">連絡傳真:</label></th>
|
||||
<td><input id="fax" class="text" type="text" name="fax" size="40" value="" /></td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
<input type="submit" value="和我簽手" />
|
||||
</div>
|
||||
</form>
|
||||
|
||||
</div>
|
||||
|
||||
<hr />
|
||||
<div id="footer" class="footer" title="頁尾區">
|
||||
|
||||
<div>
|
||||
<a href=".." title="女聲電子報網站"><img
|
||||
src="../images/icon" alt="女聲" /></a>|<a
|
||||
href="https://www.imacat.idv.tw/"
|
||||
title="往旅舍依瑪網站"><img
|
||||
src="https://www.imacat.idv.tw/images/icon"
|
||||
alt="歡迎光臨旅舍依瑪" /></a>
|
||||
</div>
|
||||
|
||||
<div>
|
||||
<a href="http://www.w3.org/Style/CSS/Buttons/"
|
||||
title="CSS 樣式表說明" hreflang="en"><img
|
||||
src="../images/w3c/mwcts" alt="以 CSS 樣式表製作" /></a>|<a
|
||||
href="http://html-validator.imacat.idv.tw/check/referer"
|
||||
title="本頁的 HTML 驗證結果" hreflang="en"><img
|
||||
src="../images/w3c/vxhtml11" alt="XHTML 1.1 正確!" /></a>|<a
|
||||
href="http://jigsaw.w3.org/css-validator/check/referer"
|
||||
title="本頁的 CSS 驗證結果" hreflang="en"><img
|
||||
src="../images/w3c/vcss" alt="CSS 正確!" /></a>|<a
|
||||
href="http://www.w3.org/WAI/WCAG1AAA-Conformance"
|
||||
title="無障礙三 A 級標準說明" hreflang="en"><img
|
||||
src="../images/w3c/wcag1AAA"
|
||||
alt="W3C 無障礙網頁規範 1.0 三 A 級標準標章" /></a>
|
||||
<p>本頁符合 <a href="http://www.w3.org/TR/xhtml11/" hreflang="en"><abbr
|
||||
title="Extensible HyperText Markup Language">XHTML</abbr> 1.1</a> /
|
||||
<a href="http://www.w3.org/TR/CSS21/" hreflang="en"><abbr
|
||||
title="Cascading Style Sheets">CSS</abbr> 2.1</a> /
|
||||
<a href="http://www.w3.org/TR/WAI-WEBCONTENT/"
|
||||
hreflang="en">無障礙網頁規範 1.0</a> 三 A 級標準</p>
|
||||
</div>
|
||||
|
||||
<div>
|
||||
<p>《女聲》電子報著作權所有,欲轉載引用請先閱讀<a href="../copying.html">著作權聲明</a></p>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
</body>
|
||||
</html>
|
||||
1
htdocs/wov/links/medicine.html.html
Symbolic link
@@ -0,0 +1 @@
|
||||
medicine.html.xhtml
|
||||
275
htdocs/wov/links/medicine.html.xhtml
Normal file
@@ -0,0 +1,275 @@
|
||||
<?xml version="1.0" encoding="UTF-8" ?>
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
|
||||
"http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
|
||||
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="zh-tw">
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="application/xhtml+xml; charset=UTF-8" />
|
||||
<meta http-equiv="Content-Style-Type" content="text/css" />
|
||||
<meta http-equiv="Content-Script-Type" content="text/javascript" />
|
||||
<meta name="author" content="小招, 依瑪貓" />
|
||||
<meta name="copyright" content="© 1999-2020 《女聲》電子報。《女聲》電子報保有所有權利。" />
|
||||
<meta name="keywords" content="醫學, 醫療, 保健" />
|
||||
<meta name="generator" content="Selima 3.10" />
|
||||
<link rel="start" type="application/xhtml+xml" href=".." />
|
||||
<link rel="copyright" type="application/xhtml+xml" href="../copying.html" />
|
||||
<link rel="author" href="mailto:editors@mail.wov.idv.tw" />
|
||||
<link rel="search" type="application/xhtml+xml" href="../cgi-bin/search.cgi" />
|
||||
<link rel="up" type="application/xhtml+xml" href="." />
|
||||
<link rel="stylesheet" type="text/css" href="../stylesheets/common.css" />
|
||||
<link rel="shortcut icon" type="image/x-icon" href="../favicon.ico" />
|
||||
<title>愛惜身體的女人</title>
|
||||
</head>
|
||||
<body class="links">
|
||||
|
||||
<div id="topofpage" class="skiptobody">
|
||||
<a accesskey="2" href="#body">跳到網頁內文區。</a>
|
||||
</div>
|
||||
|
||||
|
||||
<div id="nav" class="nav" title="導覽連結區">
|
||||
<div class="accessguide"><a accesskey="L"
|
||||
href="#nav" title="導覽連結區">:::</a></div>
|
||||
|
||||
<form action="../cgi-bin/search.cgi" method="get" accept-charset="UTF-8">
|
||||
<div class="navibar">
|
||||
<span><a href="../newsletters/">閱讀女聲</a></span> |
|
||||
<span><a href="../subscribe.html">訂閱女聲</a></span> |
|
||||
<span><a href="../cgi-bin/guestbook.cgi">妳的女聲</a></span> |
|
||||
<span><a href=".">女網牽手</a></span> |
|
||||
<span><a accesskey="1" href="..">回首頁</a></span> |
|
||||
<span><a href="mailto:editors@mail.wov.idv.tw">寫信給女聲</a></span> |
|
||||
<label for="navquery">檢索:</label><input
|
||||
id="navquery" class="text" type="text" name="query" value="" /><input
|
||||
type="hidden" name="charset" value="UTF-8" /><input
|
||||
type="submit" value="搜尋" />
|
||||
</div>
|
||||
</form>
|
||||
<hr />
|
||||
|
||||
<div class="navibar">
|
||||
<span><a href="orgs.html">一大群女人</a></span> |
|
||||
<span><a href="culture.html">女人文化界</a></span> |
|
||||
<span><a href="lesbian.html">女人愛女人</a></span> |
|
||||
<span><a href="science.html">女性與科技</a></span> |
|
||||
<span><a href="history.html">回首的女人</a></span> |
|
||||
<span><a href="general.html">多樣的女人</a></span> |
|
||||
<span><a href="others.html">好人</a></span> |
|
||||
<span><a href="intell.html">好學的女人</a></span> |
|
||||
<span><a href="feminist.html">抗爭的女人</a></span> |
|
||||
<span><a href="labor.html">勞動的女人</a></span> |
|
||||
<span><a href="medicine.html">愛惜身體的女人</a></span> |
|
||||
<span><a href="queer.html">搞怪的女人</a></span> |
|
||||
<span><a href="literate.html">舞文弄墨的女人</a></span> |
|
||||
<span><a href="sex.html">隨性的女人</a></span>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
<hr />
|
||||
|
||||
<div id="body" class="body" title="網頁內文區">
|
||||
<div class="accessguide"><a accesskey="C"
|
||||
href="#body" title="網頁內文區">:::</a></div>
|
||||
|
||||
<div class="title">
|
||||
<img src="../images/logo"
|
||||
alt="女聲 LOGO" title="女聲 Woman's Voice" />
|
||||
<h1>愛惜身體的女人</h1>
|
||||
<h1 class="en" xml:lang="en-us">Healthy Women</h1>
|
||||
</div>
|
||||
|
||||
<div class="breadcrumb">
|
||||
<a href=".">女網牽手</a> /
|
||||
愛惜身體的女人
|
||||
</div>
|
||||
|
||||
<ol class="linkslist">
|
||||
<li>
|
||||
<form action="../cgi-bin/mailto.cgi" method="post">
|
||||
<div>
|
||||
<a href="http://www.mum.org/"><img class="linkicon"
|
||||
src="http://www.mum.org/titlelogo4.gif"
|
||||
alt="Museum of Menstruation and Women's Health" /></a><br />
|
||||
<cite><span class="en" xml:lang="en-us">Museum of Menstruation and Women's Health</span></cite><br />
|
||||
網址: <a href="http://www.mum.org/">http://www.mum.org/</a><br />
|
||||
E-mail : <input type="hidden" name="email" value="hfinley at mum.org" />
|
||||
<input type="image" src="../images/email" alt="E-mail" />
|
||||
hfinley<span>@</span>mum.org<br />
|
||||
月經博物館<br />
|
||||
</div>
|
||||
</form>
|
||||
</li>
|
||||
|
||||
<li>
|
||||
<form action="../cgi-bin/mailto.cgi" method="post">
|
||||
<div>
|
||||
<cite><span class="en" xml:lang="en-us">AMWA: The American Medical Women's Association</span></cite><br />
|
||||
網址: <a href="http://www.amwa-doc.org/">http://www.amwa-doc.org/</a><br />
|
||||
E-mail : <input type="hidden" name="email" value="info at amwa-doc.org" />
|
||||
<input type="image" src="../images/email" alt="E-mail" />
|
||||
info<span>@</span>amwa-doc.org<br />
|
||||
地址: 801 N. Fairfax Street, Suite 400, Alexandria, VA 22314<br />
|
||||
電話: +1 (703) 838-0500<br />
|
||||
傳真: +1 (703) 549-3864<br />
|
||||
(待撰寫)<br />
|
||||
</div>
|
||||
</form>
|
||||
</li>
|
||||
|
||||
<li>
|
||||
<form action="../cgi-bin/mailto.cgi" method="post">
|
||||
<div>
|
||||
<cite><span class="en" xml:lang="en-us">The University of Melbourne - Key Centre for Women's Health</span></cite><br />
|
||||
網址: <a href="http://www.kcwh.unimelb.edu.au/index.html">http://www.kcwh.unimelb.edu.au/index.html</a><br />
|
||||
E-mail : <input type="hidden" name="email" value="j.law at kcwh.unimelb.edu.au" />
|
||||
<input type="image" src="../images/email" alt="E-mail" />
|
||||
j.law<span>@</span>kcwh.unimelb.edu.au<br />
|
||||
地址: Key Centre for Women's Health in Society, The University of Melbourne Victoria, Carlton 3053, Australia<br />
|
||||
電話: (+61 3) 8344 4333<br />
|
||||
傳真: (+61 3) 9347 9824<br />
|
||||
(待撰寫)<br />
|
||||
</div>
|
||||
</form>
|
||||
</li>
|
||||
|
||||
<li>
|
||||
<cite><span class="en" xml:lang="en-us">The National Abortion and Reproductive Rights Action League (NARAL)</span></cite><br />
|
||||
網址: <a href="http://www.naral.org/">http://www.naral.org/</a><br />
|
||||
Abortion and Reproductive Rights: Choice For Women<br />
|
||||
</li>
|
||||
|
||||
<li>
|
||||
<form action="../cgi-bin/mailto.cgi" method="post">
|
||||
<div>
|
||||
<cite><span class="en" xml:lang="en-us">Feminist Women's Health Center</span></cite><br />
|
||||
網址: <a href="http://www.fwhc.org/">http://www.fwhc.org/</a><br />
|
||||
E-mail : <input type="hidden" name="email" value="info at fwhc.org" />
|
||||
<input type="image" src="../images/email" alt="E-mail" />
|
||||
info<span>@</span>fwhc.org<br />
|
||||
待撰寫。<br />
|
||||
</div>
|
||||
</form>
|
||||
</li>
|
||||
|
||||
<li>
|
||||
<form action="../cgi-bin/mailto.cgi" method="post">
|
||||
<div>
|
||||
<cite><span class="en" xml:lang="en-us">Margaret Sanger Papers Project</span></cite><br />
|
||||
網址: <a href="http://www.nyu.edu/projects/sanger/">http://www.nyu.edu/projects/sanger/</a><br />
|
||||
E-mail : <input type="hidden" name="email" value="cathy.hajo at nyu.edu" />
|
||||
<input type="image" src="../images/email" alt="E-mail" />
|
||||
cathy.hajo<span>@</span>nyu.edu<br />
|
||||
待撰寫。<br />
|
||||
</div>
|
||||
</form>
|
||||
</li>
|
||||
|
||||
</ol>
|
||||
|
||||
<hr />
|
||||
<h2>女網牽手‧和妳牽手</h2>
|
||||
|
||||
<div class="intro">
|
||||
<p>女人上網,伴手相牽。我們希望和各種不同國女人發聲的網站,或為女人努力發聲的網站串連起來,匯集成女人自己的網路空間。若妳也願意和我們牽手,請填好下表寄出。我們將儘快查詢妳的網址是否正確,然後加入女網牽手中。</p>
|
||||
</div>
|
||||
|
||||
<form class="regform" action="mailto:editors@mail.wov.idv.tw?subject=%5B%E5%A5%B3%E8%81%B2%E5%9B%9E%E5%87%BD%5D%20%E7%B6%B2%E7%AB%99%E7%99%BB%E9%8C%84"
|
||||
method="post" enctype="text/plain" accept-charset="UTF-8"
|
||||
onsubmit="return isRegisterOK(this);">
|
||||
<div>
|
||||
<input type="hidden" name="charset" value="UTF-8" />
|
||||
<table summary="本表提供登錄女聲女網簽手的表單,網站資料欄位名稱,和填寫該資料的輸入格。">
|
||||
<colgroup><col /><col /></colgroup>
|
||||
<tbody>
|
||||
<tr>
|
||||
<th scope="row"><label for="title">站名:</label></th>
|
||||
<td><input id="title" class="text" type="text" name="title" size="40" value="" /></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th scope="row"><label for="title_2ln">站名(第二語言,可略):</label></th>
|
||||
<td><input id="title_2ln" class="text" type="text" name="title_2ln" size="40" value="" /></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th scope="row"><label for="url">網址:</label></th>
|
||||
<td><input id="url" class="text" type="text" name="url" size="40" value="http://" /></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th scope="row"><label for="icon">連結小圖:</label></th>
|
||||
<td><input id="icon" class="text" type="text" name="icon" size="40" value="http://" /></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th scope="row"><label for="cat0">分類:</label></th>
|
||||
<td><input id="cat0" class="text" type="text" name="cat0" size="40" value="" /><br />
|
||||
<input id="cat1" class="text" type="text" name="cat1" size="40" value="" /><br />
|
||||
<input id="cat2" class="text" type="text" name="cat2" size="40" value="" /></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th scope="row"><label for="dsc">簡介:</label></th>
|
||||
<td><textarea id="dsc" name="dsc" cols="45" rows="10"
|
||||
onfocus="if (this.value == "請填上簡介。") this.value = "";">請填上簡介。</textarea></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th scope="row"><label for="email">E-mail :</label></th>
|
||||
<td><input id="email" class="text" type="text" name="email" size="40" value="" /></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th scope="row"><label for="addr">連絡地址:</label></th>
|
||||
<td><input id="addr" class="text" type="text" name="addr" size="40" value="" /></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th scope="row"><label for="tel">連絡電話:</label></th>
|
||||
<td><input id="tel" class="text" type="text" name="tel" size="40" value="" /></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th scope="row"><label for="fax">連絡傳真:</label></th>
|
||||
<td><input id="fax" class="text" type="text" name="fax" size="40" value="" /></td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
<input type="submit" value="和我簽手" />
|
||||
</div>
|
||||
</form>
|
||||
|
||||
</div>
|
||||
|
||||
<hr />
|
||||
<div id="footer" class="footer" title="頁尾區">
|
||||
|
||||
<div>
|
||||
<a href=".." title="女聲電子報網站"><img
|
||||
src="../images/icon" alt="女聲" /></a>|<a
|
||||
href="https://www.imacat.idv.tw/"
|
||||
title="往旅舍依瑪網站"><img
|
||||
src="https://www.imacat.idv.tw/images/icon"
|
||||
alt="歡迎光臨旅舍依瑪" /></a>
|
||||
</div>
|
||||
|
||||
<div>
|
||||
<a href="http://www.w3.org/Style/CSS/Buttons/"
|
||||
title="CSS 樣式表說明" hreflang="en"><img
|
||||
src="../images/w3c/mwcts" alt="以 CSS 樣式表製作" /></a>|<a
|
||||
href="http://html-validator.imacat.idv.tw/check/referer"
|
||||
title="本頁的 HTML 驗證結果" hreflang="en"><img
|
||||
src="../images/w3c/vxhtml11" alt="XHTML 1.1 正確!" /></a>|<a
|
||||
href="http://jigsaw.w3.org/css-validator/check/referer"
|
||||
title="本頁的 CSS 驗證結果" hreflang="en"><img
|
||||
src="../images/w3c/vcss" alt="CSS 正確!" /></a>|<a
|
||||
href="http://www.w3.org/WAI/WCAG1AAA-Conformance"
|
||||
title="無障礙三 A 級標準說明" hreflang="en"><img
|
||||
src="../images/w3c/wcag1AAA"
|
||||
alt="W3C 無障礙網頁規範 1.0 三 A 級標準標章" /></a>
|
||||
<p>本頁符合 <a href="http://www.w3.org/TR/xhtml11/" hreflang="en"><abbr
|
||||
title="Extensible HyperText Markup Language">XHTML</abbr> 1.1</a> /
|
||||
<a href="http://www.w3.org/TR/CSS21/" hreflang="en"><abbr
|
||||
title="Cascading Style Sheets">CSS</abbr> 2.1</a> /
|
||||
<a href="http://www.w3.org/TR/WAI-WEBCONTENT/"
|
||||
hreflang="en">無障礙網頁規範 1.0</a> 三 A 級標準</p>
|
||||
</div>
|
||||
|
||||
<div>
|
||||
<p>《女聲》電子報著作權所有,欲轉載引用請先閱讀<a href="../copying.html">著作權聲明</a></p>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
</body>
|
||||
</html>
|
||||
1
htdocs/wov/links/orgs.html.html
Symbolic link
@@ -0,0 +1 @@
|
||||
orgs.html.xhtml
|
||||
283
htdocs/wov/links/orgs.html.xhtml
Normal file
@@ -0,0 +1,283 @@
|
||||
<?xml version="1.0" encoding="UTF-8" ?>
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
|
||||
"http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
|
||||
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="zh-tw">
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="application/xhtml+xml; charset=UTF-8" />
|
||||
<meta http-equiv="Content-Style-Type" content="text/css" />
|
||||
<meta http-equiv="Content-Script-Type" content="text/javascript" />
|
||||
<meta name="author" content="小招, 依瑪貓" />
|
||||
<meta name="copyright" content="© 1999-2020 《女聲》電子報。《女聲》電子報保有所有權利。" />
|
||||
<meta name="keywords" content="組織, 團體" />
|
||||
<meta name="generator" content="Selima 3.10" />
|
||||
<link rel="start" type="application/xhtml+xml" href=".." />
|
||||
<link rel="copyright" type="application/xhtml+xml" href="../copying.html" />
|
||||
<link rel="author" href="mailto:editors@mail.wov.idv.tw" />
|
||||
<link rel="search" type="application/xhtml+xml" href="../cgi-bin/search.cgi" />
|
||||
<link rel="up" type="application/xhtml+xml" href="." />
|
||||
<link rel="stylesheet" type="text/css" href="../stylesheets/common.css" />
|
||||
<link rel="shortcut icon" type="image/x-icon" href="../favicon.ico" />
|
||||
<title>一大群女人</title>
|
||||
</head>
|
||||
<body class="links">
|
||||
|
||||
<div id="topofpage" class="skiptobody">
|
||||
<a accesskey="2" href="#body">跳到網頁內文區。</a>
|
||||
</div>
|
||||
|
||||
|
||||
<div id="nav" class="nav" title="導覽連結區">
|
||||
<div class="accessguide"><a accesskey="L"
|
||||
href="#nav" title="導覽連結區">:::</a></div>
|
||||
|
||||
<form action="../cgi-bin/search.cgi" method="get" accept-charset="UTF-8">
|
||||
<div class="navibar">
|
||||
<span><a href="../newsletters/">閱讀女聲</a></span> |
|
||||
<span><a href="../subscribe.html">訂閱女聲</a></span> |
|
||||
<span><a href="../cgi-bin/guestbook.cgi">妳的女聲</a></span> |
|
||||
<span><a href=".">女網牽手</a></span> |
|
||||
<span><a accesskey="1" href="..">回首頁</a></span> |
|
||||
<span><a href="mailto:editors@mail.wov.idv.tw">寫信給女聲</a></span> |
|
||||
<label for="navquery">檢索:</label><input
|
||||
id="navquery" class="text" type="text" name="query" value="" /><input
|
||||
type="hidden" name="charset" value="UTF-8" /><input
|
||||
type="submit" value="搜尋" />
|
||||
</div>
|
||||
</form>
|
||||
<hr />
|
||||
|
||||
<div class="navibar">
|
||||
<span><a href="orgs.html">一大群女人</a></span> |
|
||||
<span><a href="culture.html">女人文化界</a></span> |
|
||||
<span><a href="lesbian.html">女人愛女人</a></span> |
|
||||
<span><a href="science.html">女性與科技</a></span> |
|
||||
<span><a href="history.html">回首的女人</a></span> |
|
||||
<span><a href="general.html">多樣的女人</a></span> |
|
||||
<span><a href="others.html">好人</a></span> |
|
||||
<span><a href="intell.html">好學的女人</a></span> |
|
||||
<span><a href="feminist.html">抗爭的女人</a></span> |
|
||||
<span><a href="labor.html">勞動的女人</a></span> |
|
||||
<span><a href="medicine.html">愛惜身體的女人</a></span> |
|
||||
<span><a href="queer.html">搞怪的女人</a></span> |
|
||||
<span><a href="literate.html">舞文弄墨的女人</a></span> |
|
||||
<span><a href="sex.html">隨性的女人</a></span>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
<hr />
|
||||
|
||||
<div id="body" class="body" title="網頁內文區">
|
||||
<div class="accessguide"><a accesskey="C"
|
||||
href="#body" title="網頁內文區">:::</a></div>
|
||||
|
||||
<div class="title">
|
||||
<img src="../images/logo"
|
||||
alt="女聲 LOGO" title="女聲 Woman's Voice" />
|
||||
<h1>一大群女人</h1>
|
||||
<h1 class="en" xml:lang="en-us">Organized Women</h1>
|
||||
</div>
|
||||
|
||||
<div class="breadcrumb">
|
||||
<a href=".">女網牽手</a> /
|
||||
一大群女人
|
||||
</div>
|
||||
|
||||
<ol class="linkslist">
|
||||
<li>
|
||||
<form action="../cgi-bin/mailto.cgi" method="post">
|
||||
<div>
|
||||
<a href="http://www.feminist.org/"><img class="linkicon"
|
||||
src="http://www.feminist.org/fmf/graphics/fmfsmall.gif"
|
||||
alt="Feminist Majority Foundation" /></a><br />
|
||||
<cite><span class="en" xml:lang="en-us">Feminist Majority Foundation</span></cite><br />
|
||||
網址: <a href="http://www.feminist.org/">http://www.feminist.org/</a><br />
|
||||
E-mail : <input type="hidden" name="email" value="femajority at feminist.org" />
|
||||
<input type="image" src="../images/email" alt="E-mail" />
|
||||
femajority<span>@</span>feminist.org<br />
|
||||
地址: 1600 Wilson Boulevard, Suite 801, Arlington, VA 22209<br />
|
||||
電話: +1 (703) 522-2214<br />
|
||||
傳真: +1 (703) 522-2219<br />
|
||||
(待撰寫)<br />
|
||||
</div>
|
||||
</form>
|
||||
</li>
|
||||
|
||||
<li>
|
||||
<form action="../cgi-bin/mailto.cgi" method="post">
|
||||
<div>
|
||||
<a href="http://tw-women.formosa.org/"><img class="linkicon"
|
||||
src="http://tw-women.formosa.org/graphics/nav_top_logob5.gif"
|
||||
alt="台灣查某" /></a><br />
|
||||
<cite>台灣查某 <span class="en" xml:lang="en-us">Taiwan Women</span></cite><br />
|
||||
網址: <a href="http://tw-women.formosa.org/">http://tw-women.formosa.org</a><br />
|
||||
E-mail : <input type="hidden" name="email" value="tww-com at formosa.org" />
|
||||
<input type="image" src="../images/email" alt="E-mail" />
|
||||
tww-com<span>@</span>formosa.org<br />
|
||||
地址: P.O.Box 74-7943, Rego Park, NY11374<br />
|
||||
傳真: (435) 603-4971<br />
|
||||
(待撰寫)<br />
|
||||
</div>
|
||||
</form>
|
||||
</li>
|
||||
|
||||
<li>
|
||||
<form action="../cgi-bin/mailto.cgi" method="post">
|
||||
<div>
|
||||
<cite>香港婦女服務及資料網頁 <span class="en" xml:lang="en-us">Women Service Resource Page in Hong Kong</span></cite><br />
|
||||
網址: <a href="http://women.socialnet.org.hk/">http://women.socialnet.org.hk/</a><br />
|
||||
E-mail : <input type="hidden" name="email" value="women at hkcss.org.hk" />
|
||||
<input type="image" src="../images/email" alt="E-mail" />
|
||||
women<span>@</span>hkcss.org.hk<br />
|
||||
(待撰寫)<br />
|
||||
</div>
|
||||
</form>
|
||||
</li>
|
||||
|
||||
<li>
|
||||
<form action="../cgi-bin/mailto.cgi" method="post">
|
||||
<div>
|
||||
<cite>財團法人婦女新知基金會 <span class="en" xml:lang="en-us">Awakening Foundation</span></cite><br />
|
||||
網址: <a href="http://www.awakening.org.tw/">http://www.awakening.org.tw/</a><br />
|
||||
E-mail : <input type="hidden" name="email" value="hsinchi at ms10.hinet.net" />
|
||||
<input type="image" src="../images/email" alt="E-mail" />
|
||||
hsinchi<span>@</span>ms10.hinet.net<br />
|
||||
地址: 104 臺北市大同區長安東路二段 230 號 2 樓之 1<br />
|
||||
電話: (02) 2711-2814 (02) 2711-2874<br />
|
||||
傳真: (02) 2711-2571<br />
|
||||
臺灣第一個婦運團體,目前持續推動民法親屬篇的改革。<br />
|
||||
</div>
|
||||
</form>
|
||||
</li>
|
||||
|
||||
<li>
|
||||
<a href="http://www.now.org/"><img class="linkicon"
|
||||
src="http://www.now.org/purplgsm.gif"
|
||||
alt="National Organization for Women (NOW)" /></a><br />
|
||||
<cite><span class="en" xml:lang="en-us">National Organization for Women (NOW)</span></cite><br />
|
||||
網址: <a href="http://www.now.org/">http://www.now.org/</a><br />
|
||||
全美最大的婦運組織,在全美各地當設有分部。<br />
|
||||
</li>
|
||||
|
||||
<li>
|
||||
<form action="../cgi-bin/mailto.cgi" method="post">
|
||||
<div>
|
||||
<cite>臺灣婦女資訊網 <span class="en" xml:lang="en-us">Taiwan Women Web</span></cite><br />
|
||||
網址: <a href="http://taiwan.yam.org.tw/womenweb/">http://taiwan.yam.org.tw/womenweb/</a><br />
|
||||
E-mail : <input type="hidden" name="email" value="stsai at frontier.org.tw" />
|
||||
<input type="image" src="../images/email" alt="E-mail" />
|
||||
stsai<span>@</span>frontier.org.tw<br />
|
||||
(待撰寫)<br />
|
||||
</div>
|
||||
</form>
|
||||
</li>
|
||||
|
||||
</ol>
|
||||
|
||||
<hr />
|
||||
<h2>女網牽手‧和妳牽手</h2>
|
||||
|
||||
<div class="intro">
|
||||
<p>女人上網,伴手相牽。我們希望和各種不同國女人發聲的網站,或為女人努力發聲的網站串連起來,匯集成女人自己的網路空間。若妳也願意和我們牽手,請填好下表寄出。我們將儘快查詢妳的網址是否正確,然後加入女網牽手中。</p>
|
||||
</div>
|
||||
|
||||
<form class="regform" action="mailto:editors@mail.wov.idv.tw?subject=%5B%E5%A5%B3%E8%81%B2%E5%9B%9E%E5%87%BD%5D%20%E7%B6%B2%E7%AB%99%E7%99%BB%E9%8C%84"
|
||||
method="post" enctype="text/plain" accept-charset="UTF-8"
|
||||
onsubmit="return isRegisterOK(this);">
|
||||
<div>
|
||||
<input type="hidden" name="charset" value="UTF-8" />
|
||||
<table summary="本表提供登錄女聲女網簽手的表單,網站資料欄位名稱,和填寫該資料的輸入格。">
|
||||
<colgroup><col /><col /></colgroup>
|
||||
<tbody>
|
||||
<tr>
|
||||
<th scope="row"><label for="title">站名:</label></th>
|
||||
<td><input id="title" class="text" type="text" name="title" size="40" value="" /></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th scope="row"><label for="title_2ln">站名(第二語言,可略):</label></th>
|
||||
<td><input id="title_2ln" class="text" type="text" name="title_2ln" size="40" value="" /></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th scope="row"><label for="url">網址:</label></th>
|
||||
<td><input id="url" class="text" type="text" name="url" size="40" value="http://" /></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th scope="row"><label for="icon">連結小圖:</label></th>
|
||||
<td><input id="icon" class="text" type="text" name="icon" size="40" value="http://" /></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th scope="row"><label for="cat0">分類:</label></th>
|
||||
<td><input id="cat0" class="text" type="text" name="cat0" size="40" value="" /><br />
|
||||
<input id="cat1" class="text" type="text" name="cat1" size="40" value="" /><br />
|
||||
<input id="cat2" class="text" type="text" name="cat2" size="40" value="" /></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th scope="row"><label for="dsc">簡介:</label></th>
|
||||
<td><textarea id="dsc" name="dsc" cols="45" rows="10"
|
||||
onfocus="if (this.value == "請填上簡介。") this.value = "";">請填上簡介。</textarea></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th scope="row"><label for="email">E-mail :</label></th>
|
||||
<td><input id="email" class="text" type="text" name="email" size="40" value="" /></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th scope="row"><label for="addr">連絡地址:</label></th>
|
||||
<td><input id="addr" class="text" type="text" name="addr" size="40" value="" /></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th scope="row"><label for="tel">連絡電話:</label></th>
|
||||
<td><input id="tel" class="text" type="text" name="tel" size="40" value="" /></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th scope="row"><label for="fax">連絡傳真:</label></th>
|
||||
<td><input id="fax" class="text" type="text" name="fax" size="40" value="" /></td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
<input type="submit" value="和我簽手" />
|
||||
</div>
|
||||
</form>
|
||||
|
||||
</div>
|
||||
|
||||
<hr />
|
||||
<div id="footer" class="footer" title="頁尾區">
|
||||
|
||||
<div>
|
||||
<a href=".." title="女聲電子報網站"><img
|
||||
src="../images/icon" alt="女聲" /></a>|<a
|
||||
href="https://www.imacat.idv.tw/"
|
||||
title="往旅舍依瑪網站"><img
|
||||
src="https://www.imacat.idv.tw/images/icon"
|
||||
alt="歡迎光臨旅舍依瑪" /></a>
|
||||
</div>
|
||||
|
||||
<div>
|
||||
<a href="http://www.w3.org/Style/CSS/Buttons/"
|
||||
title="CSS 樣式表說明" hreflang="en"><img
|
||||
src="../images/w3c/mwcts" alt="以 CSS 樣式表製作" /></a>|<a
|
||||
href="http://html-validator.imacat.idv.tw/check/referer"
|
||||
title="本頁的 HTML 驗證結果" hreflang="en"><img
|
||||
src="../images/w3c/vxhtml11" alt="XHTML 1.1 正確!" /></a>|<a
|
||||
href="http://jigsaw.w3.org/css-validator/check/referer"
|
||||
title="本頁的 CSS 驗證結果" hreflang="en"><img
|
||||
src="../images/w3c/vcss" alt="CSS 正確!" /></a>|<a
|
||||
href="http://www.w3.org/WAI/WCAG1AAA-Conformance"
|
||||
title="無障礙三 A 級標準說明" hreflang="en"><img
|
||||
src="../images/w3c/wcag1AAA"
|
||||
alt="W3C 無障礙網頁規範 1.0 三 A 級標準標章" /></a>
|
||||
<p>本頁符合 <a href="http://www.w3.org/TR/xhtml11/" hreflang="en"><abbr
|
||||
title="Extensible HyperText Markup Language">XHTML</abbr> 1.1</a> /
|
||||
<a href="http://www.w3.org/TR/CSS21/" hreflang="en"><abbr
|
||||
title="Cascading Style Sheets">CSS</abbr> 2.1</a> /
|
||||
<a href="http://www.w3.org/TR/WAI-WEBCONTENT/"
|
||||
hreflang="en">無障礙網頁規範 1.0</a> 三 A 級標準</p>
|
||||
</div>
|
||||
|
||||
<div>
|
||||
<p>《女聲》電子報著作權所有,欲轉載引用請先閱讀<a href="../copying.html">著作權聲明</a></p>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
</body>
|
||||
</html>
|
||||
1
htdocs/wov/links/others.html.html
Symbolic link
@@ -0,0 +1 @@
|
||||
others.html.xhtml
|
||||
261
htdocs/wov/links/others.html.xhtml
Normal file
@@ -0,0 +1,261 @@
|
||||
<?xml version="1.0" encoding="UTF-8" ?>
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
|
||||
"http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
|
||||
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="zh-tw">
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="application/xhtml+xml; charset=UTF-8" />
|
||||
<meta http-equiv="Content-Style-Type" content="text/css" />
|
||||
<meta http-equiv="Content-Script-Type" content="text/javascript" />
|
||||
<meta name="author" content="小招, 依瑪貓" />
|
||||
<meta name="copyright" content="© 1999-2020 《女聲》電子報。《女聲》電子報保有所有權利。" />
|
||||
<meta name="keywords" content="其它網站" />
|
||||
<meta name="generator" content="Selima 3.10" />
|
||||
<link rel="start" type="application/xhtml+xml" href=".." />
|
||||
<link rel="copyright" type="application/xhtml+xml" href="../copying.html" />
|
||||
<link rel="author" href="mailto:editors@mail.wov.idv.tw" />
|
||||
<link rel="search" type="application/xhtml+xml" href="../cgi-bin/search.cgi" />
|
||||
<link rel="up" type="application/xhtml+xml" href="." />
|
||||
<link rel="stylesheet" type="text/css" href="../stylesheets/common.css" />
|
||||
<link rel="shortcut icon" type="image/x-icon" href="../favicon.ico" />
|
||||
<title>好人</title>
|
||||
</head>
|
||||
<body class="links">
|
||||
|
||||
<div id="topofpage" class="skiptobody">
|
||||
<a accesskey="2" href="#body">跳到網頁內文區。</a>
|
||||
</div>
|
||||
|
||||
|
||||
<div id="nav" class="nav" title="導覽連結區">
|
||||
<div class="accessguide"><a accesskey="L"
|
||||
href="#nav" title="導覽連結區">:::</a></div>
|
||||
|
||||
<form action="../cgi-bin/search.cgi" method="get" accept-charset="UTF-8">
|
||||
<div class="navibar">
|
||||
<span><a href="../newsletters/">閱讀女聲</a></span> |
|
||||
<span><a href="../subscribe.html">訂閱女聲</a></span> |
|
||||
<span><a href="../cgi-bin/guestbook.cgi">妳的女聲</a></span> |
|
||||
<span><a href=".">女網牽手</a></span> |
|
||||
<span><a accesskey="1" href="..">回首頁</a></span> |
|
||||
<span><a href="mailto:editors@mail.wov.idv.tw">寫信給女聲</a></span> |
|
||||
<label for="navquery">檢索:</label><input
|
||||
id="navquery" class="text" type="text" name="query" value="" /><input
|
||||
type="hidden" name="charset" value="UTF-8" /><input
|
||||
type="submit" value="搜尋" />
|
||||
</div>
|
||||
</form>
|
||||
<hr />
|
||||
|
||||
<div class="navibar">
|
||||
<span><a href="orgs.html">一大群女人</a></span> |
|
||||
<span><a href="culture.html">女人文化界</a></span> |
|
||||
<span><a href="lesbian.html">女人愛女人</a></span> |
|
||||
<span><a href="science.html">女性與科技</a></span> |
|
||||
<span><a href="history.html">回首的女人</a></span> |
|
||||
<span><a href="general.html">多樣的女人</a></span> |
|
||||
<span><a href="others.html">好人</a></span> |
|
||||
<span><a href="intell.html">好學的女人</a></span> |
|
||||
<span><a href="feminist.html">抗爭的女人</a></span> |
|
||||
<span><a href="labor.html">勞動的女人</a></span> |
|
||||
<span><a href="medicine.html">愛惜身體的女人</a></span> |
|
||||
<span><a href="queer.html">搞怪的女人</a></span> |
|
||||
<span><a href="literate.html">舞文弄墨的女人</a></span> |
|
||||
<span><a href="sex.html">隨性的女人</a></span>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
<hr />
|
||||
|
||||
<div id="body" class="body" title="網頁內文區">
|
||||
<div class="accessguide"><a accesskey="C"
|
||||
href="#body" title="網頁內文區">:::</a></div>
|
||||
|
||||
<div class="title">
|
||||
<img src="../images/logo"
|
||||
alt="女聲 LOGO" title="女聲 Woman's Voice" />
|
||||
<h1>好人</h1>
|
||||
<h1 class="en" xml:lang="en-us">Others</h1>
|
||||
</div>
|
||||
|
||||
<div class="breadcrumb">
|
||||
<a href=".">女網牽手</a> /
|
||||
好人
|
||||
</div>
|
||||
|
||||
<ol class="linkslist">
|
||||
<li>
|
||||
<a href="http://pesean.uhome.net/"><img class="linkicon"
|
||||
src="http://pesean.uhome.net/img/pesean_e.gif"
|
||||
alt="東亞基進網" /></a><br />
|
||||
<cite>東亞基進網 <span class="en" xml:lang="en-us">Progressive East and Southeast Asian Network</span></cite><br />
|
||||
網址: <a href="http://pesean.uhome.net/">http://pesean.uhome.net/</a><br />
|
||||
(待撰寫)<br />
|
||||
</li>
|
||||
|
||||
<li>
|
||||
<form action="../cgi-bin/mailto.cgi" method="post">
|
||||
<div>
|
||||
<cite>綠色公民行動聯盟 <span class="en" xml:lang="en-us">Green Citizens' Action Alliance</span></cite><br />
|
||||
網址: <a href="http://www.gcaa.org.tw/">http://www.gcaa.org.tw/</a><br />
|
||||
E-mail : <input type="hidden" name="email" value="gcaa at seed.net.tw" />
|
||||
<input type="image" src="../images/email" alt="E-mail" />
|
||||
gcaa<span>@</span>seed.net.tw<br />
|
||||
地址: 100 台北市中正區南昌路二段 166 號 2 樓<br />
|
||||
電話: (02) 2304-950<br />
|
||||
(待撰寫)<br />
|
||||
</div>
|
||||
</form>
|
||||
</li>
|
||||
|
||||
<li>
|
||||
<form action="../cgi-bin/mailto.cgi" method="post">
|
||||
<div>
|
||||
<cite>臺灣勞工陣線 <span class="en" xml:lang="en-us">Taiwan Labor Front</span></cite><br />
|
||||
網址: <a href="http://labor.ngo.org.tw/">http://labor.ngo.org.tw/</a><br />
|
||||
E-mail : <input type="hidden" name="email" value="labornet at tpts1.seed.net.tw" />
|
||||
<input type="image" src="../images/email" alt="E-mail" />
|
||||
labornet<span>@</span>tpts1.seed.net.tw<br />
|
||||
(待撰寫)<br />
|
||||
</div>
|
||||
</form>
|
||||
</li>
|
||||
|
||||
<li>
|
||||
<form action="../cgi-bin/mailto.cgi" method="post">
|
||||
<div>
|
||||
<cite>新世代青年團 <span class="en" xml:lang="en-us">New Century Youth Group in Taiwan</span></cite><br />
|
||||
網址: <a href="http://youth.ngo.org.tw/">http://youth.ngo.org.tw/</a><br />
|
||||
E-mail : <input type="hidden" name="email" value="newyouthtw at yahoo.com.tw" />
|
||||
<input type="image" src="../images/email" alt="E-mail" />
|
||||
newyouthtw<span>@</span>yahoo.com.tw<br />
|
||||
由一群從事社會運動的學生所組成的團體。<br />
|
||||
</div>
|
||||
</form>
|
||||
</li>
|
||||
|
||||
<li>
|
||||
<form action="../cgi-bin/mailto.cgi" method="post">
|
||||
<div>
|
||||
<a href="http://www.eff.org/blueribbon.html"><img class="linkicon"
|
||||
src="http://br.eff.org/br.gif"
|
||||
alt="The Blue Ribbon Campaign for Online Free Speech" /></a><br />
|
||||
<cite><span class="en" xml:lang="en-us">The Blue Ribbon Campaign for Online Free Speech</span></cite><br />
|
||||
網址: <a href="http://www.eff.org/blueribbon.html">http://www.eff.org/blueribbon.html</a><br />
|
||||
E-mail : <input type="hidden" name="email" value="webmaster at eff.org" />
|
||||
<input type="image" src="../images/email" alt="E-mail" />
|
||||
webmaster<span>@</span>eff.org<br />
|
||||
(待撰寫)<br />
|
||||
</div>
|
||||
</form>
|
||||
</li>
|
||||
|
||||
</ol>
|
||||
|
||||
<hr />
|
||||
<h2>女網牽手‧和妳牽手</h2>
|
||||
|
||||
<div class="intro">
|
||||
<p>女人上網,伴手相牽。我們希望和各種不同國女人發聲的網站,或為女人努力發聲的網站串連起來,匯集成女人自己的網路空間。若妳也願意和我們牽手,請填好下表寄出。我們將儘快查詢妳的網址是否正確,然後加入女網牽手中。</p>
|
||||
</div>
|
||||
|
||||
<form class="regform" action="mailto:editors@mail.wov.idv.tw?subject=%5B%E5%A5%B3%E8%81%B2%E5%9B%9E%E5%87%BD%5D%20%E7%B6%B2%E7%AB%99%E7%99%BB%E9%8C%84"
|
||||
method="post" enctype="text/plain" accept-charset="UTF-8"
|
||||
onsubmit="return isRegisterOK(this);">
|
||||
<div>
|
||||
<input type="hidden" name="charset" value="UTF-8" />
|
||||
<table summary="本表提供登錄女聲女網簽手的表單,網站資料欄位名稱,和填寫該資料的輸入格。">
|
||||
<colgroup><col /><col /></colgroup>
|
||||
<tbody>
|
||||
<tr>
|
||||
<th scope="row"><label for="title">站名:</label></th>
|
||||
<td><input id="title" class="text" type="text" name="title" size="40" value="" /></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th scope="row"><label for="title_2ln">站名(第二語言,可略):</label></th>
|
||||
<td><input id="title_2ln" class="text" type="text" name="title_2ln" size="40" value="" /></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th scope="row"><label for="url">網址:</label></th>
|
||||
<td><input id="url" class="text" type="text" name="url" size="40" value="http://" /></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th scope="row"><label for="icon">連結小圖:</label></th>
|
||||
<td><input id="icon" class="text" type="text" name="icon" size="40" value="http://" /></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th scope="row"><label for="cat0">分類:</label></th>
|
||||
<td><input id="cat0" class="text" type="text" name="cat0" size="40" value="" /><br />
|
||||
<input id="cat1" class="text" type="text" name="cat1" size="40" value="" /><br />
|
||||
<input id="cat2" class="text" type="text" name="cat2" size="40" value="" /></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th scope="row"><label for="dsc">簡介:</label></th>
|
||||
<td><textarea id="dsc" name="dsc" cols="45" rows="10"
|
||||
onfocus="if (this.value == "請填上簡介。") this.value = "";">請填上簡介。</textarea></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th scope="row"><label for="email">E-mail :</label></th>
|
||||
<td><input id="email" class="text" type="text" name="email" size="40" value="" /></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th scope="row"><label for="addr">連絡地址:</label></th>
|
||||
<td><input id="addr" class="text" type="text" name="addr" size="40" value="" /></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th scope="row"><label for="tel">連絡電話:</label></th>
|
||||
<td><input id="tel" class="text" type="text" name="tel" size="40" value="" /></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th scope="row"><label for="fax">連絡傳真:</label></th>
|
||||
<td><input id="fax" class="text" type="text" name="fax" size="40" value="" /></td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
<input type="submit" value="和我簽手" />
|
||||
</div>
|
||||
</form>
|
||||
|
||||
</div>
|
||||
|
||||
<hr />
|
||||
<div id="footer" class="footer" title="頁尾區">
|
||||
|
||||
<div>
|
||||
<a href=".." title="女聲電子報網站"><img
|
||||
src="../images/icon" alt="女聲" /></a>|<a
|
||||
href="https://www.imacat.idv.tw/"
|
||||
title="往旅舍依瑪網站"><img
|
||||
src="https://www.imacat.idv.tw/images/icon"
|
||||
alt="歡迎光臨旅舍依瑪" /></a>
|
||||
</div>
|
||||
|
||||
<div>
|
||||
<a href="http://www.w3.org/Style/CSS/Buttons/"
|
||||
title="CSS 樣式表說明" hreflang="en"><img
|
||||
src="../images/w3c/mwcts" alt="以 CSS 樣式表製作" /></a>|<a
|
||||
href="http://html-validator.imacat.idv.tw/check/referer"
|
||||
title="本頁的 HTML 驗證結果" hreflang="en"><img
|
||||
src="../images/w3c/vxhtml11" alt="XHTML 1.1 正確!" /></a>|<a
|
||||
href="http://jigsaw.w3.org/css-validator/check/referer"
|
||||
title="本頁的 CSS 驗證結果" hreflang="en"><img
|
||||
src="../images/w3c/vcss" alt="CSS 正確!" /></a>|<a
|
||||
href="http://www.w3.org/WAI/WCAG1AAA-Conformance"
|
||||
title="無障礙三 A 級標準說明" hreflang="en"><img
|
||||
src="../images/w3c/wcag1AAA"
|
||||
alt="W3C 無障礙網頁規範 1.0 三 A 級標準標章" /></a>
|
||||
<p>本頁符合 <a href="http://www.w3.org/TR/xhtml11/" hreflang="en"><abbr
|
||||
title="Extensible HyperText Markup Language">XHTML</abbr> 1.1</a> /
|
||||
<a href="http://www.w3.org/TR/CSS21/" hreflang="en"><abbr
|
||||
title="Cascading Style Sheets">CSS</abbr> 2.1</a> /
|
||||
<a href="http://www.w3.org/TR/WAI-WEBCONTENT/"
|
||||
hreflang="en">無障礙網頁規範 1.0</a> 三 A 級標準</p>
|
||||
</div>
|
||||
|
||||
<div>
|
||||
<p>《女聲》電子報著作權所有,欲轉載引用請先閱讀<a href="../copying.html">著作權聲明</a></p>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
</body>
|
||||
</html>
|
||||
1
htdocs/wov/links/queer.html.html
Symbolic link
@@ -0,0 +1 @@
|
||||
queer.html.xhtml
|
||||
240
htdocs/wov/links/queer.html.xhtml
Normal file
@@ -0,0 +1,240 @@
|
||||
<?xml version="1.0" encoding="UTF-8" ?>
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
|
||||
"http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
|
||||
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="zh-tw">
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="application/xhtml+xml; charset=UTF-8" />
|
||||
<meta http-equiv="Content-Style-Type" content="text/css" />
|
||||
<meta http-equiv="Content-Script-Type" content="text/javascript" />
|
||||
<meta name="author" content="小招, 依瑪貓" />
|
||||
<meta name="copyright" content="© 1999-2020 《女聲》電子報。《女聲》電子報保有所有權利。" />
|
||||
<meta name="keywords" content="酷兒" />
|
||||
<meta name="generator" content="Selima 3.10" />
|
||||
<link rel="start" type="application/xhtml+xml" href=".." />
|
||||
<link rel="copyright" type="application/xhtml+xml" href="../copying.html" />
|
||||
<link rel="author" href="mailto:editors@mail.wov.idv.tw" />
|
||||
<link rel="search" type="application/xhtml+xml" href="../cgi-bin/search.cgi" />
|
||||
<link rel="up" type="application/xhtml+xml" href="." />
|
||||
<link rel="stylesheet" type="text/css" href="../stylesheets/common.css" />
|
||||
<link rel="shortcut icon" type="image/x-icon" href="../favicon.ico" />
|
||||
<title>搞怪的女人</title>
|
||||
</head>
|
||||
<body class="links">
|
||||
|
||||
<div id="topofpage" class="skiptobody">
|
||||
<a accesskey="2" href="#body">跳到網頁內文區。</a>
|
||||
</div>
|
||||
|
||||
|
||||
<div id="nav" class="nav" title="導覽連結區">
|
||||
<div class="accessguide"><a accesskey="L"
|
||||
href="#nav" title="導覽連結區">:::</a></div>
|
||||
|
||||
<form action="../cgi-bin/search.cgi" method="get" accept-charset="UTF-8">
|
||||
<div class="navibar">
|
||||
<span><a href="../newsletters/">閱讀女聲</a></span> |
|
||||
<span><a href="../subscribe.html">訂閱女聲</a></span> |
|
||||
<span><a href="../cgi-bin/guestbook.cgi">妳的女聲</a></span> |
|
||||
<span><a href=".">女網牽手</a></span> |
|
||||
<span><a accesskey="1" href="..">回首頁</a></span> |
|
||||
<span><a href="mailto:editors@mail.wov.idv.tw">寫信給女聲</a></span> |
|
||||
<label for="navquery">檢索:</label><input
|
||||
id="navquery" class="text" type="text" name="query" value="" /><input
|
||||
type="hidden" name="charset" value="UTF-8" /><input
|
||||
type="submit" value="搜尋" />
|
||||
</div>
|
||||
</form>
|
||||
<hr />
|
||||
|
||||
<div class="navibar">
|
||||
<span><a href="orgs.html">一大群女人</a></span> |
|
||||
<span><a href="culture.html">女人文化界</a></span> |
|
||||
<span><a href="lesbian.html">女人愛女人</a></span> |
|
||||
<span><a href="science.html">女性與科技</a></span> |
|
||||
<span><a href="history.html">回首的女人</a></span> |
|
||||
<span><a href="general.html">多樣的女人</a></span> |
|
||||
<span><a href="others.html">好人</a></span> |
|
||||
<span><a href="intell.html">好學的女人</a></span> |
|
||||
<span><a href="feminist.html">抗爭的女人</a></span> |
|
||||
<span><a href="labor.html">勞動的女人</a></span> |
|
||||
<span><a href="medicine.html">愛惜身體的女人</a></span> |
|
||||
<span><a href="queer.html">搞怪的女人</a></span> |
|
||||
<span><a href="literate.html">舞文弄墨的女人</a></span> |
|
||||
<span><a href="sex.html">隨性的女人</a></span>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
<hr />
|
||||
|
||||
<div id="body" class="body" title="網頁內文區">
|
||||
<div class="accessguide"><a accesskey="C"
|
||||
href="#body" title="網頁內文區">:::</a></div>
|
||||
|
||||
<div class="title">
|
||||
<img src="../images/logo"
|
||||
alt="女聲 LOGO" title="女聲 Woman's Voice" />
|
||||
<h1>搞怪的女人</h1>
|
||||
<h1 class="en" xml:lang="en-us">Queer Women</h1>
|
||||
</div>
|
||||
|
||||
<div class="breadcrumb">
|
||||
<a href=".">女網牽手</a> /
|
||||
搞怪的女人
|
||||
</div>
|
||||
|
||||
<ol class="linkslist">
|
||||
<li>
|
||||
<form action="../cgi-bin/mailto.cgi" method="post">
|
||||
<div>
|
||||
<a href="http://www.wenxue.com/scene/b5/yuejing/index.htm"><img class="linkicon"
|
||||
src="http://www.wenxue.com/scene/images/yuejing/ttl.gif"
|
||||
alt="現場:月經" /></a><br />
|
||||
<cite>現場:月經</cite><br />
|
||||
網址: <a href="http://www.wenxue.com/scene/b5/yuejing/index.htm">http://www.wenxue.com/scene/b5/yuejing/index.htm</a><br />
|
||||
E-mail : <input type="hidden" name="email" value="yuejing at wenxue.com <yuejing at wenxue.com>" />
|
||||
<input type="image" src="../images/email" alt="E-mail" />
|
||||
yuejing<span>@</span>wenxue.com <yuejing<span>@</span>wenxue.com><br />
|
||||
(待撰寫)<br />
|
||||
</div>
|
||||
</form>
|
||||
</li>
|
||||
|
||||
<li>
|
||||
<form action="../cgi-bin/mailto.cgi" method="post">
|
||||
<div>
|
||||
<a href="http://www.qrd.org/"><img class="linkicon"
|
||||
src="http://www.qrd.org/qrd/www/images/QRD.gif"
|
||||
alt="Queer Resources Directory" /></a><br />
|
||||
<cite><span class="en" xml:lang="en-us">Queer Resources Directory</span></cite><br />
|
||||
網址: <a href="http://www.qrd.org/">http://www.qrd.org/</a><br />
|
||||
E-mail : <input type="hidden" name="email" value="staff at qrd.org" />
|
||||
<input type="image" src="../images/email" alt="E-mail" />
|
||||
staff<span>@</span>qrd.org<br />
|
||||
(待撰寫)<br />
|
||||
</div>
|
||||
</form>
|
||||
</li>
|
||||
|
||||
<li>
|
||||
<form action="../cgi-bin/mailto.cgi" method="post">
|
||||
<div>
|
||||
<cite><span class="en" xml:lang="en-us">AltSex</span></cite><br />
|
||||
網址: <a href="http://www.altsex.org/">http://www.altsex.org</a><br />
|
||||
E-mail : <input type="hidden" name="email" value="webmaster at altsex.org" />
|
||||
<input type="image" src="../images/email" alt="E-mail" />
|
||||
webmaster<span>@</span>altsex.org<br />
|
||||
(待撰寫)<br />
|
||||
</div>
|
||||
</form>
|
||||
</li>
|
||||
|
||||
</ol>
|
||||
|
||||
<hr />
|
||||
<h2>女網牽手‧和妳牽手</h2>
|
||||
|
||||
<div class="intro">
|
||||
<p>女人上網,伴手相牽。我們希望和各種不同國女人發聲的網站,或為女人努力發聲的網站串連起來,匯集成女人自己的網路空間。若妳也願意和我們牽手,請填好下表寄出。我們將儘快查詢妳的網址是否正確,然後加入女網牽手中。</p>
|
||||
</div>
|
||||
|
||||
<form class="regform" action="mailto:editors@mail.wov.idv.tw?subject=%5B%E5%A5%B3%E8%81%B2%E5%9B%9E%E5%87%BD%5D%20%E7%B6%B2%E7%AB%99%E7%99%BB%E9%8C%84"
|
||||
method="post" enctype="text/plain" accept-charset="UTF-8"
|
||||
onsubmit="return isRegisterOK(this);">
|
||||
<div>
|
||||
<input type="hidden" name="charset" value="UTF-8" />
|
||||
<table summary="本表提供登錄女聲女網簽手的表單,網站資料欄位名稱,和填寫該資料的輸入格。">
|
||||
<colgroup><col /><col /></colgroup>
|
||||
<tbody>
|
||||
<tr>
|
||||
<th scope="row"><label for="title">站名:</label></th>
|
||||
<td><input id="title" class="text" type="text" name="title" size="40" value="" /></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th scope="row"><label for="title_2ln">站名(第二語言,可略):</label></th>
|
||||
<td><input id="title_2ln" class="text" type="text" name="title_2ln" size="40" value="" /></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th scope="row"><label for="url">網址:</label></th>
|
||||
<td><input id="url" class="text" type="text" name="url" size="40" value="http://" /></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th scope="row"><label for="icon">連結小圖:</label></th>
|
||||
<td><input id="icon" class="text" type="text" name="icon" size="40" value="http://" /></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th scope="row"><label for="cat0">分類:</label></th>
|
||||
<td><input id="cat0" class="text" type="text" name="cat0" size="40" value="" /><br />
|
||||
<input id="cat1" class="text" type="text" name="cat1" size="40" value="" /><br />
|
||||
<input id="cat2" class="text" type="text" name="cat2" size="40" value="" /></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th scope="row"><label for="dsc">簡介:</label></th>
|
||||
<td><textarea id="dsc" name="dsc" cols="45" rows="10"
|
||||
onfocus="if (this.value == "請填上簡介。") this.value = "";">請填上簡介。</textarea></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th scope="row"><label for="email">E-mail :</label></th>
|
||||
<td><input id="email" class="text" type="text" name="email" size="40" value="" /></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th scope="row"><label for="addr">連絡地址:</label></th>
|
||||
<td><input id="addr" class="text" type="text" name="addr" size="40" value="" /></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th scope="row"><label for="tel">連絡電話:</label></th>
|
||||
<td><input id="tel" class="text" type="text" name="tel" size="40" value="" /></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th scope="row"><label for="fax">連絡傳真:</label></th>
|
||||
<td><input id="fax" class="text" type="text" name="fax" size="40" value="" /></td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
<input type="submit" value="和我簽手" />
|
||||
</div>
|
||||
</form>
|
||||
|
||||
</div>
|
||||
|
||||
<hr />
|
||||
<div id="footer" class="footer" title="頁尾區">
|
||||
|
||||
<div>
|
||||
<a href=".." title="女聲電子報網站"><img
|
||||
src="../images/icon" alt="女聲" /></a>|<a
|
||||
href="https://www.imacat.idv.tw/"
|
||||
title="往旅舍依瑪網站"><img
|
||||
src="https://www.imacat.idv.tw/images/icon"
|
||||
alt="歡迎光臨旅舍依瑪" /></a>
|
||||
</div>
|
||||
|
||||
<div>
|
||||
<a href="http://www.w3.org/Style/CSS/Buttons/"
|
||||
title="CSS 樣式表說明" hreflang="en"><img
|
||||
src="../images/w3c/mwcts" alt="以 CSS 樣式表製作" /></a>|<a
|
||||
href="http://html-validator.imacat.idv.tw/check/referer"
|
||||
title="本頁的 HTML 驗證結果" hreflang="en"><img
|
||||
src="../images/w3c/vxhtml11" alt="XHTML 1.1 正確!" /></a>|<a
|
||||
href="http://jigsaw.w3.org/css-validator/check/referer"
|
||||
title="本頁的 CSS 驗證結果" hreflang="en"><img
|
||||
src="../images/w3c/vcss" alt="CSS 正確!" /></a>|<a
|
||||
href="http://www.w3.org/WAI/WCAG1AAA-Conformance"
|
||||
title="無障礙三 A 級標準說明" hreflang="en"><img
|
||||
src="../images/w3c/wcag1AAA"
|
||||
alt="W3C 無障礙網頁規範 1.0 三 A 級標準標章" /></a>
|
||||
<p>本頁符合 <a href="http://www.w3.org/TR/xhtml11/" hreflang="en"><abbr
|
||||
title="Extensible HyperText Markup Language">XHTML</abbr> 1.1</a> /
|
||||
<a href="http://www.w3.org/TR/CSS21/" hreflang="en"><abbr
|
||||
title="Cascading Style Sheets">CSS</abbr> 2.1</a> /
|
||||
<a href="http://www.w3.org/TR/WAI-WEBCONTENT/"
|
||||
hreflang="en">無障礙網頁規範 1.0</a> 三 A 級標準</p>
|
||||
</div>
|
||||
|
||||
<div>
|
||||
<p>《女聲》電子報著作權所有,欲轉載引用請先閱讀<a href="../copying.html">著作權聲明</a></p>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
</body>
|
||||
</html>
|
||||
1
htdocs/wov/links/science.html.html
Symbolic link
@@ -0,0 +1 @@
|
||||
science.html.xhtml
|
||||
208
htdocs/wov/links/science.html.xhtml
Normal file
@@ -0,0 +1,208 @@
|
||||
<?xml version="1.0" encoding="UTF-8" ?>
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
|
||||
"http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
|
||||
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="zh-tw">
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="application/xhtml+xml; charset=UTF-8" />
|
||||
<meta http-equiv="Content-Style-Type" content="text/css" />
|
||||
<meta http-equiv="Content-Script-Type" content="text/javascript" />
|
||||
<meta name="author" content="小招, 依瑪貓" />
|
||||
<meta name="copyright" content="© 1999-2020 《女聲》電子報。《女聲》電子報保有所有權利。" />
|
||||
<meta name="keywords" content="科學, 科技" />
|
||||
<meta name="generator" content="Selima 3.10" />
|
||||
<link rel="start" type="application/xhtml+xml" href=".." />
|
||||
<link rel="copyright" type="application/xhtml+xml" href="../copying.html" />
|
||||
<link rel="author" href="mailto:editors@mail.wov.idv.tw" />
|
||||
<link rel="search" type="application/xhtml+xml" href="../cgi-bin/search.cgi" />
|
||||
<link rel="up" type="application/xhtml+xml" href="." />
|
||||
<link rel="stylesheet" type="text/css" href="../stylesheets/common.css" />
|
||||
<link rel="shortcut icon" type="image/x-icon" href="../favicon.ico" />
|
||||
<title>女性與科技</title>
|
||||
</head>
|
||||
<body class="links">
|
||||
|
||||
<div id="topofpage" class="skiptobody">
|
||||
<a accesskey="2" href="#body">跳到網頁內文區。</a>
|
||||
</div>
|
||||
|
||||
|
||||
<div id="nav" class="nav" title="導覽連結區">
|
||||
<div class="accessguide"><a accesskey="L"
|
||||
href="#nav" title="導覽連結區">:::</a></div>
|
||||
|
||||
<form action="../cgi-bin/search.cgi" method="get" accept-charset="UTF-8">
|
||||
<div class="navibar">
|
||||
<span><a href="../newsletters/">閱讀女聲</a></span> |
|
||||
<span><a href="../subscribe.html">訂閱女聲</a></span> |
|
||||
<span><a href="../cgi-bin/guestbook.cgi">妳的女聲</a></span> |
|
||||
<span><a href=".">女網牽手</a></span> |
|
||||
<span><a accesskey="1" href="..">回首頁</a></span> |
|
||||
<span><a href="mailto:editors@mail.wov.idv.tw">寫信給女聲</a></span> |
|
||||
<label for="navquery">檢索:</label><input
|
||||
id="navquery" class="text" type="text" name="query" value="" /><input
|
||||
type="hidden" name="charset" value="UTF-8" /><input
|
||||
type="submit" value="搜尋" />
|
||||
</div>
|
||||
</form>
|
||||
<hr />
|
||||
|
||||
<div class="navibar">
|
||||
<span><a href="orgs.html">一大群女人</a></span> |
|
||||
<span><a href="culture.html">女人文化界</a></span> |
|
||||
<span><a href="lesbian.html">女人愛女人</a></span> |
|
||||
<span><a href="science.html">女性與科技</a></span> |
|
||||
<span><a href="history.html">回首的女人</a></span> |
|
||||
<span><a href="general.html">多樣的女人</a></span> |
|
||||
<span><a href="others.html">好人</a></span> |
|
||||
<span><a href="intell.html">好學的女人</a></span> |
|
||||
<span><a href="feminist.html">抗爭的女人</a></span> |
|
||||
<span><a href="labor.html">勞動的女人</a></span> |
|
||||
<span><a href="medicine.html">愛惜身體的女人</a></span> |
|
||||
<span><a href="queer.html">搞怪的女人</a></span> |
|
||||
<span><a href="literate.html">舞文弄墨的女人</a></span> |
|
||||
<span><a href="sex.html">隨性的女人</a></span>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
<hr />
|
||||
|
||||
<div id="body" class="body" title="網頁內文區">
|
||||
<div class="accessguide"><a accesskey="C"
|
||||
href="#body" title="網頁內文區">:::</a></div>
|
||||
|
||||
<div class="title">
|
||||
<img src="../images/logo"
|
||||
alt="女聲 LOGO" title="女聲 Woman's Voice" />
|
||||
<h1>女性與科技</h1>
|
||||
<h1 class="en" xml:lang="en-us">Scientific Women</h1>
|
||||
</div>
|
||||
|
||||
<div class="breadcrumb">
|
||||
<a href=".">女網牽手</a> /
|
||||
女性與科技
|
||||
</div>
|
||||
|
||||
<ol class="linkslist">
|
||||
<li>
|
||||
<form action="../cgi-bin/mailto.cgi" method="post">
|
||||
<div>
|
||||
<cite><span class="en" xml:lang="en-us">Women and Computer Science</span></cite><br />
|
||||
網址: <a href="http://www.mills.edu/ACAD_INFO/MCS/SPERTUS/Gender/gender.html">http://www.mills.edu/ACAD_INFO/MCS/SPERTUS/Gender/gender.html</a><br />
|
||||
E-mail : <input type="hidden" name="email" value="spertus at mills.edu" />
|
||||
<input type="image" src="../images/email" alt="E-mail" />
|
||||
spertus<span>@</span>mills.edu<br />
|
||||
(待撰寫)<br />
|
||||
</div>
|
||||
</form>
|
||||
</li>
|
||||
|
||||
</ol>
|
||||
|
||||
<hr />
|
||||
<h2>女網牽手‧和妳牽手</h2>
|
||||
|
||||
<div class="intro">
|
||||
<p>女人上網,伴手相牽。我們希望和各種不同國女人發聲的網站,或為女人努力發聲的網站串連起來,匯集成女人自己的網路空間。若妳也願意和我們牽手,請填好下表寄出。我們將儘快查詢妳的網址是否正確,然後加入女網牽手中。</p>
|
||||
</div>
|
||||
|
||||
<form class="regform" action="mailto:editors@mail.wov.idv.tw?subject=%5B%E5%A5%B3%E8%81%B2%E5%9B%9E%E5%87%BD%5D%20%E7%B6%B2%E7%AB%99%E7%99%BB%E9%8C%84"
|
||||
method="post" enctype="text/plain" accept-charset="UTF-8"
|
||||
onsubmit="return isRegisterOK(this);">
|
||||
<div>
|
||||
<input type="hidden" name="charset" value="UTF-8" />
|
||||
<table summary="本表提供登錄女聲女網簽手的表單,網站資料欄位名稱,和填寫該資料的輸入格。">
|
||||
<colgroup><col /><col /></colgroup>
|
||||
<tbody>
|
||||
<tr>
|
||||
<th scope="row"><label for="title">站名:</label></th>
|
||||
<td><input id="title" class="text" type="text" name="title" size="40" value="" /></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th scope="row"><label for="title_2ln">站名(第二語言,可略):</label></th>
|
||||
<td><input id="title_2ln" class="text" type="text" name="title_2ln" size="40" value="" /></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th scope="row"><label for="url">網址:</label></th>
|
||||
<td><input id="url" class="text" type="text" name="url" size="40" value="http://" /></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th scope="row"><label for="icon">連結小圖:</label></th>
|
||||
<td><input id="icon" class="text" type="text" name="icon" size="40" value="http://" /></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th scope="row"><label for="cat0">分類:</label></th>
|
||||
<td><input id="cat0" class="text" type="text" name="cat0" size="40" value="" /><br />
|
||||
<input id="cat1" class="text" type="text" name="cat1" size="40" value="" /><br />
|
||||
<input id="cat2" class="text" type="text" name="cat2" size="40" value="" /></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th scope="row"><label for="dsc">簡介:</label></th>
|
||||
<td><textarea id="dsc" name="dsc" cols="45" rows="10"
|
||||
onfocus="if (this.value == "請填上簡介。") this.value = "";">請填上簡介。</textarea></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th scope="row"><label for="email">E-mail :</label></th>
|
||||
<td><input id="email" class="text" type="text" name="email" size="40" value="" /></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th scope="row"><label for="addr">連絡地址:</label></th>
|
||||
<td><input id="addr" class="text" type="text" name="addr" size="40" value="" /></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th scope="row"><label for="tel">連絡電話:</label></th>
|
||||
<td><input id="tel" class="text" type="text" name="tel" size="40" value="" /></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th scope="row"><label for="fax">連絡傳真:</label></th>
|
||||
<td><input id="fax" class="text" type="text" name="fax" size="40" value="" /></td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
<input type="submit" value="和我簽手" />
|
||||
</div>
|
||||
</form>
|
||||
|
||||
</div>
|
||||
|
||||
<hr />
|
||||
<div id="footer" class="footer" title="頁尾區">
|
||||
|
||||
<div>
|
||||
<a href=".." title="女聲電子報網站"><img
|
||||
src="../images/icon" alt="女聲" /></a>|<a
|
||||
href="https://www.imacat.idv.tw/"
|
||||
title="往旅舍依瑪網站"><img
|
||||
src="https://www.imacat.idv.tw/images/icon"
|
||||
alt="歡迎光臨旅舍依瑪" /></a>
|
||||
</div>
|
||||
|
||||
<div>
|
||||
<a href="http://www.w3.org/Style/CSS/Buttons/"
|
||||
title="CSS 樣式表說明" hreflang="en"><img
|
||||
src="../images/w3c/mwcts" alt="以 CSS 樣式表製作" /></a>|<a
|
||||
href="http://html-validator.imacat.idv.tw/check/referer"
|
||||
title="本頁的 HTML 驗證結果" hreflang="en"><img
|
||||
src="../images/w3c/vxhtml11" alt="XHTML 1.1 正確!" /></a>|<a
|
||||
href="http://jigsaw.w3.org/css-validator/check/referer"
|
||||
title="本頁的 CSS 驗證結果" hreflang="en"><img
|
||||
src="../images/w3c/vcss" alt="CSS 正確!" /></a>|<a
|
||||
href="http://www.w3.org/WAI/WCAG1AAA-Conformance"
|
||||
title="無障礙三 A 級標準說明" hreflang="en"><img
|
||||
src="../images/w3c/wcag1AAA"
|
||||
alt="W3C 無障礙網頁規範 1.0 三 A 級標準標章" /></a>
|
||||
<p>本頁符合 <a href="http://www.w3.org/TR/xhtml11/" hreflang="en"><abbr
|
||||
title="Extensible HyperText Markup Language">XHTML</abbr> 1.1</a> /
|
||||
<a href="http://www.w3.org/TR/CSS21/" hreflang="en"><abbr
|
||||
title="Cascading Style Sheets">CSS</abbr> 2.1</a> /
|
||||
<a href="http://www.w3.org/TR/WAI-WEBCONTENT/"
|
||||
hreflang="en">無障礙網頁規範 1.0</a> 三 A 級標準</p>
|
||||
</div>
|
||||
|
||||
<div>
|
||||
<p>《女聲》電子報著作權所有,欲轉載引用請先閱讀<a href="../copying.html">著作權聲明</a></p>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
</body>
|
||||
</html>
|
||||
1
htdocs/wov/links/sex.html.html
Symbolic link
@@ -0,0 +1 @@
|
||||
sex.html.xhtml
|
||||
213
htdocs/wov/links/sex.html.xhtml
Normal file
@@ -0,0 +1,213 @@
|
||||
<?xml version="1.0" encoding="UTF-8" ?>
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
|
||||
"http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
|
||||
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="zh-tw">
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="application/xhtml+xml; charset=UTF-8" />
|
||||
<meta http-equiv="Content-Style-Type" content="text/css" />
|
||||
<meta http-equiv="Content-Script-Type" content="text/javascript" />
|
||||
<meta name="author" content="小招, 依瑪貓" />
|
||||
<meta name="copyright" content="© 1999-2020 《女聲》電子報。《女聲》電子報保有所有權利。" />
|
||||
<meta name="keywords" content="性, 身體" />
|
||||
<meta name="generator" content="Selima 3.10" />
|
||||
<link rel="start" type="application/xhtml+xml" href=".." />
|
||||
<link rel="copyright" type="application/xhtml+xml" href="../copying.html" />
|
||||
<link rel="author" href="mailto:editors@mail.wov.idv.tw" />
|
||||
<link rel="search" type="application/xhtml+xml" href="../cgi-bin/search.cgi" />
|
||||
<link rel="up" type="application/xhtml+xml" href="." />
|
||||
<link rel="stylesheet" type="text/css" href="../stylesheets/common.css" />
|
||||
<link rel="shortcut icon" type="image/x-icon" href="../favicon.ico" />
|
||||
<title>隨性的女人</title>
|
||||
</head>
|
||||
<body class="links">
|
||||
|
||||
<div id="topofpage" class="skiptobody">
|
||||
<a accesskey="2" href="#body">跳到網頁內文區。</a>
|
||||
</div>
|
||||
|
||||
|
||||
<div id="nav" class="nav" title="導覽連結區">
|
||||
<div class="accessguide"><a accesskey="L"
|
||||
href="#nav" title="導覽連結區">:::</a></div>
|
||||
|
||||
<form action="../cgi-bin/search.cgi" method="get" accept-charset="UTF-8">
|
||||
<div class="navibar">
|
||||
<span><a href="../newsletters/">閱讀女聲</a></span> |
|
||||
<span><a href="../subscribe.html">訂閱女聲</a></span> |
|
||||
<span><a href="../cgi-bin/guestbook.cgi">妳的女聲</a></span> |
|
||||
<span><a href=".">女網牽手</a></span> |
|
||||
<span><a accesskey="1" href="..">回首頁</a></span> |
|
||||
<span><a href="mailto:editors@mail.wov.idv.tw">寫信給女聲</a></span> |
|
||||
<label for="navquery">檢索:</label><input
|
||||
id="navquery" class="text" type="text" name="query" value="" /><input
|
||||
type="hidden" name="charset" value="UTF-8" /><input
|
||||
type="submit" value="搜尋" />
|
||||
</div>
|
||||
</form>
|
||||
<hr />
|
||||
|
||||
<div class="navibar">
|
||||
<span><a href="orgs.html">一大群女人</a></span> |
|
||||
<span><a href="culture.html">女人文化界</a></span> |
|
||||
<span><a href="lesbian.html">女人愛女人</a></span> |
|
||||
<span><a href="science.html">女性與科技</a></span> |
|
||||
<span><a href="history.html">回首的女人</a></span> |
|
||||
<span><a href="general.html">多樣的女人</a></span> |
|
||||
<span><a href="others.html">好人</a></span> |
|
||||
<span><a href="intell.html">好學的女人</a></span> |
|
||||
<span><a href="feminist.html">抗爭的女人</a></span> |
|
||||
<span><a href="labor.html">勞動的女人</a></span> |
|
||||
<span><a href="medicine.html">愛惜身體的女人</a></span> |
|
||||
<span><a href="queer.html">搞怪的女人</a></span> |
|
||||
<span><a href="literate.html">舞文弄墨的女人</a></span> |
|
||||
<span><a href="sex.html">隨性的女人</a></span>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
<hr />
|
||||
|
||||
<div id="body" class="body" title="網頁內文區">
|
||||
<div class="accessguide"><a accesskey="C"
|
||||
href="#body" title="網頁內文區">:::</a></div>
|
||||
|
||||
<div class="title">
|
||||
<img src="../images/logo"
|
||||
alt="女聲 LOGO" title="女聲 Woman's Voice" />
|
||||
<h1>隨性的女人</h1>
|
||||
<h1 class="en" xml:lang="en-us">Sexual Women</h1>
|
||||
</div>
|
||||
|
||||
<div class="breadcrumb">
|
||||
<a href=".">女網牽手</a> /
|
||||
隨性的女人
|
||||
</div>
|
||||
|
||||
<ol class="linkslist">
|
||||
<li>
|
||||
<form action="../cgi-bin/mailto.cgi" method="post">
|
||||
<div>
|
||||
<a href="http://www.positive.org/Home/index.html"><img class="linkicon"
|
||||
src="http://www.positive.org/images/logo/small.gif"
|
||||
alt="The Coalition for Positive Sexuality (CPS)" /></a><br />
|
||||
<cite><span class="en" xml:lang="en-us">The Coalition for Positive Sexuality (CPS)</span></cite><br />
|
||||
網址: <a href="http://www.positive.org/Home/index.html">http://www.positive.org/Home/index.html</a><br />
|
||||
E-mail : <input type="hidden" name="email" value="cps at positive.org" />
|
||||
<input type="image" src="../images/email" alt="E-mail" />
|
||||
cps<span>@</span>positive.org<br />
|
||||
地址: 3712 N. Broadway PMB#191, Chicago, IL 60613<br />
|
||||
電話: +1 (773) 604-1654<br />
|
||||
(待撰寫)<br />
|
||||
</div>
|
||||
</form>
|
||||
</li>
|
||||
|
||||
</ol>
|
||||
|
||||
<hr />
|
||||
<h2>女網牽手‧和妳牽手</h2>
|
||||
|
||||
<div class="intro">
|
||||
<p>女人上網,伴手相牽。我們希望和各種不同國女人發聲的網站,或為女人努力發聲的網站串連起來,匯集成女人自己的網路空間。若妳也願意和我們牽手,請填好下表寄出。我們將儘快查詢妳的網址是否正確,然後加入女網牽手中。</p>
|
||||
</div>
|
||||
|
||||
<form class="regform" action="mailto:editors@mail.wov.idv.tw?subject=%5B%E5%A5%B3%E8%81%B2%E5%9B%9E%E5%87%BD%5D%20%E7%B6%B2%E7%AB%99%E7%99%BB%E9%8C%84"
|
||||
method="post" enctype="text/plain" accept-charset="UTF-8"
|
||||
onsubmit="return isRegisterOK(this);">
|
||||
<div>
|
||||
<input type="hidden" name="charset" value="UTF-8" />
|
||||
<table summary="本表提供登錄女聲女網簽手的表單,網站資料欄位名稱,和填寫該資料的輸入格。">
|
||||
<colgroup><col /><col /></colgroup>
|
||||
<tbody>
|
||||
<tr>
|
||||
<th scope="row"><label for="title">站名:</label></th>
|
||||
<td><input id="title" class="text" type="text" name="title" size="40" value="" /></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th scope="row"><label for="title_2ln">站名(第二語言,可略):</label></th>
|
||||
<td><input id="title_2ln" class="text" type="text" name="title_2ln" size="40" value="" /></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th scope="row"><label for="url">網址:</label></th>
|
||||
<td><input id="url" class="text" type="text" name="url" size="40" value="http://" /></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th scope="row"><label for="icon">連結小圖:</label></th>
|
||||
<td><input id="icon" class="text" type="text" name="icon" size="40" value="http://" /></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th scope="row"><label for="cat0">分類:</label></th>
|
||||
<td><input id="cat0" class="text" type="text" name="cat0" size="40" value="" /><br />
|
||||
<input id="cat1" class="text" type="text" name="cat1" size="40" value="" /><br />
|
||||
<input id="cat2" class="text" type="text" name="cat2" size="40" value="" /></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th scope="row"><label for="dsc">簡介:</label></th>
|
||||
<td><textarea id="dsc" name="dsc" cols="45" rows="10"
|
||||
onfocus="if (this.value == "請填上簡介。") this.value = "";">請填上簡介。</textarea></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th scope="row"><label for="email">E-mail :</label></th>
|
||||
<td><input id="email" class="text" type="text" name="email" size="40" value="" /></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th scope="row"><label for="addr">連絡地址:</label></th>
|
||||
<td><input id="addr" class="text" type="text" name="addr" size="40" value="" /></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th scope="row"><label for="tel">連絡電話:</label></th>
|
||||
<td><input id="tel" class="text" type="text" name="tel" size="40" value="" /></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th scope="row"><label for="fax">連絡傳真:</label></th>
|
||||
<td><input id="fax" class="text" type="text" name="fax" size="40" value="" /></td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
<input type="submit" value="和我簽手" />
|
||||
</div>
|
||||
</form>
|
||||
|
||||
</div>
|
||||
|
||||
<hr />
|
||||
<div id="footer" class="footer" title="頁尾區">
|
||||
|
||||
<div>
|
||||
<a href=".." title="女聲電子報網站"><img
|
||||
src="../images/icon" alt="女聲" /></a>|<a
|
||||
href="https://www.imacat.idv.tw/"
|
||||
title="往旅舍依瑪網站"><img
|
||||
src="https://www.imacat.idv.tw/images/icon"
|
||||
alt="歡迎光臨旅舍依瑪" /></a>
|
||||
</div>
|
||||
|
||||
<div>
|
||||
<a href="http://www.w3.org/Style/CSS/Buttons/"
|
||||
title="CSS 樣式表說明" hreflang="en"><img
|
||||
src="../images/w3c/mwcts" alt="以 CSS 樣式表製作" /></a>|<a
|
||||
href="http://html-validator.imacat.idv.tw/check/referer"
|
||||
title="本頁的 HTML 驗證結果" hreflang="en"><img
|
||||
src="../images/w3c/vxhtml11" alt="XHTML 1.1 正確!" /></a>|<a
|
||||
href="http://jigsaw.w3.org/css-validator/check/referer"
|
||||
title="本頁的 CSS 驗證結果" hreflang="en"><img
|
||||
src="../images/w3c/vcss" alt="CSS 正確!" /></a>|<a
|
||||
href="http://www.w3.org/WAI/WCAG1AAA-Conformance"
|
||||
title="無障礙三 A 級標準說明" hreflang="en"><img
|
||||
src="../images/w3c/wcag1AAA"
|
||||
alt="W3C 無障礙網頁規範 1.0 三 A 級標準標章" /></a>
|
||||
<p>本頁符合 <a href="http://www.w3.org/TR/xhtml11/" hreflang="en"><abbr
|
||||
title="Extensible HyperText Markup Language">XHTML</abbr> 1.1</a> /
|
||||
<a href="http://www.w3.org/TR/CSS21/" hreflang="en"><abbr
|
||||
title="Cascading Style Sheets">CSS</abbr> 2.1</a> /
|
||||
<a href="http://www.w3.org/TR/WAI-WEBCONTENT/"
|
||||
hreflang="en">無障礙網頁規範 1.0</a> 三 A 級標準</p>
|
||||
</div>
|
||||
|
||||
<div>
|
||||
<p>《女聲》電子報著作權所有,欲轉載引用請先閱讀<a href="../copying.html">著作權聲明</a></p>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
</body>
|
||||
</html>
|
||||
145
htdocs/wov/magicat/archive/cgi-bin/guestbook.cgi
Executable file
@@ -0,0 +1,145 @@
|
||||
#! /usr/bin/perl -w
|
||||
# Woman's Voice
|
||||
# 1-guestbook.cgi: The guestbook.
|
||||
|
||||
# Copyright (c) 2003-2021 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-04-06
|
||||
|
||||
use 5.008;
|
||||
use utf8;
|
||||
use strict;
|
||||
use warnings;
|
||||
use lib $ENV{"DOCUMENT_ROOT"} . qw(/magicat/lib/perl5);
|
||||
use Selima::wov;
|
||||
local $SIG{"__DIE__"} = \&http_500;
|
||||
my $d = new Selima::Destroy;
|
||||
# Prototype declaration
|
||||
sub main();
|
||||
sub check_get();
|
||||
sub check_post();
|
||||
sub html_page($);
|
||||
sub html_foreword();
|
||||
|
||||
initenv(-session => 0,
|
||||
-this_table => "guestbook",
|
||||
-dbi_lock => {"guestbook" => LOCK_EX},
|
||||
-lastmod => 1,
|
||||
-page_param => {"keywords" => N_("your voice"),
|
||||
"class" => "guestbook",
|
||||
"javascripts" => [qw(/scripts/guestbook.js)]});
|
||||
|
||||
main;
|
||||
exit 0;
|
||||
|
||||
sub main() {
|
||||
local ($_, %_);
|
||||
my ($error, $processor);
|
||||
|
||||
# If the request is a GET query
|
||||
if ($ENV{"REQUEST_METHOD"} ne "POST") {
|
||||
$error = check_get;
|
||||
# If an error occurs
|
||||
if (defined $error) {
|
||||
html_page $error;
|
||||
|
||||
# Display the page
|
||||
} else {
|
||||
html_page retrieve_status;
|
||||
}
|
||||
|
||||
# If a form was POSTed from the client
|
||||
} else {
|
||||
$error = check_post;
|
||||
# If an error occurs
|
||||
if (defined $error) {
|
||||
error_redirect $error;
|
||||
|
||||
# Else, save the data
|
||||
} else {
|
||||
$processor = new Selima::wov::Processor::Guestbook::Public($POST);
|
||||
$processor->process;
|
||||
http_303 $REQUEST_FILE;
|
||||
}
|
||||
}
|
||||
return;
|
||||
}
|
||||
|
||||
# check_get: Check the GET arguments
|
||||
sub check_get() {
|
||||
local ($_, %_);
|
||||
# Old styled page number
|
||||
http_301 $REQUEST_FILE if defined $GET->param("no");
|
||||
# List handler handles its own error
|
||||
return;
|
||||
}
|
||||
|
||||
# check_post: Check the POSTed form
|
||||
sub check_post() {
|
||||
local ($_, %_);
|
||||
my ($checker, $error);
|
||||
# Run the checker
|
||||
$checker = new Selima::wov::Checker::Guestbook::Public(curform);
|
||||
$error = $checker->check(qw(message name identity location
|
||||
email url flood dup spam));
|
||||
return $error if defined $error;
|
||||
# OK
|
||||
return;
|
||||
}
|
||||
|
||||
# html_page: Display the page
|
||||
sub html_page($) {
|
||||
local ($_, %_);
|
||||
my ($status, $LIST, $FORM, $args);
|
||||
$status = $_[0];
|
||||
$FORM = new Selima::wov::Form::Guestbook::Public($status);
|
||||
$LIST = new Selima::wov::List::Guestbook::Public;
|
||||
$args = $LIST->page_param;
|
||||
html_header "妳的女聲", "Your Voice", $args;
|
||||
html_foreword;
|
||||
html_errmsg $status;
|
||||
$FORM->html;
|
||||
$LIST->html;
|
||||
html_footer $args;
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
##################################
|
||||
# Subroutines to manage the data #
|
||||
##################################
|
||||
# html_foreword: Print the HTML foreword
|
||||
sub html_foreword() {
|
||||
local ($_, %_);
|
||||
print << "EOT";
|
||||
<div class="intro">
|
||||
<p>發聲就是政治,是權力,是對主體性的要求。</p>
|
||||
|
||||
<p>女聲就是女人的聲音。聲音有的好聽,有的不好聽,有的悅耳,有的嘈雜。
|
||||
也許\是學者、是政要、是學生、是女兒、是媽媽、是女同性戀、是雙性戀、是
|
||||
女工、是菲傭、是公娼、是私娼、是雛妓、是打工辣妹、是家庭主婦、是心理
|
||||
女性。可能都是,也可能都不是。這些都是女人,她們的聲音都同等重要,在
|
||||
差異中尋求最適合自己的生存策略。</p>
|
||||
|
||||
<p>更重要的是,身為女人,是政治行動,不只是天生的命運。</p>
|
||||
|
||||
</div>
|
||||
|
||||
EOT
|
||||
return;
|
||||
}
|
||||
|
||||
no utf8;
|
||||
121
htdocs/wov/magicat/archive/cgi-bin/subs_counter.cgi
Executable file
@@ -0,0 +1,121 @@
|
||||
#! /usr/bin/perl -w
|
||||
# Woman's Voice
|
||||
# 1-subs_counter.cgi: The subscriber counter.
|
||||
|
||||
# Copyright (c) 2003-2021 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-05-17
|
||||
|
||||
use 5.008;
|
||||
use strict;
|
||||
use warnings;
|
||||
use lib $ENV{"DOCUMENT_ROOT"} . qw(/magicat/lib/perl5);
|
||||
use Selima::wov;
|
||||
local $SIG{"__DIE__"} = \&http_500;
|
||||
my $d = new Selima::Destroy;
|
||||
# Prototype declaration
|
||||
sub main();
|
||||
sub get_counter();
|
||||
sub html_image($);
|
||||
|
||||
use Fcntl qw(:flock :seek);
|
||||
use GD;
|
||||
use IO::NestedCapture qw(CAPTURE_STDOUT);
|
||||
|
||||
use constant DATA_FILE => "/var/lib/mailman/lists/wov/config.pck";
|
||||
use constant COUNTER_PROG => "/usr/libexec/total_members";
|
||||
use constant LISTNAME => "wov";
|
||||
use vars qw(@FGCOLOR @BGCOLOR $FONT);
|
||||
@FGCOLOR = (0, 0, 0); # #000000 Black
|
||||
@BGCOLOR = (255, 255, 255); # #FFFFFF White
|
||||
$FONT = gdLargeFont;
|
||||
use constant TRANSPARENT => 1;
|
||||
initenv( -allowed => [qw(GET HEAD)],
|
||||
-session => 0,
|
||||
-dbi => DBI_NONE,
|
||||
-lastmod => 1,
|
||||
-lmfiles => [DATA_FILE],
|
||||
-multilang => 0);
|
||||
|
||||
use vars qw($COUNTER $MTIME);
|
||||
|
||||
main;
|
||||
exit 0;
|
||||
|
||||
sub main() {
|
||||
local ($_, %_);
|
||||
|
||||
get_counter();
|
||||
html_image($COUNTER);
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
# get_counter: Get the subscriber counter
|
||||
sub get_counter() {
|
||||
local ($_, %_);
|
||||
my $OUT;
|
||||
|
||||
# Obtain the mtime of the subscriber database file
|
||||
$_ = (stat DATA_FILE)[9];
|
||||
# We should update the counter
|
||||
if (!defined $MTIME || $MTIME != $_) {
|
||||
# Update the timestamp
|
||||
$MTIME = $_;
|
||||
@_ = (COUNTER_PROG, LISTNAME);
|
||||
open $OUT, "-|", @_ or http_500 COUNTER_PROG . ": $!";
|
||||
defined($COUNTER = <$OUT>) or http_500 COUNTER_PROG . ": $!";
|
||||
close $OUT or http_500 COUNTER_PROG . ": $!";
|
||||
chomp $COUNTER;
|
||||
}
|
||||
|
||||
return $COUNTER;
|
||||
}
|
||||
|
||||
# html_image: Make the image from the counter value
|
||||
sub html_image($) {
|
||||
local $_;
|
||||
my ($counter, $image, $width, $height, $fgcolor, $bgcolor);
|
||||
$counter = $_[0];
|
||||
|
||||
# Group the counter with commas at thousand digits.
|
||||
$counter = fmtno($counter);
|
||||
|
||||
# Initialize the image object
|
||||
# Get the width and height
|
||||
$width = $FONT->width * (length $counter);
|
||||
$height = $FONT->height;
|
||||
# Create an image object
|
||||
$image = GD::Image->new($width, $height);
|
||||
# Create the forground/background color objects
|
||||
$fgcolor = $image->colorAllocate(@FGCOLOR);
|
||||
$bgcolor = $image->colorAllocate(@BGCOLOR);
|
||||
|
||||
# Draw the image
|
||||
# Set the transparent background
|
||||
$image->transparent($bgcolor) if TRANSPARENT;
|
||||
# Paint the background
|
||||
$image->filledRectangle(0, 0, $width, $height, $bgcolor);
|
||||
# Write the text
|
||||
$image->string($FONT, 0, 0, $counter, $fgcolor);
|
||||
|
||||
# Output
|
||||
$CONTENT_TYPE = "image/png";
|
||||
binmode IO::NestedCapture->instance->{"STDOUT_current"}[-1], ":raw";
|
||||
print $image->png;
|
||||
|
||||
return;
|
||||
}
|
||||
242
htdocs/wov/magicat/archive/magicat/cgi-bin/acctrecs.cgi
Executable file
@@ -0,0 +1,242 @@
|
||||
#! /usr/bin/perl -w
|
||||
# Woman's Voice
|
||||
# acctrecs.cgi: The accounting record administration.
|
||||
|
||||
# Copyright (c) 2007-2021 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: 2007-09-24
|
||||
|
||||
use 5.008;
|
||||
use strict;
|
||||
use warnings;
|
||||
use lib $ENV{"DOCUMENT_ROOT"} . qw(/magicat/lib/perl5);
|
||||
use Selima::wov;
|
||||
local $SIG{"__DIE__"} = \&http_500;
|
||||
my $d = new Selima::Destroy;
|
||||
# Prototype declaration
|
||||
sub main();
|
||||
sub check_get();
|
||||
sub check_post();
|
||||
sub html_page($);
|
||||
sub fetch_curitem();
|
||||
sub import_seltrx($);
|
||||
sub import_selsubj($);
|
||||
|
||||
initenv(-restricted => 1,
|
||||
-this_table => "acctrecs",
|
||||
-dbi_lock => {"acctrecs" => LOCK_EX,
|
||||
"accttrx" => LOCK_SH,
|
||||
"acctsubj" => LOCK_SH},
|
||||
-lastmod => 1,
|
||||
-page_param => {"keywords" => N_("accounting")});
|
||||
|
||||
main;
|
||||
exit 0;
|
||||
|
||||
sub main() {
|
||||
local ($_, %_);
|
||||
my ($error, $success, $processor);
|
||||
|
||||
# If the request is a GET query
|
||||
if ($ENV{"REQUEST_METHOD"} ne "POST") {
|
||||
$error = check_get;
|
||||
# If an error occurs
|
||||
if (defined $error) {
|
||||
html_page $error;
|
||||
|
||||
# Display the page
|
||||
} else {
|
||||
html_page retrieve_status;
|
||||
}
|
||||
|
||||
# If a form was POSTed from the client
|
||||
} else {
|
||||
$error = check_post;
|
||||
# If an error occurs
|
||||
if (defined $error) {
|
||||
error_redirect $error;
|
||||
|
||||
# Else, save the data
|
||||
} else {
|
||||
$processor = new Selima::Processor::AcctRec($POST);
|
||||
$success = $processor->process;
|
||||
success_redirect $success;
|
||||
}
|
||||
}
|
||||
return;
|
||||
}
|
||||
|
||||
# check_get: Check the GET arguments
|
||||
sub check_get() {
|
||||
local ($_, %_);
|
||||
my $error;
|
||||
# Only allowing to run on HTTPS
|
||||
http_403 if !is_https;
|
||||
|
||||
# A form is requested
|
||||
if (is_form) {
|
||||
$_ = form_type;
|
||||
# A form to create a new item
|
||||
if ($_ eq "new") {
|
||||
# Nothing to check on a new form
|
||||
|
||||
# A form to edit a current item
|
||||
} elsif ($_ eq "cur") {
|
||||
# Check at fetch_curitem()
|
||||
$error = fetch_curitem;
|
||||
return $error if defined $error;
|
||||
|
||||
# A form to delete a current item
|
||||
} elsif ($_ eq "del") {
|
||||
# Check at fetch_curitem()
|
||||
$error = fetch_curitem;
|
||||
return $error if defined $error;
|
||||
|
||||
# Not a valid form
|
||||
} else {
|
||||
return {"msg"=>N_("Incorrect form: [_1]."),
|
||||
"margs"=>[$_],
|
||||
"isform"=>0};
|
||||
}
|
||||
}
|
||||
# List handler handles its own error
|
||||
# OK
|
||||
return;
|
||||
}
|
||||
|
||||
# check_post: Check the POSTed form
|
||||
sub check_post() {
|
||||
local ($_, %_);
|
||||
my ($checker, $error);
|
||||
# Only allowing to run on HTTPS
|
||||
http_403 if !is_https;
|
||||
$_ = form_type;
|
||||
# A form to create a new item
|
||||
if ($_ eq "new") {
|
||||
# Run the checker
|
||||
$checker = new Selima::Checker::AcctRec(curform);
|
||||
$checker->redir(qw(seltrx deltrx selsubj delsubj));
|
||||
$error = $checker->check(qw(trx type ord subj summary amount));
|
||||
return $error if defined $error;
|
||||
|
||||
# A form to edit a current item
|
||||
} elsif ($_ eq "cur") {
|
||||
# Check at fetch_curitem()
|
||||
$error = fetch_curitem;
|
||||
return $error if defined $error;
|
||||
# Run the checker
|
||||
$checker = new Selima::Checker::AcctRec(curform);
|
||||
$checker->redir(qw(del seltrx deltrx selsubj delsubj));
|
||||
$error = $checker->check(qw(trx type ord subj summary amount));
|
||||
return $error if defined $error;
|
||||
|
||||
# A form to delete a current item
|
||||
} elsif ($_ eq "del") {
|
||||
# Check at fetch_curitem()
|
||||
$error = fetch_curitem;
|
||||
return $error if defined $error;;
|
||||
# Run the checker
|
||||
$checker = new Selima::Checker::AcctRec(curform);
|
||||
$checker->redir(qw(cancel));
|
||||
|
||||
# Not a valid form
|
||||
} else {
|
||||
return {"msg"=>N_("Incorrect form: [_1]."),
|
||||
"margs"=>[$_],
|
||||
"isform"=>0};
|
||||
}
|
||||
# OK
|
||||
return;
|
||||
}
|
||||
|
||||
# html_page: Display the page
|
||||
sub html_page($) {
|
||||
local ($_, %_);
|
||||
my ($status, $LIST, $FORM);
|
||||
$status = $_[0];
|
||||
# A form is requested
|
||||
if (is_form $status) {
|
||||
$FORM = new Selima::Form::AcctRec($status);
|
||||
html_header $FORM->{"title"};
|
||||
html_errmsg $status;
|
||||
$FORM->html;
|
||||
html_footer;
|
||||
|
||||
# List the available items
|
||||
} else {
|
||||
$LIST = new Selima::List::Accounting::Records;
|
||||
html_header $LIST->{"title"}, undef, $LIST->page_param;
|
||||
html_errmsg $status;
|
||||
$LIST->html;
|
||||
html_footer;
|
||||
}
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
##################################
|
||||
# Subroutines to manage the data #
|
||||
##################################
|
||||
# fetch_curitem: Fetch the current item
|
||||
sub fetch_curitem() {
|
||||
local ($_, %_);
|
||||
my ($sn, $FORM, $sth, $sql);
|
||||
|
||||
# Return if fetched before
|
||||
return if scalar(keys %CURRENT) > 0;
|
||||
|
||||
# Obtain the current form
|
||||
$FORM = curform;
|
||||
# No item specified
|
||||
return {"msg"=>N_("Please select the accounting record."),
|
||||
"isform"=>0}
|
||||
if !defined $FORM->param("sn");
|
||||
$sn = $FORM->param("sn");
|
||||
|
||||
# Find the record
|
||||
%CURRENT = fetchrec $sn, $THIS_TABLE;
|
||||
# If this record exist
|
||||
return {"msg"=>N_("This accounting record does not exist anymore. Please select another one."),
|
||||
"isform"=>0}
|
||||
if scalar(keys %CURRENT) == 0;
|
||||
|
||||
$CURRENT{"type"} = $CURRENT{"credit"}? "credit": "debit";
|
||||
|
||||
# OK
|
||||
return;
|
||||
}
|
||||
|
||||
# import_seltrx: Import the selected accounting transaction into the retrieved form
|
||||
sub import_seltrx($) {
|
||||
local ($_, %_);
|
||||
my $FORM;
|
||||
$FORM = $_[0];
|
||||
$FORM->param("trx", $GET->param("selsn"))
|
||||
if defined $GET->param("selsn")
|
||||
&& check_sn_in ${$GET->param_fetch("selsn")}[0], "accttrx";
|
||||
return;
|
||||
}
|
||||
|
||||
# import_selsubj: Import the selected accounting subject into the retrieved form
|
||||
sub import_selsubj($) {
|
||||
local ($_, %_);
|
||||
my $FORM;
|
||||
$FORM = $_[0];
|
||||
$FORM->param("subj", $GET->param("selsn"))
|
||||
if defined $GET->param("selsn")
|
||||
&& check_sn_in ${$GET->param_fetch("selsn")}[0], "acctsubj";
|
||||
return;
|
||||
}
|
||||
107
htdocs/wov/magicat/archive/magicat/cgi-bin/acctreps.cgi
Executable file
@@ -0,0 +1,107 @@
|
||||
#! /usr/bin/perl -w
|
||||
# Woman's Voice
|
||||
# acctreps.cgi: The accounting report viewer.
|
||||
|
||||
# Copyright (c) 2007-2021 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: 2007-09-24
|
||||
|
||||
use 5.008;
|
||||
use strict;
|
||||
use warnings;
|
||||
use lib $ENV{"DOCUMENT_ROOT"} . qw(/magicat/lib/perl5);
|
||||
use Selima::wov;
|
||||
local $SIG{"__DIE__"} = \&http_500;
|
||||
my $d = new Selima::Destroy;
|
||||
# Prototype declaration
|
||||
sub main();
|
||||
sub check_get();
|
||||
sub html_page($);
|
||||
|
||||
initenv(-restricted => 1,
|
||||
-dbi_lock => {"acctsubj" => LOCK_SH,
|
||||
"accttrx" => LOCK_SH,
|
||||
"acctrecs" => LOCK_SH},
|
||||
-lastmod => 1,
|
||||
-page_param => {"keywords" => N_("accounting"),
|
||||
"javascripts" => [qw(/scripts/accounting.js)]});
|
||||
|
||||
main;
|
||||
exit 0;
|
||||
|
||||
sub main() {
|
||||
local ($_, %_);
|
||||
my $error;
|
||||
# Only allowing requests with GET method
|
||||
# Check it here, since we still want list preference handlers to work
|
||||
http_405 qw(GET) if $ENV{"REQUEST_METHOD"} ne "GET";
|
||||
$error = check_get;
|
||||
# If an error occurs
|
||||
if (defined $error) {
|
||||
html_page $error;
|
||||
|
||||
# Display the page
|
||||
} else {
|
||||
html_page retrieve_status;
|
||||
}
|
||||
return;
|
||||
}
|
||||
|
||||
# check_get: Check the GET arguments
|
||||
sub check_get() {
|
||||
local ($_, %_);
|
||||
# Only allowing to run on HTTPS
|
||||
http_403 if !is_https;
|
||||
# List handler handles its own error
|
||||
# OK
|
||||
return;
|
||||
}
|
||||
|
||||
# html_page: Display the page
|
||||
sub html_page($) {
|
||||
local ($_, %_);
|
||||
my ($status, $LIST, $page_param);
|
||||
$status = $_[0];
|
||||
# List the available items
|
||||
$_ = list_type;
|
||||
if ($_ eq "cashsum") {
|
||||
$LIST = new Selima::List::Accounting::Reports::Cash::Summary;
|
||||
} elsif ($_ eq "ldgr") {
|
||||
$LIST = new Selima::List::Accounting::Reports::Ledger;
|
||||
} elsif ($_ eq "ldgrsum") {
|
||||
$LIST = new Selima::List::Accounting::Reports::Ledger::Summary;
|
||||
} elsif ($_ eq "journal") {
|
||||
$LIST = new Selima::List::Accounting::Reports::Journal;
|
||||
} elsif ($_ eq "tb") {
|
||||
$LIST = new Selima::List::Accounting::Reports::TriBlnc;
|
||||
} elsif ($_ eq "incmstat") {
|
||||
$LIST = new Selima::List::Accounting::Reports::IncmStat;
|
||||
} elsif ($_ eq "blncshet") {
|
||||
$LIST = new Selima::List::Accounting::Reports::BlncShet;
|
||||
} elsif ($_ eq "search") {
|
||||
$LIST = new Selima::List::Accounting::Reports::Search;
|
||||
} else {
|
||||
$LIST = new Selima::List::Accounting::Reports::Cash;
|
||||
}
|
||||
# Return the data as a CSV file
|
||||
return $LIST->html if $LIST->{"iscsv"};
|
||||
# Ordinary list
|
||||
html_header $LIST->{"title"}, undef, $LIST->page_param;
|
||||
html_errmsg $status;
|
||||
$LIST->html;
|
||||
html_footer;
|
||||
return;
|
||||
}
|
||||
292
htdocs/wov/magicat/archive/magicat/cgi-bin/acctsubj.cgi
Executable file
@@ -0,0 +1,292 @@
|
||||
#! /usr/bin/perl -w
|
||||
# Woman's Voice
|
||||
# acctsubj.cgi: The accounting subject administraion.
|
||||
|
||||
# Copyright (c) 2007-2021 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: 2007-09-24
|
||||
|
||||
use 5.008;
|
||||
use strict;
|
||||
use warnings;
|
||||
use lib $ENV{"DOCUMENT_ROOT"} . qw(/magicat/lib/perl5);
|
||||
use Selima::wov;
|
||||
local $SIG{"__DIE__"} = \&http_500;
|
||||
my $d = new Selima::Destroy;
|
||||
# Prototype declaration
|
||||
sub main();
|
||||
sub check_get();
|
||||
sub check_post();
|
||||
sub html_page($);
|
||||
sub fetch_curitem();
|
||||
sub import_selparent($);
|
||||
|
||||
initenv(-restricted => 1,
|
||||
-this_table => "acctsubj",
|
||||
-dbi_lock => {"acctsubj" => LOCK_EX,
|
||||
"acctrecs" => LOCK_SH},
|
||||
-lastmod => 1,
|
||||
-page_param => {"keywords" => N_("accounting")});
|
||||
|
||||
main;
|
||||
exit 0;
|
||||
|
||||
sub main() {
|
||||
local ($_, %_);
|
||||
my ($error, $success, $processor);
|
||||
|
||||
# If the request is a GET query
|
||||
if ($ENV{"REQUEST_METHOD"} ne "POST") {
|
||||
$error = check_get;
|
||||
# If an error occurs
|
||||
if (defined $error) {
|
||||
html_page $error;
|
||||
|
||||
# Display the page
|
||||
} else {
|
||||
html_page retrieve_status;
|
||||
}
|
||||
|
||||
# If a form was POSTed from the client
|
||||
} else {
|
||||
$error = check_post;
|
||||
# If an error occurs
|
||||
if (defined $error) {
|
||||
error_redirect $error;
|
||||
|
||||
# Else, save the data
|
||||
} else {
|
||||
$processor = new Selima::Processor::AcctSubj($POST);
|
||||
$success = $processor->process;
|
||||
success_redirect $success;
|
||||
}
|
||||
}
|
||||
return;
|
||||
}
|
||||
|
||||
# check_get: Check the GET arguments
|
||||
sub check_get() {
|
||||
local ($_, %_);
|
||||
my $error;
|
||||
# Only allowing to run on HTTPS
|
||||
http_403 if !is_https;
|
||||
|
||||
# A form is requested
|
||||
if (is_form) {
|
||||
$_ = form_type;
|
||||
# A form to create a new item
|
||||
if ($_ eq "new") {
|
||||
# Start from the default language
|
||||
return {"msg"=>N_("Please add a new accounting subject from [_1]."),
|
||||
"margs"=>["_DEFAULT_LANG"],
|
||||
"isform"=>0}
|
||||
if getlang ne $DEFAULT_LANG;
|
||||
|
||||
# A form to edit a current item
|
||||
} elsif ($_ eq "cur") {
|
||||
# Check at fetch_curitem()
|
||||
$error = fetch_curitem;
|
||||
return $error if defined $error;
|
||||
|
||||
# A form to delete a current item
|
||||
} elsif ($_ eq "del") {
|
||||
# Check at fetch_curitem()
|
||||
$error = fetch_curitem;
|
||||
return $error if defined $error;
|
||||
return {"msg"=>N_("This accounting subject has [numerate,_1,an accounting sub-subject,accounting sub-subjects]. It cannot be deleted. To delete the subject, [numerate,_1,its accounting sub-subject,all of its accounting sub-subjects] must first be deleted."),
|
||||
"margs"=>[$CURRENT{"ssubcount"}],
|
||||
"isform"=>0}
|
||||
if $CURRENT{"ssubcount"} > 0;
|
||||
return {"msg"=>N_("This accounting subject has [numerate,_1,an accounting record,accounting records]. It cannot be deleted. To delete the subject, [numerate,_1,its accounting record,all of its accounting records] must first be deleted."),
|
||||
"margs"=>[$CURRENT{"reccount"}],
|
||||
"isform"=>0}
|
||||
if $CURRENT{"reccount"} > 0;
|
||||
|
||||
# Not a valid form
|
||||
} else {
|
||||
return {"msg"=>N_("Incorrect form: [_1]."),
|
||||
"margs"=>[$_],
|
||||
"isform"=>0};
|
||||
}
|
||||
}
|
||||
# List handler handles its own error
|
||||
# OK
|
||||
return;
|
||||
}
|
||||
|
||||
# check_post: Check the POSTed form
|
||||
sub check_post() {
|
||||
local ($_, %_);
|
||||
my ($checker, $error);
|
||||
# Only allowing to run on HTTPS
|
||||
http_403 if !is_https;
|
||||
$_ = form_type;
|
||||
# A form to create a new item
|
||||
if ($_ eq "new") {
|
||||
# Start from the default language
|
||||
return {"msg"=>N_("Please add a new accounting subject from [_1]."),
|
||||
"margs"=>["_DEFAULT_LANG"],
|
||||
"isform"=>0}
|
||||
if getlang ne $DEFAULT_LANG;
|
||||
# Run the checker
|
||||
$checker = new Selima::Checker::AcctSubj(curform);
|
||||
$checker->redir(qw(selparent delparent));
|
||||
$error = $checker->check(qw(parent code title));
|
||||
return $error if defined $error;
|
||||
|
||||
# A form to edit a current item
|
||||
} elsif ($_ eq "cur") {
|
||||
# Check at fetch_curitem()
|
||||
$error = fetch_curitem;
|
||||
return $error if defined $error;
|
||||
# Run the checker
|
||||
$checker = new Selima::Checker::AcctSubj(curform);
|
||||
$checker->redir(qw(del zhsync selparent delparent));
|
||||
$error = $checker->check(qw(parent code title));
|
||||
return $error if defined $error;
|
||||
|
||||
# A form to delete a current item
|
||||
} elsif ($_ eq "del") {
|
||||
# Check at fetch_curitem()
|
||||
$error = fetch_curitem;
|
||||
return $error if defined $error;;
|
||||
# Run the checker
|
||||
$checker = new Selima::Checker::AcctSubj(curform);
|
||||
$checker->redir(qw(cancel));
|
||||
return {"msg"=>N_("This accounting subject has [numerate,_1,an accounting sub-subject,accounting sub-subjects]. It cannot be deleted. To delete the subject, [numerate,_1,its accounting sub-subject,all of its accounting sub-subjects] must first be deleted."),
|
||||
"margs"=>[$CURRENT{"ssubcount"}],
|
||||
"isform"=>0}
|
||||
if $CURRENT{"ssubcount"} > 0;
|
||||
return {"msg"=>N_("This accounting subject has [numerate,_1,an accounting record,accounting records]. It cannot be deleted. To delete the subject, [numerate,_1,its accounting record,all of its accounting records] must first be deleted."),
|
||||
"margs"=>[$CURRENT{"reccount"}],
|
||||
"isform"=>0}
|
||||
if $CURRENT{"reccount"} > 0;
|
||||
|
||||
# Not a valid form
|
||||
} else {
|
||||
return {"msg"=>N_("Incorrect form: [_1]."),
|
||||
"margs"=>[$_],
|
||||
"isform"=>0};
|
||||
}
|
||||
# OK
|
||||
return;
|
||||
}
|
||||
|
||||
# html_page: Display the page
|
||||
sub html_page($) {
|
||||
local ($_, %_);
|
||||
my ($status, $LIST, $FORM);
|
||||
$status = $_[0];
|
||||
# A form is requested
|
||||
if (is_form $status) {
|
||||
$FORM = new Selima::Form::AcctSubj($status);
|
||||
html_header $FORM->{"title"};
|
||||
html_errmsg $status;
|
||||
$FORM->html;
|
||||
html_footer;
|
||||
|
||||
# List the available items
|
||||
} else {
|
||||
if (list_type eq "lastlv") {
|
||||
$LIST = new Selima::List::Accounting::Subjects::LastLv;
|
||||
} else {
|
||||
$LIST = new Selima::List::Accounting::Subjects;
|
||||
}
|
||||
html_header $LIST->{"title"}, undef, $LIST->page_param;
|
||||
html_errmsg $status;
|
||||
$LIST->html;
|
||||
html_footer;
|
||||
}
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
##################################
|
||||
# Subroutines to manage the data #
|
||||
##################################
|
||||
# fetch_curitem: Fetch the current item
|
||||
sub fetch_curitem() {
|
||||
local ($_, %_);
|
||||
my ($sn, $FORM, $sth, $sql, $row);
|
||||
my ($lang, $lndb, $lndbdef, $title);
|
||||
|
||||
# Return if fetched before
|
||||
return if scalar(keys %CURRENT) > 0;
|
||||
|
||||
# Obtain the current form
|
||||
$FORM = curform;
|
||||
# No item specified
|
||||
return {"msg"=>N_("Please select the accounting subject."),
|
||||
"isform"=>0}
|
||||
if !defined $FORM->param("sn");
|
||||
$sn = $FORM->param("sn");
|
||||
|
||||
# Find the record
|
||||
%CURRENT = fetchrec $sn, $THIS_TABLE;
|
||||
# If this record exist
|
||||
return {"msg"=>N_("This accounting subject does not exist anymore. Please select another one."),
|
||||
"isform"=>0}
|
||||
if scalar(keys %CURRENT) == 0;
|
||||
|
||||
$lang = getlang;
|
||||
$lndb = getlang LN_DATABASE;
|
||||
$lndbdef = ln $DEFAULT_LANG, LN_DATABASE;
|
||||
|
||||
# Obtain the belonging subjects list
|
||||
@_ = qw();
|
||||
push @_, "sn AS sn";
|
||||
if (@ALL_LINGUAS > 1) {
|
||||
$title = $lang eq $DEFAULT_LANG? "title_$lndb":
|
||||
"COALESCE(title_$lndb, title_$lndbdef)";
|
||||
} else {;
|
||||
$title = "title";
|
||||
}
|
||||
push @_, $DBH->strcat("code", "' '", $title) . " AS title";
|
||||
$sql = "SELECT " . join(", ", @_) . " FROM acctsubj"
|
||||
. " WHERE parent=$sn"
|
||||
. " ORDER BY code;\n";
|
||||
$sth = $DBH->prepare($sql);
|
||||
$sth->execute;
|
||||
$CURRENT{"ssubcount"} = $sth->rows;
|
||||
for ($_ = 0; $_ < $CURRENT{"ssubcount"}; $_++) {
|
||||
$row = $sth->fetchrow_hashref;
|
||||
$CURRENT{"ssub$_" . "sn"} = $$row{"sn"};
|
||||
$CURRENT{"ssub$_" . "title"} = $$row{"title"};
|
||||
}
|
||||
|
||||
# Obtain the belonging records list
|
||||
$sql = "SELECT sn FROM acctrecs"
|
||||
. " WHERE subj=$sn;\n";
|
||||
$sth = $DBH->prepare($sql);
|
||||
$sth->execute;
|
||||
$CURRENT{"reccount"} = $sth->rows;
|
||||
|
||||
# OK
|
||||
return;
|
||||
}
|
||||
|
||||
# import_selparent: Import the selected parent into the retrieved form
|
||||
sub import_selparent($) {
|
||||
local ($_, %_);
|
||||
my $FORM;
|
||||
$FORM = $_[0];
|
||||
if ( defined $GET->param("selsn")
|
||||
&& check_sn_in ${$GET->param_fetch("selsn")}[0], "acctsubj") {
|
||||
$FORM->param("parent", $GET->param("selsn"));
|
||||
$FORM->param("topmost", "false");
|
||||
}
|
||||
return;
|
||||
}
|
||||
278
htdocs/wov/magicat/archive/magicat/cgi-bin/accttrx.cgi
Executable file
@@ -0,0 +1,278 @@
|
||||
#! /usr/bin/perl -w
|
||||
# Woman's Voice
|
||||
# accttrx.cgi: The accounting transaction administraion.
|
||||
|
||||
# Copyright (c) 2007-2021 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: 2007-09-24
|
||||
|
||||
use 5.008;
|
||||
use strict;
|
||||
use warnings;
|
||||
use lib $ENV{"DOCUMENT_ROOT"} . qw(/magicat/lib/perl5);
|
||||
use Selima::wov;
|
||||
local $SIG{"__DIE__"} = \&http_500;
|
||||
my $d = new Selima::Destroy;
|
||||
# Prototype declaration
|
||||
sub main();
|
||||
sub check_get();
|
||||
sub check_post();
|
||||
sub html_page($);
|
||||
sub fetch_curitem();
|
||||
sub import_selsubj($);
|
||||
|
||||
initenv(-restricted => 1,
|
||||
-this_table => "accttrx",
|
||||
-dbi_lock => {"accttrx" => LOCK_EX,
|
||||
"acctrecs" => LOCK_EX,
|
||||
"acctsubj" => LOCK_SH},
|
||||
-lastmod => 1,
|
||||
-page_param => {"keywords" => N_("accounting"),
|
||||
"javascripts" => [qw(/scripts/accounting.js)]});
|
||||
|
||||
main;
|
||||
exit 0;
|
||||
|
||||
sub main() {
|
||||
local ($_, %_);
|
||||
my ($error, $success, $processor);
|
||||
|
||||
# If the request is a GET query
|
||||
if ($ENV{"REQUEST_METHOD"} ne "POST") {
|
||||
$error = check_get;
|
||||
# If an error occurs
|
||||
if (defined $error) {
|
||||
html_page $error;
|
||||
|
||||
# Display the page
|
||||
} else {
|
||||
html_page retrieve_status;
|
||||
}
|
||||
|
||||
# If a form was POSTed from the client
|
||||
} else {
|
||||
$error = check_post;
|
||||
# If an error occurs
|
||||
if (defined $error) {
|
||||
error_redirect $error;
|
||||
|
||||
# Else, save the data
|
||||
} else {
|
||||
$processor = new Selima::Processor::AcctTrx($POST);
|
||||
$success = $processor->process;
|
||||
success_redirect $success;
|
||||
}
|
||||
}
|
||||
return;
|
||||
}
|
||||
|
||||
# check_get: Check the GET arguments
|
||||
sub check_get() {
|
||||
local ($_, %_);
|
||||
my $error;
|
||||
# Only allowing to run on HTTPS
|
||||
http_403 if !is_https;
|
||||
|
||||
# A form is requested
|
||||
if (is_form) {
|
||||
$_ = form_type;
|
||||
# A form to create a new item
|
||||
if ($_ eq "new") {
|
||||
# Nothing to check on a new form
|
||||
|
||||
# A form to edit a current item
|
||||
} elsif ($_ eq "cur") {
|
||||
# Check at fetch_curitem()
|
||||
$error = fetch_curitem;
|
||||
return $error if defined $error;
|
||||
|
||||
# A form to delete a current item
|
||||
} elsif ($_ eq "del") {
|
||||
# Check at fetch_curitem()
|
||||
$error = fetch_curitem;
|
||||
return $error if defined $error;
|
||||
|
||||
# Not a valid form
|
||||
} else {
|
||||
return {"msg"=>N_("Incorrect form: [_1]."),
|
||||
"margs"=>[$_],
|
||||
"isform"=>0};
|
||||
}
|
||||
}
|
||||
# List handler handles its own error
|
||||
# OK
|
||||
return;
|
||||
}
|
||||
|
||||
# check_post: Check the POSTed form
|
||||
sub check_post() {
|
||||
local ($_, %_);
|
||||
my ($checker, $error);
|
||||
# Only allowing to run on HTTPS
|
||||
http_403 if !is_https;
|
||||
$_ = form_type;
|
||||
# A form to create a new item
|
||||
if ($_ eq "new") {
|
||||
# Run the checker
|
||||
$checker = new Selima::Checker::AcctTrx(curform);
|
||||
$checker->redir(qw(cnvttrans selsubj));
|
||||
$error = $checker->check(qw(date ord note recs));
|
||||
return $error if defined $error;
|
||||
|
||||
# A form to edit a current item
|
||||
} elsif ($_ eq "cur") {
|
||||
# Check at fetch_curitem()
|
||||
$error = fetch_curitem;
|
||||
return $error if defined $error;
|
||||
# Run the checker
|
||||
$checker = new Selima::Checker::AcctTrx(curform);
|
||||
$checker->redir(qw(del cnvttrans selsubj));
|
||||
$error = $checker->check(qw(date ord note recs));
|
||||
return $error if defined $error;
|
||||
|
||||
# A form to delete a current item
|
||||
} elsif ($_ eq "del") {
|
||||
# Check at fetch_curitem()
|
||||
$error = fetch_curitem;
|
||||
return $error if defined $error;;
|
||||
# Run the checker
|
||||
$checker = new Selima::Checker::AcctTrx(curform);
|
||||
$checker->redir(qw(cancel));
|
||||
|
||||
# Not a valid form
|
||||
} else {
|
||||
return {"msg"=>N_("Incorrect form: [_1]."),
|
||||
"margs"=>[$_],
|
||||
"isform"=>0};
|
||||
}
|
||||
# OK
|
||||
return;
|
||||
}
|
||||
|
||||
# html_page: Display the page
|
||||
sub html_page($) {
|
||||
local ($_, %_);
|
||||
my ($status, $LIST, $FORM);
|
||||
$status = $_[0];
|
||||
# A form is requested
|
||||
if (is_form $status) {
|
||||
$FORM = new Selima::Form::AcctTrx($status);
|
||||
html_header $FORM->{"title"};
|
||||
html_errmsg $status;
|
||||
$FORM->html;
|
||||
html_footer;
|
||||
|
||||
# List the available items
|
||||
} else {
|
||||
$LIST = new Selima::List::Accounting::Transacts;
|
||||
html_header $LIST->{"title"}, undef, $LIST->page_param;
|
||||
html_errmsg $status;
|
||||
$LIST->html;
|
||||
html_footer;
|
||||
}
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
##################################
|
||||
# Subroutines to manage the data #
|
||||
##################################
|
||||
# fetch_curitem: Fetch the current item
|
||||
sub fetch_curitem() {
|
||||
local ($_, %_);
|
||||
my ($sn, $FORM, $sth, $sql, $row);
|
||||
|
||||
# Return if fetched before
|
||||
return if scalar(keys %CURRENT) > 0;
|
||||
|
||||
# Obtain the current form
|
||||
$FORM = curform;
|
||||
# No item specified
|
||||
return {"msg"=>N_("Please select the accounting transaction."),
|
||||
"isform"=>0}
|
||||
if !defined $FORM->param("sn");
|
||||
$sn = $FORM->param("sn");
|
||||
|
||||
# Find the record
|
||||
%CURRENT = fetchrec $sn, $THIS_TABLE;
|
||||
# If this record exist
|
||||
return {"msg"=>N_("This accounting transaction does not exist anymore. Please select another one."),
|
||||
"isform"=>0}
|
||||
if scalar(keys %CURRENT) == 0;
|
||||
|
||||
# Obtain the belonging debit records list
|
||||
$sql = "SELECT * FROM acctrecs"
|
||||
. " WHERE trx=$sn"
|
||||
. " AND NOT credit"
|
||||
. " ORDER BY ord;\n";
|
||||
$sth = $DBH->prepare($sql);
|
||||
$sth->execute;
|
||||
$CURRENT{"debtcount"} = $sth->rows;
|
||||
for ($_ = 0; $_ < $CURRENT{"debtcount"}; $_++) {
|
||||
$row = $sth->fetchrow_hashref;
|
||||
$CURRENT{"debt$_" . "sn"} = $$row{"sn"};
|
||||
$CURRENT{"debt$_" . "ord"} = $$row{"ord"};
|
||||
$CURRENT{"debt$_" . "subj"} = $$row{"subj"};
|
||||
$CURRENT{"debt$_" . "summary"} = $$row{"summary"};
|
||||
$CURRENT{"debt$_" . "amount"} = $$row{"amount"};
|
||||
}
|
||||
|
||||
# Obtain the belonging credit records list
|
||||
$sql = "SELECT * FROM acctrecs"
|
||||
. " WHERE trx=$sn"
|
||||
. " AND credit"
|
||||
. " ORDER BY ord;\n";
|
||||
$sth = $DBH->prepare($sql);
|
||||
$sth->execute;
|
||||
$CURRENT{"crdtcount"} = $sth->rows;
|
||||
for ($_ = 0; $_ < $CURRENT{"crdtcount"}; $_++) {
|
||||
$row = $sth->fetchrow_hashref;
|
||||
$CURRENT{"crdt$_" . "sn"} = $$row{"sn"};
|
||||
$CURRENT{"crdt$_" . "ord"} = $$row{"ord"};
|
||||
$CURRENT{"crdt$_" . "subj"} = $$row{"subj"};
|
||||
$CURRENT{"crdt$_" . "summary"} = $$row{"summary"};
|
||||
$CURRENT{"crdt$_" . "amount"} = $$row{"amount"};
|
||||
}
|
||||
|
||||
# Determine the subform type
|
||||
if ( $CURRENT{"debtcount"} == 1
|
||||
&& acctsubj_code($CURRENT{"debt0subj"}) eq ACCTSUBJ_CASH
|
||||
&& !defined $CURRENT{"debt0summary"}) {
|
||||
$CURRENT{"formsub"} = "income";
|
||||
} elsif ( $CURRENT{"crdtcount"} == 1
|
||||
&& acctsubj_code($CURRENT{"crdt0subj"}) eq ACCTSUBJ_CASH
|
||||
&& !defined $CURRENT{"crdt0summary"}) {
|
||||
$CURRENT{"formsub"} = "expense";
|
||||
} else {
|
||||
$CURRENT{"formsub"} = "trans";
|
||||
}
|
||||
|
||||
# OK
|
||||
return;
|
||||
}
|
||||
|
||||
# import_selsubj: Import the selected subject into the retrieved form
|
||||
sub import_selsubj($) {
|
||||
my $FORM;
|
||||
$FORM = $_[0];
|
||||
# Sanity checks
|
||||
return $FORM
|
||||
if !defined $GET->param("selsn")
|
||||
|| !check_sn_in ${$GET->param_fetch("selsn")}[0], "acctsubj"
|
||||
|| !defined $FORM->param("caller_index");
|
||||
$FORM->param($FORM->param("caller_index") . "subj", $GET->param("selsn"));
|
||||
return $FORM;
|
||||
}
|
||||
343
htdocs/wov/magicat/bin/r703alog
Executable file
@@ -0,0 +1,343 @@
|
||||
#! /usr/bin/perl -w
|
||||
# Filename: r703alog
|
||||
# Description: Perl script to download r703a log files
|
||||
# Author: imacat <imacat@mail.imacat.idv.tw>
|
||||
# Date: 2000-12-21
|
||||
# Copyright: (c) 2000-2007 imacat
|
||||
|
||||
use 5.006;
|
||||
use strict;
|
||||
use warnings;
|
||||
use Compress::Zlib qw(gzopen);
|
||||
use Fcntl qw(:flock :seek);
|
||||
use File::Basename qw(basename);
|
||||
use File::Temp qw(tempfile);
|
||||
use Getopt::Long qw(GetOptions);
|
||||
use IO::Handle qw(autoflush);
|
||||
use IPC::Open3 qw(open3);
|
||||
use Net::FTP qw();
|
||||
use Socket qw();
|
||||
# Prototype declaration
|
||||
sub main();
|
||||
sub parse_args();
|
||||
sub is_member($@);
|
||||
sub format_number($);
|
||||
sub xfread($);
|
||||
|
||||
use vars qw($THIS_FILE $VERSION $VERBOSE);
|
||||
$THIS_FILE = basename($0);
|
||||
$VERSION = "2.03";
|
||||
$VERBOSE = 1;
|
||||
|
||||
use vars qw($R_HOST $R_ID $R_PASSWD $R_DIR $L_DIR $FILELIST %DNS @RESLOG @ARCLOG);
|
||||
$R_HOST = "r703a.chem.nthu.edu.tw";
|
||||
$R_ID = "wov";
|
||||
$R_PASSWD = undef;
|
||||
$R_DIR = "/srv/www/logs";
|
||||
$L_DIR = "/var/log/apache/wov/r703a";
|
||||
$FILELIST = "$L_DIR/filelist.txt";
|
||||
%DNS = qw();
|
||||
@RESLOG = qw(/usr/sbin/reslog.pl --stdout);
|
||||
@ARCLOG = qw(/usr/sbin/arclog.pl --keep=all --override=append --sort - /var/log/apache/wov/r703a/access_log);
|
||||
|
||||
use vars qw($VERMSG $SHORTHELP $HELPMSG);
|
||||
$VERMSG = "$THIS_FILE v$VERSION by imacat <imacat\@mail.imacat.idv.tw>";
|
||||
$SHORTHELP = "Try `$THIS_FILE --help' for more information.";
|
||||
$HELPMSG = << "EOT";
|
||||
Usage: $THIS_FILE [options]
|
||||
Download and archive the r703a apache access log files.
|
||||
|
||||
-d,--debug Display debug messages. Multiple --debug to debug more.
|
||||
-q,--quiet Disable debug messages. An opposite that cancels the
|
||||
effect of --debug.
|
||||
-h,--help Display this help.
|
||||
-v,--version Display version number.
|
||||
|
||||
EOT
|
||||
|
||||
main;
|
||||
exit 0;
|
||||
|
||||
# main: Main program
|
||||
sub main() {
|
||||
local ($_, %_);
|
||||
my ($FTP, @downloaded, @files, $t0, $t);
|
||||
my ($WORKING, $FH);
|
||||
my ($file, $gz, $bytes);
|
||||
my ($fc_total, $fc_acc, $fc_new);
|
||||
my ($rc_total, $rc_valid, $rc_file_total, $rc_file_valid);
|
||||
my ($errline, @errmsgs);
|
||||
|
||||
# Parse the arguments
|
||||
parse_args;
|
||||
|
||||
# No longer a working script
|
||||
print "Mission completed long time ago. Program stopped to avoid further problems.\n";
|
||||
return;
|
||||
|
||||
# Get the downloaded files list
|
||||
print STDERR "Fetching the downloaded list... " if $VERBOSE >= 2;
|
||||
@downloaded = xfread $FILELIST;
|
||||
@downloaded = grep /\S/, @downloaded;
|
||||
@downloaded = grep !/^#/, @downloaded;
|
||||
chomp foreach @downloaded;
|
||||
print STDERR "done\n" if $VERBOSE >= 2;
|
||||
print STDERR "" . format_number(scalar @downloaded) . " downloaded files recorded in the downloaded list.\n" if $VERBOSE >= 1;
|
||||
|
||||
# Get the files list
|
||||
print STDERR "Connecting to $R_HOST... " if $VERBOSE >= 2;
|
||||
$FTP = new Net::FTP($R_HOST) or die "$THIS_FILE: Failed FTP connection: $@";
|
||||
$FTP->login($R_ID, $R_PASSWD) or die "$THIS_FILE: Failed login: " . $FTP->code . " " . $FTP->message;
|
||||
print STDERR "done\n" if $VERBOSE >= 2;
|
||||
print STDERR "Fetching the files list... " if $VERBOSE >= 2;
|
||||
$FTP->cwd($R_DIR) or die "$THIS_FILE: Failed cwd $R_DIR: " . $FTP->code . " " . $FTP->message;
|
||||
(@files = $FTP->ls()) or die "$THIS_FILE: Failed ls: " . $FTP->code . " " . $FTP->message;
|
||||
print STDERR "done\n" if $VERBOSE >= 2;
|
||||
print STDERR "Filtering new access logs... " if $VERBOSE >= 2;
|
||||
$fc_total = format_number(scalar @files);
|
||||
@files = grep /^httpd-log\.[A-Z][a-z]{2}\d{4}\.gz$/, @files;
|
||||
$fc_acc = format_number(scalar @files);
|
||||
@files = grep !is_member($_, @downloaded), @files;
|
||||
$fc_new = format_number(scalar @files);
|
||||
print STDERR "done\n" if $VERBOSE >= 2;
|
||||
print STDERR "$fc_new new files found in $fc_acc access logs in $fc_total files.\n" if $VERBOSE >= 1;
|
||||
|
||||
if ($fc_new == 0) {
|
||||
print STDERR "No new files found. Program exists\n" if $VERBOSE >= 1;
|
||||
# Close the connection
|
||||
print STDERR "Closing the FTP connection... " if $VERBOSE >= 2;
|
||||
$FTP->quit or die "$THIS_FILE: ftp close: " . $FTP->code . " " . $FTP->message;
|
||||
print STDERR "done\n" if $VERBOSE >= 2;
|
||||
print STDERR "Done. " . format_number($fc_new) . " files processed, " . format_number(time - $^T) . " seconds elapsed\n" if $VERBOSE >= 1;
|
||||
return;
|
||||
}
|
||||
|
||||
# Download the files
|
||||
print STDERR "Now we will download the new files\n" if $VERBOSE >= 2;
|
||||
$t0 = time;
|
||||
foreach (@files) {
|
||||
print STDERR "Downloading $_... " if $VERBOSE >= 1;
|
||||
$t = time;
|
||||
$FTP->get($_, "$L_DIR/$_") or die "$THIS_FILE: Failed get $L_DIR/$_: " . $FTP->code . " " . $FTP->message;
|
||||
print STDERR "done, " . format_number(time - $t) . " seconds elapsed\n" if $VERBOSE >= 1;
|
||||
}
|
||||
print STDERR "Downloading finished, " . format_number(scalar @files) . " new files downloaded, " . format_number(time - $t0) . " seconds elapsed\n" if $VERBOSE >= 2;
|
||||
|
||||
# Close the connection
|
||||
print STDERR "Closing the FTP connection... " if $VERBOSE >= 2;
|
||||
$FTP->quit or die "$THIS_FILE: ftp close: " . $FTP->code . " " . $FTP->message;
|
||||
print STDERR "done\n" if $VERBOSE >= 2;
|
||||
|
||||
# Create the temporary working file
|
||||
print STDERR "Creating temporary working file... " if $VERBOSE >= 2;
|
||||
($WORKING = tempfile) or die "$THIS_FILE: $!";
|
||||
print STDERR "done\n" if $VERBOSE >= 2;
|
||||
|
||||
# Copy the needed records into temporary working file
|
||||
print STDERR "Now we will copy records to the temporary working file\n" if $VERBOSE >= 2;
|
||||
($rc_total, $rc_valid) = (0, 0);
|
||||
foreach $file (@files) {
|
||||
# Open the file
|
||||
print STDERR "Opening $file... " if $VERBOSE >= 2;
|
||||
$gz = gzopen("$L_DIR/$file", "rb")
|
||||
or die "$THIS_FILE: $!";
|
||||
print STDERR "done\n" if $VERBOSE >= 2;
|
||||
|
||||
# Copy to the temporary working file
|
||||
print STDERR "Copying records... " if $VERBOSE >= 2;
|
||||
($rc_file_total, $rc_file_valid) = (0, 0);
|
||||
while (($bytes = $gz->gzreadline($_)) != 0) {
|
||||
die "$THIS_FILE: " . $gz->gzerror() if $bytes == -1;
|
||||
$rc_file_total++;
|
||||
next unless / \/(~|%7E)wov/;
|
||||
print $WORKING $_;
|
||||
$rc_file_valid++;
|
||||
}
|
||||
print STDERR "done\n" if $VERBOSE >= 2;
|
||||
print "" . format_number($rc_file_valid) . " valid records copied in " . format_number($rc_file_total) . " found records.\n" if $VERBOSE >= 2;
|
||||
$rc_total += $rc_file_total;
|
||||
$rc_valid += $rc_file_valid;
|
||||
|
||||
# Close the source file
|
||||
print STDERR "Closing $file... " if $VERBOSE >= 2;
|
||||
$gz->gzclose() && die "$THIS_FILE: " . $gz->gzerror();
|
||||
print STDERR "done\n" if $VERBOSE >= 2;
|
||||
|
||||
# Deleting the source file
|
||||
print STDERR "Deleting $file... " if $VERBOSE >= 2;
|
||||
unlink "$L_DIR/$file" or die "$THIS_FILE: $L_DIR/$file: $!";
|
||||
print STDERR "done\n" if $VERBOSE >= 2;
|
||||
}
|
||||
print STDERR "Copying finished\n" if $VERBOSE >= 2;
|
||||
print STDERR "Totally " . format_number($rc_valid) . " valid records copied in " . format_number($rc_total) . " found records.\n" if $VERBOSE >= 1;
|
||||
|
||||
# Resolve the records
|
||||
print STDERR "Now we will resolve the records\n" if $VERBOSE >= 1;
|
||||
$t = time;
|
||||
if ($VERBOSE >= 2) {
|
||||
open3(\*DATA_W, \*DATA_R, \*DATA_E, @RESLOG, "--debug")
|
||||
or die "$THIS_FILE: $!";
|
||||
} else {
|
||||
open3(\*DATA_W, \*DATA_R, \*DATA_E, @RESLOG, "--quiet")
|
||||
or die "$THIS_FILE: $!";
|
||||
}
|
||||
|
||||
seek $WORKING, 0, SEEK_SET or die "$THIS_FILE: $!";
|
||||
print DATA_W $_ while defined($_ = <$WORKING>);
|
||||
|
||||
close DATA_W or die "$THIS_FILE: $!";
|
||||
if ($VERBOSE >= 2) {
|
||||
$errline = "";
|
||||
while (defined($_ = getc DATA_E)) {
|
||||
print STDERR $_ if $VERBOSE >= 2;
|
||||
$errline =~ s/^[^\n]*\n$//;
|
||||
$errline .= $_;
|
||||
if ($errline eq "Printing to STDOUT... ") {
|
||||
seek $WORKING, 0, SEEK_SET
|
||||
or die "$THIS_FILE: $!";
|
||||
truncate $WORKING, 0 or die "$THIS_FILE: $!";
|
||||
print $WORKING $_ while defined($_ = <DATA_R>);
|
||||
}
|
||||
}
|
||||
} else {
|
||||
seek $WORKING, 0, SEEK_SET or die "$THIS_FILE: $!";
|
||||
truncate $WORKING, 0 or die "$THIS_FILE: $!";
|
||||
print $WORKING $_ while defined($_ = <DATA_R>);
|
||||
}
|
||||
close DATA_E or die "$THIS_FILE: $!";
|
||||
close DATA_R or die "$THIS_FILE: $!";
|
||||
wait;
|
||||
die "$THIS_FILE: Failed reslog.pl with error code $?" if $? != 0;
|
||||
print STDERR "Resolving finished, " . format_number(time - $t) . " seconds elapsed\n" if $VERBOSE >= 1;
|
||||
|
||||
# Archive the records
|
||||
print STDERR "Now we will archive the records\n" if $VERBOSE >= 1;
|
||||
$t = time;
|
||||
if ($VERBOSE >= 2) {
|
||||
open3(\*DATA_W, \*DATA_R, \*DATA_E, @ARCLOG)
|
||||
or die "$THIS_FILE: $!";
|
||||
} else {
|
||||
open3(\*DATA_W, \*DATA_R, \*DATA_E, @ARCLOG, "--quiet")
|
||||
or die "$THIS_FILE: $!";
|
||||
}
|
||||
|
||||
seek $WORKING, 0, SEEK_SET or die "$THIS_FILE: $!";
|
||||
print DATA_W $_ while defined($_ = <$WORKING>);
|
||||
|
||||
close DATA_W or die "$THIS_FILE: $!";
|
||||
while (defined($_ = getc DATA_E)) {
|
||||
print STDERR $_ if $VERBOSE >= 2;
|
||||
}
|
||||
close DATA_R or die "$THIS_FILE: $!";
|
||||
close DATA_E or die "$THIS_FILE: $!";
|
||||
wait;
|
||||
die "$THIS_FILE: Failed arclog.pl with error code $?" if $? != 0;
|
||||
print STDERR "Archiving finished, " . format_number(time - $t) . " seconds elapsed\n" if $VERBOSE >= 1;
|
||||
|
||||
# Close the temporary working file
|
||||
print STDERR "Closing temporary working file... " if $VERBOSE >= 2;
|
||||
close $WORKING or die "$THIS_FILE: $!";
|
||||
print STDERR "done\n" if $VERBOSE >= 2;
|
||||
|
||||
# Write the new files to the downloaded list
|
||||
print STDERR "Updating the downloaded list... " if $VERBOSE >= 2;
|
||||
open $FH, ">>$FILELIST" or die "$THIS_FILE: $FILELIST: $!";
|
||||
flock $FH, LOCK_EX or die "$THIS_FILE: $FILELIST: $!";
|
||||
print $FH join "", map "$_\n", @files;
|
||||
flock $FH, LOCK_UN or die "$THIS_FILE: $FILELIST: $!";
|
||||
close $FH or die "$THIS_FILE: $FILELIST: $!";
|
||||
print STDERR "done\n" if $VERBOSE >= 2;
|
||||
|
||||
print STDERR format_number(scalar @files) . " files processed\n"
|
||||
if $VERBOSE > 0;
|
||||
print STDERR "Done. " . (time - $^T) . " seconds elapsed.\n"
|
||||
if $VERBOSE > 0;
|
||||
return;
|
||||
}
|
||||
|
||||
# parse_args: Parse the arguments
|
||||
sub parse_args() {
|
||||
local ($_, %_);
|
||||
|
||||
# Get the arguments
|
||||
eval {
|
||||
local $SIG{"__WARN__"} = sub { die $_[0]; };
|
||||
Getopt::Long::Configure(qw(no_auto_abbrev bundling));
|
||||
GetOptions( "debug|d+"=>\$VERBOSE,
|
||||
"quiet|q"=>sub { $VERBOSE-- if $VERBOSE > 0; },
|
||||
"help|h"=>sub { print $HELPMSG; exit 0; },
|
||||
"version|v"=>sub { print "$VERMSG\n"; exit 0; });
|
||||
};
|
||||
die "$THIS_FILE: $@$SHORTHELP\n" if $@ ne "";
|
||||
|
||||
$| = 1 if $VERBOSE > 0;
|
||||
|
||||
# Check the arguments
|
||||
# We have no arguments
|
||||
die "$THIS_FILE: Too many arguments: $ARGV[0]\n$SHORTHELP\n"
|
||||
if @ARGV > 0;
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
# is_member: If a variable is a member of an array
|
||||
sub is_member($@) {
|
||||
local ($_, %_);
|
||||
my ($v, @a);
|
||||
($v, @a) = @_;
|
||||
return 1 if grep ($_ eq $v, @a) > 0;
|
||||
return 0;
|
||||
}
|
||||
|
||||
# format_number: Format the number every 3 digit
|
||||
sub format_number($) {
|
||||
local ($_, %_);
|
||||
$_ = $_[0];
|
||||
# Group every 3 digit
|
||||
$_ = $1 . "," . $2 . $3 while /^([^\.]*\d)(\d\d\d)(.*)$/;
|
||||
return $_;
|
||||
}
|
||||
|
||||
# xfread: Read from a file
|
||||
sub xfread($) {
|
||||
local ($_, %_);
|
||||
my ($FH, $file);
|
||||
$file = $_[0];
|
||||
|
||||
# Return as lines
|
||||
if (wantarray) {
|
||||
open $FH, $file or die "$THIS_FILE: $file: $!";
|
||||
flock $FH, LOCK_SH or die "$THIS_FILE: $file: $!";
|
||||
@_ = <$FH>;
|
||||
flock $FH, LOCK_UN or die "$THIS_FILE: $file: $!";
|
||||
close $FH or die "$THIS_FILE: $file: $!";
|
||||
return @_;
|
||||
|
||||
# A scalar file content
|
||||
} else {
|
||||
# Regular files
|
||||
if (-f $file) {
|
||||
my $size;
|
||||
@_ = stat $file or die "$THIS_FILE: $file: $!";
|
||||
$size = $_[7];
|
||||
return "" if $size == 0;
|
||||
open $FH, $file or die "$THIS_FILE: $file: $!";
|
||||
flock $FH, LOCK_SH or die "$THIS_FILE: $file: $!";
|
||||
read $FH, $_, $size or die "$THIS_FILE: $file: $!";
|
||||
flock $FH, LOCK_UN or die "$THIS_FILE: $file: $!";
|
||||
close $FH or die "$THIS_FILE: $file: $!";
|
||||
return $_;
|
||||
|
||||
# Special files
|
||||
} else {
|
||||
open $FH, $file or die "$THIS_FILE: $file: $!";
|
||||
flock $FH, LOCK_SH or die "$THIS_FILE: $file: $!";
|
||||
$_ = join "", <$FH>;
|
||||
flock $FH, LOCK_UN or die "$THIS_FILE: $file: $!";
|
||||
close $FH or die "$THIS_FILE: $file: $!";
|
||||
return $_;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
__END__
|
||||
51
htdocs/wov/magicat/cgi-bin/actlog.cgi
Executable file
@@ -0,0 +1,51 @@
|
||||
#! /usr/bin/perl -w
|
||||
# Woman's Voice
|
||||
# actlog.cgi: The activity log viewer.
|
||||
|
||||
# Copyright (c) 2005-2021 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: 2005-05-10
|
||||
|
||||
use 5.008;
|
||||
use strict;
|
||||
use warnings;
|
||||
use lib $ENV{"DOCUMENT_ROOT"} . qw(/magicat/lib/perl5);
|
||||
use Selima::wov;
|
||||
local $SIG{"__DIE__"} = \&http_500;
|
||||
my $d = new Selima::Destroy;
|
||||
# Prototype declaration
|
||||
sub main();
|
||||
|
||||
initenv(-restricted => 1,
|
||||
-allowed => [qw(GET HEAD)],
|
||||
-lastmod => 0,
|
||||
-lmfiles => [$ACTLOG],
|
||||
-page_param => {"keywords" => N_("activity, logs")});
|
||||
|
||||
main;
|
||||
exit 0;
|
||||
|
||||
sub main() {
|
||||
local ($_, %_);
|
||||
my $LIST;
|
||||
# List handler handles its own error
|
||||
$LIST = new Selima::List::ActLog;
|
||||
html_header $LIST->{"title"};
|
||||
html_errmsg retrieve_status;
|
||||
$LIST->html;
|
||||
html_footer;
|
||||
return;
|
||||
}
|
||||
236
htdocs/wov/magicat/cgi-bin/groupmem.cgi
Executable file
@@ -0,0 +1,236 @@
|
||||
#! /usr/bin/perl -w
|
||||
# Woman's Voice
|
||||
# groupmem.cgi: The group-to-group membership administration.
|
||||
|
||||
# Copyright (c) 2004-2021 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
|
||||
|
||||
use 5.008;
|
||||
use strict;
|
||||
use warnings;
|
||||
use lib $ENV{"DOCUMENT_ROOT"} . qw(/magicat/lib/perl5);
|
||||
use Selima::wov;
|
||||
local $SIG{"__DIE__"} = \&http_500;
|
||||
my $d = new Selima::Destroy;
|
||||
# Prototype declaration
|
||||
sub main();
|
||||
sub check_get();
|
||||
sub check_post();
|
||||
sub html_page($);
|
||||
sub fetch_curitem();
|
||||
sub import_selgrp($);
|
||||
sub import_selmember($);
|
||||
|
||||
initenv(-restricted => 1,
|
||||
-this_table => "groupmem",
|
||||
-dbi_lock => {"groupmem" => LOCK_EX,
|
||||
"groups" => LOCK_SH,
|
||||
"groups AS grpmembers" => LOCK_SH},
|
||||
-lastmod => 1,
|
||||
-page_param => {"keywords" => N_("group membership")});
|
||||
|
||||
main;
|
||||
exit 0;
|
||||
|
||||
sub main() {
|
||||
local ($_, %_);
|
||||
my ($error, $success, $processor);
|
||||
|
||||
# If the request is a GET query
|
||||
if ($ENV{"REQUEST_METHOD"} ne "POST") {
|
||||
$error = check_get;
|
||||
# If an error occurs
|
||||
if (defined $error) {
|
||||
html_page $error;
|
||||
|
||||
# Display the page
|
||||
} else {
|
||||
html_page retrieve_status;
|
||||
}
|
||||
|
||||
# If a form was POSTed from the client
|
||||
} else {
|
||||
$error = check_post;
|
||||
# If an error occurs
|
||||
if (defined $error) {
|
||||
error_redirect $error;
|
||||
|
||||
# Else, save the data
|
||||
} else {
|
||||
$processor = new Selima::Processor::GroupMem($POST);
|
||||
$success = $processor->process;
|
||||
success_redirect $success;
|
||||
}
|
||||
}
|
||||
return;
|
||||
}
|
||||
|
||||
# check_get: Check the GET arguments
|
||||
sub check_get() {
|
||||
local ($_, %_);
|
||||
my $error;
|
||||
|
||||
# A form is requested
|
||||
if (is_form) {
|
||||
$_ = form_type;
|
||||
# A form to create a new item
|
||||
if ($_ eq "new") {
|
||||
# Nothing to check on a new form
|
||||
|
||||
# A form to edit a current item
|
||||
} elsif ($_ eq "cur") {
|
||||
# Check at fetch_curitem()
|
||||
$error = fetch_curitem;
|
||||
return $error if defined $error;
|
||||
|
||||
# A form to delete a current item
|
||||
} elsif ($_ eq "del") {
|
||||
# Check at fetch_curitem()
|
||||
$error = fetch_curitem;
|
||||
return $error if defined $error;
|
||||
|
||||
# Not a valid form
|
||||
} else {
|
||||
return {"msg"=>N_("Incorrect form: [_1]."),
|
||||
"margs"=>[$_],
|
||||
"isform"=>0};
|
||||
}
|
||||
}
|
||||
# List handler handles its own error
|
||||
# OK
|
||||
return;
|
||||
}
|
||||
|
||||
# check_post: Check the POSTed form
|
||||
sub check_post() {
|
||||
local ($_, %_);
|
||||
my ($checker, $error);
|
||||
$_ = form_type;
|
||||
# A form to create a new item
|
||||
if ($_ eq "new") {
|
||||
# Run the checker
|
||||
$checker = new Selima::Checker::GroupMem(curform);
|
||||
$checker->redir(qw(selgrp delgrp selmember delmember));
|
||||
$error = $checker->check(qw(grp member));
|
||||
return $error if defined $error;
|
||||
|
||||
# A form to edit a current item
|
||||
} elsif ($_ eq "cur") {
|
||||
# Check at fetch_curitem()
|
||||
$error = fetch_curitem;
|
||||
return $error if defined $error;
|
||||
# Run the checker
|
||||
$checker = new Selima::Checker::GroupMem(curform);
|
||||
$checker->redir(qw(del selgrp delgrp selmember delmember));
|
||||
$error = $checker->check(qw(grp member));
|
||||
return $error if defined $error;
|
||||
|
||||
# A form to delete a current item
|
||||
} elsif ($_ eq "del") {
|
||||
# Check at fetch_curitem()
|
||||
$error = fetch_curitem;
|
||||
return $error if defined $error;;
|
||||
# Run the checker
|
||||
$checker = new Selima::Checker::GroupMem(curform);
|
||||
$checker->redir(qw(cancel));
|
||||
|
||||
# Not a valid form
|
||||
} else {
|
||||
return {"msg"=>N_("Incorrect form: [_1]."),
|
||||
"margs"=>[$_],
|
||||
"isform"=>0};
|
||||
}
|
||||
# OK
|
||||
return;
|
||||
}
|
||||
|
||||
# html_page: Display the page
|
||||
sub html_page($) {
|
||||
local ($_, %_);
|
||||
my ($status, $LIST, $FORM);
|
||||
$status = $_[0];
|
||||
# A form is requested
|
||||
if (is_form $status) {
|
||||
$FORM = new Selima::Form::GroupMem($status);
|
||||
html_header $FORM->{"title"};
|
||||
html_errmsg $status;
|
||||
$FORM->html;
|
||||
html_footer;
|
||||
|
||||
# List the available items
|
||||
} else {
|
||||
$LIST = new Selima::List::GroupMem;
|
||||
html_header $LIST->{"title"}, undef, $LIST->page_param;
|
||||
html_errmsg $status;
|
||||
$LIST->html;
|
||||
html_footer;
|
||||
}
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
##################################
|
||||
# Subroutines to manage the data #
|
||||
##################################
|
||||
# fetch_curitem: Fetch the current item
|
||||
sub fetch_curitem() {
|
||||
local ($_, %_);
|
||||
my ($sn, $FORM);
|
||||
|
||||
# Return if fetched before
|
||||
return if scalar(keys %CURRENT) > 0;
|
||||
|
||||
# Obtain the current form
|
||||
$FORM = curform;
|
||||
# No item specified
|
||||
return {"msg"=>N_("Please select the membership record."),
|
||||
"isform"=>0}
|
||||
if !defined $FORM->param("sn");
|
||||
$sn = $FORM->param("sn");
|
||||
|
||||
# Find the record
|
||||
%CURRENT = fetchrec $sn, $THIS_TABLE;
|
||||
# If this record exist
|
||||
return {"msg"=>N_("This membership record does not exist anymore. Please select another one."),
|
||||
"isform"=>0}
|
||||
if scalar(keys %CURRENT) == 0;
|
||||
|
||||
# OK
|
||||
return;
|
||||
}
|
||||
|
||||
# import_selgrp: Import the selected group into the retrieved form
|
||||
sub import_selgrp($) {
|
||||
local ($_, %_);
|
||||
my $FORM;
|
||||
$FORM = $_[0];
|
||||
$FORM->param("grp", $GET->param("selsn"))
|
||||
if defined $GET->param("selsn")
|
||||
&& check_sn_in ${$GET->param_fetch("selsn")}[0], "groups";
|
||||
return;
|
||||
}
|
||||
|
||||
# import_selmember: Import the selected member into the retrieved form
|
||||
sub import_selmember($) {
|
||||
local ($_, %_);
|
||||
my $FORM;
|
||||
$FORM = $_[0];
|
||||
$FORM->param("member", $GET->param("selsn"))
|
||||
if defined $GET->param("selsn")
|
||||
&& check_sn_in ${$GET->param_fetch("selsn")}[0], "groups AS grpmembers";
|
||||
return $FORM;
|
||||
}
|
||||
357
htdocs/wov/magicat/cgi-bin/groups.cgi
Executable file
@@ -0,0 +1,357 @@
|
||||
#! /usr/bin/perl -w
|
||||
# Woman's Voice
|
||||
# groups.cgi: The account group administration.
|
||||
|
||||
# Copyright (c) 2004-2021 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
|
||||
|
||||
use 5.008;
|
||||
use strict;
|
||||
use warnings;
|
||||
use lib $ENV{"DOCUMENT_ROOT"} . qw(/magicat/lib/perl5);
|
||||
use Selima::wov;
|
||||
local $SIG{"__DIE__"} = \&http_500;
|
||||
my $d = new Selima::Destroy;
|
||||
# Prototype declaration
|
||||
sub main();
|
||||
sub check_get();
|
||||
sub check_post();
|
||||
sub html_page($);
|
||||
sub fetch_curitem();
|
||||
sub import_selsubuser($);
|
||||
sub import_selsubgroup($);
|
||||
sub import_selsupgroup($);
|
||||
|
||||
initenv(-restricted => 1,
|
||||
-this_table => "groups",
|
||||
-dbi_lock => {"groups" => LOCK_EX,
|
||||
"usermem" => LOCK_EX,
|
||||
"groupmem" => LOCK_EX,
|
||||
"users" => LOCK_SH,
|
||||
"users AS members" => LOCK_SH,
|
||||
"groups AS members" => LOCK_SH},
|
||||
-lastmod => 1,
|
||||
-page_param => {"keywords" => N_("groups")});
|
||||
|
||||
main;
|
||||
exit 0;
|
||||
|
||||
sub main() {
|
||||
local ($_, %_);
|
||||
my ($error, $success, $processor);
|
||||
|
||||
# If the request is a GET query
|
||||
if ($ENV{"REQUEST_METHOD"} ne "POST") {
|
||||
$error = check_get;
|
||||
# If an error occurs
|
||||
if (defined $error) {
|
||||
html_page $error;
|
||||
|
||||
# Display the page
|
||||
} else {
|
||||
html_page retrieve_status;
|
||||
}
|
||||
|
||||
# If a form was POSTed from the client
|
||||
} else {
|
||||
$error = check_post;
|
||||
# If an error occurs
|
||||
if (defined $error) {
|
||||
error_redirect $error;
|
||||
|
||||
# Else, save the data
|
||||
} else {
|
||||
$processor = new Selima::Processor::Group($POST);
|
||||
$success = $processor->process;
|
||||
success_redirect $success;
|
||||
}
|
||||
}
|
||||
return;
|
||||
}
|
||||
|
||||
# check_get: Check the GET arguments
|
||||
sub check_get() {
|
||||
local ($_, %_);
|
||||
my ($error, $FORM, $sn);
|
||||
|
||||
# A form is requested
|
||||
if (is_form) {
|
||||
$_ = form_type;
|
||||
# A form to create a new item
|
||||
if ($_ eq "new") {
|
||||
# Nothing to check on a new form
|
||||
|
||||
# A form to edit a current item
|
||||
} elsif ($_ eq "cur") {
|
||||
# Check at fetch_curitem()
|
||||
$error = fetch_curitem;
|
||||
return $error if defined $error;
|
||||
|
||||
# A form to delete a current item
|
||||
} elsif ($_ eq "del") {
|
||||
# Check the privilege to manage this table
|
||||
$FORM = curform;
|
||||
$sn = defined $FORM->param("sn")? $FORM->param("sn"): -1;
|
||||
unauth if !is_su && $sn == su_group_sn;
|
||||
# Check at fetch_curitem()
|
||||
$error = fetch_curitem;
|
||||
return $error if defined $error;
|
||||
|
||||
# Not a valid form
|
||||
} else {
|
||||
return {"msg"=>N_("Incorrect form: [_1]."),
|
||||
"margs"=>[$_],
|
||||
"isform"=>0};
|
||||
}
|
||||
}
|
||||
# List handler handles its own error
|
||||
# OK
|
||||
return;
|
||||
}
|
||||
|
||||
# check_post: Check the POSTed form
|
||||
sub check_post() {
|
||||
local ($_, %_);
|
||||
my ($checker, $error, $FORM, $sn);
|
||||
$_ = form_type;
|
||||
# A form to create a new item
|
||||
if ($_ eq "new") {
|
||||
# Run the checker
|
||||
$checker = new Selima::Checker::Group(curform);
|
||||
$checker->redir(qw(selsubuser selsubgroup selsupgroup));
|
||||
$error = $checker->check(qw(id dsc subuser subgroup supgroup));
|
||||
return $error if defined $error;
|
||||
|
||||
# A form to edit a current item
|
||||
} elsif ($_ eq "cur") {
|
||||
# Check at fetch_curitem()
|
||||
$error = fetch_curitem;
|
||||
return $error if defined $error;
|
||||
# Run the checker
|
||||
$checker = new Selima::Checker::Group(curform);
|
||||
$checker->redir(qw(del selsubuser selsubgroup selsupgroup));
|
||||
$error = $checker->check(qw(id dsc subuser subgroup supgroup));
|
||||
return $error if defined $error;
|
||||
|
||||
# A form to delete a current item
|
||||
} elsif ($_ eq "del") {
|
||||
# Check the privilege to manage this table
|
||||
$FORM = curform;
|
||||
$sn = defined $FORM->param("sn")? $FORM->param("sn"): -1;
|
||||
unauth if !is_su && $sn == su_group_sn;
|
||||
# Check at fetch_curitem()
|
||||
$error = fetch_curitem;
|
||||
return $error if defined $error;
|
||||
# Run the checker
|
||||
$checker = new Selima::Checker::Group(curform);
|
||||
$checker->redir(qw(cancel));
|
||||
|
||||
# Not a valid form
|
||||
} else {
|
||||
return {"msg"=>N_("Incorrect form: [_1]."),
|
||||
"margs"=>[$_],
|
||||
"isform"=>0};
|
||||
}
|
||||
# OK
|
||||
return;
|
||||
}
|
||||
|
||||
# html_page: Display the page
|
||||
sub html_page($) {
|
||||
local ($_, %_);
|
||||
my ($status, $LIST, $FORM);
|
||||
$status = $_[0];
|
||||
# A form is requested
|
||||
if (is_form $status) {
|
||||
$FORM = new Selima::Form::Group($status);
|
||||
html_header $FORM->{"title"};
|
||||
html_errmsg $status;
|
||||
$FORM->html;
|
||||
html_footer;
|
||||
|
||||
# List the available items
|
||||
} else {
|
||||
$LIST = new Selima::List::Groups;
|
||||
html_header $LIST->{"title"}, undef, $LIST->page_param;
|
||||
html_errmsg $status;
|
||||
$LIST->html;
|
||||
html_footer;
|
||||
}
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
##################################
|
||||
# Subroutines to manage the data #
|
||||
##################################
|
||||
# fetch_curitem: Fetch the current item
|
||||
sub fetch_curitem() {
|
||||
local ($_, %_);
|
||||
my ($sn, $FORM, $sth, $sql, $row, $title);
|
||||
|
||||
# Return if fetched before
|
||||
return if scalar(keys %CURRENT) > 0;
|
||||
|
||||
# Obtain the current form
|
||||
$FORM = curform;
|
||||
# No item specified
|
||||
return {"msg"=>N_("Please select the group."),
|
||||
"isform"=>0}
|
||||
if !defined $FORM->param("sn");
|
||||
$sn = $FORM->param("sn");
|
||||
|
||||
# Find the record
|
||||
%CURRENT = fetchrec $sn, $THIS_TABLE;
|
||||
# If this record exist
|
||||
return {"msg"=>N_("This group does not exist anymore. Please select another one."),
|
||||
"isform"=>0}
|
||||
if scalar(keys %CURRENT) == 0;
|
||||
|
||||
# Obtain the user members list
|
||||
$title = $DBH->strcat("users.id", "' ('", "users.name", "')'");
|
||||
$sql = "SELECT users.sn AS sn,"
|
||||
. " $title AS title"
|
||||
. " FROM usermem"
|
||||
. " INNER JOIN users ON usermem.member=users.sn"
|
||||
. " WHERE usermem.grp=$sn"
|
||||
. " ORDER BY users.id;\n";
|
||||
$sth = $DBH->prepare($sql);
|
||||
$sth->execute;
|
||||
$CURRENT{"subusercount"} = $sth->rows;
|
||||
for ($_ = 0; $_ < $CURRENT{"subusercount"}; $_++) {
|
||||
$row = $sth->fetchrow_hashref;
|
||||
$CURRENT{"subuser$_"} = 1;
|
||||
$CURRENT{"subuser$_" . "sn"} = $$row{"sn"};
|
||||
$CURRENT{"subuser$_" . "title"} = $$row{"title"};
|
||||
}
|
||||
|
||||
# Obtain the group members list
|
||||
$sql = "SELECT groups.sn AS sn,"
|
||||
. " groups.dsc AS title FROM groupmem"
|
||||
. " INNER JOIN groups ON groupmem.member=groups.sn"
|
||||
. " WHERE groupmem.grp=$sn"
|
||||
. " ORDER BY groups.id;\n";
|
||||
$sth = $DBH->prepare($sql);
|
||||
$sth->execute;
|
||||
$CURRENT{"subgroupcount"} = $sth->rows;
|
||||
for ($_ = 0; $_ < $CURRENT{"subgroupcount"}; $_++) {
|
||||
$row = $sth->fetchrow_hashref;
|
||||
$CURRENT{"subgroup$_"} = 1;
|
||||
$CURRENT{"subgroup$_" . "sn"} = $$row{"sn"};
|
||||
$CURRENT{"subgroup$_" . "title"} = $$row{"title"};
|
||||
}
|
||||
|
||||
# Obtain the belonging groups list
|
||||
$sql = "SELECT groups.sn AS sn,"
|
||||
. " groups.dsc AS title FROM groupmem"
|
||||
. " INNER JOIN groups ON groupmem.grp=groups.sn"
|
||||
. " WHERE groupmem.member=$sn"
|
||||
. " ORDER BY groups.id;\n";
|
||||
$sth = $DBH->prepare($sql);
|
||||
$sth->execute;
|
||||
$CURRENT{"supgroupcount"} = $sth->rows;
|
||||
for ($_ = 0; $_ < $CURRENT{"supgroupcount"}; $_++) {
|
||||
$row = $sth->fetchrow_hashref;
|
||||
$CURRENT{"supgroup$_"} = 1;
|
||||
$CURRENT{"supgroup$_" . "sn"} = $$row{"sn"};
|
||||
$CURRENT{"supgroup$_" . "title"} = $$row{"title"};
|
||||
}
|
||||
|
||||
# OK
|
||||
return;
|
||||
}
|
||||
|
||||
# import_selsubuser: Import the selected user into the retrieved form
|
||||
sub import_selsubuser($) {
|
||||
local ($_, %_);
|
||||
my $FORM;
|
||||
$FORM = $_[0];
|
||||
# Sanity checks
|
||||
if ( defined $GET->param("selsn")
|
||||
&& check_sn_in ${$GET->param_fetch("selsn")}[0], "users AS members") {
|
||||
# Get the current member list
|
||||
%_ = map { $FORM->param($_) => 1 } grep /^subuser\d+sn$/, $FORM->param;
|
||||
$_{$GET->param("selsn")} = 1;
|
||||
@_ = sort { userid $a cmp userid $b } keys %_;
|
||||
# Get the checked member list
|
||||
%_ = map { $FORM->param($_ . "sn") => 1 }
|
||||
grep /^subuser\d+$/ && defined $FORM->param($_ . "sn"), $FORM->param;
|
||||
$_{$GET->param("selsn")} = 1;
|
||||
# Remove the old values
|
||||
$FORM->delete(grep /^subuser\d+/, $FORM->param);
|
||||
# Add the current values
|
||||
for ($_ = 0; $_ < @_; $_++) {
|
||||
$FORM->param("subuser$_" . "sn", $_[$_]);
|
||||
$FORM->param("subuser$_", 1) if exists $_{$_[$_]};
|
||||
}
|
||||
}
|
||||
return;
|
||||
}
|
||||
|
||||
# import_selsubgroup: Import the selected user into the retrieved form
|
||||
sub import_selsubgroup($) {
|
||||
local ($_, %_);
|
||||
my $FORM;
|
||||
$FORM = $_[0];
|
||||
# Sanity checks
|
||||
if ( defined $GET->param("selsn")
|
||||
&& check_sn_in ${$GET->param_fetch("selsn")}[0], "groups AS members") {
|
||||
# Get the current member list
|
||||
%_ = map { $FORM->param($_) => 1 } grep /^subgroup\d+sn$/, $FORM->param;
|
||||
$_{$GET->param("selsn")} = 1;
|
||||
@_ = sort { groupid $a cmp groupid $b } keys %_;
|
||||
# Get the checked member list
|
||||
%_ = map { $FORM->param($_ . "sn") => 1 }
|
||||
grep /^subgroup\d+$/ && defined $FORM->param($_ . "sn"), $FORM->param;
|
||||
$_{$GET->param("selsn")} = 1;
|
||||
# Remove the old values
|
||||
$FORM->delete(grep /^subgroup\d+/, $FORM->param);
|
||||
# Add the current values
|
||||
for ($_ = 0; $_ < @_; $_++) {
|
||||
$FORM->param("subgroup$_" . "sn", $_[$_]);
|
||||
$FORM->param("subgroup$_", 1) if exists $_{$_[$_]};
|
||||
}
|
||||
}
|
||||
return;
|
||||
}
|
||||
|
||||
# import_selsupgroup: Import the selected user into the retrieved form
|
||||
sub import_selsupgroup($) {
|
||||
local ($_, %_);
|
||||
my $FORM;
|
||||
$FORM = $_[0];
|
||||
# Sanity checks
|
||||
if ( defined $GET->param("selsn")
|
||||
&& check_sn_in ${$GET->param_fetch("selsn")}[0], "groups") {
|
||||
# Get the current member list
|
||||
%_ = map { $FORM->param($_) => 1 } grep /^supgroup\d+sn$/, $FORM->param;
|
||||
$_{$GET->param("selsn")} = 1;
|
||||
@_ = sort { groupid $a cmp groupid $b } keys %_;
|
||||
# Get the checked member list
|
||||
%_ = map { $FORM->param($_ . "sn") => 1 }
|
||||
grep /^supgroup\d+$/ && defined $FORM->param($_ . "sn"), $FORM->param;
|
||||
$_{$GET->param("selsn")} = 1;
|
||||
# Remove the old values
|
||||
$FORM->delete(grep /^supgroup\d+/, $FORM->param);
|
||||
# Add the current values
|
||||
for ($_ = 0; $_ < @_; $_++) {
|
||||
$FORM->param("supgroup$_" . "sn", $_[$_]);
|
||||
$FORM->param("supgroup$_", 1) if exists $_{$_[$_]};
|
||||
}
|
||||
}
|
||||
return;
|
||||
}
|
||||
211
htdocs/wov/magicat/cgi-bin/guestbook.cgi
Executable file
@@ -0,0 +1,211 @@
|
||||
#! /usr/bin/perl -w
|
||||
# Woman's Voice
|
||||
# guestbook.cgi: The guestbook administration.
|
||||
|
||||
# Copyright (c) 2003-2021 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-05-11
|
||||
|
||||
use 5.008;
|
||||
use strict;
|
||||
use warnings;
|
||||
use lib $ENV{"DOCUMENT_ROOT"} . qw(/magicat/lib/perl5);
|
||||
use Selima::wov;
|
||||
local $SIG{"__DIE__"} = \&http_500;
|
||||
my $d = new Selima::Destroy;
|
||||
# Prototype declaration
|
||||
sub main();
|
||||
sub check_get();
|
||||
sub check_post();
|
||||
sub html_page($);
|
||||
sub fetch_curitem();
|
||||
|
||||
initenv(-restricted => 1,
|
||||
-this_table => "guestbook",
|
||||
-dbi_lock => {"guestbook" => LOCK_EX},
|
||||
-lastmod => 1,
|
||||
-page_param => {"keywords" => N_("guestbook")});
|
||||
|
||||
main;
|
||||
exit 0;
|
||||
|
||||
sub main() {
|
||||
local ($_, %_);
|
||||
my ($error, $success, $processor);
|
||||
|
||||
# If the request is a GET query
|
||||
if ($ENV{"REQUEST_METHOD"} ne "POST") {
|
||||
$error = check_get;
|
||||
# If an error occurs
|
||||
if (defined $error) {
|
||||
html_page $error;
|
||||
|
||||
# Display the page
|
||||
} else {
|
||||
html_page retrieve_status;
|
||||
}
|
||||
|
||||
# If a form was POSTed from the client
|
||||
} else {
|
||||
$error = check_post;
|
||||
# If an error occurs
|
||||
if (defined $error) {
|
||||
error_redirect $error;
|
||||
|
||||
# Else, save the data
|
||||
} else {
|
||||
$processor = new Selima::Processor::Guestbook($POST);
|
||||
$success = $processor->process;
|
||||
success_redirect $success;
|
||||
}
|
||||
}
|
||||
return;
|
||||
}
|
||||
|
||||
# check_get: Check the GET arguments
|
||||
sub check_get() {
|
||||
local ($_, %_);
|
||||
my $error;
|
||||
|
||||
# A form is requested
|
||||
if (is_form) {
|
||||
$_ = form_type;
|
||||
# A form to create a new item
|
||||
if ($_ eq "new") {
|
||||
# Nothing to check on a new form
|
||||
|
||||
# A form to edit a current item
|
||||
} elsif ($_ eq "cur") {
|
||||
# Check at fetch_curitem()
|
||||
$error = fetch_curitem;
|
||||
return $error if defined $error;
|
||||
|
||||
# A form to delete a current item
|
||||
} elsif ($_ eq "del") {
|
||||
# Check at fetch_curitem()
|
||||
$error = fetch_curitem;
|
||||
return $error if defined $error;
|
||||
|
||||
# Not a valid form
|
||||
} else {
|
||||
return {"msg"=>N_("Incorrect form: [_1]."),
|
||||
"margs"=>[$_],
|
||||
"isform"=>0};
|
||||
}
|
||||
}
|
||||
# List handler handles its own error
|
||||
# OK
|
||||
return;
|
||||
}
|
||||
|
||||
# check_post: Check the POSTed form
|
||||
sub check_post() {
|
||||
local ($_, %_);
|
||||
my ($checker, $error);
|
||||
$_ = form_type;
|
||||
# A form to create a new item
|
||||
if ($_ eq "new") {
|
||||
# Run the checker
|
||||
$checker = new Selima::wov::Checker::Guestbook(curform);
|
||||
$error = $checker->check(qw(name identity location
|
||||
email url message));
|
||||
return $error if defined $error;
|
||||
|
||||
# A form to edit a current item
|
||||
} elsif ($_ eq "cur") {
|
||||
# Check at fetch_curitem()
|
||||
$error = fetch_curitem;
|
||||
return $error if defined $error;
|
||||
# Run the checker
|
||||
$checker = new Selima::wov::Checker::Guestbook(curform);
|
||||
$checker->redir(qw(del));
|
||||
$error = $checker->check(qw(name identity location
|
||||
email url message));
|
||||
return $error if defined $error;
|
||||
|
||||
# A form to delete a current item
|
||||
} elsif ($_ eq "del") {
|
||||
# Check at fetch_curitem()
|
||||
$error = fetch_curitem;
|
||||
return $error if defined $error;;
|
||||
# Run the checker
|
||||
$checker = new Selima::wov::Checker::Guestbook(curform);
|
||||
$checker->redir(qw(cancel));
|
||||
|
||||
# Not a valid form
|
||||
} else {
|
||||
return {"msg"=>N_("Incorrect form: [_1]."),
|
||||
"margs"=>[$_],
|
||||
"isform"=>0};
|
||||
}
|
||||
# OK
|
||||
return;
|
||||
}
|
||||
|
||||
# html_page: Display the page
|
||||
sub html_page($) {
|
||||
local ($_, %_);
|
||||
my ($status, $LIST, $FORM);
|
||||
$status = $_[0];
|
||||
# A form is requested
|
||||
if (is_form $status) {
|
||||
$FORM = new Selima::wov::Form::Guestbook($status);
|
||||
html_header $FORM->{"title"};
|
||||
html_errmsg $status;
|
||||
$FORM->html;
|
||||
html_footer;
|
||||
|
||||
# List the available items
|
||||
} else {
|
||||
$LIST = new Selima::wov::List::Guestbook;
|
||||
html_header $LIST->{"title"}, undef, $LIST->page_param;
|
||||
html_errmsg $status;
|
||||
$LIST->html;
|
||||
html_footer;
|
||||
}
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
##################################
|
||||
# Subroutines to manage the data #
|
||||
##################################
|
||||
# fetch_curitem: Fetch the current item
|
||||
sub fetch_curitem() {
|
||||
local ($_, %_);
|
||||
my ($sn, $FORM);
|
||||
|
||||
# Return if fetched before
|
||||
return if scalar(keys %CURRENT) > 0;
|
||||
|
||||
# Obtain the current form
|
||||
$FORM = curform;
|
||||
# No item specified
|
||||
return {"msg"=>N_("Please select the message."),
|
||||
"isform"=>0}
|
||||
if !defined $FORM->param("sn");
|
||||
$sn = $FORM->param("sn");
|
||||
|
||||
# Find the record
|
||||
%CURRENT = fetchrec $sn, $THIS_TABLE;
|
||||
# If this record exist
|
||||
return {"msg"=>N_("This message does not exist anymore. Please select another one."),
|
||||
"isform"=>0}
|
||||
if scalar(keys %CURRENT) == 0;
|
||||
|
||||
# OK
|
||||
return;
|
||||
}
|
||||
297
htdocs/wov/magicat/cgi-bin/linkcat.cgi
Executable file
@@ -0,0 +1,297 @@
|
||||
#! /usr/bin/perl -w
|
||||
# Woman's Voice
|
||||
# linkcat.cgi: The related-link category administration.
|
||||
|
||||
# Copyright (c) 2004-2021 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-11-02
|
||||
|
||||
use 5.008;
|
||||
use utf8;
|
||||
use strict;
|
||||
use warnings;
|
||||
use lib $ENV{"DOCUMENT_ROOT"} . qw(/magicat/lib/perl5);
|
||||
use Selima::wov;
|
||||
local $SIG{"__DIE__"} = \&http_500;
|
||||
my $d = new Selima::Destroy;
|
||||
# Prototype declaration
|
||||
sub main();
|
||||
sub check_get();
|
||||
sub check_post();
|
||||
sub html_page($);
|
||||
sub fetch_curitem();
|
||||
sub import_selparent($);
|
||||
|
||||
initenv(-restricted => 1,
|
||||
-this_table => "linkcat",
|
||||
-dbi_lock => {"linkcat" => LOCK_EX,
|
||||
"links" => LOCK_SH,
|
||||
"linkcatz" => LOCK_SH},
|
||||
-lastmod => 0,
|
||||
-page_param => {"keywords" => N_("link categories")});
|
||||
|
||||
main;
|
||||
exit 0;
|
||||
|
||||
sub main() {
|
||||
local ($_, %_);
|
||||
my ($error, $success, $processor);
|
||||
|
||||
# If the request is a GET query
|
||||
if ($ENV{"REQUEST_METHOD"} ne "POST") {
|
||||
$error = check_get;
|
||||
# If an error occurs
|
||||
if (defined $error) {
|
||||
html_page $error;
|
||||
|
||||
# Display the page
|
||||
} else {
|
||||
html_page retrieve_status;
|
||||
}
|
||||
|
||||
# If a form was POSTed from the client
|
||||
} else {
|
||||
$error = check_post;
|
||||
# If an error occurs
|
||||
if (defined $error) {
|
||||
error_redirect $error;
|
||||
|
||||
# Else, save the data
|
||||
} else {
|
||||
$processor = new Selima::wov::Processor::LinkCat($POST);
|
||||
$success = $processor->process;
|
||||
success_redirect $success;
|
||||
}
|
||||
}
|
||||
return;
|
||||
}
|
||||
|
||||
# check_get: Check the GET arguments
|
||||
sub check_get() {
|
||||
local ($_, %_);
|
||||
my $error;
|
||||
|
||||
# A form is requested
|
||||
if (is_form) {
|
||||
$_ = form_type;
|
||||
# A form to create a new item
|
||||
if ($_ eq "new") {
|
||||
# Nothing to check on a new form
|
||||
|
||||
# A form to edit a current item
|
||||
} elsif ($_ eq "cur") {
|
||||
# Check at fetch_curitem()
|
||||
$error = fetch_curitem;
|
||||
return $error if defined $error;
|
||||
|
||||
# A form to delete a current item
|
||||
} elsif ($_ eq "del") {
|
||||
# Check at fetch_curitem()
|
||||
$error = fetch_curitem;
|
||||
return $error if defined $error;
|
||||
return {"msg"=>N_("This category has [numerate,_1,a subcategory,subcategories]. It cannot be deleted. To delete the category, [numerate,_1,its subcategory,all of its subcategories] must first be deleted."),
|
||||
"margs"=>[$CURRENT{"scatcount"}],
|
||||
"isform"=>0}
|
||||
if $CURRENT{"scatcount"} > 0;
|
||||
return {"msg"=>N_("This category has [numerate,_1,a link,links]. It cannot be deleted. To delete the category, [numerate,_1,its link,all of its links] must first be deleted."),
|
||||
"margs"=>[$CURRENT{"linkcount"}],
|
||||
"isform"=>0}
|
||||
if $CURRENT{"linkcount"} > 0;
|
||||
|
||||
# Not a valid form
|
||||
} else {
|
||||
return {"msg"=>N_("Incorrect form: [_1]."),
|
||||
"margs"=>[$_],
|
||||
"isform"=>0};
|
||||
}
|
||||
}
|
||||
# List handler handles its own error
|
||||
# OK
|
||||
return;
|
||||
}
|
||||
|
||||
# check_post: Check the POSTed form
|
||||
sub check_post() {
|
||||
local ($_, %_);
|
||||
my ($checker, $error);
|
||||
$_ = form_type;
|
||||
# A form to create a new item
|
||||
if ($_ eq "new") {
|
||||
# Run the checker
|
||||
$checker = new Selima::Checker::LinkCat(curform);
|
||||
$checker->redir(qw(selparent delparent));
|
||||
$error = $checker->check(qw(parent id ord title title_en kw));
|
||||
return $error if defined $error;
|
||||
|
||||
# A form to edit a current item
|
||||
} elsif ($_ eq "cur") {
|
||||
# Check at fetch_curitem()
|
||||
$error = fetch_curitem;
|
||||
return $error if defined $error;
|
||||
# Run the checker
|
||||
$checker = new Selima::Checker::LinkCat(curform);
|
||||
$checker->redir(qw(del selparent delparent));
|
||||
$error = $checker->check(qw(parent id ord title title_en kw));
|
||||
return $error if defined $error;
|
||||
|
||||
# A form to delete a current item
|
||||
} elsif ($_ eq "del") {
|
||||
# Check at fetch_curitem()
|
||||
$error = fetch_curitem;
|
||||
return $error if defined $error;
|
||||
# Run the checker
|
||||
$checker = new Selima::Checker::LinkCat(curform);
|
||||
$checker->redir(qw(cancel));
|
||||
return {"msg"=>N_("This category has [numerate,_1,a subcategory,subcategories]. It cannot be deleted. To delete the category, [numerate,_1,its subcategory,all of its subcategories] must first be deleted."),
|
||||
"margs"=>[$CURRENT{"scatcount"}],
|
||||
"isform"=>0}
|
||||
if $CURRENT{"scatcount"} > 0;
|
||||
return {"msg"=>N_("This category has [numerate,_1,a link,links]. It cannot be deleted. To delete the category, [numerate,_1,its link,all of its links] must first be deleted."),
|
||||
"margs"=>[$CURRENT{"linkcount"}],
|
||||
"isform"=>0}
|
||||
if $CURRENT{"linkcount"} > 0;
|
||||
|
||||
# Not a valid form
|
||||
} else {
|
||||
return {"msg"=>N_("Incorrect form: [_1]."),
|
||||
"margs"=>[$_],
|
||||
"isform"=>0};
|
||||
}
|
||||
# OK
|
||||
return;
|
||||
}
|
||||
|
||||
# html_page: Display the page
|
||||
sub html_page($) {
|
||||
local ($_, %_);
|
||||
my ($status, $LIST, $FORM);
|
||||
$status = $_[0];
|
||||
# A form is requested
|
||||
if (is_form $status) {
|
||||
$FORM = new Selima::wov::Form::LinkCat($status);
|
||||
html_header $FORM->{"title"};
|
||||
html_errmsg $status;
|
||||
$FORM->html;
|
||||
html_footer;
|
||||
|
||||
# List the available items
|
||||
} else {
|
||||
$LIST = new Selima::List::LinkCat;
|
||||
$LIST->{"title"} = "管理女網牽手分類"
|
||||
unless $LIST->{"is_called_form"};
|
||||
html_header $LIST->{"title"}, undef, $LIST->page_param;
|
||||
html_errmsg $status;
|
||||
$LIST->html;
|
||||
html_footer;
|
||||
}
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
##################################
|
||||
# Subroutines to manage the data #
|
||||
##################################
|
||||
# fetch_curitem: Fetch the current item
|
||||
sub fetch_curitem() {
|
||||
local ($_, %_);
|
||||
my ($sn, $FORM, $sth, $sql, $row);
|
||||
my ($lang, $lndb, $lndbdef, $langfile, $title);
|
||||
|
||||
# Return if fetched before
|
||||
return if scalar(keys %CURRENT) > 0;
|
||||
|
||||
# Obtain the current form
|
||||
$FORM = curform;
|
||||
# No item specified
|
||||
return {"msg"=>N_("Please select the category."),
|
||||
"isform"=>0}
|
||||
if !defined $FORM->param("sn");
|
||||
$sn = $FORM->param("sn");
|
||||
|
||||
# Find the record
|
||||
%CURRENT = fetchrec $sn, $THIS_TABLE;
|
||||
# If this record exist
|
||||
return {"msg"=>N_("This category does not exist anymore. Please select another one."),
|
||||
"isform"=>0}
|
||||
if scalar(keys %CURRENT) == 0;
|
||||
|
||||
$lang = getlang;
|
||||
$lndb = getlang LN_DATABASE;
|
||||
$lndbdef = ln $DEFAULT_LANG, LN_DATABASE;
|
||||
$langfile = getlang LN_FILENAME;
|
||||
|
||||
# Obtain the belonging subcategories list
|
||||
@_ = qw();
|
||||
push @_, "sn AS sn";
|
||||
if (@ALL_LINGUAS > 1) {
|
||||
$title = $lang eq $DEFAULT_LANG? "title_$lndb":
|
||||
"COALESCE(title_$lndb, title_$lndbdef)";
|
||||
push @_, "linkcat_fulltitle('$lang', parent, $title) AS title";
|
||||
} else {
|
||||
push @_, "linkcat_fulltitle(parent, title) AS title";
|
||||
}
|
||||
push @_, $DBH->strcat("'/links'", "linkcat_path(sn, id, parent)")
|
||||
. " AS url";
|
||||
$sql = "SELECT " . join(", ", @_) . " FROM linkcat"
|
||||
. " WHERE linkcat_ischild($sn, sn)"
|
||||
. " ORDER BY linkcat_fullord(parent, ord);\n";
|
||||
$sth = $DBH->prepare($sql);
|
||||
$sth->execute;
|
||||
$CURRENT{"scatcount"} = $sth->rows;
|
||||
for ($_ = 0; $_ < $CURRENT{"scatcount"}; $_++) {
|
||||
$row = $sth->fetchrow_hashref;
|
||||
$CURRENT{"scat$_" . "sn"} = $$row{"sn"};
|
||||
$CURRENT{"scat$_" . "title"} = $$row{"title"};
|
||||
$CURRENT{"scat$_" . "url"} = $$row{"url"};
|
||||
}
|
||||
|
||||
# Obtain the belonging links list
|
||||
@_ = qw();
|
||||
push @_, "links.sn AS sn";
|
||||
push @_, "links.title AS title";
|
||||
push @_, "url AS url";
|
||||
$sql = "SELECT " . join(", ", @_) . " FROM links"
|
||||
. " INNER JOIN linkcatz ON linkcatz.link=links.sn"
|
||||
. " WHERE linkcatz.cat=$sn"
|
||||
. " ORDER BY title;\n";
|
||||
$sth = $DBH->prepare($sql);
|
||||
$sth->execute;
|
||||
$CURRENT{"linkcount"} = $sth->rows;
|
||||
for ($_ = 0; $_ < $CURRENT{"linkcount"}; $_++) {
|
||||
$row = $sth->fetchrow_hashref;
|
||||
$CURRENT{"link$_" . "sn"} = $$row{"sn"};
|
||||
$CURRENT{"link$_" . "title"} = $$row{"title"};
|
||||
$CURRENT{"link$_" . "url"} = $$row{"url"};
|
||||
}
|
||||
|
||||
# OK
|
||||
return;
|
||||
}
|
||||
|
||||
# import_selparent: Import the selected parent into the retrieved form
|
||||
sub import_selparent($) {
|
||||
local ($_, %_);
|
||||
my $FORM;
|
||||
$FORM = $_[0];
|
||||
if ( defined $GET->param("selsn")
|
||||
&& check_sn_in ${$GET->param_fetch("selsn")}[0], "linkcat") {
|
||||
$FORM->param("parent", $GET->param("selsn"));
|
||||
$FORM->param("topmost", "false");
|
||||
}
|
||||
return;
|
||||
}
|
||||
|
||||
no utf8;
|
||||
241
htdocs/wov/magicat/cgi-bin/linkcatz.cgi
Executable file
@@ -0,0 +1,241 @@
|
||||
#! /usr/bin/perl -w
|
||||
# Woman's Voice
|
||||
# linkcatz.cgi: The related-link category membership administration.
|
||||
|
||||
# Copyright (c) 2004-2021 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-11-02
|
||||
|
||||
use 5.008;
|
||||
use utf8;
|
||||
use strict;
|
||||
use warnings;
|
||||
use lib $ENV{"DOCUMENT_ROOT"} . qw(/magicat/lib/perl5);
|
||||
use Selima::wov;
|
||||
local $SIG{"__DIE__"} = \&http_500;
|
||||
my $d = new Selima::Destroy;
|
||||
# Prototype declaration
|
||||
sub main();
|
||||
sub check_get();
|
||||
sub check_post();
|
||||
sub html_page($);
|
||||
sub fetch_curitem();
|
||||
sub import_selcat($);
|
||||
sub import_sellink($);
|
||||
|
||||
initenv(-restricted => 1,
|
||||
-this_table => "linkcatz",
|
||||
-dbi_lock => {"linkcatz" => LOCK_EX,
|
||||
"linkcat" => LOCK_SH,
|
||||
"links" => LOCK_SH},
|
||||
-lastmod => 1,
|
||||
-page_param => {"keywords" => N_("link categorization")});
|
||||
|
||||
main;
|
||||
exit 0;
|
||||
|
||||
sub main() {
|
||||
local ($_, %_);
|
||||
my ($error, $success, $processor);
|
||||
|
||||
# If the request is a GET query
|
||||
if ($ENV{"REQUEST_METHOD"} ne "POST") {
|
||||
$error = check_get;
|
||||
# If an error occurs
|
||||
if (defined $error) {
|
||||
html_page $error;
|
||||
|
||||
# Display the page
|
||||
} else {
|
||||
html_page retrieve_status;
|
||||
}
|
||||
|
||||
# If a form was POSTed from the client
|
||||
} else {
|
||||
$error = check_post;
|
||||
# If an error occurs
|
||||
if (defined $error) {
|
||||
error_redirect $error;
|
||||
|
||||
# Else, save the data
|
||||
} else {
|
||||
$processor = new Selima::Processor::LinkCatz($POST);
|
||||
$success = $processor->process;
|
||||
success_redirect $success;
|
||||
}
|
||||
}
|
||||
return;
|
||||
}
|
||||
|
||||
# check_get: Check the GET arguments
|
||||
sub check_get() {
|
||||
local ($_, %_);
|
||||
my $error;
|
||||
|
||||
# A form is requested
|
||||
if (is_form) {
|
||||
$_ = form_type;
|
||||
# A form to create a new item
|
||||
if ($_ eq "new") {
|
||||
# Nothing to check on a new form
|
||||
|
||||
# A form to edit a current item
|
||||
} elsif ($_ eq "cur") {
|
||||
# Check at fetch_curitem()
|
||||
$error = fetch_curitem;
|
||||
return $error if defined $error;
|
||||
|
||||
# A form to delete a current item
|
||||
} elsif ($_ eq "del") {
|
||||
# Check at fetch_curitem()
|
||||
$error = fetch_curitem;
|
||||
return $error if defined $error;
|
||||
|
||||
# Not a valid form
|
||||
} else {
|
||||
return {"msg"=>N_("Incorrect form: [_1]."),
|
||||
"margs"=>[$_],
|
||||
"isform"=>0};
|
||||
}
|
||||
}
|
||||
# List handler handles its own error
|
||||
# OK
|
||||
return;
|
||||
}
|
||||
|
||||
# check_post: Check the POSTed form
|
||||
sub check_post() {
|
||||
local ($_, %_);
|
||||
my ($checker, $error);
|
||||
$_ = form_type;
|
||||
# A form to create a new item
|
||||
if ($_ eq "new") {
|
||||
# Run the checker
|
||||
$checker = new Selima::Checker::LinkCatz(curform);
|
||||
$checker->redir(qw(selcat delcat sellink dellink));
|
||||
$error = $checker->check(qw(cat link));
|
||||
return $error if defined $error;
|
||||
|
||||
# A form to edit a current item
|
||||
} elsif ($_ eq "cur") {
|
||||
# Check at fetch_curitem()
|
||||
$error = fetch_curitem;
|
||||
return $error if defined $error;
|
||||
# Run the checker
|
||||
$checker = new Selima::Checker::LinkCatz(curform);
|
||||
$checker->redir(qw(del selcat delcat sellink dellink));
|
||||
$error = $checker->check(qw(cat link));
|
||||
return $error if defined $error;
|
||||
|
||||
# A form to delete a current item
|
||||
} elsif ($_ eq "del") {
|
||||
# Check at fetch_curitem()
|
||||
$error = fetch_curitem;
|
||||
return $error if defined $error;;
|
||||
# Run the checker
|
||||
$checker = new Selima::Checker::LinkCatz(curform);
|
||||
$checker->redir(qw(cancel));
|
||||
|
||||
# Not a valid form
|
||||
} else {
|
||||
return {"msg"=>N_("Incorrect form: [_1]."),
|
||||
"margs"=>[$_],
|
||||
"isform"=>0};
|
||||
}
|
||||
# OK
|
||||
return;
|
||||
}
|
||||
|
||||
# html_page: Display the page
|
||||
sub html_page($) {
|
||||
local ($_, %_);
|
||||
my ($status, $LIST, $FORM);
|
||||
$status = $_[0];
|
||||
# A form is requested
|
||||
if (is_form $status) {
|
||||
$FORM = new Selima::Form::LinkCatz($status);
|
||||
html_header $FORM->{"title"};
|
||||
html_errmsg $status;
|
||||
$FORM->html;
|
||||
html_footer;
|
||||
|
||||
# List the available items
|
||||
} else {
|
||||
$LIST = new Selima::List::LinkCatz;
|
||||
$LIST->{"title"} = "管理女網牽手分類表"
|
||||
unless $LIST->{"is_called_form"};
|
||||
html_header $LIST->{"title"}, undef, $LIST->page_param;
|
||||
html_errmsg $status;
|
||||
$LIST->html;
|
||||
html_footer;
|
||||
}
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
##################################
|
||||
# Subroutines to manage the data #
|
||||
##################################
|
||||
# fetch_curitem: Fetch the current item
|
||||
sub fetch_curitem() {
|
||||
local ($_, %_);
|
||||
my ($sn, $FORM);
|
||||
|
||||
# Return if fetched before
|
||||
return if scalar(keys %CURRENT) > 0;
|
||||
|
||||
# Obtain the current form
|
||||
$FORM = curform;
|
||||
# No item specified
|
||||
return {"msg"=>N_("Please select the categorization record."),
|
||||
"isform"=>0}
|
||||
if !defined $FORM->param("sn");
|
||||
$sn = $FORM->param("sn");
|
||||
|
||||
# Find the record
|
||||
%CURRENT = fetchrec $sn, $THIS_TABLE;
|
||||
# If this record exist
|
||||
return {"msg"=>N_("This categorization record does not exist anymore. Please select another one."),
|
||||
"isform"=>0}
|
||||
if scalar(keys %CURRENT) == 0;
|
||||
|
||||
# OK
|
||||
return;
|
||||
}
|
||||
|
||||
# import_selcat: Import the selected category into the retrieved form
|
||||
sub import_selcat($) {
|
||||
local ($_, %_);
|
||||
my $FORM;
|
||||
$FORM = $_[0];
|
||||
$FORM->param("cat", $GET->param("selsn"))
|
||||
if defined $GET->param("selsn")
|
||||
&& check_sn_in ${$GET->param_fetch("selsn")}[0], "linkcat";
|
||||
return;
|
||||
}
|
||||
|
||||
# import_sellink: Import the selected link into the retrieved form
|
||||
sub import_sellink($) {
|
||||
local ($_, %_);
|
||||
my $FORM;
|
||||
$FORM = $_[0];
|
||||
$FORM->param("link", $GET->param("selsn"))
|
||||
if defined $GET->param("selsn")
|
||||
&& check_sn_in ${$GET->param_fetch("selsn")}[0], "links";
|
||||
return $FORM;
|
||||
}
|
||||
|
||||
no utf8;
|
||||
245
htdocs/wov/magicat/cgi-bin/links.cgi
Executable file
@@ -0,0 +1,245 @@
|
||||
#! /usr/bin/perl -w
|
||||
# Woman's Voice
|
||||
# links.cgi: The related-link administration.
|
||||
|
||||
# Copyright (c) 2004-2021 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-11-02
|
||||
|
||||
use 5.008;
|
||||
use utf8;
|
||||
use strict;
|
||||
use warnings;
|
||||
use lib $ENV{"DOCUMENT_ROOT"} . qw(/magicat/lib/perl5);
|
||||
use Selima::wov;
|
||||
local $SIG{"__DIE__"} = \&http_500;
|
||||
my $d = new Selima::Destroy;
|
||||
# Prototype declaration
|
||||
sub main();
|
||||
sub check_get();
|
||||
sub check_post();
|
||||
sub html_page($);
|
||||
sub fetch_curitem();
|
||||
|
||||
initenv(-restricted => 1,
|
||||
-this_table => "links",
|
||||
-dbi_lock => {"links" => LOCK_EX,
|
||||
"linkcatz" => LOCK_EX,
|
||||
"linkcat" => LOCK_SH},
|
||||
-lastmod => 1,
|
||||
-page_param => {"keywords" => N_("related links")});
|
||||
|
||||
main;
|
||||
exit 0;
|
||||
|
||||
sub main() {
|
||||
local ($_, %_);
|
||||
my ($error, $success, $processor);
|
||||
|
||||
# If the request is a GET query
|
||||
if ($ENV{"REQUEST_METHOD"} ne "POST") {
|
||||
$error = check_get;
|
||||
# If an error occurs
|
||||
if (defined $error) {
|
||||
html_page $error;
|
||||
|
||||
# Display the page
|
||||
} else {
|
||||
html_page retrieve_status;
|
||||
}
|
||||
|
||||
# If a form was POSTed from the client
|
||||
} else {
|
||||
$error = check_post;
|
||||
# If an error occurs
|
||||
if (defined $error) {
|
||||
error_redirect $error;
|
||||
|
||||
# Else, save the data
|
||||
} else {
|
||||
$processor = new Selima::Processor::Link($POST);
|
||||
$success = $processor->process;
|
||||
success_redirect $success;
|
||||
}
|
||||
}
|
||||
return;
|
||||
}
|
||||
|
||||
# check_get: Check the GET arguments
|
||||
sub check_get() {
|
||||
local ($_, %_);
|
||||
my $error;
|
||||
|
||||
# A form is requested
|
||||
if (is_form) {
|
||||
$_ = form_type;
|
||||
# A form to create a new item
|
||||
if ($_ eq "new") {
|
||||
|
||||
# A form to edit a current item
|
||||
} elsif ($_ eq "cur") {
|
||||
# Check at fetch_curitem()
|
||||
$error = fetch_curitem;
|
||||
return $error if defined $error;
|
||||
|
||||
# A form to delete a current item
|
||||
} elsif ($_ eq "del") {
|
||||
# Check at fetch_curitem()
|
||||
$error = fetch_curitem;
|
||||
return $error if defined $error;
|
||||
|
||||
# Not a valid form
|
||||
} else {
|
||||
return {"msg"=>N_("Incorrect form: [_1]."),
|
||||
"margs"=>[$_],
|
||||
"isform"=>0};
|
||||
}
|
||||
}
|
||||
# List handler handles its own error
|
||||
# OK
|
||||
return;
|
||||
}
|
||||
|
||||
# check_post: Check the POSTed form
|
||||
sub check_post() {
|
||||
local ($_, %_);
|
||||
my ($checker, $error);
|
||||
$_ = form_type;
|
||||
# A form to create a new item
|
||||
if ($_ eq "new") {
|
||||
# Run the checker
|
||||
$checker = new Selima::Checker::Link(curform);
|
||||
$error = $checker->check(qw(title title_2ln url icon
|
||||
email addr tel fax dsc cats));
|
||||
return $error if defined $error;
|
||||
|
||||
# A form to edit a current item
|
||||
} elsif ($_ eq "cur") {
|
||||
# Check at fetch_curitem()
|
||||
$error = fetch_curitem;
|
||||
return $error if defined $error;
|
||||
# Run the checker
|
||||
$checker = new Selima::Checker::Link(curform);
|
||||
$checker->redir(qw(del));
|
||||
$error = $checker->check(qw(title title_2ln url icon
|
||||
email addr tel fax dsc cats));
|
||||
return $error if defined $error;
|
||||
|
||||
# A form to delete a current item
|
||||
} elsif ($_ eq "del") {
|
||||
# Check at fetch_curitem()
|
||||
$error = fetch_curitem;
|
||||
return $error if defined $error;;
|
||||
# Run the checker
|
||||
$checker = new Selima::Checker::Link(curform);
|
||||
$checker->redir(qw(cancel));
|
||||
|
||||
# Not a valid form
|
||||
} else {
|
||||
return {"msg"=>N_("Incorrect form: [_1]."),
|
||||
"margs"=>[$_],
|
||||
"isform"=>0};
|
||||
}
|
||||
# OK
|
||||
return;
|
||||
}
|
||||
|
||||
# html_page: Display the page
|
||||
sub html_page($) {
|
||||
local ($_, %_);
|
||||
my ($status, $LIST, $FORM);
|
||||
$status = $_[0];
|
||||
# A form is requested
|
||||
if (is_form $status) {
|
||||
$FORM = new Selima::Form::Link($status);
|
||||
html_header $FORM->{"title"};
|
||||
html_errmsg $status;
|
||||
$FORM->html;
|
||||
html_footer;
|
||||
|
||||
# List the available items
|
||||
} else {
|
||||
$LIST = new Selima::List::Links;
|
||||
$LIST->{"title"} = "管理女網牽手"
|
||||
unless $LIST->{"is_called_form"};
|
||||
html_header $LIST->{"title"}, undef, $LIST->page_param;
|
||||
html_errmsg $status;
|
||||
$LIST->html;
|
||||
html_footer;
|
||||
}
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
##################################
|
||||
# Subroutines to manage the data #
|
||||
##################################
|
||||
# fetch_curitem: Fetch the current item
|
||||
sub fetch_curitem() {
|
||||
local ($_, %_);
|
||||
my ($sn, $FORM, $sth, $sql, $row);
|
||||
my ($lang, $lndb, $lndbdef, $title);
|
||||
|
||||
# Return if fetched before
|
||||
return if scalar(keys %CURRENT) > 0;
|
||||
|
||||
# Obtain the current form
|
||||
$FORM = curform;
|
||||
# No item specified
|
||||
return {"msg"=>N_("Please select the related link."),
|
||||
"isform"=>0}
|
||||
if !defined $FORM->param("sn");
|
||||
$sn = $FORM->param("sn");
|
||||
|
||||
# Find the record
|
||||
%CURRENT = fetchrec $sn, $THIS_TABLE;
|
||||
# If this record exist
|
||||
return {"msg"=>N_("This related link does not exist anymore. Please select another one."),
|
||||
"isform"=>0}
|
||||
if scalar(keys %CURRENT) == 0;
|
||||
|
||||
$lang = getlang;
|
||||
$lndb = getlang LN_DATABASE;
|
||||
$lndbdef = ln $DEFAULT_LANG, LN_DATABASE;
|
||||
|
||||
# Obtain the parent categories list
|
||||
@_ = qw();
|
||||
push @_, "linkcat.sn AS sn";
|
||||
if (@ALL_LINGUAS > 1) {
|
||||
$title = $lang eq $DEFAULT_LANG? "linkcat.title_$lndb":
|
||||
"COALESCE(linkcat.title_$lndb, linkcat.title_$lndbdef)";
|
||||
push @_, "linkcat_fulltitle('$lang', linkcat.parent, $title) AS title";
|
||||
} else {
|
||||
push @_, "linkcat_fulltitle(linkcat.parent, linkcat.title) AS title";
|
||||
}
|
||||
$sql = "SELECT " . join(", ", @_) . " FROM linkcat"
|
||||
. " INNER JOIN linkcatz ON linkcatz.cat=linkcat.sn"
|
||||
. " WHERE linkcatz.link=$sn"
|
||||
. " ORDER BY linkcat_fullord(linkcat.parent, linkcat.ord);\n";
|
||||
$sth = $DBH->prepare($sql);
|
||||
$sth->execute;
|
||||
$CURRENT{"catcount"} = $sth->rows;
|
||||
for ($_ = 0; $_ < $CURRENT{"catcount"}; $_++) {
|
||||
$row = $sth->fetchrow_hashref;
|
||||
$CURRENT{"cat$_"} = $$row{"sn"};
|
||||
$CURRENT{"cat$_" . "title"} = $$row{"title"};
|
||||
}
|
||||
|
||||
# OK
|
||||
return;
|
||||
}
|
||||
|
||||
no utf8;
|
||||
158
htdocs/wov/magicat/cgi-bin/logout.cgi
Executable file
@@ -0,0 +1,158 @@
|
||||
#! /usr/bin/perl -w
|
||||
# Woman's Voice
|
||||
# logout.cgi: The log-out script.
|
||||
|
||||
# Copyright (c) 2004-2021 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
|
||||
|
||||
use 5.008;
|
||||
use strict;
|
||||
use warnings;
|
||||
use lib $ENV{"DOCUMENT_ROOT"} . qw(/magicat/lib/perl5);
|
||||
use Selima::wov;
|
||||
local $SIG{"__DIE__"} = \&http_500;
|
||||
my $d = new Selima::Destroy;
|
||||
# Prototype declaration
|
||||
sub main();
|
||||
sub check_get();
|
||||
sub check_post();
|
||||
sub html_page($);
|
||||
sub html_logoutform();
|
||||
sub html_relogin();
|
||||
|
||||
initenv(-dbi => DBI_NONE,
|
||||
-lastmod => 1,
|
||||
-page_param => {"keywords" => N_("log out")});
|
||||
|
||||
main;
|
||||
exit 0;
|
||||
|
||||
sub main() {
|
||||
local ($_, %_);
|
||||
my ($error, $success, $processor);
|
||||
|
||||
# If the request is a GET query
|
||||
if ($ENV{"REQUEST_METHOD"} ne "POST") {
|
||||
$error = check_get;
|
||||
# If an error occurs
|
||||
if (defined $error) {
|
||||
html_page $error;
|
||||
|
||||
# Display the page
|
||||
} else {
|
||||
html_page retrieve_status;
|
||||
}
|
||||
|
||||
# If a form was POSTed from the client
|
||||
} else {
|
||||
$error = check_post;
|
||||
# If an error occurs
|
||||
if (defined $error) {
|
||||
error_redirect $error;
|
||||
|
||||
# Else, save the data
|
||||
} else {
|
||||
$processor = new Selima::Processor::LogOut($POST);
|
||||
$success = $processor->process;
|
||||
success_redirect $success;
|
||||
}
|
||||
}
|
||||
return;
|
||||
}
|
||||
|
||||
# check_get: Check the GET arguments
|
||||
sub check_get() {
|
||||
local ($_, %_);
|
||||
my $status;
|
||||
# There is a result to display
|
||||
$status = retrieve_status;
|
||||
# Successfully logged out
|
||||
if ( defined $status
|
||||
&& exists $$status{"status"}
|
||||
&& $$status{"status"} eq "success") {
|
||||
# Nothing to check
|
||||
return;
|
||||
}
|
||||
# Check if this user has logged in
|
||||
unauth unless defined get_login_sn;
|
||||
# OK
|
||||
return;
|
||||
}
|
||||
|
||||
# check_post: Check the POSTed form
|
||||
sub check_post() {
|
||||
local ($_, %_);
|
||||
# Check if this user has logged in
|
||||
unauth unless defined get_login_sn;
|
||||
# OK
|
||||
return;
|
||||
}
|
||||
|
||||
# html_page: Display the page
|
||||
sub html_page($) {
|
||||
local ($_, %_);
|
||||
my $status;
|
||||
$status = $_[0];
|
||||
# Not logged out yet
|
||||
if (defined get_login_sn) {
|
||||
html_header __("Log Out");
|
||||
html_errmsg $status;
|
||||
html_logoutform;
|
||||
html_footer;
|
||||
|
||||
# Logged out
|
||||
} else {
|
||||
html_header __("Log Out");
|
||||
html_errmsg $status;
|
||||
html_relogin;
|
||||
html_footer;
|
||||
}
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
##################################
|
||||
# Subroutines to manage the data #
|
||||
##################################
|
||||
# html_logoutform: Display a form to log out
|
||||
sub html_logoutform() {
|
||||
local ($_, %_);
|
||||
my ($msg, $submit);
|
||||
$msg = h(__("Are you sure you want to log out?"));
|
||||
$submit = h(__("Log out"));
|
||||
print << "EOT";
|
||||
<form action="$REQUEST_FILE" method="post">
|
||||
<div>
|
||||
<p>$msg</p>
|
||||
<input type="submit" value="$submit" />
|
||||
</div>
|
||||
</form>
|
||||
|
||||
EOT
|
||||
return;
|
||||
}
|
||||
|
||||
# html_relogin: Display links to log in again
|
||||
sub html_relogin() {
|
||||
local ($_, %_);
|
||||
$_ = h(__("Log in again."));
|
||||
print << "EOT";
|
||||
<p><a href="/magicat/cgi-bin/login.cgi">$_</a></p>
|
||||
|
||||
EOT
|
||||
return;
|
||||
}
|
||||
271
htdocs/wov/magicat/cgi-bin/newslets.cgi
Executable file
@@ -0,0 +1,271 @@
|
||||
#! /usr/bin/perl -w
|
||||
# Woman's Voice
|
||||
# newslets.cgi: The newsletter administration.
|
||||
|
||||
# Copyright (c) 2004-2021 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-11-17
|
||||
|
||||
use 5.008;
|
||||
use strict;
|
||||
use warnings;
|
||||
use lib $ENV{"DOCUMENT_ROOT"} . qw(/magicat/lib/perl5);
|
||||
use Selima::wov;
|
||||
local $SIG{"__DIE__"} = \&http_500;
|
||||
my $d = new Selima::Destroy;
|
||||
# Prototype declaration
|
||||
sub main();
|
||||
sub check_get();
|
||||
sub check_post();
|
||||
sub html_page($);
|
||||
sub fetch_curitem();
|
||||
|
||||
use Date::Parse qw(str2time);
|
||||
|
||||
initenv(-restricted => 1,
|
||||
-this_table => "newslets",
|
||||
-dbi_lock => {"newslets" => LOCK_EX,
|
||||
"nlarts" => LOCK_EX},
|
||||
-lastmod => 1,
|
||||
-page_param => {"keywords" => N_("newsletters")});
|
||||
|
||||
main;
|
||||
exit 0;
|
||||
|
||||
sub main() {
|
||||
local ($_, %_);
|
||||
my ($error, $success, $processor);
|
||||
|
||||
# If the request is a GET query
|
||||
if ($ENV{"REQUEST_METHOD"} ne "POST") {
|
||||
$error = check_get;
|
||||
# If an error occurs
|
||||
if (defined $error) {
|
||||
html_page $error;
|
||||
|
||||
# Display the page
|
||||
} else {
|
||||
html_page retrieve_status;
|
||||
}
|
||||
|
||||
# If a form was POSTed from the client
|
||||
} else {
|
||||
$error = check_post;
|
||||
# If an error occurs
|
||||
if (defined $error) {
|
||||
error_redirect $error;
|
||||
|
||||
# Else, save the data
|
||||
} else {
|
||||
$processor = new Selima::wov::Processor::Newslet($POST);
|
||||
$success = $processor->process;
|
||||
success_redirect $success;
|
||||
}
|
||||
}
|
||||
return;
|
||||
}
|
||||
|
||||
# check_get: Check the GET arguments
|
||||
sub check_get() {
|
||||
local ($_, %_);
|
||||
my $error;
|
||||
|
||||
# A form is requested
|
||||
if (is_form) {
|
||||
$_ = form_type;
|
||||
# A form to create a new item
|
||||
if ($_ eq "new") {
|
||||
|
||||
# A form to edit a current item
|
||||
} elsif ($_ eq "cur") {
|
||||
# Check at fetch_curitem()
|
||||
$error = fetch_curitem;
|
||||
return $error if defined $error;
|
||||
|
||||
# A form to delete a current item
|
||||
} elsif ($_ eq "del") {
|
||||
# Check at fetch_curitem()
|
||||
$error = fetch_curitem;
|
||||
return $error if defined $error;
|
||||
|
||||
# A form to preview a submitted item
|
||||
} elsif ($_ eq "preview") {
|
||||
my ($sql, $sth, $count, $row, @allno);
|
||||
# Check at fetch_preview()
|
||||
$error = fetch_preview;
|
||||
return $error if defined $error;
|
||||
$PREVIEW{"path"} = sprintf "/newsletters/wov%04d.html", $PREVIEW{"no"};
|
||||
$PREVIEW{"date"} = str2time $PREVIEW{"date"};
|
||||
$PREVIEW{"title"} = newslet_textno($PREVIEW{"no"}) . " " . $PREVIEW{"title"};
|
||||
|
||||
# Obtain all the pages
|
||||
@_ = qw();
|
||||
push @_, "sn!=" . $PREVIEW{"sn"} if exists $PREVIEW{"sn"};
|
||||
push @_, "NOT hid";
|
||||
$sql = "SELECT no FROM newslets"
|
||||
. " WHERE " . join(" AND ", @_)
|
||||
. " ORDER BY no;\n";
|
||||
$sth = $DBH->prepare($sql);
|
||||
$sth->execute;
|
||||
$count = $sth->rows;
|
||||
for (my $i = 0, @allno = qw(); $i < $count; $i++) {
|
||||
push @allno, ${$sth->fetch}[0];
|
||||
}
|
||||
undef $sth;
|
||||
# Insert this page
|
||||
for ($_ = 0; $_ < @allno; $_++) {
|
||||
last if $PREVIEW{"no"} < $allno[$_];
|
||||
}
|
||||
@allno = (
|
||||
@allno[0..$_-1],
|
||||
$PREVIEW{"no"},
|
||||
@allno[$_..$#allno]);
|
||||
$PREVIEW{"allno"} = [@allno];
|
||||
|
||||
# Not a valid form
|
||||
} else {
|
||||
return {"msg"=>N_("Incorrect form: [_1]."),
|
||||
"margs"=>[$_],
|
||||
"isform"=>0};
|
||||
}
|
||||
}
|
||||
# List handler handles its own error
|
||||
# OK
|
||||
return;
|
||||
}
|
||||
|
||||
# check_post: Check the POSTed form
|
||||
sub check_post() {
|
||||
local ($_, %_);
|
||||
my ($checker, $error);
|
||||
$_ = form_type;
|
||||
# A form to create a new item
|
||||
if ($_ eq "new") {
|
||||
# Run the checker
|
||||
$checker = new Selima::wov::Checker::Newslet(curform);
|
||||
$error = $checker->check(qw(no date title cred_t cred_h kw arts));
|
||||
return $error if defined $error;
|
||||
|
||||
# A form to edit a current item
|
||||
} elsif ($_ eq "cur") {
|
||||
# Check at fetch_curitem()
|
||||
$error = fetch_curitem;
|
||||
return $error if defined $error;
|
||||
# Run the checker
|
||||
$checker = new Selima::wov::Checker::Newslet(curform);
|
||||
$checker->redir(qw(del));
|
||||
$error = $checker->check(qw(no date title cred_t cred_h kw arts));
|
||||
return $error if defined $error;
|
||||
|
||||
# A form to delete a current item
|
||||
} elsif ($_ eq "del") {
|
||||
# Check at fetch_curitem()
|
||||
$error = fetch_curitem;
|
||||
return $error if defined $error;;
|
||||
# Run the checker
|
||||
$checker = new Selima::wov::Checker::Newslet(curform);
|
||||
$checker->redir(qw(cancel));
|
||||
|
||||
# Not a valid form
|
||||
} else {
|
||||
return {"msg"=>N_("Incorrect form: [_1]."),
|
||||
"margs"=>[$_],
|
||||
"isform"=>0};
|
||||
}
|
||||
# OK
|
||||
return;
|
||||
}
|
||||
|
||||
# html_page: Display the page
|
||||
sub html_page($) {
|
||||
local ($_, %_);
|
||||
my ($status, $LIST, $FORM);
|
||||
$status = $_[0];
|
||||
# A form is requested
|
||||
if (is_form $status) {
|
||||
# A form to preview a submitted item
|
||||
if (form_type eq "preview") {
|
||||
html_preview;
|
||||
|
||||
} else {
|
||||
$FORM = new Selima::wov::Form::Newslet($status);
|
||||
html_header $FORM->{"title"};
|
||||
html_errmsg $status;
|
||||
$FORM->html;
|
||||
html_footer;
|
||||
}
|
||||
|
||||
# List the available items
|
||||
} else {
|
||||
$LIST = new Selima::wov::List::Newslets;
|
||||
html_header $LIST->{"title"}, undef, $LIST->page_param;
|
||||
html_errmsg $status;
|
||||
$LIST->html;
|
||||
html_footer;
|
||||
}
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
##################################
|
||||
# Subroutines to manage the data #
|
||||
##################################
|
||||
# fetch_curitem: Fetch the current item
|
||||
sub fetch_curitem() {
|
||||
local ($_, %_);
|
||||
my ($sn, $FORM, $sth, $sql, $row);
|
||||
|
||||
# Return if fetched before
|
||||
return if scalar(keys %CURRENT) > 0;
|
||||
|
||||
# Obtain the current form
|
||||
$FORM = curform;
|
||||
# No item specified
|
||||
return {"msg"=>N_("Please select the newsletter."),
|
||||
"isform"=>0}
|
||||
if !defined $FORM->param("sn");
|
||||
$sn = $FORM->param("sn");
|
||||
|
||||
# Find the record
|
||||
%CURRENT = fetchrec $sn, $THIS_TABLE;
|
||||
# If this record exist
|
||||
return {"msg"=>N_("This newsletter does not exist anymore. Please select another one."),
|
||||
"isform"=>0}
|
||||
if scalar(keys %CURRENT) == 0;
|
||||
|
||||
# Obtain the date
|
||||
$CURRENT{"date"} = fmtdate $CURRENT{"date"};
|
||||
|
||||
# Obtain the articles list
|
||||
$sql = "SELECT * FROM nlarts WHERE newslet=$sn ORDER BY ord;\n";
|
||||
$sth = $DBH->prepare($sql);
|
||||
$sth->execute;
|
||||
$CURRENT{"artcount"} = $sth->rows;
|
||||
for ($_ = 0; $_ < $CURRENT{"artcount"}; $_++) {
|
||||
$row = $sth->fetchrow_hashref;
|
||||
$CURRENT{"art$_"} = 1;
|
||||
$CURRENT{"art$_" . "sn"} = $$row{"sn"};
|
||||
$CURRENT{"art$_" . "ord"} = $$row{"ord"};
|
||||
$CURRENT{"art$_" . "title"} = $$row{"title"};
|
||||
$CURRENT{"art$_" . "author"} = $$row{"author"};
|
||||
$CURRENT{"art$_" . "body_t"} = $$row{"body_t"};
|
||||
$CURRENT{"art$_" . "body_h"} = $$row{"body_h"};
|
||||
$CURRENT{"art$_" . "hid"} = $$row{"hid"};
|
||||
}
|
||||
|
||||
# OK
|
||||
return;
|
||||
}
|
||||
223
htdocs/wov/magicat/cgi-bin/nlarts.cgi
Executable file
@@ -0,0 +1,223 @@
|
||||
#! /usr/bin/perl -w
|
||||
# Woman's Voice
|
||||
# nlarts.cgi: The newsletter article administration.
|
||||
|
||||
# Copyright (c) 2004-2021 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-11-24
|
||||
|
||||
use 5.008;
|
||||
use strict;
|
||||
use warnings;
|
||||
use lib $ENV{"DOCUMENT_ROOT"} . qw(/magicat/lib/perl5);
|
||||
use Selima::wov;
|
||||
local $SIG{"__DIE__"} = \&http_500;
|
||||
my $d = new Selima::Destroy;
|
||||
# Prototype declaration
|
||||
sub main();
|
||||
sub check_get();
|
||||
sub check_post();
|
||||
sub html_page($);
|
||||
sub fetch_curitem();
|
||||
sub import_selnewslet($);
|
||||
|
||||
initenv(-restricted => 1,
|
||||
-this_table => "nlarts",
|
||||
-dbi_lock => {"nlarts" => LOCK_EX,
|
||||
"newslets" => LOCK_SH},
|
||||
-lastmod => 1,
|
||||
-page_param => {"keywords" => N_("newsletter articles")});
|
||||
|
||||
main;
|
||||
exit 0;
|
||||
|
||||
sub main() {
|
||||
local ($_, %_);
|
||||
my ($error, $success, $processor);
|
||||
|
||||
# If the request is a GET query
|
||||
if ($ENV{"REQUEST_METHOD"} ne "POST") {
|
||||
$error = check_get;
|
||||
# If an error occurs
|
||||
if (defined $error) {
|
||||
html_page $error;
|
||||
|
||||
# Display the page
|
||||
} else {
|
||||
html_page retrieve_status;
|
||||
}
|
||||
|
||||
# If a form was POSTed from the client
|
||||
} else {
|
||||
$error = check_post;
|
||||
# If an error occurs
|
||||
if (defined $error) {
|
||||
error_redirect $error;
|
||||
|
||||
# Else, save the data
|
||||
} else {
|
||||
$processor = new Selima::wov::Processor::NLArt($POST);
|
||||
$success = $processor->process;
|
||||
success_redirect $success;
|
||||
}
|
||||
}
|
||||
return;
|
||||
}
|
||||
|
||||
# check_get: Check the GET arguments
|
||||
sub check_get() {
|
||||
local ($_, %_);
|
||||
my $error;
|
||||
|
||||
# A form is requested
|
||||
if (is_form) {
|
||||
$_ = form_type;
|
||||
# A form to create a new item
|
||||
if ($_ eq "new") {
|
||||
# Nothing to check on a new form
|
||||
|
||||
# A form to edit a current item
|
||||
} elsif ($_ eq "cur") {
|
||||
# Check at fetch_curitem()
|
||||
$error = fetch_curitem;
|
||||
return $error if defined $error;
|
||||
|
||||
# A form to delete a current item
|
||||
} elsif ($_ eq "del") {
|
||||
# Check at fetch_curitem()
|
||||
$error = fetch_curitem;
|
||||
return $error if defined $error;
|
||||
|
||||
# Not a valid form
|
||||
} else {
|
||||
return {"msg"=>N_("Incorrect form: [_1]."),
|
||||
"margs"=>[$_],
|
||||
"isform"=>0};
|
||||
}
|
||||
}
|
||||
# List handler handles its own error
|
||||
# OK
|
||||
return;
|
||||
}
|
||||
|
||||
# check_post: Check the POSTed form
|
||||
sub check_post() {
|
||||
local ($_, %_);
|
||||
my ($checker, $error);
|
||||
$_ = form_type;
|
||||
# A form to create a new item
|
||||
if ($_ eq "new") {
|
||||
# Run the checker
|
||||
$checker = new Selima::wov::Checker::NLArt(curform);
|
||||
$checker->redir(qw(selnewslet delnewslet));
|
||||
$error = $checker->check(qw(newslet ord title author body_t body_h));
|
||||
return $error if defined $error;
|
||||
|
||||
# A form to edit a current item
|
||||
} elsif ($_ eq "cur") {
|
||||
# Check at fetch_curitem()
|
||||
$error = fetch_curitem;
|
||||
return $error if defined $error;
|
||||
# Run the checker
|
||||
$checker = new Selima::wov::Checker::NLArt(curform);
|
||||
$checker->redir(qw(del selnewslet delnewslet));
|
||||
$error = $checker->check(qw(newslet ord title author body_t body_h));
|
||||
return $error if defined $error;
|
||||
|
||||
# A form to delete a current item
|
||||
} elsif ($_ eq "del") {
|
||||
# Check at fetch_curitem()
|
||||
$error = fetch_curitem;
|
||||
return $error if defined $error;;
|
||||
# Run the checker
|
||||
$checker = new Selima::wov::Checker::NLArt(curform);
|
||||
$checker->redir(qw(cancel));
|
||||
|
||||
# Not a valid form
|
||||
} else {
|
||||
return {"msg"=>N_("Incorrect form: [_1]."),
|
||||
"margs"=>[$_],
|
||||
"isform"=>0};
|
||||
}
|
||||
# OK
|
||||
return;
|
||||
}
|
||||
|
||||
# html_page: Display the page
|
||||
sub html_page($) {
|
||||
local ($_, %_);
|
||||
my ($status, $LIST, $FORM);
|
||||
$status = $_[0];
|
||||
# A form is requested
|
||||
if (is_form $status) {
|
||||
$FORM = new Selima::wov::Form::NLArt($status);
|
||||
html_header $FORM->{"title"};
|
||||
html_errmsg $status;
|
||||
$FORM->html;
|
||||
html_footer;
|
||||
|
||||
# List the available items
|
||||
} else {
|
||||
$LIST = new Selima::wov::List::NLArts;
|
||||
html_header $LIST->{"title"}, undef, $LIST->page_param;
|
||||
html_errmsg $status;
|
||||
$LIST->html;
|
||||
html_footer;
|
||||
}
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
##################################
|
||||
# Subroutines to manage the data #
|
||||
##################################
|
||||
# fetch_curitem: Fetch the current item
|
||||
sub fetch_curitem() {
|
||||
local ($_, %_);
|
||||
my ($sn, $FORM);
|
||||
|
||||
# Return if fetched before
|
||||
return if scalar(keys %CURRENT) > 0;
|
||||
|
||||
# Obtain the current form
|
||||
$FORM = curform;
|
||||
# No item specified
|
||||
return {"msg"=>N_("Please select the article."),
|
||||
"isform"=>0}
|
||||
if !defined $FORM->param("sn");
|
||||
$sn = $FORM->param("sn");
|
||||
|
||||
# Find the record
|
||||
%CURRENT = fetchrec $sn, $THIS_TABLE;
|
||||
# If this record exist
|
||||
return {"msg"=>N_("This article does not exist anymore. Please select another one."),
|
||||
"isform"=>0}
|
||||
if scalar(keys %CURRENT) == 0;
|
||||
|
||||
# OK
|
||||
return;
|
||||
}
|
||||
|
||||
# import_selnewslet: Import the selected newsletter into the retrieved form
|
||||
sub import_selnewslet($) {
|
||||
local ($_, %_);
|
||||
my $FORM;
|
||||
$FORM = $_[0];
|
||||
$FORM->param("newslet", $GET->param("selsn"))
|
||||
if defined $GET->param("selsn")
|
||||
&& check_sn_in ${$GET->param_fetch("selsn")}[0], "newslets";
|
||||
return;
|
||||
}
|
||||
221
htdocs/wov/magicat/cgi-bin/pages.cgi
Executable file
@@ -0,0 +1,221 @@
|
||||
#! /usr/bin/perl -w
|
||||
# Woman's Voice
|
||||
# pages.cgi: The web page administration.
|
||||
|
||||
# Copyright (c) 2006-2021 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: 2006-04-03
|
||||
|
||||
use 5.008;
|
||||
use strict;
|
||||
use warnings;
|
||||
use lib $ENV{"DOCUMENT_ROOT"} . qw(/magicat/lib/perl5);
|
||||
use Selima::wov;
|
||||
local $SIG{"__DIE__"} = \&http_500;
|
||||
my $d = new Selima::Destroy;
|
||||
# Prototype declaration
|
||||
sub main();
|
||||
sub check_get();
|
||||
sub check_post();
|
||||
sub html_page($);
|
||||
sub fetch_curitem();
|
||||
|
||||
initenv(-restricted => 1,
|
||||
-this_table => "pages",
|
||||
-dbi_lock => {"pages" => LOCK_EX},
|
||||
-lastmod => 1,
|
||||
-page_param => {"keywords" => N_("pages")});
|
||||
|
||||
main;
|
||||
exit 0;
|
||||
|
||||
sub main() {
|
||||
local ($_, %_);
|
||||
my ($error, $success, $processor);
|
||||
|
||||
# If the request is a GET query
|
||||
if ($ENV{"REQUEST_METHOD"} ne "POST") {
|
||||
$error = check_get;
|
||||
# If an error occurs
|
||||
if (defined $error) {
|
||||
html_page $error;
|
||||
|
||||
# Display the page
|
||||
} else {
|
||||
html_page retrieve_status;
|
||||
}
|
||||
|
||||
# If a form was POSTed from the client
|
||||
} else {
|
||||
$error = check_post;
|
||||
# If an error occurs
|
||||
if (defined $error) {
|
||||
error_redirect $error;
|
||||
|
||||
# Else, save the data
|
||||
} else {
|
||||
$processor = new Selima::wov::Processor::Page($POST);
|
||||
$success = $processor->process;
|
||||
success_redirect $success;
|
||||
}
|
||||
}
|
||||
return;
|
||||
}
|
||||
|
||||
# check_get: Check the GET arguments
|
||||
sub check_get() {
|
||||
local ($_, %_);
|
||||
my $error;
|
||||
|
||||
# A form is requested
|
||||
if (is_form) {
|
||||
$_ = form_type;
|
||||
# A form to create a new item
|
||||
if ($_ eq "new") {
|
||||
# Nothing to check on a new form
|
||||
|
||||
# A form to edit a current item
|
||||
} elsif ($_ eq "cur") {
|
||||
# Check at fetch_curitem()
|
||||
$error = fetch_curitem;
|
||||
return $error if defined $error;
|
||||
|
||||
# A form to delete a current item
|
||||
} elsif ($_ eq "del") {
|
||||
# Check at fetch_curitem()
|
||||
$error = fetch_curitem;
|
||||
return $error if defined $error;
|
||||
|
||||
# A form to preview a submitted item
|
||||
} elsif ($_ eq "preview") {
|
||||
# Check at fetch_preview()
|
||||
$error = fetch_preview;
|
||||
return $error if defined $error;
|
||||
|
||||
# Not a valid form
|
||||
} else {
|
||||
return {"msg"=>N_("Incorrect form: [_1]."),
|
||||
"margs"=>[$_],
|
||||
"isform"=>0};
|
||||
}
|
||||
}
|
||||
# List handler handles its own error
|
||||
# OK
|
||||
return;
|
||||
}
|
||||
|
||||
# check_post: Check the POSTed form
|
||||
sub check_post() {
|
||||
local ($_, %_);
|
||||
my ($checker, $error);
|
||||
$_ = form_type;
|
||||
# A form to create a new item
|
||||
if ($_ eq "new") {
|
||||
# Run the checker
|
||||
$checker = new Selima::Checker::Page(curform);
|
||||
$error = $checker->check(qw(path ord title title_en body kw));
|
||||
return $error if defined $error;
|
||||
|
||||
# A form to edit a current item
|
||||
} elsif ($_ eq "cur") {
|
||||
# Check at fetch_curitem()
|
||||
$error = fetch_curitem;
|
||||
return $error if defined $error;
|
||||
# Run the checker
|
||||
$checker = new Selima::Checker::Page(curform);
|
||||
$checker->redir(qw(del));
|
||||
$error = $checker->check(qw(path ord title title_en body kw));
|
||||
return $error if defined $error;
|
||||
|
||||
# A form to delete a current item
|
||||
} elsif ($_ eq "del") {
|
||||
# Check at fetch_curitem()
|
||||
$error = fetch_curitem;
|
||||
return $error if defined $error;;
|
||||
# Run the checker
|
||||
$checker = new Selima::Checker::Page(curform);
|
||||
$checker->redir(qw(cancel));
|
||||
|
||||
# Not a valid form
|
||||
} else {
|
||||
return {"msg"=>N_("Incorrect form: [_1]."),
|
||||
"margs"=>[$_],
|
||||
"isform"=>0};
|
||||
}
|
||||
# OK
|
||||
return;
|
||||
}
|
||||
|
||||
# html_page: Display the page
|
||||
sub html_page($) {
|
||||
local ($_, %_);
|
||||
my ($status, $LIST, $FORM);
|
||||
$status = $_[0];
|
||||
# A form is requested
|
||||
if (is_form $status) {
|
||||
# A form to preview a submitted item
|
||||
if (form_type eq "preview") {
|
||||
html_preview;
|
||||
|
||||
} else {
|
||||
$FORM = new Selima::wov::Form::Page($status);
|
||||
html_header $FORM->{"title"};
|
||||
html_errmsg $status;
|
||||
$FORM->html;
|
||||
html_footer;
|
||||
}
|
||||
|
||||
# List the available items
|
||||
} else {
|
||||
$LIST = new Selima::List::Pages;
|
||||
html_header $LIST->{"title"}, undef, $LIST->page_param;
|
||||
html_errmsg $status;
|
||||
$LIST->html;
|
||||
html_footer;
|
||||
}
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
##################################
|
||||
# Subroutines to manage the data #
|
||||
##################################
|
||||
# fetch_curitem: Fetch the current item
|
||||
sub fetch_curitem() {
|
||||
local ($_, %_);
|
||||
my ($sn, $FORM);
|
||||
|
||||
# Return if fetched before
|
||||
return if scalar(keys %CURRENT) > 0;
|
||||
|
||||
# Obtain the current form
|
||||
$FORM = curform;
|
||||
# No item specified
|
||||
return {"msg"=>N_("Please select the page."),
|
||||
"isform"=>0}
|
||||
if !defined $FORM->param("sn");
|
||||
$sn = $FORM->param("sn");
|
||||
|
||||
# Find the record
|
||||
%CURRENT = fetchrec $sn, $THIS_TABLE;
|
||||
# If this record exist
|
||||
return {"msg"=>N_("This page does not exist anymore. Please select another one."),
|
||||
"isform"=>0}
|
||||
if scalar(keys %CURRENT) == 0;
|
||||
|
||||
# OK
|
||||
return;
|
||||
}
|
||||
105
htdocs/wov/magicat/cgi-bin/rebuild.cgi
Executable file
@@ -0,0 +1,105 @@
|
||||
#! /usr/bin/perl -w
|
||||
# Woman's Voice
|
||||
# rebuild.cgi: The web page rebuilder.
|
||||
|
||||
# Copyright (c) 2006-2021 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: 2006-04-04
|
||||
|
||||
use 5.008;
|
||||
use strict;
|
||||
use warnings;
|
||||
use lib $ENV{"DOCUMENT_ROOT"} . qw(/magicat/lib/perl5);
|
||||
use Selima::wov;
|
||||
local $SIG{"__DIE__"} = \&http_500;
|
||||
my $d = new Selima::Destroy;
|
||||
# Prototype declaration
|
||||
sub main();
|
||||
sub check_get();
|
||||
sub check_post();
|
||||
sub html_page($);
|
||||
|
||||
initenv(-restricted => 1,
|
||||
-lastmod => 1,
|
||||
-page_param => {"keywords" => N_("rebuild pages")});
|
||||
|
||||
main;
|
||||
exit 0;
|
||||
|
||||
sub main() {
|
||||
local ($_, %_);
|
||||
my ($error, $success, $processor);
|
||||
|
||||
# If the request is a GET query
|
||||
if ($ENV{"REQUEST_METHOD"} ne "POST") {
|
||||
$error = check_get;
|
||||
# If an error occurs
|
||||
if (defined $error) {
|
||||
html_page $error;
|
||||
|
||||
# Display the page
|
||||
} else {
|
||||
html_page retrieve_status;
|
||||
}
|
||||
|
||||
# If a form was POSTed from the client
|
||||
} else {
|
||||
$error = check_post;
|
||||
# If an error occurs
|
||||
if (defined $error) {
|
||||
error_redirect $error;
|
||||
|
||||
# Else, save the data
|
||||
} else {
|
||||
$processor = new Selima::Processor::Rebuild($POST);
|
||||
$success = $processor->process;
|
||||
success_redirect $success;
|
||||
}
|
||||
}
|
||||
return;
|
||||
}
|
||||
|
||||
# check_get: Check the GET arguments
|
||||
sub check_get() {
|
||||
# Nothing to check here
|
||||
# OK
|
||||
return;
|
||||
}
|
||||
|
||||
# check_post: Check the POSTed form
|
||||
sub check_post() {
|
||||
local ($_, %_);
|
||||
my ($checker, $error);
|
||||
# Run the checker
|
||||
$checker = new Selima::Checker::Rebuild(curform);
|
||||
$error = $checker->check(qw(type));
|
||||
return $error if defined $error;
|
||||
# OK
|
||||
return;
|
||||
}
|
||||
|
||||
# html_page: Display the page
|
||||
sub html_page($) {
|
||||
local ($_, %_);
|
||||
my ($status, $FORM);
|
||||
$status = $_[0];
|
||||
$FORM = new Selima::Form::Rebuild($status);
|
||||
html_header $FORM->{"title"};
|
||||
html_errmsg $status;
|
||||
$FORM->html;
|
||||
html_footer;
|
||||
return;
|
||||
}
|
||||
223
htdocs/wov/magicat/cgi-bin/scptpriv.cgi
Executable file
@@ -0,0 +1,223 @@
|
||||
#! /usr/bin/perl -w
|
||||
# Woman's Voice
|
||||
# scptpriv.cgi: The script privilege administration.
|
||||
|
||||
# Copyright (c) 2004-2021 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
|
||||
|
||||
use 5.008;
|
||||
use strict;
|
||||
use warnings;
|
||||
use lib $ENV{"DOCUMENT_ROOT"} . qw(/magicat/lib/perl5);
|
||||
use Selima::wov;
|
||||
local $SIG{"__DIE__"} = \&http_500;
|
||||
my $d = new Selima::Destroy;
|
||||
# Prototype declaration
|
||||
sub main();
|
||||
sub check_get();
|
||||
sub check_post();
|
||||
sub html_page($);
|
||||
sub fetch_curitem();
|
||||
sub import_selgrp($);
|
||||
|
||||
initenv(-restricted => 1,
|
||||
-this_table => "scptpriv",
|
||||
-dbi_lock => {"scptpriv" => LOCK_EX,
|
||||
"groups" => LOCK_SH},
|
||||
-lastmod => 1,
|
||||
-page_param => {"keywords" => N_("script privilege")});
|
||||
|
||||
main;
|
||||
exit 0;
|
||||
|
||||
sub main() {
|
||||
local ($_, %_);
|
||||
my ($error, $success, $processor);
|
||||
|
||||
# If the request is a GET query
|
||||
if ($ENV{"REQUEST_METHOD"} ne "POST") {
|
||||
$error = check_get;
|
||||
# If an error occurs
|
||||
if (defined $error) {
|
||||
html_page $error;
|
||||
|
||||
# Display the page
|
||||
} else {
|
||||
html_page retrieve_status;
|
||||
}
|
||||
|
||||
# If a form was POSTed from the client
|
||||
} else {
|
||||
$error = check_post;
|
||||
# If an error occurs
|
||||
if (defined $error) {
|
||||
error_redirect $error;
|
||||
|
||||
# Else, save the data
|
||||
} else {
|
||||
$processor = new Selima::Processor::ScptPriv($POST);
|
||||
$success = $processor->process;
|
||||
success_redirect $success;
|
||||
}
|
||||
}
|
||||
return;
|
||||
}
|
||||
|
||||
# check_get: Check the GET arguments
|
||||
sub check_get() {
|
||||
local ($_, %_);
|
||||
my $error;
|
||||
|
||||
# A form is requested
|
||||
if (is_form) {
|
||||
$_ = form_type;
|
||||
# A form to create a new item
|
||||
if ($_ eq "new") {
|
||||
# Nothing to check on a new form
|
||||
|
||||
# A form to edit a current item
|
||||
} elsif ($_ eq "cur") {
|
||||
# Check at fetch_curitem()
|
||||
$error = fetch_curitem;
|
||||
return $error if defined $error;
|
||||
|
||||
# A form to delete a current item
|
||||
} elsif ($_ eq "del") {
|
||||
# Check at fetch_curitem()
|
||||
$error = fetch_curitem;
|
||||
return $error if defined $error;
|
||||
|
||||
# Not a valid form
|
||||
} else {
|
||||
return {"msg"=>N_("Incorrect form: [_1]."),
|
||||
"margs"=>[$_],
|
||||
"isform"=>0};
|
||||
}
|
||||
}
|
||||
# List handler handles its own error
|
||||
# OK
|
||||
return;
|
||||
}
|
||||
|
||||
# check_post: Check the POSTed form
|
||||
sub check_post() {
|
||||
local ($_, %_);
|
||||
my ($checker, $error);
|
||||
$_ = form_type;
|
||||
# A form to create a new item
|
||||
if ($_ eq "new") {
|
||||
# Run the checker
|
||||
$checker = new Selima::Checker::ScptPriv(curform);
|
||||
$checker->redir(qw(selgrp delgrp));
|
||||
$error = $checker->check(qw(script grp));
|
||||
return $error if defined $error;
|
||||
|
||||
# A form to edit a current item
|
||||
} elsif ($_ eq "cur") {
|
||||
# Check at fetch_curitem()
|
||||
$error = fetch_curitem;
|
||||
return $error if defined $error;
|
||||
# Run the checker
|
||||
$checker = new Selima::Checker::ScptPriv(curform);
|
||||
$checker->redir(qw(del selgrp delgrp));
|
||||
$error = $checker->check(qw(script grp));
|
||||
return $error if defined $error;
|
||||
|
||||
# A form to delete a current item
|
||||
} elsif ($_ eq "del") {
|
||||
# Check at fetch_curitem()
|
||||
$error = fetch_curitem;
|
||||
return $error if defined $error;;
|
||||
# Run the checker
|
||||
$checker = new Selima::Checker::ScptPriv(curform);
|
||||
$checker->redir(qw(cancel));
|
||||
|
||||
# Not a valid form
|
||||
} else {
|
||||
return {"msg"=>N_("Incorrect form: [_1]."),
|
||||
"margs"=>[$_],
|
||||
"isform"=>0};
|
||||
}
|
||||
# OK
|
||||
return;
|
||||
}
|
||||
|
||||
# html_page: Display the page
|
||||
sub html_page($) {
|
||||
local ($_, %_);
|
||||
my ($status, $LIST, $FORM);
|
||||
$status = $_[0];
|
||||
# A form is requested
|
||||
if (is_form $status) {
|
||||
$FORM = new Selima::Form::ScptPriv($status);
|
||||
html_header $FORM->{"title"};
|
||||
html_errmsg $status;
|
||||
$FORM->html;
|
||||
html_footer;
|
||||
|
||||
# List the available items
|
||||
} else {
|
||||
$LIST = new Selima::List::ScptPriv;
|
||||
html_header $LIST->{"title"}, undef, $LIST->page_param;
|
||||
html_errmsg $status;
|
||||
$LIST->html;
|
||||
html_footer;
|
||||
}
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
##################################
|
||||
# Subroutines to manage the data #
|
||||
##################################
|
||||
# fetch_curitem: Fetch the current item
|
||||
sub fetch_curitem() {
|
||||
local ($_, %_);
|
||||
my ($sn, $FORM);
|
||||
|
||||
# Return if fetched before
|
||||
return if scalar(keys %CURRENT) > 0;
|
||||
|
||||
# Obtain the current form
|
||||
$FORM = curform;
|
||||
# No item specified
|
||||
return {"msg"=>N_("Please select the script privilege record."),
|
||||
"isform"=>0}
|
||||
if !defined $FORM->param("sn");
|
||||
$sn = $FORM->param("sn");
|
||||
|
||||
# Find the record
|
||||
%CURRENT = fetchrec $sn, $THIS_TABLE;
|
||||
# If this record exist
|
||||
return {"msg"=>N_("This script privilege record does not exist anymore. Please select another one."),
|
||||
"isform"=>0}
|
||||
if scalar(keys %CURRENT) == 0;
|
||||
|
||||
# OK
|
||||
return;
|
||||
}
|
||||
|
||||
# import_selgrp: Import the selected group into the retrieved form
|
||||
sub import_selgrp($) {
|
||||
local ($_, %_);
|
||||
my $FORM;
|
||||
$FORM = $_[0];
|
||||
$FORM->param("grp", $GET->param("selsn"))
|
||||
if defined $GET->param("selsn")
|
||||
&& check_sn_in ${$GET->param_fetch("selsn")}[0], "groups";
|
||||
return;
|
||||
}
|
||||
40
htdocs/wov/magicat/cgi-bin/test.cgi
Executable file
@@ -0,0 +1,40 @@
|
||||
#! /usr/bin/perl -w
|
||||
# Woman's Voice
|
||||
# test.cgi: The test script.
|
||||
|
||||
# Copyright (c) 2004-2021 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-11-02
|
||||
|
||||
use 5.008;
|
||||
use utf8;
|
||||
use strict;
|
||||
use warnings;
|
||||
use lib $ENV{"DOCUMENT_ROOT"} . qw(/magicat/lib/perl5);
|
||||
use Selima::wov;
|
||||
local $SIG{"__DIE__"} = \&http_500;
|
||||
my $r = shift;
|
||||
my $d = new Selima::Destroy;
|
||||
# Prototype declaration
|
||||
use Time::HiRes qw();
|
||||
initenv;
|
||||
$CONTENT_TYPE = "text/plain";
|
||||
|
||||
|
||||
printf "[%s] Done. %0.10f seconds elapsed.\n",
|
||||
fmttime, Time::HiRes::time-$T_START;
|
||||
exit 0;
|
||||
no utf8;
|
||||
236
htdocs/wov/magicat/cgi-bin/usermem.cgi
Executable file
@@ -0,0 +1,236 @@
|
||||
#! /usr/bin/perl -w
|
||||
# Woman's Voice
|
||||
# usermem.cgi: The user-to-group membership administration.
|
||||
|
||||
# Copyright (c) 2004-2021 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
|
||||
|
||||
use 5.008;
|
||||
use strict;
|
||||
use warnings;
|
||||
use lib $ENV{"DOCUMENT_ROOT"} . qw(/magicat/lib/perl5);
|
||||
use Selima::wov;
|
||||
local $SIG{"__DIE__"} = \&http_500;
|
||||
my $d = new Selima::Destroy;
|
||||
# Prototype declaration
|
||||
sub main();
|
||||
sub check_get();
|
||||
sub check_post();
|
||||
sub html_page($);
|
||||
sub fetch_curitem();
|
||||
sub import_selgrp($);
|
||||
sub import_selmember($);
|
||||
|
||||
initenv(-restricted => 1,
|
||||
-this_table => "usermem",
|
||||
-dbi_lock => {"usermem" => LOCK_EX,
|
||||
"groups" => LOCK_SH,
|
||||
"users AS usrmembers" => LOCK_SH},
|
||||
-lastmod => 1,
|
||||
-page_param => {"keywords" => N_("user membership")});
|
||||
|
||||
main;
|
||||
exit 0;
|
||||
|
||||
sub main() {
|
||||
local ($_, %_);
|
||||
my ($error, $success, $processor);
|
||||
|
||||
# If the request is a GET query
|
||||
if ($ENV{"REQUEST_METHOD"} ne "POST") {
|
||||
$error = check_get;
|
||||
# If an error occurs
|
||||
if (defined $error) {
|
||||
html_page $error;
|
||||
|
||||
# Display the page
|
||||
} else {
|
||||
html_page retrieve_status;
|
||||
}
|
||||
|
||||
# If a form was POSTed from the client
|
||||
} else {
|
||||
$error = check_post;
|
||||
# If an error occurs
|
||||
if (defined $error) {
|
||||
error_redirect $error;
|
||||
|
||||
# Else, save the data
|
||||
} else {
|
||||
$processor = new Selima::Processor::UserMem($POST);
|
||||
$success = $processor->process;
|
||||
success_redirect $success;
|
||||
}
|
||||
}
|
||||
return;
|
||||
}
|
||||
|
||||
# check_get: Check the GET arguments
|
||||
sub check_get() {
|
||||
local ($_, %_);
|
||||
my $error;
|
||||
|
||||
# A form is requested
|
||||
if (is_form) {
|
||||
$_ = form_type;
|
||||
# A form to create a new item
|
||||
if ($_ eq "new") {
|
||||
# Nothing to check on a new form
|
||||
|
||||
# A form to edit a current item
|
||||
} elsif ($_ eq "cur") {
|
||||
# Check at fetch_curitem()
|
||||
$error = fetch_curitem;
|
||||
return $error if defined $error;
|
||||
|
||||
# A form to delete a current item
|
||||
} elsif ($_ eq "del") {
|
||||
# Check at fetch_curitem()
|
||||
$error = fetch_curitem;
|
||||
return $error if defined $error;
|
||||
|
||||
# Not a valid form
|
||||
} else {
|
||||
return {"msg"=>N_("Incorrect form: [_1]."),
|
||||
"margs"=>[$_],
|
||||
"isform"=>0};
|
||||
}
|
||||
}
|
||||
# List handler handles its own error
|
||||
# OK
|
||||
return;
|
||||
}
|
||||
|
||||
# check_post: Check the POSTed form
|
||||
sub check_post() {
|
||||
local ($_, %_);
|
||||
my ($checker, $error);
|
||||
$_ = form_type;
|
||||
# A form to create a new item
|
||||
if ($_ eq "new") {
|
||||
# Run the checker
|
||||
$checker = new Selima::Checker::UserMem(curform);
|
||||
$checker->redir(qw(selgrp delgrp selmember delmember));
|
||||
$error = $checker->check(qw(grp member));
|
||||
return $error if defined $error;
|
||||
|
||||
# A form to edit a current item
|
||||
} elsif ($_ eq "cur") {
|
||||
# Check at fetch_curitem()
|
||||
$error = fetch_curitem;
|
||||
return $error if defined $error;
|
||||
# Run the checker
|
||||
$checker = new Selima::Checker::UserMem(curform);
|
||||
$checker->redir(qw(del selgrp delgrp selmember delmember));
|
||||
$error = $checker->check(qw(grp member));
|
||||
return $error if defined $error;
|
||||
|
||||
# A form to delete a current item
|
||||
} elsif ($_ eq "del") {
|
||||
# Check at fetch_curitem()
|
||||
$error = fetch_curitem;
|
||||
return $error if defined $error;;
|
||||
# Run the checker
|
||||
$checker = new Selima::Checker::UserMem(curform);
|
||||
$checker->redir(qw(cancel));
|
||||
|
||||
# Not a valid form
|
||||
} else {
|
||||
return {"msg"=>N_("Incorrect form: [_1]."),
|
||||
"margs"=>[$_],
|
||||
"isform"=>0};
|
||||
}
|
||||
# OK
|
||||
return;
|
||||
}
|
||||
|
||||
# html_page: Display the page
|
||||
sub html_page($) {
|
||||
local ($_, %_);
|
||||
my ($status, $LIST, $FORM);
|
||||
$status = $_[0];
|
||||
# A form is requested
|
||||
if (is_form $status) {
|
||||
$FORM = new Selima::Form::UserMem($status);
|
||||
html_header $FORM->{"title"};
|
||||
html_errmsg $status;
|
||||
$FORM->html;
|
||||
html_footer;
|
||||
|
||||
# List the available items
|
||||
} else {
|
||||
$LIST = new Selima::List::UserMem;
|
||||
html_header $LIST->{"title"}, undef, $LIST->page_param;
|
||||
html_errmsg $status;
|
||||
$LIST->html;
|
||||
html_footer;
|
||||
}
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
##################################
|
||||
# Subroutines to manage the data #
|
||||
##################################
|
||||
# fetch_curitem: Fetch the current item
|
||||
sub fetch_curitem() {
|
||||
local ($_, %_);
|
||||
my ($sn, $FORM);
|
||||
|
||||
# Return if fetched before
|
||||
return if scalar(keys %CURRENT) > 0;
|
||||
|
||||
# Obtain the current form
|
||||
$FORM = curform;
|
||||
# No item specified
|
||||
return {"msg"=>N_("Please select the membership record."),
|
||||
"isform"=>0}
|
||||
if !defined $FORM->param("sn");
|
||||
$sn = $FORM->param("sn");
|
||||
|
||||
# Find the record
|
||||
%CURRENT = fetchrec $sn, $THIS_TABLE;
|
||||
# If this record exist
|
||||
return {"msg"=>N_("This membership record does not exist anymore. Please select another one."),
|
||||
"isform"=>0}
|
||||
if scalar(keys %CURRENT) == 0;
|
||||
|
||||
# OK
|
||||
return;
|
||||
}
|
||||
|
||||
# import_selgrp: Import the selected group into the retrieved form
|
||||
sub import_selgrp($) {
|
||||
local ($_, %_);
|
||||
my $FORM;
|
||||
$FORM = $_[0];
|
||||
$FORM->param("grp", $GET->param("selsn"))
|
||||
if defined $GET->param("selsn")
|
||||
&& check_sn_in ${$GET->param_fetch("selsn")}[0], "groups";
|
||||
return;
|
||||
}
|
||||
|
||||
# import_selmember: Import the selected user into the retrieved form
|
||||
sub import_selmember($) {
|
||||
local ($_, %_);
|
||||
my $FORM;
|
||||
$FORM = $_[0];
|
||||
$FORM->param("member", $GET->param("selsn"))
|
||||
if defined $GET->param("selsn")
|
||||
&& check_sn_in ${$GET->param_fetch("selsn")}[0], "users AS usrmembers";
|
||||
return $FORM;
|
||||
}
|
||||
225
htdocs/wov/magicat/cgi-bin/userpref.cgi
Executable file
@@ -0,0 +1,225 @@
|
||||
#! /usr/bin/perl -w
|
||||
# Woman's Voice
|
||||
# userpref.cgi: The user preference administration.
|
||||
|
||||
# Copyright (c) 2004-2021 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
|
||||
|
||||
use 5.008;
|
||||
use strict;
|
||||
use warnings;
|
||||
use lib $ENV{"DOCUMENT_ROOT"} . qw(/magicat/lib/perl5);
|
||||
use Selima::wov;
|
||||
local $SIG{"__DIE__"} = \&http_500;
|
||||
my $d = new Selima::Destroy;
|
||||
# Prototype declaration
|
||||
sub main();
|
||||
sub check_get();
|
||||
sub check_post();
|
||||
sub html_page($);
|
||||
sub fetch_curitem();
|
||||
sub import_selusr($);
|
||||
|
||||
initenv(-restricted => 1,
|
||||
-this_table => "userpref",
|
||||
-dbi_lock => {"userpref" => LOCK_EX,
|
||||
"users" => LOCK_SH},
|
||||
-lastmod => 1,
|
||||
-page_param => {"keywords" => N_("user preference")});
|
||||
|
||||
main;
|
||||
exit 0;
|
||||
|
||||
sub main() {
|
||||
local ($_, %_);
|
||||
my ($error, $success, $processor);
|
||||
|
||||
# If the request is a GET query
|
||||
if ($ENV{"REQUEST_METHOD"} ne "POST") {
|
||||
$error = check_get;
|
||||
# If an error occurs
|
||||
if (defined $error) {
|
||||
html_page $error;
|
||||
|
||||
# Display the page
|
||||
} else {
|
||||
html_page retrieve_status;
|
||||
}
|
||||
|
||||
# If a form was POSTed from the client
|
||||
} else {
|
||||
$error = check_post;
|
||||
# If an error occurs
|
||||
if (defined $error) {
|
||||
error_redirect $error;
|
||||
|
||||
# Else, save the data
|
||||
} else {
|
||||
$processor = new Selima::Processor::UserPref($POST);
|
||||
$success = $processor->process;
|
||||
success_redirect $success;
|
||||
}
|
||||
}
|
||||
return;
|
||||
}
|
||||
|
||||
# check_get: Check the GET arguments
|
||||
sub check_get() {
|
||||
local ($_, %_);
|
||||
my $error;
|
||||
|
||||
# A form is requested
|
||||
if (is_form) {
|
||||
$_ = form_type;
|
||||
# A form to create a new item
|
||||
if ($_ eq "new") {
|
||||
# Nothing to check on a new form
|
||||
|
||||
# A form to edit a current item
|
||||
} elsif ($_ eq "cur") {
|
||||
# Check at fetch_curitem()
|
||||
$error = fetch_curitem;
|
||||
return $error if defined $error;
|
||||
|
||||
# A form to delete a current item
|
||||
} elsif ($_ eq "del") {
|
||||
# Check at fetch_curitem()
|
||||
$error = fetch_curitem;
|
||||
return $error if defined $error;
|
||||
|
||||
# Not a valid form
|
||||
} else {
|
||||
return {"msg"=>N_("Incorrect form: [_1]."),
|
||||
"margs"=>[$_],
|
||||
"isform"=>0};
|
||||
}
|
||||
}
|
||||
# List handler handles its own error
|
||||
# OK
|
||||
return;
|
||||
}
|
||||
|
||||
# check_post: Check the POSTed form
|
||||
sub check_post() {
|
||||
local ($_, %_);
|
||||
my ($checker, $error);
|
||||
$_ = form_type;
|
||||
# A form to create a new item
|
||||
if ($_ eq "new") {
|
||||
# Run the checker
|
||||
$checker = new Selima::Checker::UserPref(curform);
|
||||
$checker->redir(qw(selusr delusr));
|
||||
$error = $checker->check(qw(usr domain name value));
|
||||
return $error if defined $error;
|
||||
|
||||
# A form to edit a current item
|
||||
} elsif ($_ eq "cur") {
|
||||
# Check at fetch_curitem()
|
||||
$error = fetch_curitem;
|
||||
return $error if defined $error;
|
||||
# Run the checker
|
||||
$checker = new Selima::Checker::UserPref(curform);
|
||||
$checker->redir(qw(del selusr delusr));
|
||||
$error = $checker->check(qw(usr domain name value));
|
||||
return $error if defined $error;
|
||||
|
||||
# A form to delete a current item
|
||||
} elsif ($_ eq "del") {
|
||||
# Check at fetch_curitem()
|
||||
$error = fetch_curitem;
|
||||
return $error if defined $error;;
|
||||
# Run the checker
|
||||
$checker = new Selima::Checker::UserPref(curform);
|
||||
$checker->redir(qw(cancel));
|
||||
|
||||
# Not a valid form
|
||||
} else {
|
||||
return {"msg"=>N_("Incorrect form: [_1]."),
|
||||
"margs"=>[$_],
|
||||
"isform"=>0};
|
||||
}
|
||||
# OK
|
||||
return;
|
||||
}
|
||||
|
||||
# html_page: Display the page
|
||||
sub html_page($) {
|
||||
local ($_, %_);
|
||||
my ($status, $LIST, $FORM);
|
||||
$status = $_[0];
|
||||
# A form is requested
|
||||
if (is_form $status) {
|
||||
$FORM = new Selima::Form::UserPref($status);
|
||||
html_header $FORM->{"title"};
|
||||
html_errmsg $status;
|
||||
$FORM->html;
|
||||
html_footer;
|
||||
|
||||
# List the available items
|
||||
} else {
|
||||
$LIST = new Selima::List::UserPref;
|
||||
html_header $LIST->{"title"}, undef, $LIST->page_param;
|
||||
html_errmsg $status;
|
||||
$LIST->html;
|
||||
html_footer;
|
||||
}
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
##################################
|
||||
# Subroutines to manage the data #
|
||||
##################################
|
||||
# fetch_curitem: Fetch the current item
|
||||
sub fetch_curitem() {
|
||||
local ($_, %_);
|
||||
my ($sn, $FORM);
|
||||
|
||||
# Return if fetched before
|
||||
return if scalar(keys %CURRENT) > 0;
|
||||
|
||||
# Obtain the current form
|
||||
$FORM = curform;
|
||||
# No item specified
|
||||
return {"msg"=>N_("Please select the user preference."),
|
||||
"isform"=>0}
|
||||
if !defined $FORM->param("sn");
|
||||
$sn = $FORM->param("sn");
|
||||
|
||||
# Find the record
|
||||
%CURRENT = fetchrec $sn, $THIS_TABLE;
|
||||
# If this record exist
|
||||
return {"msg"=>N_("This user preference does not exist anymore. Please select another one."),
|
||||
"isform"=>0}
|
||||
if scalar(keys %CURRENT) == 0;
|
||||
|
||||
# OK
|
||||
return;
|
||||
}
|
||||
|
||||
# import_selusr: Import the selected user into the retrieved form
|
||||
sub import_selusr($) {
|
||||
local ($_, %_);
|
||||
my $FORM;
|
||||
$FORM = $_[0];
|
||||
if ( defined $GET->param("selsn")
|
||||
&& check_sn_in ${$GET->param_fetch("selsn")}[0], "users") {
|
||||
$FORM->param("usr", $GET->param("selsn"));
|
||||
$FORM->param("everyone", "false");
|
||||
}
|
||||
return;
|
||||
}
|
||||
273
htdocs/wov/magicat/cgi-bin/users.cgi
Executable file
@@ -0,0 +1,273 @@
|
||||
#! /usr/bin/perl -w
|
||||
# Woman's Voice
|
||||
# users.cgi: The user account administration.
|
||||
|
||||
# Copyright (c) 2004-2021 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
|
||||
|
||||
use 5.008;
|
||||
use strict;
|
||||
use warnings;
|
||||
use lib $ENV{"DOCUMENT_ROOT"} . qw(/magicat/lib/perl5);
|
||||
use Selima::wov;
|
||||
local $SIG{"__DIE__"} = \&http_500;
|
||||
my $d = new Selima::Destroy;
|
||||
# Prototype declaration
|
||||
sub main();
|
||||
sub check_get();
|
||||
sub check_post();
|
||||
sub html_page($);
|
||||
sub fetch_curitem();
|
||||
|
||||
initenv(-this_table => "users",
|
||||
-dbi_lock => {"users" => LOCK_EX,
|
||||
"usermem" => LOCK_EX,
|
||||
"userpref" => LOCK_EX,
|
||||
"groupmem" => LOCK_SH,
|
||||
"groups" => LOCK_SH},
|
||||
-lastmod => 1,
|
||||
-page_param => {"keywords" => N_("users")});
|
||||
|
||||
main;
|
||||
exit 0;
|
||||
|
||||
sub main() {
|
||||
local ($_, %_);
|
||||
my ($error, $success, $processor);
|
||||
|
||||
# If the request is a GET query
|
||||
if ($ENV{"REQUEST_METHOD"} ne "POST") {
|
||||
$error = check_get;
|
||||
# If an error occurs
|
||||
if (defined $error) {
|
||||
html_page $error;
|
||||
|
||||
# Display the page
|
||||
} else {
|
||||
html_page retrieve_status;
|
||||
}
|
||||
|
||||
# If a form was POSTed from the client
|
||||
} else {
|
||||
$error = check_post;
|
||||
# If an error occurs
|
||||
if (defined $error) {
|
||||
# Password not saved
|
||||
$POST->delete("passwd", "passwd2");
|
||||
error_redirect $error;
|
||||
|
||||
# Else, save the data
|
||||
} else {
|
||||
$processor = new Selima::Processor::User($POST);
|
||||
$success = $processor->process;
|
||||
# Password not saved
|
||||
$POST->delete("passwd", "passwd2");
|
||||
success_redirect $success;
|
||||
}
|
||||
}
|
||||
return;
|
||||
}
|
||||
|
||||
# check_get: Check the GET arguments
|
||||
sub check_get() {
|
||||
local ($_, %_);
|
||||
my ($error, $FORM, $sn);
|
||||
|
||||
# A form is requested
|
||||
if (is_form) {
|
||||
$_ = form_type;
|
||||
# A form to create a new item
|
||||
if ($_ eq "new") {
|
||||
# Check the privilege to manage this table
|
||||
unauth if !is_script_permitted;
|
||||
|
||||
# A form to edit a current item
|
||||
} elsif ($_ eq "cur") {
|
||||
# Check the privilege to manage this table
|
||||
$FORM = curform;
|
||||
$sn = defined $FORM->param("sn")? $FORM->param("sn"): -1;
|
||||
unauth unless defined get_login_sn;
|
||||
unauth unless is_script_permitted || $sn == get_login_sn;
|
||||
# Check at fetch_curitem()
|
||||
$error = fetch_curitem;
|
||||
return $error if defined $error;
|
||||
|
||||
# A form to delete a current item
|
||||
} elsif ($_ eq "del") {
|
||||
# Check the privilege to manage this table
|
||||
$FORM = curform;
|
||||
$sn = defined $FORM->param("sn")? $FORM->param("sn"): -1;
|
||||
unauth unless defined get_login_sn;
|
||||
unauth unless is_script_permitted;
|
||||
unauth if !is_su && (is_su $sn || $sn == get_login_sn);
|
||||
# Check at fetch_curitem()
|
||||
$error = fetch_curitem;
|
||||
return $error if defined $error;
|
||||
|
||||
# Not a valid form
|
||||
} else {
|
||||
# Check the privilege to manage this table
|
||||
unauth unless is_script_permitted;
|
||||
return {"msg"=>N_("Incorrect form: [_1]."),
|
||||
"margs"=>[$_],
|
||||
"isform"=>0};
|
||||
}
|
||||
|
||||
# List the available items
|
||||
} else {
|
||||
# Check the privilege to manage this table
|
||||
unauth unless is_script_permitted;
|
||||
# List handler handles its own error
|
||||
}
|
||||
# OK
|
||||
return;
|
||||
}
|
||||
|
||||
# check_post: Check the POSTed form
|
||||
sub check_post() {
|
||||
local ($_, %_);
|
||||
my ($checker, $error, $FORM, $sn);
|
||||
$_ = form_type;
|
||||
# A form to create a new item
|
||||
if ($_ eq "new") {
|
||||
# Check the privilege to manage this table
|
||||
unauth unless is_script_permitted;
|
||||
# Run the checker
|
||||
$checker = new Selima::Checker::User(curform);
|
||||
$error = $checker->check(qw(id passwd name supgroup));
|
||||
return $error if defined $error;
|
||||
|
||||
# A form to edit a current item
|
||||
} elsif ($_ eq "cur") {
|
||||
# Check the privilege to manage this table
|
||||
$FORM = curform;
|
||||
$sn = defined $FORM->param("sn")? $FORM->param("sn"): -1;
|
||||
unauth unless defined get_login_sn;
|
||||
unauth unless is_script_permitted || $sn == get_login_sn;
|
||||
# Check at fetch_curitem()
|
||||
$error = fetch_curitem;
|
||||
return $error if defined $error;
|
||||
# Run the checker
|
||||
$checker = new Selima::Checker::User(curform);
|
||||
$checker->redir(qw(del));
|
||||
$error = $checker->check(qw(id passwd name supgroup));
|
||||
return $error if defined $error;
|
||||
|
||||
# A form to delete a current item
|
||||
} elsif ($_ eq "del") {
|
||||
# Check the privilege to manage this table
|
||||
$FORM = curform;
|
||||
$sn = defined $FORM->param("sn")? $FORM->param("sn"): -1;
|
||||
unauth unless defined get_login_sn;
|
||||
unauth unless is_script_permitted;
|
||||
unauth if !is_su && (is_su $sn || $sn == get_login_sn);
|
||||
# Check at fetch_curitem()
|
||||
$error = fetch_curitem;
|
||||
return $error if defined $error;;
|
||||
# Run the checker
|
||||
$checker = new Selima::Checker::User(curform);
|
||||
$checker->redir(qw(cancel));
|
||||
|
||||
# Not a valid form
|
||||
} else {
|
||||
# Check the privilege to manage this table
|
||||
unauth unless is_script_permitted;
|
||||
return {"msg"=>N_("Incorrect form: [_1]."),
|
||||
"margs"=>[$_],
|
||||
"isform"=>0};
|
||||
}
|
||||
# OK
|
||||
return;
|
||||
}
|
||||
|
||||
# html_page: Display the page
|
||||
sub html_page($) {
|
||||
local ($_, %_);
|
||||
my ($status, $LIST, $FORM);
|
||||
$status = $_[0];
|
||||
# A form is requested
|
||||
if (is_form $status) {
|
||||
$FORM = new Selima::Form::User($status);
|
||||
html_header $FORM->{"title"};
|
||||
html_errmsg $status;
|
||||
$FORM->html;
|
||||
html_footer;
|
||||
|
||||
# List the available items
|
||||
} else {
|
||||
$LIST = new Selima::List::Users;
|
||||
html_header $LIST->{"title"}, undef, $LIST->page_param;
|
||||
html_errmsg $status;
|
||||
$LIST->html;
|
||||
html_footer;
|
||||
}
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
##################################
|
||||
# Subroutines to manage the data #
|
||||
##################################
|
||||
# fetch_curitem: Fetch the current item
|
||||
sub fetch_curitem() {
|
||||
local ($_, %_);
|
||||
my ($sn, $FORM, $sth, $sql, $row);
|
||||
|
||||
# Return if fetched before
|
||||
return if scalar(keys %CURRENT) > 0;
|
||||
|
||||
# Obtain the current form
|
||||
$FORM = curform;
|
||||
# No item specified
|
||||
return {"msg"=>N_("Please select the user."),
|
||||
"isform"=>0}
|
||||
if !defined $FORM->param("sn");
|
||||
$sn = $FORM->param("sn");
|
||||
|
||||
# Find the record
|
||||
%CURRENT = fetchrec $sn, $THIS_TABLE;
|
||||
# If this record exist
|
||||
return {"msg"=>N_("This user does not exist anymore. Please select another one."),
|
||||
"isform"=>0}
|
||||
if scalar(keys %CURRENT) == 0;
|
||||
|
||||
# Obtain the belonging groups list
|
||||
$sql = "SELECT groups.sn AS sn,"
|
||||
. " groups.dsc AS title FROM usermem"
|
||||
. " INNER JOIN groups ON usermem.grp=groups.sn"
|
||||
. " WHERE usermem.member=$sn"
|
||||
. " AND groups.id!=" . $DBH->quote(SU_GROUP)
|
||||
. " AND groups.id!=" . $DBH->quote(ADMIN_GROUP)
|
||||
. " AND groups.id!=" . $DBH->quote(ALLUSERS_GROUP)
|
||||
. " ORDER BY groups.id;\n";
|
||||
$sth = $DBH->prepare($sql);
|
||||
$sth->execute;
|
||||
$CURRENT{"supgroupcount"} = $sth->rows;
|
||||
for ($_ = 0; $_ < $CURRENT{"supgroupcount"}; $_++) {
|
||||
$row = $sth->fetchrow_hashref;
|
||||
$CURRENT{"supgroup$_"} = 1;
|
||||
$CURRENT{"supgroup$_" . "sn"} = $$row{"sn"};
|
||||
$CURRENT{"supgroup$_" . "title"} = $$row{"title"};
|
||||
}
|
||||
|
||||
# Get the admin flag
|
||||
$CURRENT{"admin"} = is_admin($sn);
|
||||
$CURRENT{"su"} = is_su($sn);
|
||||
|
||||
# OK
|
||||
return;
|
||||
}
|
||||
1
htdocs/wov/magicat/data/counter.dat
Normal file
@@ -0,0 +1 @@
|
||||
167372
|
||||