#!/usr/bin/perl

##################################################################
# 诗歌报文章管理系统 编写:小鱼儿(诗歌报)                              #
# ============================================================== #
# Copyright (c) 2001-2002 Xiaoran Studio - All Rights Reserved.  #
##################################################################

BEGIN {
	$CGIPATH = '.';
	my $pgm = $0;
	$pgm =~ s/\\/\//g;
	$pgm =~ s/^.*\/([^\/]+)$/$1/g;
	unless (-e $CGIPATH . '/' . $pgm) {
		foreach ($0, $ENV{'SCRIPT_FILENAME'}, $ENV{'PATH_TRANSLATED'}) {
			s!\\!/!g; s/^(.*)\/[^\/]+$/$1/g;
			if (-e $_ . '/' . $pgm) { $CGIPATH = $_; last; }
		}
	}
	unshift (@INC, "$CGIPATH");
}

use XRBASE;
require "config/settings.cgi";
require "data/order.cgi";

print "Content-type: text/html\n\n";

my $BUFFER;
my @DATAPAIRS;
my $PAIR;
if ($ENV{'REQUEST_METHOD'} eq "POST") {
	read(STDIN, $BUFFER, $ENV{'CONTENT_LENGTH'});
	@DATAPAIRS = split(/\&/, $BUFFER);
} else {
	$BUFFER = $ENV{'QUERY_STRING'};
	@DATAPAIRS = split(/\;/, $BUFFER);
}
foreach $PAIR (@DATAPAIRS) {
   my ($name, $value) = split(/=/, $PAIR);
   $value =~tr/+/ /;
   $value =~s/%([a-fA-f0-9][a-fA-f0-9])/pack("C", hex($1))/eg;
   $form{"$name"} = $value;
}

my $id      = $form{'id'};
my $classid = $form{'class'};

$id      =~ s/[^0-9]//g;
$classid =~ s/[^A-Za-z0-9\_]//g;

&no_output('未指定ID或未找到此栏目。') unless(defined $id) or (-e "$path_cgi/categories/classes/$classid.cgi");

my %article;
my $obj = tie %article, 'XRBASE',
	DIRECTORY => "$path_cgi/classes/$classid",
	SUFIX     => '.pl',
	LOCK      => 1,
	READONLY  => 0,
	FILEMODE  => 0777,
	SCHEMA   => { 
		ORDER => [@ord_article]
	};

&no_output('文章ID未找到。') unless(exists $article{"$id"});

my $count = $article{"$id"}{'count'};
$article{"$id"}{'count'} ++;
$obj -> sync();

$count ++;
print qq~document.write('$count');~;
exit;

sub no_output {
	my $msg = shift;
	print qq~document.write('<!--$msg-->');~;
	exit;
}