#!/usr/local/bin/perl


#-------- 初期設定変数 --------
#
$THIS_APP_VERSION	= "0.1b";
$THIS_APP_NAME		= "k_news" . "$THIS_APP_VERSION";


#-- 各SCRIPTファイル --
$SCRIPT_MAIN	= "k_main01.cgi";
$SCRIPT_DETAIL	= "k_detail01.cgi";
#-- このSCRIPTファイル --
$SCRIPT			= $SCRIPT_MAIN;


#//---- 各パーミッション ----
#$PM_LIST_DIRS	= 0755;		#//LOG関連使用DIR用
#$PM_LIST_FILES	= 0606;		#//logファイル用








#---- ライブラリの読み込み ----
require './jcode.pl';

require './initGlobal01.pl';
require './setup.pl';
require './k_debugLib01.pl';

require './k_time01.pl';

require './k_htmlLib.pl';
require './k_util01.pl';
require './k_dirLib01.pl';
require './k_fileLib01.pl';
require './k_param01.pl';


#require './k_cartDecode01.pl';
#require './k_cartUtil01.pl';




#---- debugファイル用開始マーク ----
unless( defined( $debug ) )
{
	&k_write_debugFile( $DEBUG_FILE_SW, "\n//######## debug開始 ########\n" );
}
$debug = 1;					#// normalデバッグsw














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

$g_dsnLine = 0;
#// bodyタグ行まで描画
$g_dsnLine = &k_draw_loadHtml( $MAIN_DESIGN_B, $g_dsnLine, "<!-- body -->" );


#// decode
&k_decode();

#// news_menu手前まで描画
$g_dsnLine = &k_draw_loadHtml( $MAIN_DESIGN_B, $g_dsnLine, "<!-- _#news_menu -->" );

#// news_menuの描画
&k_draw_loadNews_menu();

#// news_s手前まで描画
$g_dsnLine = &k_draw_loadHtml( $MAIN_DESIGN_B, $g_dsnLine, "<!-- _#news_s -->" );

#// news_sの描画
&k_draw_loadNews_s();

#// booth_link手前まで描画
$g_dsnLine = &k_draw_loadHtml( $MAIN_DESIGN_B, $g_dsnLine, "<!-- _#booth_link -->" );


#// booth_linkの描画
&k_draw_loadBooth_link();


#// body終了タグ手前まで描画
$g_dsnLine = &k_draw_loadHtml( $MAIN_DESIGN_B, $g_dsnLine, "</body>" );
&k_draw_htmlFooter();

#//&k_draw_mstrLogInBox( "--M--" );

#//&k_footer( "--M--" );						#-- HTMLのフッター --
#
######### END ########




#//----------------------------------------
#//		decode
#//----------------------------------------
sub k_decode							#//~de
{
# //$_[0]:
	local( $db_sub_Name ) = $_[0];
#
#//#### debug関連 ####
local( $L_DSw ) = $ON;
local( $this_sub ) = &k_smart_sub_debugStart( $DEBUG_FILE_SW, "~de", "k_decode", $db_sub_Name );
#	
	#
	local( $in_data );
	local( $datum );
	local( $name );
	local( $value );
	local( @data );
	
	#//local( $L_str );
	local( $L_ix );
	local( @L_as_keys );
	
	
		
#
#&k_d_print( $L_DSw, "#---- ($this_sub) ----\n" );
	
	
	#---- リクエスト形式の判定と処理 ----
	#-- "POST"の場合 --
	if( $ENV{'REQUEST_METHOD'} eq "POST" )
	{
		
		#- 量の制限 -
#//		if( $ENV{'CONTENT_LENGTH'} > 32767 )
#//		{
#//			&k_cartError01( "メッセージの文字数オーバーです。", $this_sub );
#//		}
		
		#-- 標準入力から読み込む --
		read( STDIN, $in_data, $ENV{'CONTENT_LENGTH'} );
		
	}
	#-- その他("GET"など)の場合 --
	elsif( $ENV{'REQUEST_METHOD'} eq "GET" )
	{
		#-- 環境変数から読み込み --
		$in_data = $ENV{'QUERY_STRING'};
		
	}
	#-- その他の場合 --
	else
	{
#
$db_tab = substr( $db_tab, 1 );
&k_write_debugFile( $L_DSw, "\}\n" );
		#-- なにもしない --
		return( 0 );
	}
	

	#--「変数名1=値1&変数名2=値2」の形式を「&」で分解 --
	@data = split( /&/, $in_data );

	
	#-- 配列に分けた個々の「変数名=値」をさらに「=」で分解 --
	foreach $datum ( @data )
	{
		( $name, $value ) = split( /=/, $datum );

		
		#-- + や %8A などをデコード --
		$value =~ tr/+/ /;
		$value =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C", hex($1) )/eg;

		
		#//---- タグ関連許可要素以外の場合 ----
		if( $name ne 'nd_msg01' || $name ne 'nd_msg02' )
		{
			# &とダブルコーテーション
			$value =~ s/&/&amp;/g;
			$value =~ s/"/&quot;/g;		#//"

			# タグ処理
			$value =~ s/</&lt;/g;
			$value =~ s/>/&gt;/g;
		}

		
		#-- "<>"の回避("<\s>"化)
		$value =~ s/\<\>/&lt&gt/g;

	
		#-- Shift-JIS変換
		&jcode'convert( *value, 'sjis' );	#//'
		
		
		#-- 各データを連想配列に入れる(要素にする) --
		$s_datum{$name} = $value;
		
	}




	#-- 日時の取得 --
	$ENV{'TZ'} = "JST-9";
	( $d_sec, $d_min, $d_hour, $d_mday, $d_mon, $d_year, $d_wday, $d_yday, $d_isdst ) = localtime( time );
	
	$d_year += 1900;
	$d_mon++;
	if( $d_mon  < 10 )	{ $d_mon	= "0$d_mon";	}
	if( $d_mday < 10 )	{ $d_mday	= "0$d_mday";	}
	if( $d_hour < 10 )	{ $d_hour	= "0$d_hour";	}
	if( $d_min  < 10 )	{ $d_min	= "0$d_min";	}
	
	#-- 曜日 --
	@d_aYoubi = ( '日', '月', '火', '水', '木', '金', '土' );
	
	#-- 日時のフォーマット --
#//20030811
	$d_date = "$d_year,$d_mon,$d_mday,$d_wday,$d_hour,$d_min";
	#//$d_date = "$d_year/$d_mon/$d_mday($d_aYoubi[$d_wday]) $d_hour\:$d_min";
	




#
$db_tab = substr( $db_tab, 1 );
&k_write_debugFile( $L_DSw, "\}\n" );
             	return( 1 );
}





#------------------------------------------------
#	k_draw_loadNews_menu
#	news_menu部分を描画
#------------------------------------------------
sub k_draw_loadNews_menu				#//~drloNeMe
{

#//#### debug関連 ####
local( $L_DSw ) = $ON;
local( $this_sub ) = &k_smart_sub_debugStart( $DEBUG_FILE_SW, "~drloNeMe", "k_draw_loadNews_menu( $db_sub_Name )" );
#
	#
	local( $L_TRI_FILE_OPEN )	= "back_num_on.gif";  
	local( $L_TRI_FILE_CLOSE )	= "back_num_off.gif";  

	local( @L_entries );
	local( @L_array );
	local( $L_ixE );
	local( $L_nLoop );
	
	local( $L_file );
	local( @L_lines );
	local( $L_line );
	local( $L_ixL );
	local( @L_dsLines );
	local( $L_dsLine );
	local( $L_ixDsL );
	
	local( @L_works );
	local( $L_preYear,	$L_preMonth,	$L_preDate,	$L_preNo )	= ();
	local( $L_year, 	$L_month, 		$L_date,	$L_no )		= ();
	
	local(	$Ls_lifeSW,	$Ls_defDispSW,	$Ls_detailSW,
			$Ls_id,
			$Ls_year,	$Ls_month,		$Ls_date,
			$Ls_no,		$Ls_title,
			$Ls_img01,	$Ls_img01w,		$Ls_img01h,
			$Ls_img02,	$Ls_img02w,		$Ls_img02h,
			$Ls_msg,	$Ls_link,		$Ls_dLink,	$Ls_writeDate );
	
	local( $Lsh_line, $Lsh_fm );
	#//local( $Lsh_mark, $Lsh_maxNo, $Lsh_set );
	#//local( $Lsh_year, @Lsh_monthOCs );
	local( $Lsh_mark, $Lsh_maxNo, $Lsh_year, @Lsh_monthOCs );
	
	local( $L_triFile );
	local( $L_dateDisp );
	
	local( $L_ix );		#// 汎用カウンタ
	
	
	@L_entries	= ();
	@L_array	= ();
	@L_works	= ();
	
	
	#//---- news_sファイルのentry取得 ----
	@L_array = &k_get_fileEntriesInDir(	$NEWS_DATA_DIR,
										$NEWS_S_FILE_BASE,
										$NEWS_S_FILE_EX,
										$this_sub	);
	#//---- entryを文字降順で並べ替え ----
	@L_entries = sort { $b cmp $a } @L_array;
	
	
#//
#&k_d_print( $L_DSw, "\$#L_entries=($#L_entries)" );
	
	
	#//----------------
	#//		描画
	#//----------------
	print "<div id=\"nmenu\">\n";
	print "  <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n";
	
	#// ---- 年loop ----
	$L_nLoop = 0;
	#// setup指定の反映
	$L_ixE =  $SP_NS_START_YEAR_OFFSET;		#//-- 開始年OFFSET --
	for( ;$L_ixE <= $#L_entries; $L_ixE++,$L_nLoop++ )	#//foreach $L_file ( @L_entries )
	{
		
		#// ファイルが存在しない場合
		unless( -f "$NEWS_DATA_DIR/$L_entries[$L_ixE]" ){	&k_error( "\"$L_entries[$L_ixE]\"ファイルがありません。($this_sub)" ); }
		
#//		#// dataファイルの読み込み
#//		open( IN, "$NEWS_DATA_DIR/$L_entries[$L_ixE]" ) || &k_error( "\"$L_entries[$L_ixE]\"ファイルのopenに失敗しました。($this_sub)" );
#//		$Lsh_line	= <IN>;			#// header行取得
#//		$Lsh_fm		= <IN>;			#//fileFormat行取得
#//		@L_lines	= <IN>;			#// ファイル内全news読み込み
#//		close( IN );				#// ファイルのclose
#//		
#//		#// header_check
#//		if( $Lsh_line !~ /$NEWS_S_FILE_HEADER_MARK/ )
#//		{
#//			&k_error( "ファイルに誤りがあります。($this_sub)" );
#//		}
#//		
#//		#// headerの情報を変数に分割
#//		(	$Lsh_mark, $Lsh_maxNo,
#//			$Lsh_year, @Lsh_monthOCs ) = &k_get_nshVariable( $Lsh_line );
		
		&k_load_news_s_data( $L_entries[$L_ixE], *L_lines, $this_sub );
		
		
				
		#// 年
		@L_works = split( /\./, $L_entries[$L_ixE] );
		$L_preYear = $L_works[0];
		$L_preYear =~ s/$NEWS_S_FILE_BASE//;
		
		#// ---- 年描画 ----
		#//-- setup反映 --
		if( $L_nLoop < $SP_NS_N_ACTIVE_YEAR )
		{
			print "  <tr>\n";
			print "    <td class=\"year\">$L_preYear年</td>\n";
			print "  </tr>\n";
		}
		else
		{
			#// old表示が$OFFの場合は終了
			if( $SP_NS_DISP_OLD_YEAR != $ON ){	last;	}
			
			#// oldメニュー開始label描画
			if( $L_nLoop == $SP_NS_N_ACTIVE_YEAR )
			{
				print "  <tr>\n";
				print "    <td class=\"year\">- old -</td>\n";
				print "  </tr>\n";
			}
			#// old表示(link+param)
			print "  <tr>\n";
			print "    <td class=\"year\"><a href=\"$SCRIPT?MODE=old&YEAR=$L_preYear\">$L_preYear年</a></td>\n";
			print "  </tr>\n";
			
			#// 次の年へ
			next;
		}
		
		
		#// ---- 月描画 ----
		for( $L_ixL = 0; $L_ixL <= $#L_lines; $L_ixL++ )
		{
			#// 変数に割り振り
			(	$Ls_lifeSW,	$Ls_defDispSW,	$Ls_detailSW,
				$Ls_id,
				$Ls_year,	$Ls_month,		$Ls_date,
				$Ls_no,		$Ls_title,
				$Ls_img01,	$Ls_img01w,		$Ls_img01h,
				$Ls_img02,	$Ls_img02w,		$Ls_img02h,
				$Ls_msg,	$Ls_link,		$Ls_dLink,	$Ls_writeDate ) = split( /<>/, $L_lines[$L_ixL] );
			
			
#//			( $L_year, $L_month, $L_date, $L_no ) = &k_separateID( $ns_id );


			#// 違う年のnewsがファイルに混在(ないはず)
			#//if( $Ls_year != $L_preYear ){	last;	}	
			
			#// 無効swが$ONの場合は次へ
			if( $Ls_lifeSW == $OFF ){	next;}
			
			
			#// 前の月と違う場合
			if( $Ls_month ne $L_preMonth )
			{
				print "  <tr>\n";
				print "    <td>\n";
				print "      <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n";
				print "      <tr>\n";
				print "        <td class=\"month\">$Ls_month月</td>\n";
				
				#//
				if( $Ls_defDispSW != $CLOSE )
				{
					$L_triFile		= $L_TRI_FILE_OPEN;
					$L_dateDisp		= "block";
				}
				else
				{
					$L_triFile		= $L_TRI_FILE_CLOSE;
					$L_dateDisp		= "none";
				}

				print "        <td class=\"tri\"><img src=\"../img/$L_triFile\" width=\"24\" height=\"14\"></td>\n";

				print "      </tr>\n";
				print "      </table>\n";
				print "    </td>\n";
				print "  </tr>\n";
				
				$L_preMonth = $Ls_month;
			}
			
			if( $Ls_lifeSW != $OFF )
			{				
				#// ---- 日とtitleのtable描画開始 ----
				print "  <tr style=\"display:$L_dateDisp;\">\n";
				print "    <td>\n";
				print "      <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n";
				
				
				print "      <tr>\n";
				print "        <td class=\"date\">$Ls_date</td>\n";
				print "        <td class=\"tt\"><a href=\"#$Ls_id\">$Ls_title</a></td>\n";
				print "      </tr>\n";
				
				#// ---- 日とtitleのtable描画終了 ----	
				print "      </table>\n";
				print "    </td>\n";
				print "  </tr>\n";
			}	

		}
				

	}
	print "  </table>\n";
	print "</div><br>\n";
#//print "</pre>\n";
	

#
$db_tab = substr( $db_tab, 1 );
&k_write_debugFile( $L_DSw, "\}\n" );
	return( 1 );
}



#------------------------------------------------
#	k_draw_loadNews_s
#	news_simple部分を描画
#------------------------------------------------
sub k_draw_loadNews_s				#//~drloNes
{
	#//#### debug関連 ####
local( $L_DSw ) = $ON;
local( $this_sub ) = &k_smart_sub_debugStart( $DEBUG_FILE_SW, "~drloNes", "k_draw_loadNews_s( $db_sub_Name )" );
#
	#

	local( @L_entries );
	local( @L_array );
	local( $L_ixE );
	local( $L_nLoop );
	
	local( $L_file );
	local( @L_lines );
	local( $L_line );
	local( $L_ixL );
	local( @L_dsLines );
	local( $L_dsLine );
	local( $L_ixDsL );
	
	local( @L_works );
	local( $L_preYear,	$L_preMonth,	$L_preDate,	$L_preNo ) = ();
	local( $L_year, 	$L_month, 		$L_date,	$L_no ) = ();
	
	local(	$Ls_lifeSW,	$Ls_defDispSW,	$Ls_detailSW,
			$Ls_id,
			$Ls_year,	$Ls_month,		$Ls_date,
			$Ls_no,		$Ls_title,
			$Ls_img01,	$Ls_img01w,		$Ls_img01h,
			$Ls_img02,	$Ls_img02w,		$Ls_img02h,
			$Ls_msg,	$Ls_link,		$Ls_dLink,	$Ls_writeDate );
	
	local(	$Lsh_line, $Lsh_fm );		
	local(	$Lsh_mark, $Lsh_maxNo,
			$Lsh_year, @Lsh_monthOCs );
			
	local( $L_dateDisp );
	
	local( $Lw_sec, $Lw_min, $Lw_hour, $Lw_mday, $Lw_mon, $Lw_year, $Lw_wday, $Lw_yday, $Lw_isdst );
	local( $L_lastUpdate );
	
	@L_entries	= ();
	@L_array	= ();
	@L_works	= ();
	
	
	#//---- news_sファイルのentry取得 ----
	@L_array = &k_get_fileEntriesInDir(	$NEWS_DATA_DIR,
										$NEWS_S_FILE_BASE,
										$NEWS_S_FILE_EX,
										$this_sub	);
	#//---- entryを文字降順で並べ替え ----
	@L_entries = sort { $b cmp $a } @L_array;
	
#//
#&k_d_print( $L_DSw, "\$#L_entries=($#L_entries)" );
	
	
	#//----------------
	#//		描画
	#//----------------
	#//
	#//-- news_sファイルヘッダー版 --
	$L_lastUpdate = &k_get_lastUpdateFromNshs( *L_entries, $this_sub );
	$L_lastUpdate .= "00";
	( $L_year, $L_month, $L_date, $L_no ) = &k_separateID( $L_lastUpdate );

	
	print "<h3>\n";
	print "	<table width=\"100%\"  border=\"0\" cellspacing=\"0\" cellpadding=\"0\">\n";
	print "	<tr>\n";
	print "		<td>&nbsp;&nbsp;NEWS CONTENTS</td>\n";
	print "		<td align=\"right\" nowrap style=\"font-size:10px; padding-right:5px;\">$L_year-$L_month-$L_date 更新</td>\n";
	print "	</tr>\n";
	print "	</table>\n";
	print "</h3>\n";
	
	#// ---- 年loop ----
	$L_nLoop = 0;
	#// setup指定の反映
	$L_ixE =  $SP_NS_START_YEAR_OFFSET;		#//-- 開始年OFFSET --
	for( ;$L_ixE <= $#L_entries; $L_ixE++,$L_nLoop++ )	#//foreach $L_file ( @L_entries )
	{
		#//-- setupの反映 --
		if( $L_nLoop >= $SP_NS_N_ACTIVE_YEAR ){	last;	}
	
		#// ファイルが存在しない場合
		unless( -f "$NEWS_DATA_DIR/$L_entries[$L_ixE]" ){	&k_error( "\"$L_entries[$L_ixE]\"ファイルがありません。($this_sub)" ); }
		
		#//  
		&k_load_news_s_data( $L_entries[$L_ixE], *L_lines, $this_sub );
		
		
		
		
		#// ---- news_s描画 ----
		for( $L_ixL = 0; $L_ixL <= $#L_lines; $L_ixL++ )
		{
			#// 変数に割り振り
			(	$Ls_lifeSW,	$Ls_defDispSW,	$Ls_detailSW,
				$Ls_id,
				$Ls_year,	$Ls_month,		$Ls_date,
				$Ls_no,		$Ls_title,
				$Ls_img01,	$Ls_img01w,		$Ls_img01h,
				$Ls_img02,	$Ls_img02w,		$Ls_img02h,
				$Ls_msg,	$Ls_link,		$Ls_dLink,	$Ls_writeDate ) = split( /<>/, $L_lines[$L_ixL] );
			
			
#//			( $L_year, $L_month, $L_date, $L_no ) = &k_separateID( $ns_id );
			
						
			#// 無効swが$ONの場合は次へ
			if( $Ls_lifeSW == $OFF ){	next;}
			
			
			
			#//----------------------------
			#//		月単位で表示非表示
			#//----------------------------
			#// 開く閉じるSW(dataファイル作成時に同月の$ns_defDispSWを
			#//						そろえる処理をしていれば下の一行でOK)
			#//$L_dateDisp = ( $ns_defDispSW != $CLOSE ) ? "block" : "none";
			#
			#// 前の月と違う場合
			if( $L_month ne $L_preMonth )
			{
				if( $Ls_defDispSW != $CLOSE )
				{
					$L_dateDisp = "block";
				}
				else
				{
					$L_dateDisp = "none";
				}
				$L_preMonth = $L_month;
			}
			
			
			print "<div class=\"contents\" id=\"$Ls_id\" style=\"display:$L_dateDisp;\">\n";
			print "  <p class=\"time\"><strong>$Ls_year-$Ls_month-$Ls_date</strong> の情報<p>\n";
			print "  <h2>$Ls_title</h2>\n";
			
			#// img01かimg02に1つでも画像指定がある場合
			if( $Ls_img01 ne "" || $Ls_img02 ne "" )
			{ 
				print "    <table border=\"0\" align=\"left\" cellpadding=\"0\" cellspacing=\"0\">\n";
				
				if( $Ls_img01 ne "" )
				{
					print "            <tr>\n";
					#//print "                <td><a href=\"$NEWS_IMG_DIR/$Ls_year/$Ls_img01\" target=\"_blank\"><img src=\"$NEWS_IMG_DIR/$Ls_img01\" width=\"$Ls_img01w\" height=\"$Ls_img01h\" border=\"0\"></a></td>\n";
					print "                <td><a href=\"$NEWS_IMG_DIR/$Ls_year/$Ls_img01\" target=\"_blank\"><img src=\"$NEWS_IMG_DIR/$Ls_year/$Ls_img01\" width=\"$Ls_img01w\" border=\"0\"></a></td>\n";
					print "            </tr>\n";
				}
				if( $Ls_img02 ne "" )
				{
					print "            <tr>\n";
					#//print "                <td><a href=\"$NEWS_IMG_DIR/$Ls_year/$Ls_img02\" target=\"_blank\"><img src=\"$NEWS_IMG_DIR/$Ls_img02\" width=\"$Ls_img02w\" height=\"$Ls_img02h\" border=\"0\"></a></td>\n";
					print "                <td><a href=\"$NEWS_IMG_DIR/$Ls_year/$Ls_img02\" target=\"_blank\"><img src=\"$NEWS_IMG_DIR/$Ls_year/$Ls_img02\" width=\"$Ls_img02w\" border=\"0\"></a></td>\n";
					print "            </tr>\n";
				}
				print "    </table>\n";
			}
			
#//
#print "<pre>\"$NEWS_IMG_DIR/$Ls_year/$Ls_img02\"</pre>";
 			
			print "  <p>$Ls_msg</p>\n";
			print "  <br clear=\"all\">\n";
			if( $Ls_link ne "" )
			{
				print "  <a href=\"$Ls_link\">$Ls_link</a><br clear=\"all\">\n";
			}
			print "  <br>\n";
			print "  <table width=\"100%\" border=\"0\" cellspacing=\"0\" cellpadding=\"0\" class=\"footer\">\n";
			print "        <tr>\n";
			print "            <td align=\"left\" nowrap><a href=\"#pagetop\">▲ページトップへ</a></td>\n";
			
			#// -- 詳細の種類処理 --
			#
			#// 詳細の外部リンクがある場合
			if( $Ls_dLink ne "" )
			{
				print "            <td align=\"right\" valign=\"bottom\"><a href=\"$Ls_dLink\"><img src=\"img/de_bot.gif\" alt=\"この記事の詳細を見る\" width=\"131\" height=\"20\" border=\"0\"></a></td>\n";				
			}
			else
			{
				#// 詳細がある場合
				if( $Ls_detailSW != $OFF )
				{
					print "            <td align=\"right\" valign=\"bottom\"><a href=\"$SCRIPT_DETAIL?MODE=detail&n_id=$Ls_id\"><img src=\"img/de_bot.gif\" alt=\"この記事の詳細を見る\" width=\"131\" height=\"20\" border=\"0\"></a></td>\n";
				}
			}
			print "        </tr>\n";
			print "  </table>\n";
			print "</div>\n";
			
		}
				
	}
	

#
$db_tab = substr( $db_tab, 1 );
&k_write_debugFile( $L_DSw, "\}\n" );
	return( 1 );
}

#------------------------------------------------
#	k_draw_loadBooth_link
#	booth_link部分を描画
#------------------------------------------------
sub k_draw_loadBooth_link			#//~ drloBoli
{
	#//#### debug関連 ####
local( $L_DSw ) = $ON;
local( $this_sub ) = &k_smart_sub_debugStart( $DEBUG_FILE_SW, "drloBoli", "k_draw_loadBooth_link( $db_sub_Name )" );
#
	#

	local( @L_entries );
	local( @L_array );
	
	local( $L_file );
	local( @L_lines );
	local( $L_line );
	local( $L_ixL );
	local( @L_dsLines );
	local( $L_dsLine );
	local( $L_ixDsL );
	
	local( @L_works );
	local( $L_preYear,	$L_preMonth,	$L_preDate,	$L_preNo ) = ();
	local( $L_year, 	$L_month, 		$L_date,	$L_no ) = ();
	
	local( $L_dateDisp );

	
	
	@L_entries	= ();
	@L_array	= ();
	@L_works	= ();
	
	
	#//---- boothファイルのentry取得 ----
	@L_array = &k_get_fileEntriesInDir(	$BOOTH_DATA_DIR,
										$BOOTH_FILE_BASE,
										$BOOTH_FILE_EX,
										$this_sub	);
	#//---- entryを文字降順で並べ替え ----
	@L_entries = sort { $b cmp $a } @L_array;
	
#//
#&k_d_print( $L_DSw, "\$#L_entries=($#L_entries)" );
	
	
	#//----------------
	#//		描画
	#//----------------
	
	#// 年loop
	foreach $L_file ( @L_entries )
	{
		#// ファイルが存在しない場合
		unless( -f "$BOOTH_DATA_DIR/$L_file" ){	&k_error( "\"$L_file\"ファイルがありません。($this_sub)" ); }
		
		#// dataファイルの読み込み
		open( IN, "$BOOTH_DATA_DIR/$L_file" ) || &k_error( "\"$L_file\"ファイルのopenに失敗しました。($this_sub)" );
		@L_lines = <IN>;			#// ファイル内全店読み込み
		close( IN );				#// ファイルのclose
		
		
		
		#// ---- news_s描画 ----
		print "<div class=\"spo_links\">\n";
		
		for( $L_ixL = 0; $L_ixL <= $#L_lines; $L_ixL++ )
		{
			(	$bt_no,		$bt_nameJP,		$bt_nameKN,
				$bt_img,	$nd_img_w,		$nd_img_h,
				$bt_msg01,	$bt_link,		$bt_msg02,
				$bt_file								) = split( /<>/, $L_lines[$L_ixL] );			
			
			print "<a href=\"$BOOTH_HTML_DIR/$bt_file\">$bt_nameJP</a>\n";
		}
		
		print "</div>\n";		
	}
	

#
$db_tab = substr( $db_tab, 1 );
&k_write_debugFile( $L_DSw, "\}\n" );
	return( 1 );
}





#//----------------------------------------
#//		test
#//----------------------------------------
sub test
{
	local( $this_sub )	= "test()";
	
	local( $L_param );
	local( $L_op_param );
	local( $L_dataLen );
	
	
	#//---- $MASTER_DEBUG_SWの処理 ----
	if( $MASTER_DEBUG_SW != $ON ){ return( 0 );}
	
	#//-- 以下表示OFF --
	if( 0 )
	{	
		print "<PRE>//---- POST送信容量耐久test ----</PRE>\n";
		print "<FORM name=\"FRM1\" method=\"POST\" action=\"./$SCRIPT\">\n";
		#// パラメーター
		&k_draw_html_POSTBasicParam( "mode", $M_FIND, $this_sub );
		#// POST送信容量耐久test
		print "<TEXTAREA name=\"d_text\" cols=64 rows=32 wrap=\"off\">$d_text</TEXTAREA>\n";
		
		
		#//送信ボタンの代わりにイメージボタンを使う
		#print "<INPUT type=\"image\" src=\"./button.gif\">送る\n<BR>";

		#//<A>でPOST送信
		print "<SCRIPT language=\"JavaScript\">\n";
		print "<!--\n";
		print "   document.write(";
		print "      '<A href=\"#\" onClick=\"document.FRM1.submit()\">' + ";
		print "      'FORMの中POSTテスト</A>');\n";
		print "//-->\n";
		print "</SCRIPT><BR>\n";
		print "</FORM>\n";
		print "<A href=\"#\" onClick=\"document.FRM1.submit()\">FORMの外POSTテスト2</A>\n";
	}

}












