cal4.php 5.12 KB
<?php 
header("Content-Type: text/calendar; charset=utf-8");
header("Content-Disposition: inline; filename=E-GruCal.ics");

//*** GET情報取得 ***//
//$G_ID = $_GET["G_ID"];
//$U_ID = $_GET["U_ID"];
//$S_CD = $_GET["S_CD"];
$G_ID   = "mtc";
$U_ID   = "11";

//*** グループ情報の存在確認 ***//
include("./include/dbcon_group.inc");
$strSQLGroup="SELECT * FROM mst_group WHERE folder_name='".$G_ID."'";
$objRecGroup = pg_exec($strSQLGroup);
if($objRecGroup==false){
		echo("SQL実行に失敗しました(SELECT)");
		exit;
}
$objRecGroup = pg_exec($strSQLGroup);
if($objRecGroup==false){
		exit;
}
$objGroup = pg_fetch_object($objRecGroup, 0);
$PHP_DB_NAME=$objGroup->db_name;

//*** 個人情報の存在確認 ***//
$hostname="localhost";
$database=$PHP_DB_NAME;
if( !$pg_con=pg_connect("host=$hostname dbname=$database user=pgsqladmin password=pgsqladmin") ) {
		exit;
}

//*** カレンダーセキュリティコード確認 ***//
/*
$strSQL = "select memo from kojin_data_tbl where syain_cd='".$U_ID."' and seq=24";
$objData = pg_exec($strSQL);
if(pg_numrows($objData) > 0){
		$objRec = pg_fetch_object($objData,0);
		$SECURITY_CODE = $objRec->memo;
}else{
		exit;
}
if ($S_CD!=$SECURITY_CODE){
		exit;
}
*/

//* 開始日取得 *//
$strSQL = "select memo from kojin_data_tbl where syain_cd='".$U_ID."' and seq=25";
$objData = pg_exec($strSQL);
if(pg_numrows($objData) > 0){
		$objRec = pg_fetch_object($objData,0);
		$Bf_Day = $objRec->memo;
}else{
		$Bf_Day = 10;
}
//* 終了日取得 *//
$strSQL = "select memo from kojin_data_tbl where syain_cd='".$U_ID."' and seq=25";
$objData = pg_exec($strSQL);
if(pg_numrows($objData) > 0){
		$objRec = pg_fetch_object($objData,0);
		$Af_Day = $objRec->memo;
}else{
		$Af_Day = 10;
}

$now_year  = date("Y");
$now_month = date("m");
$now_day   = date("d");

$st_year  = date("Y", mktime (0,0,0,$now_month,$now_day-(int)$Bf_Day,$now_year));
$st_month = date("m", mktime (0,0,0,$now_month,$now_day-(int)$Bf_Day,$now_year));
$st_day   = date("d", mktime (0,0,0,$now_month,$now_day-(int)$Bf_Day,$now_year));

$intLoopMax = $Bf_Day+$Af_Day;


echo "BEGIN:VCALENDAR"."\n";
echo "PRODID:E-gruPro"."\n";
echo "VERSION:2.0"."\n";
echo "METHOD:PUBLISH"."\n";
echo "CALSCALE:GREGORIAN"."\n";
echo "X-WR-CALNAME:E-グルPro"."\n";
echo "X-WR-CALDESC:E-グルPro"."\n";
echo "X-WR-TIMEZONE:Asia/Tokyo"."\n";

for ($intI = 0; $intI < $intLoopMax ; $intI++) {

		$Get_Date  = date("Y/m/d", mktime (0,0,0,$st_month,$st_day+$intI,$st_year));
		$Disp_Date  = date("Ymd", mktime (0,0,0,$st_month,$st_day+$intI,$st_year));
		$Next_Date  = date("Ymd", mktime (0,0,0,$st_month,$st_day+$intI+1,$st_year));

		$strSQL  = "";
		$strSQL .= "SELECT";
		$strSQL .= " * ";
		$strSQL .= "FROM ";
		$strSQL .= " schedule_tbl ";
		$strSQL .= "WHERE ";
		$strSQL .= " (scdl_st_date<='".$Get_Date."' AND scdl_ed_date>='".$Get_Date."') AND ";
		$strSQL .= " (disp_cd='".$U_ID."' OR share_syain like '%/".$U_ID."/%')         AND ";
		$strSQL .= " (";
		$strSQL .= "  (scdl_type = 0)    ";
		//$strSQL .= "  (scdl_type = 0) OR ";		//0 通常
		//$strSQL .= "  (scdl_type = 1) OR ";		//1 週1
		//$strSQL .= "  (scdl_type = 2) OR ";		//2 月1
		//$strSQL .= "  (scdl_type = 3) OR ";		//3 バナー
		//$strSQL .= "  (scdl_type = 4) OR ";		//4 バナー第○週
		//$strSQL .= "  (scdl_type = 4) OR ";		//5 第○週○曜日
				//週1
		$strSQL .= " )";
		$strSQL .= "ORDER By";
		$strSQL .= " scdl_st_time ASC, ";
		$strSQL .= " scdl_ed_time ASC  ";

		$objData = pg_exec($strSQL);
		$intMax=pg_numrows($objData);

		for ($intJ = 0; $intJ < $intMax ; $intJ++) {
				$objRec = pg_fetch_object($objData, $intJ);
				$SetFlg = "";

				switch($objRec->scdl_type){
						case 1:
								//1 週1

								break;
						case 2:
								//2 月1

								break;
						case 3:
								//3 バナー

								break;
						case 4:
								//4 バナー第○週

								break;
						case 5:
								//5 第○週○曜日

								break;
						default:
								//0 通常
								$SetFlg = 1;

								break;
				}

				if ($SetFlg==1){
						$scdl_plan = mb_convert_encoding($objRec->scdl_plan, "UTF-8", "EUC-JP");
						$scdl_biko = mb_convert_encoding($objRec->scdl_biko, "UTF-8", "EUC-JP");

						if (($objRec->scdl_st_time == "") && ($objRec->scdl_st_time == "")){
										$DTSTART   = $Disp_Date;
										$DTEND   = $Next_Date;
						}else{
								if ($objRec->scdl_st_time != ""){
										$DTSTART   = $Disp_Date."T".str_replace(":", "", $objRec->scdl_st_time);
								}else{
										$DTSTART   = $Disp_Date;
								}
								if ($objRec->scdl_ed_time != ""){
										$DTEND   = $Disp_Date."T".str_replace(":", "", $objRec->scdl_ed_time);
								}else{
										$DTEND   = $Disp_Date;
								}
						}



						echo "BEGIN:VEVENT"."\n";
						echo "DESCRIPTION:".$scdl_biko."\n";
						echo "DTSTART:".$DTSTART."\n";
						echo "DTEND:".$DTEND."\n";
						echo "SUMMARY:".$scdl_plan."\n";
						echo "END:VEVENT"."\n";

				}
		}
}


echo "BEGIN:VTIMEZONE"."\n";
echo "TZID:Asia/Tokyo"."\n";
echo "BEGIN:STANDARD"."\n";
echo "DTSTART:19700101T000000"."\n";
echo "TZOFFSETFROM:+0900"."\n";
echo "TZOFFSETTO:+0900"."\n";
echo "END:STANDARD"."\n";
echo "END:VTIMEZONE"."\n";

echo "END:VCALENDAR"."\n";


?>