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);