#!/usr/bin/perl
#//////////////////////////////////////////////////////////////////////////////
#                          ROR SITE MAP for epsilon-NPZ〜PCtoMobile VER1.00
#
#                      ----- 2007(C) WEB INVENTOR(Solve) -----
#                                 solve@wb-i.net
#                                 http://wb-i.net/
#	
#///////////////////////////////////////////////////////////////////////////////
#================================ [注意事項] ===================================
# このスクリプトはシェアウエアです。このスクリプトを使用したいかなる損害に対して
# も作者は一切の責任を負いません。
#====================================使用法=====================================
# ショッピングカートと同じフォルダに入れて、次のようにして呼び出してください。
#	http://・・/ror_sitemap.cgi
#
#===============================================================================
# ▼設定▼
#===============================================================================

#======ror_sitemap.cgiのパスの設定====
$script_rorsitemap ="./ror_sitemap.cgi";

#==============================================================================
# ▲設定終了▲
#==============================================================================

#jcode.plへのパス
require './jcode.pl';

#cgi-lib.plへのパス
require './cgi-lib.pl';

#===================

&ReadParse;

while (($key,$val) = each %in) {
	&jcode'convert($val, "sjis");
	$form{$key} = $val;
}

while (($key,$val) = each %in) {
	&jcode'convert(*val, "sjis");
	$val =~ s/<>//g;
	$in{$key} = $val;
}

# 設定ファイル====================================

require './set.pl';

#===============管理用入り口======================
if ( $in{'mode'} eq '') { &adm1; exit;}
if ( $in{'pass'} ne $adm_pass ) { print "Location: $script_rorsitemap\n\n"; exit; }
if ( $in{'mode'} eq 'make_ok' ) { &adm2; exit;}
unless($in{'ror'}) { &adm2; exit;}

#====================商品データの読み込み=========

if (!open(IN,"$data_file")) { &error('データベース読取エラー','復旧をお待ちください.'); }
@BASE = <IN>;
close(IN);

#@BASE = reverse @BASE;

#=======RORサイトマップの生成=======
$domain_url = $script;
$domain_url =~ s/shop.cgi//g;
$topx_url = $script;
$topx_url =~ s/shop.cgi/index.cgi/g;

	if($top1_name){push (@rorsitemap_url,$domain_url);}
	if($top2_name){push (@rorsitemap_url,"$topx_url?t=2");}
	if($top3_name){push (@rorsitemap_url,"$topx_url?t=3");}
	if($top4_name){push (@rorsitemap_url,"$topx_url?t=4");}
	if($top5_name){push (@rorsitemap_url,"$topx_url?t=5");}

# 商品番号によるHTML生成
foreach $data (@BASE) {

	($goods_no,$name,$kigou,$option,$option2,$class,$setumei,$fcolor,$price,$tani,$zaiko,$limit) = split(/\<\>/,$data);

	if($limit eq '0' ){next;}
	push (@rorsitemap_url,"$script?id=$goods_no");

}

# 小分類によるHTML生成
$aa =0;
foreach (@class_tb) {
	($class_b,$k) = split(/\//,$_);
	if($k eq ''){
		$class_encode ="$aa";
		$class_encode =~ s/(\W)/sprintf("%%%02X", unpack("C", $1))/eg;    #ここでエンコード
		push (@rorsitemap_url,"$script?class=$class_encode");
	}else{
		@class_S =split(/:/,$k);
		$bb =0;
		foreach (@class_S) {
			$class_encode ="$aa"."/"."$bb";
			$class_encode =~ s/(\W)/sprintf("%%%02X", unpack("C", $1))/eg;    #ここでエンコード
			push (@rorsitemap_url,"$script?class=$class_encode");
			$bb ++;
		}
	}
	$aa ++;
}

# ROR出力

$ror_xml =<<"EOF";
<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:ror="http://rorweb.com/0.1/" >
<channel>
  <title>ROR Sitemap for $rorsitemap_url[0]</title>
  <link>$rorsitemap_url[0]</link>
  <item>
    <title>ROR Sitemap for $rorsitemap_url[0]</title>
    <link>$rorsitemap_url[0]</link>
    <ror:about>sitemap</ror:about>
    <ror:type>SiteMap</ror:type>
  </item>
EOF

foreach (@rorsitemap_url) {

$ror_xml .=<<"EOF";
  <item>
     <link>$_</link>
     <ror:updatePeriod>week</ror:updatePeriod>
     <ror:sortOrder>0</ror:sortOrder>
     <ror:resourceOf>sitemap</ror:resourceOf>
  </item>
EOF

}

$ror_xml .=<<"EOF";
</channel>
</rss>
EOF

	$xml_file_name ='ror.xml';

	open(OUT,"> $xml_file_name") || &error("rorサイトマップの書き込みに失敗しました","$xml_file_name");
	print OUT "$ror_xml\n";
	close(OUT);
	push (@result_url_ror,$xml_file_name);

&result();
exit;

#===================================
sub adm1 {

if($adm_pass eq "1234"){
	$dis_closure = "<br>[パスワード = 1234]<br>";
}

&html_header();

print <<"EOF";
<table width=$o_width align=center cellpadding=0 border=0>
<tr><td>
<div align="right">ROR SITEMAP 生成 VER1.00</div><hr width=$o_width noshade size=1>
<BR><BR></td></tr></table>
<table bgcolor=$color_adm_r width=400 align=center cellpadding=10 border=1 bordercolor=$color_adm_d>
<tr><td><center>
<form method='post' action="$script_rorsitemap">
<input type=hidden name=class value="all">
<input type=hidden name=FF value=0>
<input type=hidden name="keyword" value="">
<input type="hidden" name="superkey" value="1"><br>
◆RORサイトマップを生成します◆<br><br>
生成フォルダ ： カート用フォルダ<br><br>
管理者用パスワードを入力してください。<br><br>
<input type=password name='pass'>
<input type=hidden name="mode" value="make_ok">
<input type=submit value='ror.xml生成'>$dis_closure<br>
</form></td></tr></table>
<br></center>
<hr width=$o_width noshade size=1>
$foot
</body></html>
EOF

}
# =======================================================================================
sub adm2 {

if($adm_pass eq "1234"){
	$dis_closure = "<br>[パスワード = 1234]<br>";
}

&html_header();

print <<"EOF";
<table width=$o_width align=center cellpadding=0 border=0>
<tr><td>
<div align="right">ROR SITEMAP 生成 VER1.00</div><hr width=$o_width noshade size=1>
<BR><BR></td></tr></table>
<table bgcolor=$color_adm_r width=450 align=center cellpadding=10 border=1 bordercolor=$color_adm_d>
<tr><td>
<br>
<center>
<form method='post' action="$script_rorsitemap">
◆カート用フォルダ内にRORサイトマップを生成します◆<br><br>
<FONT color=#ff0000>システム設定【2】で、shop.cgiのパスをフルパスで設定してください。</font>
<br><br>
<input type="checkbox" name="ror" value="on">ror.xml（ＲＯＲサイトマップ）の生成
<br><br><br>
<input type=submit value=' ＯＫ '>
<input type=hidden name="pass" value="$adm_pass">
<input type=hidden name="mode" value="html_make">
</form><br></center>
</td></tr></table>
</td></tr></tbody></table>

<hr width=$o_width noshade size=1>
$foot
</body></html>
EOF

}

# =======================================================================================
sub result {

&html_header();

foreach(@result_url_ror){
	$result_link4 .="<LI><A href=\"$_\" target='_brank'><FONT color=#0000ff>$_</FONT></A>";
}

print <<"EOF";
<CENTER>
<table width=$o_width align=center cellpadding=0 border=0>
<tr><td>
<div align="right">ROR SITEMAP 生成 VER1.00</div><hr width=$o_width noshade size=1>
<BR><BR></td></tr></table>
<table bgcolor=$color_adm_r width=500 align=center cellpadding=10 border=1 bordercolor=$color_adm_d>
<tr><td><CENTER><BR>
<B>◆RORサイトマップの生成結果◆</B><BR>
<BR>
<TABLE cellPadding=10 width=400>
<TBODY>
<TR><TD bgcolor="cef0ff"><FONT color=#0000ff>ＲＯＲサイトマップを生成しました。</FONT><BR>
      <UL>
$result_link4
      </UL>
</TD></TR>

</TBODY>
</TABLE></CENTER><br>
</TD></TR>
</TBODY>
</TABLE>
<table width=$o_width align=center cellpadding=0 border=0>
<tr><td><br>
<div align="center"><A href="$script_rorsitemap">▲戻る</A></div>
</td></tr></table>
</CENTER><br>
<hr width=$o_width noshade size=1>
$foot
</body></html>
EOF

}

#======================================================================
# Cookieに値を書き込むためのSet-Cookie:ヘッダを生成する
#
sub setCookie{
}
sub setCookie_0{
}
#
# Cookieの値を読み出す
#
sub getCookie{
}

sub html_header{
	print "Content-type: text/html\n\n";
	print "<html><head><title>$main_title</title>\n";
	print "<META content=\"text/html; charset=Shift_JIS\" http-equiv=Content-Type>\n";
	print "<META content=text/css http-equiv=Content-Style-Type>\n";
	print "$style";
	print "</head>$body$header\n";
}

#===============================================================
sub error {
&html_header();
	
print <<"EOF";
<CENTER>
<TABLE cellpadding="3" width="$o_width">
	<TBODY>
	<TR>
	<TD align="right" width="$o_width"><A href="$script_rorsitemap">▲戻る></A></TD>
	</TR>
	</TBODY>
</TABLE>
</CENTER>
EOF

	print "<br><center>$_[0]</center>\n";
	print "<center>$_[1]</center>\n";
	print "<br><hr noshade size=1 width=$o_width>$foot</body></html>";
	exit;
}

