get_exception();
}
}
/* 出力準備 */
$smarty = new SmartyEx();
$smarty->prepare();
/* マイプロフィール */
include('common/myprofile.inc');
/* Spotクラスインスタンス生成 */
if ($err_str === "") {
try {
$spot = new Spot($locomill->get_db3());
} catch (SpotError $e) {
$err_str .= $e->get_exception();
}
}
/* Partyクラスインスタンス生成 */
if ($err_str === "") {
try {
$party = new Party($locomill->get_db3());
} catch (PartyError $e) {
$err_str .= $e->get_exception();
}
}
/* Request値の検証 */
if ($err_str === "") {
if (isset($_POST) === true && empty($_POST) === false) {
$rq = $_POST;
} elseif (isset($_GET) === true && empty($_GET) === false) {
$rq = $_GET;
}
if ($party->check_id($rq['id'])) {
$party_id = $rq['id'];
} else {
$err_str .= "正しい手続きでアクセスしていません。
";
}
$menu_no = (preg_match("/^[1-5]{1}$/", $rq['m']))? $rq['m']: 0;
}
/* 宴会データ取得 */
if ($err_str === "") {
try {
if ($preview != 1) {
$party_data = $party->get_data($party_id, 1);
} else {
$party_data = $party->get_data_pre($party_id, 1);
}
$style_array = $party->get_style_array();
unset($style_array[1], $style_array[2], $style_array[3], $style_array[4],
$style_array[21], $style_array[22], $style_array[23], $style_array[24]);
if (!empty($party_data)) {
// 内容
$spot_id = $party_data['spot_id'];
$party_data['party_time_caption'] = $party_data['party_time_caption'];
$party_data['shop_info'] = linkage_url($party_data['shop_info'], '_blank');
// 宴会タイム
$party_data['party_start_time'] = substr($party_data['party_start_time'], 0, -3);
$party_data['party_end_time'] = substr($party_data['party_end_time'], 0, -3);
} else {
$err_str .= '・宴会情報が見つかりませんでした。
';
}
} catch (PartyError $e) {
ErrorRedirect(404);
}
}
/* スポットデータ取得 */
if ($err_str === "") {
try {
$spot_data = $spot->get_data($spot_id);
if ($preview != 1) {
// 表示判定
if ($spot_data['enable'] != 1 || $now <= $spot_data['start_stamp'] || (0 < $spot_data['end_stamp'] && $spot_data['end_stamp'] <= $now)) {
$the_corner_id = 6;
$adver_param = array("terminal_type" => 1, "corner_id" => $the_corner_id);
$adver_b_type = array(1);
include('common/banners.inc');
header("HTTP/1.0 404 Not Found");
$smarty->display('parts/spot/disabled.tpl');
exit;
}
if ($spot_data['is_closed'] == 1) {
// 閉店
$the_corner_id = 6;
$adver_param = array("terminal_type" => 1, "corner_id" => $the_corner_id);
$adver_b_type = array(1);
include('common/banners.inc');
header("HTTP/1.0 404 Not Found");
$smarty->display('parts/spot/closed.tpl');
exit;
}
}
$spot_data = $spot->adjust($spot_data);
} catch (SpotError $e) {
ErrorRedirect(404);
}
}
/* コンテンツメニュー */
if ($err_str === "") {
$feature_type = 'pc';
$page_type = 'party';
include('common/spotmenu.inc');
// メニューが無効の場合
if ($preview != 1 && $is_party != 1) {
$err_str .= '・ページを表示できません。
';
}
}
/* メニューデータ生成 */
if ($err_str === "") {
if (empty($menu_no))
$menu_no = $party_data['menu_pickup'];
$t = sprintf('menu_%02d', $menu_no);
if ($preview == 1 || $party_data[$t . '_enable'] == 1) {
$menu_data['menu_no'] = $i;
$menu_data['unlimited'] = $party_data[$t . '_term_limit'];
$menu_data['start'] = $party_data[$t . '_term_start'];
$menu_data['end'] = $party_data[$t . '_term_end'];
$menu_data['title'] = $party_data[$t . '_title'];
$menu_data['price'] = $party_data[$t . '_price'];
$menu_data['image_list'] = array();
for ($i = 1; $i <= 5; $i++) {
$menu_data[sprintf('caption_%02d', $i)] = linkage_url($party_data[sprintf('%s_caption_%02d', $t, $i)], '_blank');
$temp = array();
$temp['image_caption'] = $party_data[sprintf('%s_image_caption_%02d', $t, $i)];
$upimg_path = $party->get_upimg_path();
if (!empty($party_data[sprintf('%s_image_%02d', $t, $i)]['up_name']) && file_exists($upimg_path . '/' . $party_data[sprintf('%s_image_%02d', $t, $i)]['up_name'])) {
$temp['image_src'] = '/img' . LOCOMILL_UPIMG_PARTY_PATH . '/' . $party_data[sprintf('%s_image_%02d', $t, $i)]['up_name'];
} elseif ($i == 1 && !empty($party_data[sprintf('%s_rsv_txt_01', $t)])) {
$temp['image_src'] = '/old_images/' . $party_data[sprintf('%s_rsv_txt_01', $t)];
} else {
$temp['image_src'] = '';
}
$upimg_path_thum = $party->get_upimg_path('thum');
if (!empty($party_data[sprintf('%s_image_%02d', $t, $i)]['up_name']) && file_exists($upimg_path_thum . '/' . $party_data[sprintf('%s_image_%02d', $t, $i)]['up_name'])) {
$temp['thumnail_src'] = '/img' . LOCOMILL_UPIMG_PARTY_PATH . '_thum/' . $party_data[sprintf('%s_image_%02d', $t, $i)]['up_name'];
} else {
$temp['thumnail_src'] = $temp['image_src'];
}
if (!empty($temp['image_src'])) {
$menu_data['image_list'][] = $temp;
}
}
$party_data['style'] = array();
if ($party_data[$t . '_party_style']) {
foreach ($party_data[$t . '_party_style'] AS $k => $v) {
if (isset($style_array[$v]))
$party_data['style'][] = $style_array[$v];
}
}
if ($preview != 1 && ($now < $menu_data['start'] || $menu_data['end'] < $now)) {
$err_str .= '・メニュー情報を取得できませんでした。
';
$menu_data = array();
}
// メニュー一覧生成
for ($i = 1; $i <= 5; $i++) {
$t = sprintf('menu_%02d', $i);
if ($preview == 1 || $party_data[$t . '_enable'] == 1 && $party_data[$t . '_term_start'] <= $now && $now <= $party_data[$t . '_term_end']) {
$temp = array();
$temp['title'] = $party_data[$t . '_title'];
$temp['start'] = $party_data[$t . '_term_start'];
$temp['end'] = $party_data[$t . '_term_end'];
$temp['menu'] = $i;
$menu_array[] = $temp;
if ($i == $menu_no)
$ind = count($menu_array) - 1;
}
}
$menu_data['prev_menu'] = 0;
$menu_data['next_menu'] = 0;
if ($ind > 0 && isset($menu_array[$ind - 1]))
$menu_data['prev_menu'] = $menu_array[$ind - 1]['menu'];
if ($ind < 4 && isset($menu_array[$ind + 1]))
$menu_data['next_menu'] = $menu_array[$ind + 1]['menu'];
} else {
$err_str .= '・メニュー情報を取得できませんでした。
';
}
}
/* Couponクラスインスタンス生成 */
if ($err_str === "") {
try {
$coupon = new Coupon($locomill->get_db3());
$coupon_array = $coupon->get_data_array(true, true, $spot_id, 0, 1);
if (!empty($coupon_array)) {
foreach ($coupon_array AS $k => $v) {
if ($v['party_flg'] != 1)
continue;
$v['contents_01'] = str_replace("\n", "
", htmlspecialchars_textarea($v['contents_01']));
$v['notice_01'] = str_replace("\n", "
", htmlspecialchars_textarea($v['notice_01']));
$v['image_01'] = unserialize(stripslashes($v['image_01']));
$v['limit'] = (mktime(0, 0, 0, 12, 31, 2037) <= $v['c_end'])? "": date("Y年m月d日", $v['c_end']) . "まで";
$party_coupon_array[$k] = array('ID' => $v['id'],
'NAME' => $v['contents_01'],
'NOTICE' => $v['notice_01'],
'LIMIT' => $v['limit']);
}
}
} catch (CouponError $e) {
$err_str .= $e->get_exception();
}
}
/* 変数の準備 */
// ページタイプ
$smarty->assign("PAGE_TYPE", $page_type);
// スポットデータ
$smarty->assign("SPOT_ID", $spot_id);
$smarty->assign("SPOT_DATA", $spot_data);
// プレビュー
$smarty->assign("PREVIEW", $preview);
$smarty->assign("PV_MODE", $pv_mode);
$smarty->assign("PV_URL", $pv_url);
// 宴会情報
$smarty->assign("PARTY_ID", $party_id);
$smarty->assign("PARTY_DATA", $party_data);
// メニュー情報
$smarty->assign("MENU_ID", $menu_no);
$smarty->assign("MENU_DATA", $menu_data);
$smarty->assign("MENU_LIST", $menu_array);
// クーポン情報
$smarty->assign_ex("PARTY_COUPON_NUM", count($party_coupon_array), "");
$smarty->assign_ex("PARTY_COUPON", $party_coupon_array, "");
// イマココ
$imakoko = getTopicsPath('spot');
if ($err_str === "") {
$imakoko[] = array(sprintf('/search_result/?type=spot&C1=%d', $spot_data['category_01_01_id']), $spot_data['category_01_01_name']);
$imakoko[] = array(sprintf('/search_result/?type=spot&C2=%d', $spot_data['category_01_02_id']), $spot_data['category_01_02_name']);
$imakoko[] = array(sprintf('/search_result/?type=spot&C3=%d', $spot_data['category_01_03_id']), $spot_data['category_01_03_name']);
$imakoko[] = array(sprintf('/spot/home/?id=%d', $spot_id), $spot_data['name_01']);
$imakoko[] = array(sprintf('/spot/party/home/?id=%d&m=%d', $party_id, $menu_no), '宴会マニア');
$imakoko[] = array(sprintf('/spot/party/home/?id=%d&m=%d', $party_id, $menu_no), htmlspecialchars($menu_data['title']));
}
$smarty->assign("IMAKOKO_ARRAY", $imakoko);
// 最新情報
include('common/whatsnew.inc');
/* AccessDailyクラスインスタンス生成 */
if ($err_str === "" && $preview != 1) {
try {
$access = new AccessDaily($locomill->get_db());
$params = array("corner_type" => 1,
"terminal" => 1,
"corner_id" => $spot_data['id'],
'sub_id' => $menu_no,
"page" => $_SERVER['PHP_SELF'],
"title" => '宴会マニア情報:' . $menu_data['title'],
"refer_url" => (isset($_SERVER['HTTP_REFERER'])? $_SERVER['HTTP_REFERER']: ''),
"refer_name" => "",
"keyword" => "",
"file_name" => $_SERVER['REQUEST_URI'],
"member_data" => (isset($locomill->session->sess_data['member_data'])? $locomill->session->sess_data['member_data']: array()));
$access->do_logging($params);
} catch (AccessDailyError $e) {
$access->output_error($e->get_exception());
}
}
/* 広告系 */
$the_corner_id = 6;
$adver_param = array("terminal_type" => 1,
"corner_id" => $the_corner_id,
"category_03_id" => $spot_data['category_01_03_id']);
$adver_b_type = ($spot_data['adver_block_flg'] == 1)? array(7): array(1, 7);
include('common/banners.inc');
// バナー広告
if ($spot_data['adver_block_flg'] == 1) {
if (!empty($spot_data['orig_billboard'])) {
$billboard_out = htmlspecialchars_decode($spot_data['orig_billboard']);
} else {
// 代替ビルボード
$billboard_out = '
';
}
$smarty->assign("ADVER_01", $billboard_out);
}
// エラー文字列
$smarty->assign("ERR_STR", $err_str);
if (!empty($err_str) || $preview == 1) {
header("HTTP/1.0 404 Not Found");
}
// ブラウザキャッシュ対策
if ($err_str === "") {
header('Etag: ' . md5($party_data['id'] . '-' . time()));
}
// Smarty Cache
$cache_id = '';
if ($err_str === "" && $preview != 1) {
$smarty = getSmartyCache($smarty);
$cache_id = getSmartyCacheId(array_merge($party_data, $rq), array('id', 'update_stamp', 'isSP', 'm'));
}
/* 出 力 */
$smarty->display('spot/party/home/index.tpl', $cache_id);