#!/usr/bin/perl
# $Id: search.cgi,v 2.0 2004/03/14 11:12:27 naohito Exp $
#
# JPS イベント検索スクリプト 検索部
# http://planetarium.jp
#
# スクリプト開発: 福原直人 (http://news.local-group.jp/)
# JPS用に改変:渡部義弥 (http://planetarium.jp/
# 2005 年火星用にさらに改変:渡部義弥 (http://planetarium.jp/
$datafile = 'mars2005.csv';
@regiontable = (
'全て',
'北海道',
'東北',
'関東',
'中部',
'近畿',
'中国',
'四国',
'九州'
);
@areatable = (
'全て',
'北海道',
'青森県',
'岩手県',
'秋田県',
'山形県',
'宮城県',
'福島県',
'栃木県',
'埼玉県',
'茨城県',
'群馬県',
'千葉県',
'東京都',
'神奈川県',
'新潟県',
'富山県',
'長野県',
'山梨県',
'静岡県',
'石川県',
'岐阜県',
'愛知県',
'福井県',
'滋賀県',
'三重県',
'京都府',
'大阪府',
'奈良県',
'和歌山県',
'兵庫県',
'鳥取県',
'岡山県',
'島根県',
'広島県',
'山口県',
'徳島県',
'愛媛県',
'香川県',
'高知県',
'福岡県',
'大分県',
'佐賀県',
'長崎県',
'熊本県',
'宮崎県',
'鹿児島県',
'沖縄県'
);
@categorytable = (
'全て',
'プラネタリウム',
'天体観望会',
'講座・教室',
'講演会',
'展示',
'その他'
);
sub sanitize {
local ($item) = @_;
$item =~ s/&/&/g;
$item =~ s/"/"/g;
$item =~ s/</g;
$item =~ s/>/>/g;
return $item;
}
require 'jcode.pl';
use CGI;
$cgi = new CGI;
@selectedRegion = $cgi->param("region");
@selectedArea = $cgi->param("area");
$selectedCategory = $cgi->param('category');
$selectedTime = $cgi->param('time');
$startTimeYY = $cgi->param('startyear');
$startTimeMM = $cgi->param('startmonth');
$startTimeDD = $cgi->param('startday');
$endTimeYY = $cgi->param('endyear');
$endTimeMM = $cgi->param('endmonth');
$endTimeDD = $cgi->param('endday');
$selectedStartTime = "$startTimeYY$startTimeMM$startTimeDD";
$selectedEndTime = "$endTimeYY$endTimeMM$endTimeDD";
$sbmt = $cgi->param('submit');
if ($sbmt eq ''){
my ($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst) = localtime(time);
$mon++;
$year += 1900;
$startTimeYY = sprintf("%04d", $year);
$startTimeMM = sprintf("%02d", $mon);
$startTimeDD = sprintf("%02d", $mday);
}
$regionlist = '';
foreach $item (@regiontable){
if (grep (/$item/, @selectedRegion)){
$regionlist .= qq|\n|;
} else {
$regionlist .= qq|\n|;
}
}
$arealist = '';
foreach $item (@areatable){
if (grep (/$item/, @selectedArea)){
$arealist .= qq|\n|;
} else {
$arealist .= qq|\n|;
}
}
$categorylist = '';
foreach $item (@categorytable){
if ($item eq $selectedCategory){
$categorylist .= "\n";
} else {
$categorylist .= "\n";
}
}
if ($startTimeYY eq '0000'){
$startYYlist = qq|\n|;
} else {
$startYYlist = qq|\n|;
}
for($i=2005; $i<2005; $i++){
$year = sprintf("%04d", $i);
if ($startTimeYY eq $year){
$startYYlist .= "\n";
} else {
$startYYlist .= "\n";
}
}
if ($startTimeMM eq '00'){
$startMMlist = qq|\n|;
} else {
$startMMlist = qq|\n|;
}
for($i=9; $i<13; $i++){
$month = sprintf("%02d", $i);
if ($startTimeMM eq $month){
$startMMlist .= "\n";
} else {
$startMMlist .= "\n";
}
}
if ($startTimeDD eq '00'){
$startDDlist = qq|\n|;
} else {
$startDDlist = qq|\n|;
}
for($i=1; $i<32; $i++){
$day = sprintf("%02d", $i);
if ($startTimeDD eq $day){
$startDDlist .= "\n";
} else {
$startDDlist .= "\n";
}
}
if ($endTimeYY eq '9999'){
$endYYlist = qq|\n|;
} else {
$endYYlist = qq|\n|;
}
for($i=2005; $i<2005; $i++){
$year = sprintf("%04d", $i);
if ($endTimeYY eq $year){
$endYYlist .= "\n";
} else {
$endYYlist .= "\n";
}
}
if ($endTimeMM eq '99'){
$endMMlist = qq|\n|;
} else {
$endMMlist = qq|\n|;
}
for($i=9; $i<13; $i++){
$month = sprintf("%02d", $i);
if ($endTimeMM eq $month){
$endMMlist .= "\n";
} else {
$endMMlist .= "\n";
}
}
if ($endTimeDD eq '99'){
$endDDlist = qq|\n|;
} else {
$endDDlist = qq|\n|;
}
for($i=1; $i<32; $i++){
$day = sprintf("%02d", $i);
if ($endTimeDD eq $day){
$endDDlist .= "\n";
} else {
$endDDlist .= "\n";
}
}
#### ヘッダ出力 #####
print <2005年火星接近関連プラネタリウム・観望会・イベント検索
EOF
#### 検索フォーム出力 ####
print <
タイトルをクリックすると各イベントの詳細な情報が表示されます。
イベントへの参加にあたっては、主催者に電話等でご確認ください。
| ジャンル | タイトル | 日程 | 会場 | $category | $title | $date | $kaijo{'name'} $area$kaijo{'address'} |
EOF
}
$id++;
}
}
if ($count eq ''){
$msg = q|
|;
} elsif ($count == 0){
$msg = '