#!/usr/bin/perl -I./guest/news -I./ppublic -I../public
#
# [ showtop.cgi ]
#
# Programmed by Yoshinori Shinoda
# Computer for WWW Server System
# Language of Perl
#
# DATE : 2001.06.12
# DATE : 2001.11.22
# DATE : 2001.11.28
# DATE : 2002.09.10
#
# Copyright (C) 2001-2002 Patentic Software Co.,Ltd. All rights reserved.
chdir('../..');
require '__gconfig.ph';
require '__lconfig.ph';
require 'cgi-lib.pl';
require 'jcode.pl';
require 'ps_parse.ph';
require 'ps_csv.ph';
require '__makepage.ph';
# ユーザー リソースかどうかをチェックするオプション
%NEWSCHKUSER =
(
'URLBODY' => 0
);
#
# 実行
#
&main();
#
# メイン・ルーチン
#
sub main
{
local(@data);
local(@grp);
local(@html);
local(@sysval);
#DEBUG IKEDA
#print "content-type: text/html\n\n";
# CGI環境変数を解析する。
&ReadParse(*in);
# 漢字コードを変換する。
return $FALSE if (&ConvKanjiCodeEx(*in, 'euc') == $FALSE);
# 設定値を読み込む。
return $FALSE if (&ReadSettings(*in, *sysval, 0, '') == $FALSE);
# HTMLを作成する。
@html = &MakeBody(*in);
# 20091102 SHINODA
&DisplayHTML_utf8(\@html);
#&DisplayHTML(*html);
# 20091102 SHINODA
return $TRUE;
}
#
# トップページを作成する。
#
sub MakeBody
{
local(*in) = @_;
local($ccode);
local(@news);
local($ncode, $sdate, $edate, $title, $link, $body, $ttype, $btype, $image, $detail);
local($temp);
local(@icon);
#===========================================================================
# 20020314 Ikeda ダウンロードファイル表示機能追加
local($download);
local($download_icon);
local($icn);
#===========================================================================
# 20020314 Ikeda
#===========================================================================
my($icode);
my($xdate) ;
# 20011128 SHINODA 本文タイトルを追加
my($btitle, $bttype);
# 20011128 SHINODA
# 20021224 SHINODA
local($bimg1);
# 20021224 SHINODA
# 20030129 SHINODA
local($bimg2, $bimg3, $bimg4, $bimg5);
# 20030129 SHINODA
# カテゴリコードを取得する。
$ccode = ($in{'CCODE'} eq '') ? 0 : $in{'CCODE'};
# カテゴリの設定を読み込む。
%in = &ReadNewsSettings(*in, $in{'CCODE'});
# 新着情報を読み込む。
# 20020911 OBATA
# タイトルの文字列のみ入力された状態と違い、複数行の入力でも一行にまとめられた状態で読み込まれる。
# また、複数行に復元するところまでその状態で保持する。
# 20020911 OBATA
@news = &LoadNews(*in, $in{'CCODE'}, $in{'NCODE'});
# 20011121 Saka アイコン表示機能追加
# アイコンファイル読み込む
@icon = &LoadCsvFile("$in{'FOLDERDB'}$in{'ICONCSV'}", 'euc');
#アイコン強制読み込み用
$xdate = "?XDATE=" . time();
$ncode = $news[$_DB_NEWS_NCODE ]; # 新着情報コード
$sdate = $news[$_DB_NEWS_SDATE ]; # 表示開始日
$edate = $news[$_DB_NEWS_EDATE ]; # 表示終了日
$title = $news[$_DB_NEWS_TITLE ]; # タイトル
$link = $news[$_DB_NEWS_LINK ]; # リンク
$body = $news[$_DB_NEWS_ISBODY]; # 本文があるか
$ttype = $news[$_DB_NEWS_TTYPE ]; # タイトルのタイプ
$btype = $news[$_DB_NEWS_BTYPE ]; # 本文のタイプ
$image = $news[$_DB_NEWS_IMAGE ]; # 画像
#===========================================================================
# 2002/03/14 Ikeda
# ダウンロードファイル表示機能追加。ファイルよりデータ取得。
$download = $news[$_DB_NEWS_DOWNLOAD ]; # ファイル
$download_icon = $news[$_DB_NEWS_DOWNLOAD ]; # ファイル
#===========================================================================
# 2002/03/14 Ikeda
#===========================================================================
# 20011128 SHINODA 本文タイトルを追加
$btitle = $news[$_DB_NEWS_BTITLE]; # 本文タイトル
$bttype = $news[$_DB_NEWS_BTTYPE]; # 本文タイトルのタイプ
# 20011128 SHINODA
# 20021224 SHINODA
$detail = &Restoration_New_Line($news[$_DB_NEWS_BODY]); # 本文
#$detail = join('', splice(@news, $_DB_NEWS_BODY)); # 本文
# 20021224 SHINODA
# 20021224 SHINODA
$bimg1 = $news[$_DB_NEWS_IMG1]; # 本文画像
# 20021224 SHINODA
# 20030129 SHINODA
$bimg2 = $news[$_DB_NEWS_IMG2]; # 本文画像2
$bimg3 = $news[$_DB_NEWS_IMG3]; # 本文画像3
$bimg4 = $news[$_DB_NEWS_IMG4]; # 本文画像4
$bimg5 = $news[$_DB_NEWS_IMG5]; # 本文画像5
# 20030129 SHINODA
# 20011128 SHINODA 本文タイトルを追加
# 本文タイトルが設定されていない場合は、本文タイトルとしてタイトルを使用する。
if ($btitle eq '')
{
$btitle = $title;
$bttype = $ttype;
}
# 20011128 SHINODA
# 本文を調整する。
if ($btype =~ /TEXT/)
{
$detail = &ToPlaneText($detail);
$detail =~ s/\n/
/g;
}
# 20011128 SHINODA 本文タイトルを調整する。
if ($bttype =~ /TEXT/)
{
# 20020910 OBATA
# 入力された状態と同じ状態に復元する。
# タイトルのタイプがテキストの場合、下の処理を行う
# テキストファイルに保存されている改行を含んだ文字列をHTMLで表示できるようにする
$btitle = &Repair_New_Line(&ToPlaneText($btitle));
#$btitle = &ToPlaneText($btitle);
#$btitle =~ s/\n/
/g;
# 20020910 OBATA
}
# 20020910 OBATA
else
{
# 入力された状態と同じ状態に復元する。
# タイトルのタイプがHTMLの場合、下の処理を行う
# テキストファイルに保存されている改行を含んだ文字列をHTMLで表示できるようにする
$btitle = &Delete_New_Line($btitle);
}
# 20020910 OBATA
# 20011128 SHINODA
# 詳細画面の雛型を読み込む。
# 20091102 SHINODA
@html = &LoadTextFile_utf8($in{'URLBODY'});
#@html = &LoadTextFile($in{'URLBODY'}, 'euc');
# 20091102 SHINODA
# 詳細画面を作成する。
&ReplaceKey(*html, '#SDATE#', $sdate);
&ReplaceKey(*html, '#EDATE#', $edate);
&ReplaceKey(*html, '#TITLE#', $title);
&ReplaceKey(*html, '#IMAGE#', $image);
# 20011121 Saka アイコン表示機能追加
#アイコンファイル名取得
$icode = &GetIconImage($news[$_DB_NEWS_ICON], *icon);
if ( $icode ne '' )
{
$temp = '';
# 20040303 SHINODA
$temp =~ s/#ICON#/$in{'FOLDERQN'}${icode}${xdate}/g;
#$temp =~ s/#ICON#/$icode$xdate/g;
# 20040303 SHINODA
}
else
{
$temp = '' ;
}
&ReplaceKey(*html, '#ICON#', $temp);
&ReplaceKey(*html, '#ICON#', "$in{'FOLDERQN'}$temp");
# 20011121 Saka
#===========================================================================
# 2002/03/14 Ikeda
# HTMLに表示できるように変換。(タイトルリンク)
if ($download ne '') {
$temp = '#TITLE#';
$temp =~ s/#FOLDERQN#/$in{'FOLDERQN'}/g;
$temp =~ s/#DLDATA#/$download/g;
$temp =~ s/#TITLE#/ $news[$_DB_NEWS_TITLE]/g;
$download = $temp;
}
#===========================================================================
# 2002/03/14 Ikeda
# HTMLに表示できるように変換。(アイコンリンク)
if ($icode ne '') {
if ($download_icon ne '') {
$temp = '';
$temp =~ s/#FOLDERQN#/$in{'FOLDERQN'}/g;
$temp =~ s/#DLDATA#/$download_icon/g;
$temp =~ s/#DLICON#/$in{'FOLDERQN'}$icode/g;
$download_icon = $temp;
}
}
else{
$download_icon = '';
}
#===========================================================================
# 2002/03/14 Ikeda
# #DLDATA#に[ タイトル ]を設定。
# #DLICON#に[ アイコン画像 ]を設定。
&ReplaceKey(*html, '#DLDATA#', $download);
&ReplaceKey(*html, '#DLICON#', $download_icon);
#===========================================================================
# 2002/03/14 Ikeda
#===========================================================================
# 20011128 SHINODA 本文タイトルを追加
&ReplaceKey(*html, '#BTITLE#', $btitle);
# 20011128 SHINODA
&ReplaceKey(*html, '#DSDATE#', &MakeDispDate($sdate));
&ReplaceKey(*html, '#DEDATE#', &MakeDispDate($edate));
$sdate =~ m/(....)(..)(..)/;
&ReplaceKey(*html, '#SYY#', $1);
&ReplaceKey(*html, '#SMM#', $2);
&ReplaceKey(*html, '#SDD#', $3);
$edate =~ m/(....)(..)(..)/;
&ReplaceKey(*html, '#EYY#', $1);
&ReplaceKey(*html, '#EMM#', $2);
&ReplaceKey(*html, '#EDD#', $3);
&ReplaceKey(*html, '#BODY#', $detail);
# 20021224 SHINODA
if ($bimg1 eq '') {
&ReplaceKey(*html, '#BIMG1#', '');
} else {
# 20030129 SHINODA
&ReplaceKey(*html, '#BIMG1#', "");
#&ReplaceKey(*html, '#BIMG1#', "");
# 20030129 SHINODA
}
# 20021224 SHINODA
# 20030129 SHINODA
if ($bimg2 eq '') {
&ReplaceKey(*html, '#BIMG2#', '');
} else {
&ReplaceKey(*html, '#BIMG2#', "");
}
if ($bimg3 eq '') {
&ReplaceKey(*html, '#BIMG3#', '');
} else {
&ReplaceKey(*html, '#BIMG3#', "");
}
if ($bimg4 eq '') {
&ReplaceKey(*html, '#BIMG4#', '');
} else {
&ReplaceKey(*html, '#BIMG4#', "");
}
if ($bimg5 eq '') {
&ReplaceKey(*html, '#BIMG5#', '');
} else {
&ReplaceKey(*html, '#BIMG5#', "");
}
# 20030129 SHINODA
# 20030203 SHINODA - ダウンロードアイコンを表示
&ReplaceKey(\@html, '#DLICON1#', &MakeDownloadIcon(\%in, $news[$_DB_NEWS_DOWNLOAD1], $news[$_DB_NEWS_DLICON1], \@icon));
&ReplaceKey(\@html, '#DLICON2#', &MakeDownloadIcon(\%in, $news[$_DB_NEWS_DOWNLOAD2], $news[$_DB_NEWS_DLICON2], \@icon));
&ReplaceKey(\@html, '#DLICON3#', &MakeDownloadIcon(\%in, $news[$_DB_NEWS_DOWNLOAD3], $news[$_DB_NEWS_DLICON3], \@icon));
&ReplaceKey(\@html, '#DLICON4#', &MakeDownloadIcon(\%in, $news[$_DB_NEWS_DOWNLOAD4], $news[$_DB_NEWS_DLICON4], \@icon));
&ReplaceKey(\@html, '#DLICON5#', &MakeDownloadIcon(\%in, $news[$_DB_NEWS_DOWNLOAD5], $news[$_DB_NEWS_DLICON5], \@icon));
# 20030203 SHINODA
# 20021121 SHINOAD
&ReplaceKey(*html, '#FOLDERQN#', $in{'FOLDERQN'});
&ReplaceKey(*html, '#BASEURL#', $in{'BASEURL'});
# 20021121 SHINOAD
# 20030129 SHINODA
&ReplaceKey(*html, '#XDATE#', time());
# 20030129 SHINODA
return @html;
}