/******************************/
/* WeeklyNews表示用スクリプト */
/******************************/
include("/home/htdocs/data/admin/def/dol_def.inc");
define("DATA_TYPE", "news");
$img_url = NEWS_IMG_URL;
$s_date = $_GET["s_date"];
$arr = array();
/* データ取得に必要なフィールド番号を生成 */
//
$f_prior = "f".GetMasterInfo('優先度', 0, DATA_TYPE, $db);
$f_title = "f".GetMasterInfo('見出し', 0, DATA_TYPE, $db);
$f_genre = "f".GetMasterInfo('表示用ジャンル', 0, DATA_TYPE, $db);
$f_url = "f".GetMasterInfo('ニュースURL', 0, DATA_TYPE, $db);
/* 現在の日付取得 */
//
$year = date("Y");
$mon = date("n");
/* カレンダー作成 */
//
$calender = "";
/* 1月の場合、当年の1月分と昨年のカレンダーを表示 */
//
if($mon == 1){
for($i=0; $i<=1; $i++){
$year = $year - $i;
if($i==0){
$calender .= MakeNewsCalender($year,1); /* 当年1月分カレンダー */
} else {
for($j=12; $j>=1; $j--){
$calender .= MakeNewsCalender($year,$j); /* 昨年分カレンダー */
}
}
}
} else {
for($i=$mon; $i>= 1; $i--){
$calender .= MakeNewsCalender($year,$i);
}
}
$arr["NEWS_CALENDER"] = $calender;
/* カレンダーをクリックした(週を指定した)場合のニュース一覧表示 */
//
if($s_date){
/* 表示用日付 */
//
$showdate = "";
$s_year = substr($s_date, 0, 4);
$s_mon = number_format(substr($s_date, 4, 2));
$s_day = number_format(substr($s_date, 6));
$this_w = GetWeek($s_year,$s_mon,$s_day);
$e_year = substr($this_w[6], 0, 4);
$e_mon = number_format(substr($this_w[6], 4, 2));
$e_day = number_format(substr($this_w[6], 6));
$showdate .= $s_year."年".$s_mon."月".$s_day."日〜";
if($s_year != $e_year){
$showdate .= $e_year."年";
}
$showdate .= $e_mon."月".$e_day."日";
//
/* 表示用日付 */
/* 今週のニュース */
//
$news = "";
for($i=6; $i>=0; $i--){
$n_mon = number_format(substr($this_w[$i], 4, 2));
$n_day = number_format(substr($this_w[$i], 6));
$n_wday = GetJWday($this_w[$i]);
/* ニュース保存用ディレクトリ指定 */
//
$nd_year = substr($this_w[$i], 0, 4);
$nd_mon = substr($this_w[$i], 4, 2);
$nd_day = substr($this_w[$i], 6);
if($this_w[$i] == date("Ymd")){
$news_begin = $this_w[$i]."000000";
$news_end = date("YmdHis");
$sql_condition = "between '".$news_begin."' and '".$news_end."' ";
} else {
$sql_condition = "like '".$this_w[$i]."%' ";
}
$sql = "select * from news_data ";
$sql .= "where open_date ".$sql_condition;
$sql .= "order by ".$f_prior." desc, regist_date desc";
$res = $db->query($sql);
if(DB::isError($res)){
echo "WeeklyNewsデータ取得失敗:".DB::errorMessage($res)."
\n";
exit;
}
if($res->numRows() > 0){
$news .= '
'."\n";
$news .= ''."\n";
$news .= ' | '."\n";
$news .= '
'."\n";
$news .= ''."\n";
$news .= '';
$news .= $n_mon."月".$n_day."日".$n_wday;
$news .= ' | '."\n";
$news .= '
'."\n";
$news .= ''."\n";
$news .= ' | '."\n";
$news .= '
'."\n";
$news .= '
'."\n";
$news .= ''."\n";
/* HTML生成 */
//
while($row = $res->fetchRow(DB_FETCHMODE_ASSOC)){
/* ニュースURLの有無を確認 */
//
$news_url = $row[$f_url];
if($news_url != ''){
$urlval = $news_url;
} else {
$urlval = HOME_URL."news/".$nd_year."/".$nd_mon."/".$nd_day."/".$row["id"].".html";
}
$news .= ''."\n";
$news .= '';
$news .= GetNewsGenreIcon($row[$f_genre]);
$news .= ' | '."\n";
$news .= '';
$news .= str_replace("\r\n","",$row[$f_title]);
$news .= ' | '."\n";
$news .= '
'."\n";
}
$news .= '
'."\n";
}
}
$res->free();
//
/* 今週のニュース */
}
/* 日付指定のない場合(デフォルト)のニュース一覧表示 */
//
else {
/* データ表示開始日の取得(現在以前での最新の情報公開可能データ日付)*/
//
$now_date = date("YmdHis");
$sql = "select * from news_data where open_date <= '".$now_date."' ";
$sql .= "order by open_date desc limit 1";
$res = $db->query($sql);
if(DB::isError($res)){
if(DEBUG){
echo "データ表示開始日取得失敗:".DB::errorMessage($res)."
\n";
exit;
}
}
if($res->numRows() > 0){
$row = $res->fetchRow(DB_FETCHMODE_ASSOC);
$od = $row["open_date"];
$e_year = substr($od, 0, 4);
$e_mon = number_format(substr($od, 4, 2));
$e_day = number_format(substr($od, 6, 2));
$e_hour = number_format(substr($od, 8, 2));
$e_min = number_format(substr($od, 10, 2));
$e_sec = number_format(substr($od, 12));
$end_date = mktime($e_hour, $e_min, $e_sec, $e_mon, $e_day, $e_year);
$sd = $end_date - 86400 * NEWS_TOPSPAN;
$s_year = date("Y", $sd);
$s_mon = date("n", $sd);
$s_day = date("j", $sd);
}
$res->free();
/* 表示用日付 */
//
$showdate = "";
$showdate .= $s_year."年".$s_mon."月".$s_day."日〜";
if($s_year != $e_year){
$showdate .= $e_year."年";
}
$showdate .= $e_mon."月".$e_day."日";
/* 今週のニュース */
//
$news = "";
for($i=0; $iquery($sql);
if(DB::isError($res)){
echo "WeeklyNewsデータ取得失敗:".DB::errorMessage($res)."
\n";
exit;
}
if($res->numRows() > 0){
$news .= ''."\n";
$news .= ''."\n";
$news .= ' | '."\n";
$news .= '
'."\n";
$news .= ''."\n";
$news .= '';
$news .= $n_mon."月".$n_day."日".$n_wday;
$news .= ' | '."\n";
$news .= '
'."\n";
$news .= ''."\n";
$news .= ' | '."\n";
$news .= '
'."\n";
$news .= '
'."\n";
$news .= ''."\n";
/* HTML生成 */
//
while($row = $res->fetchRow(DB_FETCHMODE_ASSOC)){
/* ニュースURLの有無を確認 */
//
$news_url = $row[$f_url];
if($news_url != ''){
$urlval = $news_url;
} else {
$urlval = HOME_URL."news/".$nd_year."/".$nd_mon."/".$nd_day."/".$row["id"].".html";
}
$news .= ''."\n";
$news .= '';
$news .= GetNewsGenreIcon($row[$f_genre]);
$news .= ' | '."\n";
$news .= '';
$news .= str_replace("\r\n","",$row[$f_title]);
$news .= ' | '."\n";
$news .= '
'."\n";
}
$news .= '
'."\n";
}
}
$res->free();
//
/* 今週のニュース */
}
$arr["SHOWDATE"] = $showdate;
$arr["NEWS_WEEKLY"] = $news;
/* LINK CHECK データの読み込み(日付指定の無い場合のみ)*/
//
$link_check = "";
if(!$s_date){
$tmpl = TEMPLATE_DIR."link_check.tmpl";
$fp = fopen($tmpl,"r");
while($line = @fgets($fp, 1024)){
$link_check .= $line;
}
fclose($fp);
}
$arr["LINK_CHECK"] = $link_check;
/* 日付検索用フォーム生成 */
//
$arr["OPTION_Y"] = "";
for($i=DB_STARTYEAR; $i<=(date("Y") + 1); $i++){
$arr["OPTION_Y"] .= ''."\n";
}
$arr["OPTION_M"] = "";
for($i=1; $i<=12; $i++){
$arr["OPTION_M"] .= ''."\n";
}
$arr["OPTION_D"] = "";
for($i=1; $i<=31; $i++){
$arr["OPTION_D"] .= ''."\n";
}
/* テンプレートファイルの読み込み */
//
$ret = "";
// ヘッダー
$tmpl = TEMPLATE_DIR."header.tmpl";
$fp = fopen($tmpl,"r");
while($line = @fgets($fp, 1024)){
$ret .= $line;
}
fclose($fp);
// メニュー
$tmpl = TEMPLATE_DIR."menu.tmpl";
$fp = fopen($tmpl,"r");
while($line = @fgets($fp, 1024)){
$ret .= $line;
}
fclose($fp);
// ボディー
$tmpl = TEMPLATE_DIR."news_top.tmpl";
$fp = fopen($tmpl,"r");
while($line = @fgets($fp, 1024)){
$data = "";
if(ereg("<\?(.+)\?>", $line, $match)){
$rep_name = trim($match[1]);
if($rep_name == strtoupper(DATA_TYPE).'_IMG_URL'){
$rep_data = $img_url;
} elseif($rep_name == 'LINK_CHECK'){
$rep_data = $arr[$rep_name];
} elseif($rep_name == 'NEWS_HEAD'){
if($flg_head){
$flg_head = 0;
} else {
$flg_head = 1;
}
} else {
$rep_data = mb_convert_encoding($arr[$rep_name], "SJIS", "EUC");
}
if($rep_name != 'NEWS_HEAD'){
if($flg_head){
if(!$s_date){
$data = ereg_replace("<\?.+\?>", $rep_data, $line);
}
} else {
$data = ereg_replace("<\?.+\?>", $rep_data, $line);
}
}
} else {
if($flg_head){
if(!$s_date){
$data = $line;
}
} else {
$data = $line;
}
}
$ret .= $data;
}
fclose($fp);
// フッター
$tmpl = TEMPLATE_DIR."footer.tmpl";
$fp = fopen($tmpl,"r");
while($line = @fgets($fp, 1024)){
$ret .= $line;
}
fclose($fp);
echo $ret;
$db->disconnect();
?>