// アドオン利用権限確認
require_once dirname(__DIR__, 2) . '/libs/common_addon.php';
require_once dirname(__DIR__) . '/libs/shopMetaImages.php';
require_once dirname(__DIR__, 2) . "/logs/performanceLog.php";
$log_name = 'shopCommon 開始';
$logfilename = 'shopCommon';
// performance_log($log_name, 0, microtime(true), $UsrObj['id'], $log_session_id, __FILE__, $logfilename);
// OGP、METAタグ関連
try {
// $log_name = 'ショップ情報取得';
// 特殊文字をエスケープ
$cl_stm_cd = SQLIN($_REQUEST['scd']);
$sql = "SELECT * FROM cl_stm_tb WHERE cl_stm_cd = :cl_stm_cd";
$obj = $db->prepare($sql);
$obj->bindValue(":cl_stm_cd", $cl_stm_cd, PDO::PARAM_STR);
$obj->execute();
// performance_log($log_name, 0, microtime(true), $UsrObj['id'], $log_session_id, __FILE__, $logfilename);
if (!$shop = $obj->fetch(PDO::FETCH_ASSOC)) {
// お店が存在しない
header ("location:" .BASE_SSL_URL. "/404.php");
exit;
} elseif ($shop['status'] == "2") { // 2:削除
// お店が削除されている
header ("location:" .BASE_SSL_URL. "/404.php");
exit;
} elseif ($shop['cl_stm_type'] == "1" || $shop['cl_stm_type'] == "2") { // cl_stm_type 1:投稿, 2:飲食店トライアル
// 投稿店・無料店は取り合えず非表示
header ("location:" .BASE_SSL_URL. "/404.php");
exit;
} else {
// ステータスが有効のショップ
http_response_code(200);
//$_SESSION['scd'] = $shop['cl_stm_cd']; // ユーザー登録時の紐付け
setcookie('scd', $shop['cl_stm_cd'], time() + 60 * 86400, '/', COOKIE_TARGET);
// 掲載フラグが0ならば掲載 掲載フラグが0以外でもプレビューの場合は掲載
if($shop['publish_flg'] !== 0 && $_GET['pv'] != 1 && empty($_GET['preview_token']))
{
header ("location:" .BASE_SSL_URL. "/404.php");
exit;
}
$log_name = 'ショップ画像判定';
// カレントパス
$currentUrl = BASE_SSL_URL . "/storeDetail.php?scd=" . $shop['cl_stm_cd'];
// メタタグ用画像URL準備
$meta_image_urls = [
'main_thumnail' => SHOP_CDN . $shop['cl_stm_cd'] . "_L.jpg",
'twitter_thumnail' => S3_BASE_URL . 'pic/sns_ogp_tw/' . $shop['cl_stm_cd'] . '.jpg',
'facebook_thumnail' => S3_BASE_URL . 'pic/sns_ogp_fb/' . $shop['cl_stm_cd'] . '.jpg'
];
// メタタグ用画像URLの存在確認 存在しなければ別画像に差し替えられる
$validated_meta_image_urls = checkShopMetaImageUrls($meta_image_urls);
// メタタグ用画像URLを定義
$main_thumnail = $validated_meta_image_urls['main_thumnail'];
$twitter_thumnail = $validated_meta_image_urls['twitter_thumnail'];
$facebook_thumnail = $validated_meta_image_urls['facebook_thumnail'];
// performance_log($log_name, 0, microtime(true), $UsrObj['id'], $log_session_id, __FILE__, $logfilename);
// $log_name = 'cl_stm_info取得';
// 列数(itemrows)
$sql = "SELECT * FROM cl_stm_info WHERE cl_stm_cd = :cl_stm_cd";
$obj = $db->prepare($sql);
$obj->bindValue(":cl_stm_cd", $shop['cl_stm_cd'], PDO::PARAM_STR);
$obj->execute();
$stmInfo = $obj->fetch(PDO::FETCH_ASSOC);
// performance_log($log_name, 0, microtime(true), $UsrObj['id'], $log_session_id, __FILE__, $logfilename);
// $log_name = 'METAタグ取得、作成';
// METAタグ
$sql = "SELECT * FROM cl_stm_meta WHERE cl_stm_cd = :cl_stm_cd";
$obj = $db->prepare($sql);
$obj->bindValue(":cl_stm_cd", $shop['cl_stm_cd'], PDO::PARAM_STR);
$obj->execute();
$rand = mt_rand();
if ($meta = $obj->fetch(PDO::FETCH_ASSOC)) {
// 空白・nullチェック
$cl_meta_title = (is_null($meta['cl_meta_title']) || $meta['cl_meta_title'] == "") ? $shop['cl_stm_name'] . " | " . $shop['cl_stm_catch_copy'] : $meta['cl_meta_title'];
$cl_meta_disp = (is_null($meta['cl_meta_disp']) || $meta['cl_meta_disp'] == "") ? $shop['cl_stm_list_text'] : $meta['cl_meta_disp'];
// 各種タグ 改行コードを削除して出力
$cl_meta_disp = str_replace(array("\r\n", "\r", "\n"), '', $cl_meta_disp);
// メタタグ・OGP設定
$OGP_title = sprintf("\n", $cl_meta_title);
$OGP_description = sprintf("\n", $cl_meta_disp);
$OGP_url = sprintf("\n", $currentUrl);
$OGP_image = sprintf("\n", $facebook_thumnail);
$Tw_title = sprintf("\n", $cl_meta_title);
$Tw_description = sprintf("\n", $cl_meta_disp);
$Tw_url = sprintf("\n", $currentUrl);
$Tw_image = sprintf("\n", $twitter_thumnail);
$META_title = $cl_meta_title;
$META_description = $cl_meta_disp;
$META_keyword = $meta['cl_meta_keyword'] . ",ツクツク";
} else {
// 改行コードを削除して出力
//$shop['cl_stm_list_text'] = str_replace(array("\r\n", "\r", "\n"), '', $shop['cl_stm_list_text']);
$meta_list_text = str_replace(array("\r\n", "\r", "\n"), '', $shop['cl_stm_list_text']);
$OGP_title = sprintf("\n", $shop['cl_stm_name']);
$OGP_description = sprintf("\n", $meta_list_text);
$OGP_url = sprintf("\n", $currentUrl);
$OGP_image = sprintf("\n", $facebook_thumnail);
$Tw_title = sprintf("\n", $shop['cl_stm_name']);
$Tw_description = sprintf("\n", $meta_list_text);
$Tw_url = sprintf("\n", $currentUrl);
$Tw_image = sprintf("\n", $twitter_thumnail);
$META_title = $shop['cl_stm_name'];
$META_description = $meta_list_text;
$META_keyword = PG_KEYWORD . ",ツクツク";
}
// performance_log($log_name, 0, microtime(true), $UsrObj['id'], $log_session_id, __FILE__, $logfilename);
/**************************************************/
/********** ソーシャルカウント取得&更新 ******************/
/**************************************************/
/*
$AP_ID = "1581362032128406";
$AP_SECRET = "a7770f73fb66e5cdd0def1aeb8c89d7d";
$access_token = $AP_ID . "|" . $AP_SECRET;
$url = "https://home.tsuku2.jp/storeDetail.php?scd=" . $shop['cl_stm_cd']; //チェックするURL
$url = "https://graph.facebook.com/?access_token=" . $access_token . "&id=". urlencode($url);
$json = @file_get_contents($url); // JSONデータを取得
$array = json_decode($json, true); // JSONデータを連想配列に直す
$count_2c = $array["share"]["comment_count"];
$count_2s = $array["share"]["share_count"];
$fb_2 = $count_2c + $count_2s;
// カウント数が同じ以下だったら更新しない
if ($shop['fb_2'] < $fb_2 && $fb_2 != 0) {
try {
$updateObj = $db->prepare("UPDATE cl_stm_tb SET fb_2 = :fb_2, per_update = NOW() WHERE cl_stm_cd = :cl_stm_cd");
$updateObj->bindValue(":fb_2", $fb_2, PDO::PARAM_INT);
$updateObj->bindValue(":cl_stm_cd", $shop['cl_stm_cd'], PDO::PARAM_STR);
$updateObj->execute();
} catch (PDOException $e) {
Er_writeLog($updateObj, $e->getMessage());
echo "クエリエラー";
exit;
}
} else {
$fb_2 = $shop['fb_2'];
}
*/
$AP_ID = "1581362032128406";
$AP_SECRET = "a7770f73fb66e5cdd0def1aeb8c89d7d";
$access_token = $AP_ID . "|" . $AP_SECRET;
$url = "https://home.tsuku2.jp/storeDetail.php?scd=" . $shop['cl_stm_cd']; //チェックするURL
//echo $url;
//$url = "https://graph.facebook.com/?access_token=" . $access_token . "&id=". urlencode($url);
// 以下のAPI実行がFacebook Developerのアプリレート制限に引っかかると考えられるためコメントアウト(HOME_DEFECT-776)
// $url = "https://graph.facebook.com/?fields=og_object{engagement},engagement&access_token=" . $access_token . "&id=" . urlencode($url);
// //echo $url . "
";
// $json = @file_get_contents($url); // JSONデータを取得
// //echo $json;
// $array = json_decode($json, true); // JSONデータを連想配列に直す
// //var_dump($array);
// $count_3c = $array["engagement"]["reaction_count"]; // いいね数
// $count_3s = $array["engagement"]["share_count"]; // シェア回数
// $fb_3 = $count_3c + $count_3s;
// //echo "\$count_3c = " . $count_3c . "
";
// //echo "\$count_3s = " . $count_3s . "
";
// //echo "\$fb_2 = " . $fb_2 . "
";
// // カウント数が同じ以下だったら更新しない
// if ($shop['fb3_flg'] < $fb_3 && $fb_3 != 0) {
// try {
// $updateObj = $db->prepare("UPDATE cl_stm_tb SET fb3_flg = :fb3_flg, per_update = NOW() WHERE cl_stm_cd = :cl_stm_cd");
// $updateObj->bindValue(":fb3_flg", $fb_3, PDO::PARAM_INT);
// $updateObj->bindValue(":cl_stm_cd", $shop['cl_stm_cd'], PDO::PARAM_STR);
// $updateObj->execute();
// } catch (PDOException $e) {
// Er_writeLog($updateObj, $e->getMessage());
// echo "クエリエラー";
// exit;
// }
// } else {
// $fb_3 = $shop['fb3_flg'];
// }
// // シェアボタンに表示するカウント数合計
// $fb_total_share_count = $shop['fb_1'] + $shop['fb_2'] + $fb_3;
/**************************************************/
/************** お気に入り取得&更新 ******************/
/**************************************************/
// $log_name = 'お気に入り数取得';
try {
$sql = "SELECT no FROM cl_stm_wish_tb WHERE wished_id = :wished_id AND type = :type AND status = :status";
$obj = $db->prepare($sql);
$obj->bindValue(":wished_id", $shop['cl_stm_cd'], PDO::PARAM_STR);
$obj->bindValue(":type", 3, PDO::PARAM_INT);
$obj->bindValue(":status", 0, PDO::PARAM_INT);
$obj->execute();
} catch (PDOException $e) {
die($e->getMessage());
}
$wish_cnt = $obj->rowCount();
// performance_log($log_name, 0, microtime(true), $UsrObj['id'], $log_session_id, __FILE__, $logfilename);
// $log_name = 'お気に入り更新';
// カウント数が同じ以下だったら更新しない
if ($shop['wishcnt'] < $wish_cnt && !empty($wish_cnt)) {
try {
$update_sql = "
UPDATE cl_stm_tb
SET
wishcnt = :wishcnt
, per_update = NOW()
WHERE
cl_stm_cd = :cl_stm_cd
";
$update_obj = $db->prepare($update_sql);
$update_obj->bindValue(":wishcnt", $wish_cnt, PDO::PARAM_INT);
$update_obj->bindValue(":cl_stm_cd", $shop['cl_stm_cd'], PDO::PARAM_STR);
$update_obj->execute();
} catch (PDOException $e) {
Er_writeLog($update_sql, $e->getMessage());
echo "クエリエラー";
exit;
}
} else {
$wish_cnt = $shop['wishcnt'];
}
// performance_log($log_name, 0, microtime(true), $UsrObj['id'], $log_session_id, __FILE__, $logfilename);
}
} catch (PDOException $e) {
die($e->getMessage());
}
// $log_name = 'プレビュートークン取得';
// プレビュートークンが有る場合はCSSを適応する
require_once dirname(__DIR__, 2) . '/contents/libs/themePreview.php';
// performance_log($log_name, 0, microtime(true), $UsrObj['id'], $log_session_id, __FILE__, $logfilename);
// $log_name = 'トークン存在確認';
// プレビュートークン指定時にエラーが有った場合はalertを表示する
$preview_token_error_msg_script = null;
if (isset($_GET['preview_token'])) {
$preview_template = themePreview_get_preview_css($_GET['preview_token'], $shop['cl_stm_cd']);
if (!empty($preview_template['error'])) {
$preview_token_error_msg_script = "alert('" . $preview_template['message'] . "')";
}
}
// performance_log($log_name, 0, microtime(true), $UsrObj['id'], $log_session_id, __FILE__, $logfilename);
// $log_name = 'ショップテーマ設定';
// テーマ
if (!empty($preview_template['css_path']) && !empty($preview_template['error']) || empty($preview_template['css_path'])) {
// テーマを取得
try {
$sql = "SELECT * FROM cl_stm_shop_top_theme_type_mst WHERE status = :status ORDER BY orders";
$obj = $db->prepare($sql);
$obj->bindValue(":status", 0, PDO::PARAM_INT);
$obj->execute();
$mst_preview_data = $obj->fetchAll(PDO::FETCH_ASSOC);
} catch (PDOException $e) {
die($e->getMessage());
}
// テンプレートが設定されていない場合はmstの1番目になっているはず
if (!empty($shop['shop_top_theme_type'])) {
foreach ($mst_preview_data as $row) {
if ($row['no'] == $shop['shop_top_theme_type']) {
$preview_template['css_path'] = $row['css_path'];
break;
}
}
}
// 最終補完
if (empty($shop['shop_top_theme_type'])) {
$preview_template['css_path'] = $mst_preview_data[0]['css_path'];
}
}
// $log_name = 'shopCommon 終了';
// performance_log($log_name, 0, microtime(true), $UsrObj['id'], $log_session_id, __FILE__, $logfilename);
use libs\freepage\GlobalMenu;
include_once dirname(__DIR__, 3).'/libs/freepage/GlobalMenu.php';
try {
$gb = new GlobalMenu();
$gb
->make_html_pc()
->make_html_sp();
$menu_pc = $gb->get_html_pc();
$menu_sp = $gb->get_html_sp();
} catch (Exception $e) {
echo '
ページを正しく表示できません。
ご迷惑をおかけして申し訳ございません。
'; die(); } // フリーページのテンプレート変更のためにショップコードを取得する if(empty($shop) && empty($shop[0])) { $shop['cl_stm_cd'] = $gb->get_cl_stm_cd(); } Warning: Trying to access array offset on value of type bool in /var/www/html/public/aboutUs.php on line 18 Warning: Undefined variable $shop in /var/www/html/public/aboutUs.php on line 18 Warning: Trying to access array offset on value of type null in /var/www/html/public/aboutUs.php on line 18 Fatal error: Uncaught TypeError: insertAccesLog(): Argument #2 ($cl_stm_cd) must be of type string, null given, called in /var/www/html/public/aboutUs.php on line 18 and defined in /var/www/html/public/libs/common.php:2805 Stack trace: #0 /var/www/html/public/aboutUs.php(18): insertAccesLog() #1 {main} thrown in /var/www/html/public/libs/common.php on line 2805