豊作祈願)
改 修:2022/11/09
(1)「農産品注文」メニューを「個人向け注文」「業者向け注文」に機能分割するためツールバー改修
改 修:2022/12/19
(1)メニューバーの注文数カウントをJavascript処理へ移行
(2)個人向けと業者向け注文ページを分けるオーダーのため、注文相手を判別する必要あり。
商品購入モーダル<カートに入れる>ボタン押下時に注文元フラグを追加し、
カートページへの戻り先を設定するよう仕様変更。
フラグ:0:業者向け注文、1:個人向け注文
改 修:2023/02/25
(1)デバッグフラグをPHPから取得
改 修:2023/03/21
追加仕様変更により以下の文言変更
(1)「管理者専用サイト」⇒「管理者メニュー」
(2)「管理者専用サイトログイン」⇒「管理者メニューログイン」
(3)「管理者専用サイトログアウト」⇒「管理者メニューログアウト」
改 修:2023/04/25
(1)ヘッダ削除およびパンくずバーの背景色・文字色変更処理をおこなう
・カルーセル部のインクルードおよび実行関数の削除(function_writeCarousel.php、writeCarousel())
・カルーセル部内で設定していたCSSを分割し読込み(admin-menu.css)
・タイトル設定取得クラスの読み込みを追加(get_mTitle.php)
・パンくずリストの背景色、文字色、行間の書き換え
(2)お知らせ一覧ページ(H-004)について、内容文章縮小部の表示が編集画面で編集したものと違い、表示が崩れる。
1.記事ヘッダと「続きを読む」リンクはそのまま
2.取得した記事文章の表示文字数制限処理の時に、HTMLタグをすべて削除し、平のテキストにする
3.平のテキストを文字数制限で省略し表示
改 修:
*****************************************************************************************/
/*=============================================================================
タイムゾーンの設定
=============================================================================*/
date_default_timezone_set('Asia/Tokyo');
/*=============================================================================
自分自身のファイル名取得
=============================================================================*/
$baseFname = basename(__FILE__);
/*=============================================================================
ライセンス認証クラスの読み込み
=============================================================================*/
//ライセンス認証ファイル相対パス
$licenseFileName = "./common/license.txt";
include('./common/php/read_binFile.php');
/*=============================================================================
MySQL接続クラスの読み込み
=============================================================================*/
include('./common/php/baseDbName.php');
/*=============================================================================
MySQL接続変数宣言
=============================================================================*/
//データベース物理名を変数に格納
$tbl_name = 'm_producer';
$tbl_name_tInfo = 't_info';
//データベーステーブル名を変数に格納
$tbl_title = '生産者マスターテーブル';
$tbl_title_news = '生産者マスターテーブル';
//データベース種
$KIND = "manage";
//データベースインデックス
$IDX = "";
/*=============================================================================
MySQL接続クラスの読み込み
=============================================================================*/
include('./common/db/comSetDbLib.php');
/*=============================================================================
タイトル設定取得クラスの読み込み
=============================================================================*/
include('./common/php/get_mTitle.php');
/*=============================================================================
変数宣言・初期化
=============================================================================*/
if(isset($_GET['yr'])){
$selectYear = $_GET['yr'];
if(false !== strpos($selectYear,'-')){
$yearAry = explode("-",$selectYear);
}else{
$yearAry = $selectYear;
}
}else{
$selectYear = null;
$yearAry = null;
}
/*=============================================================================
セッション開始・初期化
=============================================================================*/
session_time_out($BaseDbName,$tbl_name,$tbl_title,$KIND,$IDX,$baseFname,$debug_flg,$timeout); //セッションタイムアウト(秒)設定
/*=============================================================================
Cookie取得
=============================================================================*/
$cookieCnt = 0;
$quoteAry = array();
foreach ($_COOKIE as $key => $value) {
// $_POSTされた会員情報をkeyを変数名としながら一括代入
if(strpos($key,'gkkhj-') !== false){ //豊作祈願見積依頼クッキー
if(isset($_POST['d_id']) && $_POST['d_id'] == ""){
}else
if(isset($_POST['d_id']) && $_POST['d_id'] == $key){
if(isset($_COOKIE[$key])) {
setcookie($key, '', time() - 1800, '/');
}
}else{
$quoteAry[$cookieCnt] = $key."|".htmlspecialchars($_COOKIE[$key], ENT_QUOTES, 'utf-8');
$cookieCnt++;
}
}
}
/*=============================================================================
セッションタイムアウト(秒)設定[システム初期値:1440秒(24分)]
=============================================================================*/
function session_time_out($BaseDbName,$tbl_name,$tbl_title,$KIND,$IDX,$baseFname,$debug_flg,$timeout = 1440){
session_cache_limiter('nocache');
ini_set('session.gc_maxlifetime', $timeout);
session_start();
if(isset($_SESSION['gkkhj_sid'])){
$tmp = $_SESSION; //セッション変数を退避
$_SESSION = array(); //セッション変数を空にする
session_destroy(); //セッション破棄
session_id(sha1(uniqid(mt_rand(),true))); //セッションID更新
session_start(); //セッション再開
session_regenerate_id();
$_SESSION = $tmp; //セッション変数引継
if(isset($_SESSION['idle_time']) && $_SESSION['idle_time'] < time()){
$_SESSION = array(); //セッション変数を空にする
session_destroy(); //セッション破棄
session_id(sha1(uniqid(mt_rand(),true))); //セッションID更新
session_start(); //セッション再開
session_regenerate_id();
$_SESSION = $tmp; //セッション変数引継
}
$_SESSION['idle_time'] = time() + $timeout; //セッションタイムアウトのセッション変数保存
$_SESSION['gkkhj_sid'] = session_id(); //セッションIDのセッション変数保存
//タイトルの取得
//データベース接続
$con = comDbConnect($BaseDbName,$KIND,$IDX);
//登録件数取得
$sql = "SELECT producer_name FROM ".$tbl_name;
if($res = comDbQuery($con, $sql)){
while ($row=mysqli_fetch_array($res, MYSQLI_ASSOC)){
$_SESSION['producer_name'] = $row['producer_name'];
}
}else{
$response = "[ERROR]豊作祈願:".$tbl_title."照会失敗:".mysqli_error($con);
}
//データベースを閉じる
comDbClose($con);
}else{
if($debug_flg == 0){ //本番時
initSession($baseFname,$timeout); //セッション初期化・終了
}else{ //デバッグ時
//データベース接続
$con = comDbConnect($BaseDbName,$KIND,$IDX);
//登録件数取得
$sql = "SELECT producer_name FROM ".$tbl_name;
if($res = comDbQuery($con, $sql)){
while ($row=mysqli_fetch_array($res, MYSQLI_ASSOC)){
$_SESSION['producer_name'] = $row['producer_name'];
}
}else{
$response = "[ERROR]豊作祈願:".$tbl_title."照会失敗:".mysqli_error($con);
}
//データベースを閉じる
comDbClose($con);
}
}
}
/*=============================================================================
セッション初期化・終了
=============================================================================*/
function initSession($baseFname,$timeout){
//セッションデータの初期化(セッションファイルは破棄されない)
foreach($_SESSION as $key){
unset($_SESSION[$key]);
}
$_SESSION = array();
/*セッションを切断するにはセッションクッキーも削除する
(セッション情報だけでなくセッションを破壊する)*/
if(isset($_COOKIE[session_name()])) {
setcookie(session_name(), '', time()-$timeout, '/');
}
//最終的にセッションを破壊
session_destroy();
}
/*=============================================================================
メイン処理
=============================================================================*/
//お知らせデータ件数を取得
$infoYearList = getInfoCount($BaseDbName,$KIND,$IDX,$tbl_name_tInfo,$tbl_title_news);
//お知らせデータを取得
$infomationList = getInfomation($BaseDbName,$KIND,$IDX,$tbl_name_tInfo,$tbl_title_news,$selectYear);
/*=============================================================================
MySQL登録されている例会データ件数を取得する関数
=============================================================================*/
function getInfoCount($BaseDbName,$KIND,$IDX,$tbl_name_tInfo,$tbl_title_news){
//戻り値の初期化
$row_cnt = 0;
$resList = array();
//データベースの接続
$con = comDbConnect($BaseDbName,$KIND,$IDX);
if($con != null){
$toDate = date("Y-m-d H:i:s");
//登録件数取得
$sql = "SELECT performance_year, count(*) AS cnt FROM ".$tbl_name_tInfo;
$sql .= " WHERE (statusFlag != 0 AND statusFlag != 99)";
$sql .= " AND ('".$toDate."' >= displayStart_date AND '".$toDate."' <= displayEnd_date)";
$sql .= " GROUP BY performance_year";
$sql .= " ORDER BY id DESC";
//クエリーの実行
if($res = comDbQuery($con, $sql)){
while ($row = mysqli_fetch_assoc($res)) {
$resList[$row_cnt] = [
'performance_year' => $row['performance_year'],
'cnt' => $row['cnt']
];
$row_cnt++;
}
comDbFreeResult($res);
}else{
echo "[ERROR]豊作祈願:".$tbl_title_news."照会失敗:".mysqli_error($con)."
";
}
//データベースを閉じる
comDbClose($con);
}
//戻り値
return $resList;
}
/*=============================================================================
お知らせインジケーターの書き出し関数
=============================================================================*/
function writeInfoIndicators($infoYearList,$selectYear){
/* 年間リストの作成 */
$yearLineAry = array();
$tmpYear = "";
$cnt = 0;
for($i=0;$i最新のお知らせ'.PHP_EOL;
$toYear = date('Y');
for($i=0;$i'.$yearLineAry[$i].'年';
if($total > 0){
echo ' '.$total.'';
}
echo ''.PHP_EOL;
}
}
}
/*=============================================================================
MySQL登録されているお知らせデータを取得する関数
=============================================================================*/
function getInfomation($BaseDbName,$KIND,$IDX,$tbl_name_tInfo,$tbl_title_news,$selectYear){
if(false === strpos($selectYear,'-')){
$yearAry = $selectYear;
}else
if($selectYear != null){
$yearAry = explode("-",$selectYear);
}else{
$yearAry = null;
}
//戻り値の初期化
$row_cnt = 0;
$resList = array();
//データベースの接続
$con = comDbConnect($BaseDbName,$KIND,$IDX);
if($con != null){
$toDate = date("Y-m-d H:i:s");
//登録件数取得
$sql = "SELECT * FROM t_info";
$sql .= " WHERE (statusFlag != 0 AND statusFlag != 99)";
$sql .= " AND ('".$toDate."' >= displayStart_date AND '".$toDate."' <= displayEnd_date)";
if(false === strpos($selectYear,'-')
|| $yearAry == null
){
$sql .= " ORDER BY id DESC LIMIT 5";
}else{
$sql .= " ORDER BY id DESC";
}
//クエリーの実行
if($res = comDbQuery($con, $sql)){
while ($row = mysqli_fetch_assoc($res)) {
$datetimeAry = explode(" ",$row['performance_year']);
$dateAry = explode(" ",$datetimeAry[0]);
if(false === strpos($selectYear,'-')
|| $yearAry == null
){
$resList[$row_cnt] = [
'id' => $row['id'],
'statusFlag' => $row['statusFlag'],
'performance_year' => $row['performance_year'],
'title' => $row['title'],
'article' => $row['article'],
'update_date' => $row['update_date'],
];
$row_cnt++;
}else{
if(intVal($dateAry[0]) >= intVal($yearAry[0]) && intVal($dateAry[0]) <= intVal($yearAry[0])){
$resList[$row_cnt] = [
'id' => $row['id'],
'statusFlag' => $row['statusFlag'],
'performance_year' => $row['performance_year'],
'title' => $row['title'],
'article' => $row['article'],
'update_date' => $row['update_date'],
];
$row_cnt++;
}
}
}
comDbFreeResult($res);
}else{
echo "[ERROR]豊作祈願:".$tbl_title_news."照会失敗:".mysqli_error($con)."
";
}
//データベースを閉じる
comDbClose($con);
}
//戻り値
return $resList;
}
/*=============================================================================
お知らせの書き出し関数
=============================================================================*/
function writeInfoList($infomationList){
for($i=0;$i