#!/usr/bin/perl #※※※※※※※※※※※※※※※# # 名古屋芸術大学同窓会 メインCGI # #※※※※※※※※※※※※※※※# ### ライブラリ require 'com_def.cgi'; ### スクリプト名 $THIS_CGI = './main.cgi'; ### メインルーチン &main; sub main { # データベース初期化 &error('データベースの初期化に失敗しました') if &SDB_Initialize($DB_DATABASE) != $SDB_ERR_OK; # パラメータ取得 &ReadParse; # モード別処理 my($html); if( $in{MODE} eq 'NEWS'){ $html = &HTML_News; }elsif( $in{MODE} eq 'BACKNUMBER'){ $html = &HTML_BackNumber; }else{ $html = &HTML_TopPage; } # HTML出力 &OutputHTML($html); # 正常終了 exit(0); } ### エラーメッセージ出力 sub error { # メッセージ取得 my($message) = @_; # HTML作成 my($html) = &ReadTemplate($TMPL_MAIN_ERROR); # メッセージ作成 my($err) = '

'.$message.'
'; # キーワード置換 $html =~ s//$err/g; # HTML出力 &OutputHTML($html); # 終了 exit(1); } ### TOPページHTML作成 sub HTML_TopPage { # テーブルオープン &error('テーブルのオープンに失敗しました') if &SDB_Open($TABLE_NEWS) != $SDB_ERR_OK || &SDB_Open($TABLE_EVENT) != $SDB_ERR_OK; # NEWS HTML作成 my($news_back) = ''; $news_back = $THIS_CGI.'?MODE=BACKNUMBER'; my($news) = ''; $news .= ' '; while(&SDB_Select($TABLE_NEWS, \%data, &SDB_Query("NEW", "eq", "1")) == $SDB_ERR_OK){ $news .= ' '; } $news .= '
'.&PrintDate($data{START_DATE}, $data{END_DATE}, "/").' '.&FormatHTML(&Trim($data{TITLE})).'
'.&FormatHTML(&Trim($data{SUB_TITLE})).'
'; # EVENTS HTML作成 my($event) = ''; $event .= ' '; while(&SDB_Select($TABLE_EVENT, \%data, &SDB_Query(("STATE", "ne", ""), ("UPDATE_ID", "eq", ""))) == $SDB_ERR_OK){ next if $data{START_DATE} < $NOW_DATE && $data{END_DATE} < $NOW_DATE; $event .= ' '; } $event .= '
'.&PrintDate($data{START_DATE}, $data{END_DATE}, "/").' '.&FormatHTML(&Trim($data{TITLE})).'
'; # HTML作成 my($html) = &ReadTemplate($TMPL_MAIN_TOPPAGE); # テーブルクローズ &error('テーブルのクローズに失敗しました') if &SDB_Close($TABLE_NEWS) != $SDB_ERR_OK || &SDB_Close($TABLE_EVENT) != $SDB_ERR_OK; # キーワード置換 $html =~ s//$news_back/g; $html =~ s//$news/g; $html =~ s//$event/g; return($html); } ### NewsページHTML作成 sub HTML_News { # テーブル名取得 my($table)= $TABLE_NEWS; # テーブルオープン &error('テーブルのオープンに失敗しました') if &SDB_Open($table) != $SDB_ERR_OK; # データ取得 my(%data); &error('ニュースデータの取得に失敗しました') if &SDB_Select($table, \%data, &SDB_Query("ID", "eq", $in{ID})) != $SDB_ERR_OK; # テーブルクローズ &error('テーブルのクローズに失敗しました') if &SDB_Close($table) != $SDB_ERR_OK; # HTML作成 my($html) = &ReadTemplate($TMPL_MAIN_NEWS); # NEWS作成 my($news) = ''; $news .= '
'.&PrintDate($data{START_DATE}, $data{END_DATE}, "/").'
'.&FormatHTML(&Trim($data{TITLE})).'
'.&FormatHTML(&Trim($data{TEXT})).'

'; $news .= '' if &Trim($data{LINK_URL}) ne ''; $news .= &FormatHTML(&Trim($data{LINK_TITLE})); $news .= '' if &Trim($data{LINK_URL}) ne ''; $news .= '
'; # 画像1〜4 $news .= '' if &Trim($data{IMAGE_FILE1}) ne ''; $news .= '' if &Trim($data{IMAGE_FILE2}) ne ''; $news .= '' if &Trim($data{IMAGE_FILE3}) ne ''; $news .= '' if &Trim($data{IMAGE_FILE4}) ne ''; $news .= '
'.&FormatHTML(&Trim($data{IMAGE_CAPTION1})).'
'.&FormatHTML(&Trim($data{IMAGE_CAPTION2})).'
'.&FormatHTML(&Trim($data{IMAGE_CAPTION3})).'
'.&FormatHTML(&Trim($data{IMAGE_CAPTION4})).'
'; # キーワード置換 $html =~ s//$news/g; return($html); } ### BackNumberページHTML作成 sub HTML_BackNumber { # テーブル名取得 my($table) = $TABLE_NEWS; # テーブルオープン &error('テーブルのオープンに失敗しました') if &SDB_Open($table) != $SDB_ERR_OK; # HTML作成 my($html) = &ReadTemplate($TMPL_MAIN_BACK); my($back) = ''; $back .= ' '; my(%data); while(&SDB_Select($table, \%data, &SDB_Query("NEW", "ne", "1")) == $SDB_ERR_OK){ $back .= ' '; } $back .= '
'.&PrintDate($data{START_DATE}, $data{END_DATE}, "/").' '.&FormatHTML(&Trim($data{TITLE})).'
'.&FormatHTML(&Trim($data{SUB_TITLE})).'
'; # テーブルクローズ &error('テーブルのクローズに失敗しました') if &SDB_Close($table) != $SDB_ERR_OK; # キーワード置換 $html =~ s//$back/g; return($html); }