session->sess_data)) {
$sess_data = $locomill->session->sess_data;
} elseif (empty($locomill->session)) {
// セッション生成
$locomill->session = new Session($locomill->get_db(), "");
$locomill->session->start();
$locomill->session->user_id = -1;
}
} catch (LocomillError $e) {
$err_str .= $e->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();
}
}
/* Kuchikomiクラスインスタンス生成 */
if ($err_str === "") {
try {
$kuchikomi = new Kuchikomi($locomill->get_db3());
} catch (KuchikomiError $e) {
$err_str .= $e->get_exception();
}
}
/* KuchikomiMasterクラスインスタンス生成 */
if ($err_str === "") {
try {
$kuchikomi_master = new KuchikomiMaster($locomill->get_db3());
} catch (KuchikomiMasterError $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;
}
$page = (isset($rq['page']) && preg_match("/^[0-9]+$/", $rq['page']))? $rq['page']: $page;
$sort = (isset($rq['sort']) && preg_match("/^[0-9]+$/", $rq['sort']))? $rq['sort']: $sort;
$vector = (isset($rq['vect']) && ($rq['vect'] == 'A' || $rq['vect'] == 'D'))? $rq['vect']: $vector;
$sex = (isset($rq['sex']) && preg_match("/^[0-9]+$/", $rq['sex']))? $rq['sex']: 0;
}
/* スポットデータ取得 */
if ($err_str === "") {
try {
if ($spot->check_id($rq['id'])) {
$spot_id = $rq['id'];
} else {
throw new SpotError('・正しい手続きでアクセスしていません。
');
}
if (isset($rq['img']) && $rq['img'] == 1) {
header('Location: /spot/photo/?id=' . $spot_id . '&mode=k');
}
$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 = 'kuchikomi';
include('common/spotmenu.inc');
}
/* ログイン処理 */
if ($err_str === "") {
if (!empty($sess_data['sms_is_login'])) {
if ($sess_data['sms_login_spot_id'] == $spot_id && strtotime('-6 hours') <= $sess_data['sms_login_timestamp']) {
$sms_is_login = 1;
} else {
unset($sess_data['sms_is_login'], $sess_data['sms_login_spot_id'], $sess_data['sms_login_timestamp']);
$locomill->session->sess_data = $sess_data;
$locomill->session->store_data();
}
}
}
/* クチコミデータ取得 */
if ($err_str === "") {
$kuchikomi_item_line = 10;
$cond = array();
$cond['is_comment'] = 1;
if (!empty($sex)) {
$cond['sex'] = $sex;
}
if (!empty($sort)) {
$cond['sort'] = $sort;
}
if (!empty($vector)) {
$cond['vector'] = $vector;
}
$sql = $kuchikomi->get_id_query(1, $spot_id, true, $cond);
$result = $locomill->get_db3()->query($sql);
if ($result !== false) {
$kuchikomi_num = $locomill->get_db3()->num($result);
if ($kuchikomi_num > 0) {
$page = $pager->exec($kuchikomi_num, $page, $kuchikomi_item_line, 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++) {
$row = $locomill->get_db3()->fetch_array($result);
$kuchikomi_array[$row['id']] = $kuchikomi->adjust($row['id'], $login_user_id, false, $spot_data);
}
} 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());
}
$cond = array();
$cond['is_comment'] = 1;
$cond['is_reply'] = 1;
$sql = $kuchikomi->get_id_query(1, $spot_id, true, $cond);
$result = $locomill->get_db3()->query($sql);
if ($result !== false) {
$kuchikomi_reply_num = $locomill->get_db3()->num($result);
}
}
/* 常連取得 */
if ($err_str === "") {
try {
$temp = $kuchikomi_master->get_data_array(0, $spot_id, 4);
foreach ($temp AS $v) {
try {
$master_member_data = $member->get_data($v['member_id']);
} catch (MemberError $e) {
continue;
}
try {
$myimage_data = $avatar_image->get_data($master_member_data['avatar_icon']);
} catch(MemberMaster04Error $e) {
$myimage_data = array();
}
$temp = array();
$temp['member_name'] = $master_member_data['avatar_nickname'];
$temp['member_id'] = $master_member_data['id'];
if (!empty($myimage_data['image_02']['up_name']) && file_exists(UPIMG_BASE_PATH . LOCOMILL_UPIMG_MEMBER_MASTER_04_02_PATH . '/' . $myimage_data['image_02']['up_name'])) {
$temp['member_image'] = '/img' . LOCOMILL_UPIMG_MEMBER_MASTER_04_02_PATH . '/' . $myimage_data['image_02']['up_name'];
} elseif (!empty($myimage_data['image_01']['up_name']) && file_exists(UPIMG_BASE_PATH . LOCOMILL_UPIMG_MEMBER_MASTER_04_01_PATH . '/' . $myimage_data['image_01']['up_name'])) {
$temp['member_image'] = '/img' . LOCOMILL_UPIMG_MEMBER_MASTER_04_01_PATH . '/' . $myimage_data['image_01']['up_name'];
} else {
$temp['member_image'] = '/common/img/toto.gif';
}
if ($v['year'] == date('Y') && $v['month'] == date('n')) {
$temp['is_new'] = 1;
} else {
$temp['is_new'] = 0;
}
$kuchikomi_master_array[] = $temp;
unset($master_member_data, $myimage_data);
}
unset($temp);
} catch (KuchikomiMasterError $e) {
$err_str .= $e->get_exception();
}
}
// キーワードランキング
if ($err_str === "" && $spot_data['kuchikomi_keyword_flg'] != 2) {
try {
$kuchikomi_keyword_array = $kuchikomi->get_keyword_rank($spot_id);
} catch (KuchikomiError $e) {
$kuchikomi_keyword_array = array();
}
}
$smarty->assign("KUCHIKOMI_KEYWORD_ARRAY", $kuchikomi_keyword_array);
/* 変数の準備 */
// ページタイプ
$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);
// リクエスト値
$param = array();
foreach ($rq AS $k => $v)
$param[$k] = htmlspecialchars($v);
$smarty->assign("RQ_DATA", $param);
// クチコミデータ
$smarty->assign_ex("KUCHIKOMI_NUM", $kuchikomi_num, "0");
$smarty->assign("KUCHIKOMI_ARRAY", $kuchikomi_array);
$smarty->assign("KUCHIKOMI_REPLY_NUM", $kuchikomi_reply_num);
// 常連
$smarty->assign("KUCHIKOMI_MASTER_NUM", count($kuchikomi_master_array));
$smarty->assign("KUCHIKOMI_MASTER_ARRAY", $kuchikomi_master_array);
// ぐっとタイプ
$smarty->assign("GOOD_TYPE_ARRAY", escapeHTML($good_type_array));
// 絞り込み
$smarty->assign_ex("S_SEX", $sex, "");
$smarty->assign_ex("PAGE", $page, "");
$smarty->assign_ex("SORT", $sort, "");
$smarty->assign_ex("VECT", $vector, "");
// <<前へ
$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(), "");
//SMSログイン
$smarty->assign("SMS_IS_LOGIN", $sms_is_login);
// イマココ
$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/grapevine/?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, 2, 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 = '
';
}
if (!empty($spot_data['orig_sky'])) {
$sky_out = htmlspecialchars_decode($spot_data['orig_sky']);
} else {
// 代替スカイスクレイパー
$sky_out = '
';
}
$smarty->assign("ADVER_01", $billboard_out);
$smarty->assign("ADVER_02", $sky_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', 'page', 'sort', 'vect', 'sex'));
}
/* 出 力 */
$smarty->display('spot/grapevine/index.tpl', $cache_id);