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(); } } /* PlusNewsクラスインスタンス生成 */ if ($err_str === "") { try { $plus_news = new PlusNews($locomill->get_db()); $icon_array = $plus_news->get_plus_news_type_icon(); $cont_array = $plus_news->get_plus_news_type_array2(); } catch (PlusNewsError $e) { $err_str .= $e->get_exception(); } } /* Goodクラスインスタンス生成 */ if ($err_str === "") { try { $good = new Good($locomill->get_db3()); } catch (GoodError $e) { $err_str .= $e->get_exception(); } } /* GoodTypeクラスインスタンス生成 */ if ($err_str === "") { try { $good_type = new GoodType($locomill->get_db3()); $good_type_array = $good_type->get_data_array(true); } catch (GoodTypeError $e) { $err_str .= $e->get_exception(); } } /* Pagerクラスインスタンス生成 */ if ($err_str === "") { try { $pager = new Pager(); } catch (PagerError $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; } // 絞り込みID $cat = (isset($rq['cat']) && preg_match("/^[0-9]+$/", $rq['cat']))? $rq['cat']: 0; $page = (isset($rq['page']) && preg_match("/^[0-9]+$/", $rq['page']))? $rq['page']: 1; } /* スポットデータ取得 */ if ($err_str === "") { try { if ($spot->check_id($rq['id'])) { $spot_id = $rq['id']; } else { throw new SpotError('・正しい手続きでアクセスしていません。
'); } $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 = 'news'; include('common/spotmenu.inc'); // メニューが無効の場合 if ($preview != 1 && $is_plusnews != 1 && $is_plus != 1 && $is_pr != 1) { $err_str .= '・ページを表示できません。
'; } } /* ニュースカテゴリ取得 */ if ($err_str === "") { try { $type = ($spot_data['category_01_01_id'] == 1 || $spot_data['category_02_01_id'] == 1 || $spot_data['category_03_01_id'] == 1 || $spot_data['category_04_01_id'] == 1 || $spot_data['category_05_01_id'] == 1)? 'all': 'parts'; $cat_array = $plus_news->get_plus_news_type_array($type); } catch (PlusNewsError $e) { $err_str .= $e->get_exception(); } } /* お店・スポットからのニュースデータ取得 */ if ($err_str === "") { $wlist = array(); $wlist[] = sprintf('spot_id = %d', $locomill->get_db3()->escape($spot_id)); $wlist[] = 'enable = 1'; $wlist[] = sprintf('%d <= end_stamp', $now); if ($preview != 1) { $wlist[] = sprintf('start_stamp <= %d', $now); } if ($cat > 0) { $wlist[] = sprintf('news_type = %d', $locomill->get_db3()->escape($cat)); } if ($is_lightnews == 1 && $is_plus != 1 && $is_pr != 1) { $light_news_type_id = array(); if (defined('LOCOMILL_PLUS_LIGHT_NEWS_TYPE_ID')) { // ライト店舗に開放中のニュースタイプID $light_news_type_id = LOCOMILL_PLUS_LIGHT_NEWS_TYPE_ID; } if (!empty($light_news_type_id)) { $wlist2 = array(); foreach ($light_news_type_id AS $v) { $wlist2[] = sprintf('`news_type` = %d', $locomill->get_db()->escape($v)); } $wlist[] = sprintf('(%s)', implode(' OR ', $wlist2)); } } $odlist = array(); $odlist[] = 'update_date DESC'; $odlist[] = 'update_time DESC'; $odlist[] = 'id'; $sql = sprintf('SELECT id FROM plus_news_tbl WHERE %s ORDER BY %s', implode(' AND ', $wlist), implode(', ', $odlist)); // echo $sql; $result = $locomill->get_db3()->query($sql); if ($result !== false) { $item_num = $locomill->get_db3()->num($result); if ($item_num > 0) { $page = $pager->exec($item_num, $page, 10, 10); if ($pager->get_err_str() === "") { if ($locomill->get_db3()->seek($result, $pager->get_start_row()) == true) { for ($i = $pager->get_start_row(); $i < $pager->get_end_row(); $i++) { $item_array[] = $locomill->get_db3()->fetch_array($result); } } else { $err_str = "・データの参照に失敗しました。
" . mysqli_error($locomill->get_db3()->get_db_connect()); } } else { $err_str = "・ページ情報の処理に失敗しました。
"; } } } else { $err_str .= "・データの参照に失敗しました。
" . mysqli_error($locomill->get_db3()->get_db_connect()); } } /* 変数の準備 */ // ページタイプ $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); // 絞り込みID $smarty->assign_ex("CAT_ID", $cat, ""); // 絞り込みリスト $smarty->assign_ex("CAT_LIST", $cat_array); // 検索結果数 $smarty->assign_ex("RESULT_NUM", $item_num); // 結果データ配列 if (!empty($item_array)) { foreach ($item_array AS $k => $v) { try { $plus_news_data = $plus_news->get_data($v['id']); } catch (PlusNewsError $e) { continue; } $temp = array(); $temp['ID'] = $temp['id'] = $plus_news_data['id']; $temp['DATE'] = date("y/m/d", $plus_news_data['update_stamp']); $temp['TITLE'] = str_replace("\n", '', htmlspecialchars_textarea($plus_news_data['title_01'])); $temp['COMMENT'] = str_replace("\n", '
', linkage_url(htmlspecialchars_textarea($plus_news_data['comment_01']), "_blank")); $temp['TERM'] = ''; if (0 < $plus_news_data['term_start_stamp'] && 0 < $plus_news_data['term_end_stamp']) { $temp['TERM'] .= date('Y年m月d日', $plus_news_data['term_start_stamp']); $temp['TERM'] .= date('~m月d日', $plus_news_data['term_end_stamp']); } $temp['TYPE'] = $cont_array[$plus_news_data['news_type']]; $temp['TYPE_ID'] = $plus_news_data['news_type']; $upimg_path = $plus_news->get_upimg_path(1); if (!empty($plus_news_data['image_01']['up_name']) && file_exists($upimg_path . '/' . $plus_news_data['image_01']['up_name'])) { $temp['IMAGE'] = '/img' . LOCOMILL_UPIMG_PLUS_NEWS_01_PATH . '/' . $plus_news_data['image_01']['up_name']; } elseif (!empty($plus_news_data['rsv_txt_50']) && file_exists(WEB_ROOT_DIR . '/old_images/' . $plus_news_data['rsv_txt_50'])) { $temp['IMAGE'] = '/old_images/' . $plus_news_data['rsv_txt_50']; } else { $temp['IMAGE'] = ''; } $upimg_path_thum = $plus_news->get_upimg_path(1, 'thum'); if (!empty($plus_news_data['image_01']['up_name']) && file_exists($upimg_path_thum . '/' . $plus_news_data['image_01']['up_name'])) { $temp['THUMNAIL'] = '/img' . LOCOMILL_UPIMG_PLUS_NEWS_01_PATH . '_thum/' . $plus_news_data['image_01']['up_name']; } else { $temp['THUMNAIL'] = $temp['IMAGE']; } $temp['IS_NEW'] = $temp['IS_UPDATE'] = 2; if ($now < ($plus_news_data['start_stamp'] + (60 * 60 * 24))) { $temp['IS_NEW'] = 1; } elseif ($now < ($plus_news_data['update_stamp'] + (60 * 60 * 24))) { $temp['IS_UPDATE'] = 1; } $temp['MOVIE_ID'] = ($is_news_movie == 1)? get_movie_id($plus_news_data['movie_url']): ''; $temp['my_good_type'] = 0; $is_good = array(); if (!empty($login_user_id)) { try { $is_good = $good->get_data_by_member_feature(1, $plus_news_data['id'], $login_user_id); if (!empty($is_good)) { $temp['my_good_type'] = $is_good['good_type']; } unset($is_good); } catch(GoodError $e) { } } $temp['good_num'] = $plus_news_data['good_num']; try { $temp['good_type'] = $good->get_type_array_feature(1, $plus_news_data['id']); } catch(GoodError $e) { $temp['good_type'] = array(); } $item_array[$k] = $temp; if (empty($last_news_title)) { $last_news_title = strip_tags($temp['TITLE']); } } } $smarty->assign_ex("ITEM_ARRAY", $item_array, ""); // <<前へ $smarty->assign_ex("BEFORE_LINK", $pager->get_left_info_public(), ""); // 次へ>> $smarty->assign_ex("NEXT_LINK", $pager->get_right_info_public(), ""); // ページインフォ $smarty->assign_ex("PAGE_INFO_LINK", $pager->get_page_info_public(), ""); // 最新のニュースタイトル $smarty->assign_ex("LAST_NEWS_TITLE", $last_news_title, ""); // ぐっとタイプ $smarty->assign("GOOD_TYPE_ARRAY", escapeHTML($good_type_array)); // マイニュース登録チェック if ($err_str === "") { try { $member_news = new MemberNews($locomill->get_db3()); if ($member_news->get_data_by_member($login_user_id, 16, $spot_id) > 0) { $smarty->assign("IS_MYNEWS", 1); } } catch (MemberNewsError $e) { $smarty->assign("IS_MYNEWS", 0); } } // イマココ $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/news/?id=%d', $spot_id), 'ニュース'); } $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'], "page" => $_SERVER['PHP_SELF'], "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($spot_data['id'] . '-' . time())); } // Smarty Cache $cache_id = ''; if ($err_str === "" && $preview != 1) { $smarty = getSmartyCache($smarty); $cache_id = getSmartyCacheId(array_merge($spot_data, $rq), array('id', 'update_stamp', 'isSP', 'cat', 'page')); } /* 出 力 */ $smarty->display('spot/news/index.tpl', $cache_id);