get_exception();
}
}
/* Areaクラスインスタンス生成 */
if ($err_str === "") {
try {
$area = new Area($locomill->get_db4());
$area_top = $area->get_area_top();
} catch (AreaError $e) {
$err_str .= $e->get_exception();
}
}
if (isset($area_id)) {
$new_area_id = $area_id;
} elseif (isset($_GET['t']) && $_GET['t'] == 'A3' && isset($_GET['id']) && !is_array($_GET['id']) && preg_match('/^[0-9]+$/', $_GET['id'])) {
$new_area_id = $_GET['id'];
}
if (isset($new_area_id)) {
if (isset($area_top[$new_area_id])) {
require_once('index_medium2.shtml');
exit;
}
unset($new_area_id);
}
/* インクルードファイル */
require_once("smarty.inc");
require_once("area_group.inc");
require_once("kuchikomi.inc");
require_once('kuchikomi_campaign.inc');
require_once("search.inc");
require_once("news.inc");
require_once("feature.inc");
require_once("entry.inc");
/* 変数初期化 */
$smarty = null;
$area_03_list = array();
$area_03_array = array();
$area_array = array();
$area_group = null;
$area_group_array = array();
$spot = null;
$spot_array = array();
$event_array = array();
$feature = null;
$feature_array = array();
$entry = null;
$entry_array = array();
$mode = '';
$target = '';
$level = 0;
$case = array();
$area_data = array();
$current_area_data = array();
$area_top = array();
$kuchikomi = null;
$kuchikomi_num = 0;
$kuchikomi_array = array();
$kuchikomi_campaign = null;
$kuchikomi_campaign_array = array();
$nasu_kuchikomi_array = array();
$news = null;
$news_num = 0;
$news_array = array();
$the_area_02_id = "";
$the_area_03_id = "";
$the_area_flag_01_id = "";
$the_area_flag_02_id = "";
$now = time();
/* 出力準備 */
$smarty = new SmartyEx();
$smarty->prepare();
/* マイプロフィール */
include('common/myprofile.inc');
/* Areaクラスインスタンス生成 */
if ($err_str === "") {
try {
$tmp = $area->get_data_array('area_master_03_tbl', true);
foreach ($tmp AS $v) {
$area_03_list[$v['id']] = array('name' => $v['name'],
'link' => (isset($area_top[$v['id']])? '/' . $area_top[$v['id']] . '/': '/area/list/index_medium.shtml?t=A3&id=' . $v['id']));
}
} catch (AreaError $e) {
$err_str .= $e->get_exception();
}
}
/* AreaGroupクラスインスタンス生成 */
if ($err_str === "") {
try {
$area_group = new AreaGroup($locomill->get_db4());
} catch (AreaGroupError $e) {
$err_str .= $e->get_exception();
}
}
/* Kuchikomiクラスインスタンス生成 */
if ($err_str === "") {
try {
$kuchikomi = new Kuchikomi($locomill->get_db4());
} catch (KuchikomiError $e) {
$err_str .= $e->get_exception();
}
}
/* KuchikomiCampaignクラスインスタンス生成 */
if ($err_str === "") {
try {
$kuchikomi_campaign = new KuchikomiCampaign($locomill->get_db());
} catch (KuchikomiCampaignError $e) {
$err_str .= $e->get_exception();
}
}
/* Searchクラスインスタンス生成 */
if ($err_str === "") {
try {
$search = new Search($locomill->get_db4());
} catch (SearchError $e) {
$err_str .= $e->get_exception();
}
}
/* Featureクラスインスタンス生成 */
if ($err_str === "") {
try {
$feature = new Feature($locomill->get_db4());
} catch (FeatureError $e) {
$err_str .= $e->get_exception();
}
}
/* Entryクラスインスタンス生成 */
if ($err_str === "") {
try {
$entry = new Entry($locomill->get_db4());
} catch (EntryError $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 (isset($area_top_page) && isset($area_id)) {
$rq['A3'] = $area_id;
} else {
$area_id = 0;
$dir_name = '';
unset($area_top_page);
}
// 簡易メニューからのアクセスを反映:エリア
if (!empty($rq['area'])) {
$temp = explode(':', $rq['area']);
if ($temp) {
foreach ($temp AS $q) {
list($k, $v) = explode('_', $q);
$rq[$k] = $v;
}
}
}
// 階層指定の適用
if (!empty($rq['t'])) {
$target = strtoupper($rq['t']);
$rq[$target] = $rq['id'];
}
// A3(市町村階層)が宇都宮フラグだった場合の処理
if (!empty($rq['A3']) && preg_match("/^F(1|2):[0-9]+$/", $rq['A3'])) {
list($key, $code) = explode(":", $rq['A3']);
$rq[$key] = $code;
}
// 圏域指定あり
if (!empty($rq['A2'])) {
$level = 1;
$area_id = (int)$rq['A2'];
$target = 'A2';
if ($area_id == 1) {
$rq['A3'] = 1; // 宇都宮エリアは宇都宮市を強制的にセット
}
}
// 市町村指定あり
if (!empty($rq['A3'])) {
$level = 2;
$area_id = (int)$rq['A3'];
$target = 'A3';
if (!isset($area_top_page) && array_key_exists($area_id, $area_top)) {
header('HTTP/1.1 301 Moved Permanently');
header('Location: /' . $area_top[$area_id] . '/'); // 各エリアトップへ
exit;
}
try {
$temp = $area_group->get_data_array($area_id, true);
foreach ($temp AS $k => $v) {
try {
$marker = $area_group->get_marker_data_array($v['id']);
} catch (AreaGroupError $e) {
$marker = array();
}
if (!empty($marker) || !empty($v['spot_ids']) || !empty($v['hospital_ids'])) {
if (array_key_exists($v['area_03_id'], $area_top)) {
$v['link'] = sprintf('/%s/group.shtml?id=%d', $area_top[$v['area_03_id']], $v['id']);
} else {
$v['link'] = sprintf('/area/group/?id=%d', $v['id']);
}
$area_group_array[$k] = $v;
}
}
} catch (AreaGroupError $e) {
$area_group_array = array();
}
}
// 宇都宮フラグ1指定あり
if (!empty($rq['F1'])) {
$level = 3;
$area_id = (int)$rq['F1'];
$target = 'F1';
}
// 宇都宮フラグ2指定あり
if (!empty($rq['F2'])) {
$level = 4;
$area_id = (int)$rq['F2'];
$target = 'F2';
}
// 広告系パラメータ設定
if ($target == 'F2') {
$the_area_flag_02_id = $rq['F2'];
} elseif ($target == 'F1') {
$the_area_flag_01_id = $rq['F1'];
} elseif ($target == 'A3') {
$the_area_03_id = $rq['A3'];
} elseif ($target == 'A2') {
$the_area_02_id = $rq['A2'];
}
}
/* 表示エリアの設定 */
if ($err_str === "") {
// ケース設定
$case1 = array('AREA', 'TOWN'); // エリア表示 / 市町村一覧
$case2 = array('TOWN', 'LOCAL'); // 市町村表示 / 町名一覧
$case3 = array('AREA', 'FLAG1'); // エリア表示 / フラグ1一覧
$case4 = array('TOWN', 'FLAG1'); // 市町村表示 / フラグ1一覧
$case5 = array('FLAG1', 'FLAG2'); // フラグ1表示 / フラグ2一覧
$case6 = array('FLAG1', 'LOCAL'); // フラグ1表示 / 町名一覧
$case7 = array('FLAG2', 'LOCAL'); // フラグ2表示 / 町名一覧
// 宇都宮エリア
if ($level == 1 && $area_id == 1) {
$case = $case3;
} // 宇都宮市
elseif ($level == 2 && $area_id == 1) {
$case = $case4;
} // 中央エリア
elseif ($level == 3 && $area_id == 1) {
$case = $case5;
} // 圏域
elseif ($level == 1) {
$case = $case1;
} // 市町村
elseif ($level == 2) {
$case = $case2;
} // フラグ1
elseif ($level == 3) {
$case = $case6;
} // フラグ2
elseif ($level == 4) {
$case = $case7;
}
// 全て表示は町名一覧
if ($mode == 'ALL')
$case[1] = 'LOCAL';
}
// 表示エリア情報取得
if ($err_str === "") {
try {
switch ($case[0]) {
case 'AREA':
$area_data = $area->get_data('area_master_02_tbl', $area_id);
$area1_data = $area->get_data('area_master_01_tbl', $area_data['parent_id']);
$current_area_data['id'] = $area_data['id'];
$current_area_data['name'] = $area_data['name'];
$current_area_data['area_01_id'] = $area1_data['id'];
$current_area_data['area_02_id'] = $area_data['id'];
$current_area_data['area_02_name'] = $area_data['name'];
$current_area_data['area_flag_02_name'] = '';
$current_area_data['g_latitude'] = $area_data['g_latitude'];
$current_area_data['g_longitude'] = $area_data['g_longitude'];
$current_area_data['g_scale'] = $area_data['g_scale'];
$current_area_data['y_latitude'] = $area_data['y_latitude'];
$current_area_data['y_longitude'] = $area_data['y_longitude'];
$current_area_data['y_scale'] = $area_data['y_scale'];
$area_level = "2";
$area_path = LOCOMILL_UPIMG_AREA_02_PATH;
$url = sprintf('/area/list/index_medium.shtml?t=%s&id=%d', $target, $current_area_data['id']);
$current_area_data['page_url'] = $url;
$current_area_data['is_title_image'] = 0;
$current_area_data['is_keyword'] = 0;
break;
case 'TOWN':
$area_data = $area->get_data('area_master_03_tbl', $area_id);
$area2_data = $area->get_data('area_master_02_tbl', $area_data['parent_id']);
$area1_data = $area->get_data('area_master_01_tbl', $area2_data['parent_id']);
$current_area_data['area_01_id'] = $area1_data['id'];
$current_area_data['area_02_id'] = $area2_data['id'];
$current_area_data['area_03_id'] = $area_data['id'];
$current_area_data['area_02_name'] = $area2_data['name'];
$current_area_data['area_flag_02_name'] = '';
$current_area_data['id'] = $area_data['id'];
$current_area_data['name'] = $area_data['name'];
$current_area_data['g_latitude'] = $area_data['g_latitude'];
$current_area_data['g_longitude'] = $area_data['g_longitude'];
$current_area_data['g_scale'] = $area_data['g_scale'];
$current_area_data['y_latitude'] = $area_data['y_latitude'];
$current_area_data['y_longitude'] = $area_data['y_longitude'];
$current_area_data['y_scale'] = $area_data['y_scale'];
$current_area_data['ranking'] = $area_data['ranking'];
$current_area_data['love'] = $area_data['love'];
for ($i = 1; $i <= 5; $i++) {
$current_area_data[sprintf('like_%02d', $i)] = $area_data[sprintf('like_%02d', $i)];
$current_area_data[sprintf('pr_%02d', $i)] = $area_data[sprintf('pr_%02d', $i)];
}
$area_level = "3";
$area_path = LOCOMILL_UPIMG_AREA_03_PATH;
if (array_key_exists($current_area_data['id'], $area_top)) {
$url = sprintf('/%s/', $area_top[$current_area_data['id']]);
} else {
$url = sprintf('/area/list/index_medium.shtml?t=%s&id=%d', $target, $current_area_data['id']);
}
$current_area_data['page_url'] = $url;
$current_area_data['is_title_image'] = (file_exists('./images/title.png'))? 1: 0;
$current_area_data['is_keyword'] = (file_exists(LOCOMILL_SMARTY_TEMPLATES_DIR . 'parts/area/' . $dir_name . '/keyword.tpl'))? 1: 0;
// クチコミキャンペーン
try {
$temp = $kuchikomi_campaign->get_data_array(5, time(), $current_area_data);
if (!empty($temp)) {
foreach ($temp AS $v) {
if (!empty($v['point_num'])) {
$v['image_src'] = '';
$upimg_path = $kuchikomi_campaign->get_upimg_path(2);
if ($locomill->user_agent['isSP'] && !empty($v['image_02']['up_name']) && file_exists($upimg_path . '/' . $v['image_02']['up_name'])) {
$v['image_src'] = str_replace(UPIMG_BASE_PATH, '/img', $upimg_path . '/' . $v['image_02']['up_name']);
}
$upimg_path = $kuchikomi_campaign->get_upimg_path(1);
if (empty($v['image_src']) && !empty($v['image_01']['up_name']) && file_exists($upimg_path . '/' . $v['image_01']['up_name'])) {
$v['image_src'] = str_replace(UPIMG_BASE_PATH, '/img', $upimg_path . '/' . $v['image_01']['up_name']);
}
$kuchikomi_campaign_array[] = $v;
}
}
}
} catch (KuchikomiCampaignError $e) {
$err_str .= $e->get_exception();
}
break;
case 'FLAG1':
$area_data = $area->get_data('area_master_flag_01_tbl', $area_id);
$area3_data = $area->get_data('area_master_03_tbl', 1);
$area2_data = $area->get_data('area_master_02_tbl', $area3_data['parent_id']);
$area1_data = $area->get_data('area_master_01_tbl', $area2_data['parent_id']);
$current_area_data['area_01_id'] = $area1_data['id'];
$current_area_data['area_02_id'] = $area2_data['id'];
$current_area_data['area_03_id'] = $area3_data['id'];
$current_area_data['area_flag_01_id'] = $area_data['id'];
$current_area_data['area_02_name'] = $area2_data['name'];
$current_area_data['area_flag_01_name'] = '';
$current_area_data['id'] = $area_data['id'];
$current_area_data['name'] = $area3_data['name'] . ' ' . $area_data['name'];
$current_area_data['g_latitude'] = $area_data['g_latitude'];
$current_area_data['g_longitude'] = $area_data['g_longitude'];
$current_area_data['g_scale'] = $area_data['g_scale'];
$current_area_data['y_latitude'] = $area_data['y_latitude'];
$current_area_data['y_longitude'] = $area_data['y_longitude'];
$current_area_data['y_scale'] = $area_data['y_scale'];
$area_level = "F1";
$area_path = LOCOMILL_UPIMG_AREA_FLAG_01_PATH;
$url = sprintf('/area/list/index_medium.shtml?t=%s&id=%d', $target, $current_area_data['id']);
$current_area_data['page_url'] = $url;
$current_area_data['is_title_image'] = 0;
$current_area_data['is_keyword'] = 0;
break;
case 'FLAG2':
$area_data = $area->get_data('area_master_flag_02_tbl', $area_id);
$area_f1_data = $area->get_data('area_master_flag_01_tbl', $area_data['parent_id']);
$area3_data = $area->get_data('area_master_03_tbl', 1);
$area2_data = $area->get_data('area_master_02_tbl', $area3_data['parent_id']);
$area1_data = $area->get_data('area_master_01_tbl', $area2_data['parent_id']);
$current_area_data['area_02_name'] = $area2_data['name'];
$current_area_data['area_flag_01_name'] = ' ' . str_replace('エリア', '', $area_f1_data['name']);
$current_area_data['area_01_id'] = $area1_data['id'];
$current_area_data['area_02_id'] = $area2_data['id'];
$current_area_data['area_03_id'] = $area3_data['id'];
$current_area_data['area_flag_01_id'] = $area_f1_data['id'];
$current_area_data['area_flag_02_id'] = $area_data['id'];
$current_area_data['id'] = $area_data['id'];
$current_area_data['name'] = $area3_data['name'] . ' ' . str_replace('エリア', '', $area_f1_data['name']) . ' ' . $area_data['name'];
$current_area_data['g_latitude'] = $area_data['g_latitude'];
$current_area_data['g_longitude'] = $area_data['g_longitude'];
$current_area_data['g_scale'] = $area_data['g_scale'];
$current_area_data['y_latitude'] = $area_data['y_latitude'];
$current_area_data['y_longitude'] = $area_data['y_longitude'];
$current_area_data['y_scale'] = $area_data['y_scale'];
$area_level = "F2";
$area_path = LOCOMILL_UPIMG_AREA_FLAG_02_PATH;
$url = sprintf('/area/list/index_medium.shtml?t=%s&id=%d', $target, $current_area_data['id']);
$current_area_data['page_url'] = $url;
$current_area_data['is_title_image'] = 0;
$current_area_data['is_keyword'] = 0;
break;
default:
$err_str .= "・エリア情報を取得できませんでした。
";
}
} catch (AreaError $e) {
$err_str .= "・エリア情報を取得できませんでした。
";
}
if (empty($area_data) || $area_data['enable'] != 1) {
ErrorRedirect(404);
}
// 不足データの補完
// 見出し
if (!empty($area_data['rsv_txt_03'])) {
$current_area_data['title'] = $area_data['rsv_txt_03'];
$current_area_data['title'] .= " " . $area_data['name'];
$current_area_data['area_name'] = $area_data['name'];
} elseif (!empty($area_f2_data['rsv_txt_03'])) {
$current_area_data['title'] = $area_f2_data['rsv_txt_03'];
$current_area_data['title'] .= " " . $area_f2_data['name'];
$current_area_data['area_name'] = $area_f2_data['name'];
} elseif (!empty($area_f1_data['rsv_txt_03'])) {
$current_area_data['title'] = $area_f1_data['rsv_txt_03'];
$current_area_data['title'] .= " " . $area_f1_data['name'];
$current_area_data['area_name'] = $area_f1_data['name'];
} elseif (!empty($area3_data['rsv_txt_03'])) {
$current_area_data['title'] = $area3_data['rsv_txt_03'];
$current_area_data['title'] .= " " . $area3_data['name'];
$current_area_data['area_name'] = $area3_data['name'];
} elseif (!empty($area2_data['rsv_txt_03'])) {
$current_area_data['title'] = $area2_data['rsv_txt_03'];
$current_area_data['title'] .= " " . $area2_data['name'];
$current_area_data['area_name'] = $area2_data['name'];
} elseif (!empty($area1_data['rsv_txt_03'])) {
$current_area_data['title'] = $area1_data['rsv_txt_03'];
$current_area_data['title'] .= " " . $area1_data['name'];
$current_area_data['area_name'] = $area1_data['name'];
}
// 説明文
if (!empty($area_data['area_data']['about'])) {
$current_area_data['about'] = $area_data['area_data']['about'];
} elseif (!empty($area_f1_data['area_data']['about'])) {
$current_area_data['about'] = $area_f1_data['area_data']['about'];
} elseif (!empty($area3_data['area_data']['about'])) {
$current_area_data['about'] = $area3_data['area_data']['about'];
} elseif (!empty($area2_data['area_data']['about'])) {
$current_area_data['about'] = $area2_data['area_data']['about'];
} elseif (!empty($area1_data['area_data']['about'])) {
$current_area_data['about'] = $area1_data['area_data']['about'];
}
// タイトルイメージ
if (!empty($area_data['area_data']['image01']['up_name'])) {
$current_area_data['is_image_01'] = 1;
$current_area_data['image_01_src'] = "/img" . $area_path . "/" . $area_data['area_data']['image01']['up_name'];
} elseif (!empty($area_f1_data['area_data']['image01']['up_name'])) {
$current_area_data['is_image_01'] = 1;
$current_area_data['image_01_src'] = "/img" . LOCOMILL_UPIMG_AREA_FLAG_01_PATH . "/" . $area_f1_data['area_data']['image01']['up_name'];
} elseif (!empty($area3_data['area_data']['image01']['up_name'])) {
$current_area_data['is_image_01'] = 1;
$current_area_data['image_01_src'] = "/img" . LOCOMILL_UPIMG_AREA_03_PATH . "/" . $area3_data['area_data']['image01']['up_name'];
} elseif (!empty($area2_data['area_data']['image01']['up_name'])) {
$current_area_data['is_image_01'] = 1;
$current_area_data['image_01_src'] = "/img" . LOCOMILL_UPIMG_AREA_02_PATH . "/" . $area2_data['area_data']['image01']['up_name'];
} elseif (!empty($area1_data['area_data']['image01']['up_name'])) {
$current_area_data['is_image_01'] = 1;
$current_area_data['image_01_src'] = "/img" . LOCOMILL_UPIMG_AREA_01_PATH . "/" . $area1_data['area_data']['image01']['up_name'];
}
// エリアイメージ1&エリアイメージ2
if (!empty($area_data['area_data']['image02']['up_name'])) {
$current_area_data['is_image_02'] = 1;
$current_area_data['image_02_src'] = "/img" . $area_path . "/" . $area_data['area_data']['image02']['up_name'];
} elseif (!empty($area_f1_data['area_data']['image02']['up_name'])) {
$current_area_data['is_image_02'] = 1;
$current_area_data['image_02_src'] = "/img" . LOCOMILL_UPIMG_AREA_FLAG_01_PATH . "/" . $area_f1_data['area_data']['image02']['up_name'];
} elseif (!empty($area3_data['area_data']['image02']['up_name'])) {
$current_area_data['is_image_02'] = 1;
$current_area_data['image_02_src'] = "/img" . LOCOMILL_UPIMG_AREA_03_PATH . "/" . $area3_data['area_data']['image02']['up_name'];
} elseif (!empty($area2_data['area_data']['image02']['up_name'])) {
$current_area_data['is_image_02'] = 1;
$current_area_data['image_02_src'] = "/img" . LOCOMILL_UPIMG_AREA_02_PATH . "/" . $area2_data['area_data']['image02']['up_name'];
} elseif (!empty($area1_data['area_data']['image02']['up_name'])) {
$current_area_data['is_image_02'] = 1;
$current_area_data['image_02_src'] = "/img" . LOCOMILL_UPIMG_AREA_01_PATH . "/" . $area1_data['area_data']['image02']['up_name'];
}
if (!empty($area_data['area_data']['image03']['up_name'])) {
$current_area_data['is_image_03'] = 1;
$current_area_data['image_03_src'] = "/img" . $area_path . "/" . $area_data['area_data']['image03']['up_name'];
} elseif (!empty($area_f1_data['area_data']['image03']['up_name'])) {
$current_area_data['is_image_03'] = 1;
$current_area_data['image_03_src'] = "/img" . LOCOMILL_UPIMG_AREA_FLAG_01_PATH . "/" . $area_f1_data['area_data']['image03']['up_name'];
} elseif (!empty($area3_data['area_data']['image03']['up_name'])) {
$current_area_data['is_image_03'] = 1;
$current_area_data['image_03_src'] = "/img" . LOCOMILL_UPIMG_AREA_03_PATH . "/" . $area3_data['area_data']['image03']['up_name'];
} elseif (!empty($area2_data['area_data']['image03']['up_name'])) {
$current_area_data['is_image_03'] = 1;
$current_area_data['image_03_src'] = "/img" . LOCOMILL_UPIMG_AREA_02_PATH . "/" . $area2_data['area_data']['image03']['up_name'];
} elseif (!empty($area1_data['area_data']['image03']['up_name'])) {
$current_area_data['is_image_03'] = 1;
$current_area_data['image_03_src'] = "/img" . LOCOMILL_UPIMG_AREA_01_PATH . "/" . $area1_data['area_data']['image03']['up_name'];
}
$current_area_data['area_top_image'] = array();
for ($i = 4; $i <= 7; $i++) {
if (!empty($area_data['area_data'][sprintf('image%02d', $i)]['up_name'])) {
$current_area_data['area_top_image'][] = array('src' => '/img' . $area_path . '/' . $area_data['area_data'][sprintf('image%02d', $i)]['up_name'],
'title' => $area_data['area_data'][sprintf('image%02d', $i)]['caption'],
'url' => $area_data['area_data'][sprintf('image%02d', $i)]['url']);
}
}
// ホームページ(PC版)
if (!empty($area_data['hp_pc'])) {
$current_area_data['hp_pc'] = $area_data['hp_pc'];
} elseif (!empty($area_f1_data['hp_pc'])) {
$current_area_data['hp_pc'] = $area_f1_data['hp_pc'];
} elseif (!empty($area3_data['hp_pc'])) {
$current_area_data['hp_pc'] = $area3_data['hp_pc'];
} elseif (!empty($area2_data['hp_pc'])) {
$current_area_data['hp_pc'] = $area2_data['hp_pc'];
} elseif (!empty($area1_data['hp_pc'])) {
$current_area_data['hp_pc'] = $area1_data['hp_pc'];
}
}
// エリア一覧
if ($err_str === "") {
try {
if ($current_area_data['area_02_id'] == 1) {
if ($target == 'F2' || ($target == 'F1' && $current_area_data['id'] == 1)) {
$area_03_array = $area->get_data_array('area_master_flag_02_tbl', true, $current_area_data['area_02_id']);
$t = 'F2';
} else {
$area_03_array = $area->get_data_array('area_master_flag_01_tbl', true, $current_area_data['area_02_id']);
$t = 'F1';
}
} else {
$area_03_array = $area->get_data_array('area_master_03_tbl', true, $current_area_data['area_02_id']);
$t = 'A3';
}
foreach ($area_03_array AS $k2 => $v2) {
if ($target == 'A2' || ($target == 'A3' && $current_area_data['id'] == 1) || $v2['id'] != $current_area_data['id']) {
if ($t == 'A3' && array_key_exists($v2['id'], $area_top)) {
$url = sprintf('/%s/', $area_top[$v2['id']]);
} else {
$url = sprintf('/area/list/index_medium.shtml?t=%s&id=%d', $t, $v2['id']);
}
} else {
$url = '#';
}
$area_array[$v2['id']] = array('NAME' => $v2['name'],
'URL' => $url,
'PARAM' => sprintf('t=%s&id=%d', $t, $v2['id']));
}
} catch (AreaError $e) {
$err_str .= $e->get_exception();
}
}
/* イベント取得取得 */
if ($err_str === "") {
try {
// 開催中
$temp = array();
$where = array();
$where['terminal'] = ($locomill->get_display_mode() == 'sp')? 3: 1;
$where['type'] = array(2);
$where['scene'][] = 3;
switch ($target) {
case 'F2':
$where['F2'][] = $area_id;
break;
case 'F1':
$where['F1'][] = $area_id;
break;
case 'A3':
$where['A3'][] = $area_id;
break;
case 'A2':
$where['A2'][] = $area_id;
break;
}
$sql = $search->get_query($where, 0, 'D', 5);
$result = $locomill->get_db4()->query($sql);
if ($result !== false) {
$item_num = $locomill->get_db4()->num($result);
if ($item_num > 0) {
while ($row = $locomill->get_db4()->fetch_array($result)) {
$temp[$row['id']] = $search->get_data_by_id($row['id']);
}
}
} else {
$err_str .= "・データの参照に失敗しました。
" . mysqli_error($locomill->get_db4()->get_db_connect());
}
if (!empty($temp)) {
$event_array = $search->adjust($temp, $where['terminal']);
}
} catch (SearchError $e) {
$err_str .= $e->get_exception();
}
}
/* 注目スポット取得 */
if ($err_str === "") {
try {
// 食べる
$temp = array();
$where = array();
$where['terminal'] = ($locomill->get_display_mode() == 'sp')? 3: 1;
$where['type'] = array(1, 3);
$where['C1'][] = 1;
switch ($target) {
case 'F2':
$where['F2'][] = $area_id;
break;
case 'F1':
$where['F1'][] = $area_id;
break;
case 'A3':
$where['A3'][] = $area_id;
break;
case 'A2':
$where['A2'][] = $area_id;
break;
}
$sql = $search->get_query($where, 3, 'D', 3);
$result = $locomill->get_db4()->query($sql);
if ($result !== false) {
$item_num = $locomill->get_db4()->num($result);
if ($item_num > 0) {
while ($row = $locomill->get_db4()->fetch_array($result)) {
$temp[$row['id']] = $search->get_data_by_id($row['id']);
}
}
} else {
$err_str .= "・データの参照に失敗しました。
" . mysqli_error($locomill->get_db4()->get_db_connect());
}
if (!empty($temp)) {
$spot_array[] = array('class' => 'ic-tn-food',
'name' => '食べる',
'where' => 'C1=1',
'spot' => $search->adjust($temp, $where['terminal']));
}
// 観光
$temp = array();
$where = array();
$where['terminal'] = ($locomill->get_display_mode() == 'sp')? 3: 1;
$where['type'] = array(1, 3);
$where['C1'][] = 3;
switch ($target) {
case 'F2':
$where['F2'][] = $area_id;
break;
case 'F1':
$where['F1'][] = $area_id;
break;
case 'A3':
$where['A3'][] = $area_id;
break;
case 'A2':
$where['A2'][] = $area_id;
break;
}
$sql = $search->get_query($where, 3, 'D', 3);
$result = $locomill->get_db4()->query($sql);
if ($result !== false) {
$item_num = $locomill->get_db4()->num($result);
if ($item_num > 0) {
while ($row = $locomill->get_db4()->fetch_array($result)) {
$temp[$row['id']] = $search->get_data_by_id($row['id']);
}
}
} else {
$err_str .= "・データの参照に失敗しました。
" . mysqli_error($locomill->get_db4()->get_db_connect());
}
if (!empty($temp)) {
$spot_array[] = array('class' => 'ic-tn-watch',
'name' => '観光',
'where' => 'C1=3',
'spot' => $search->adjust($temp, $where['terminal']));
}
// 道の駅・温泉
$temp = array();
$where = array();
$where['terminal'] = ($locomill->get_display_mode() == 'sp')? 3: 1;
$where['type'] = array(1, 3);
$where['C2'] = array(26, 28);
switch ($target) {
case 'F2':
$where['F2'][] = $area_id;
break;
case 'F1':
$where['F1'][] = $area_id;
break;
case 'A3':
$where['A3'][] = $area_id;
break;
case 'A2':
$where['A2'][] = $area_id;
break;
}
$sql = $search->get_query($where, 3, 'D', 3);
$result = $locomill->get_db4()->query($sql);
if ($result !== false) {
$item_num = $locomill->get_db4()->num($result);
if ($item_num > 0) {
while ($row = $locomill->get_db4()->fetch_array($result)) {
$temp[$row['id']] = $search->get_data_by_id($row['id']);
}
}
} else {
$err_str .= "・データの参照に失敗しました。
" . mysqli_error($locomill->get_db4()->get_db_connect());
}
if (!empty($temp)) {
$spot_array[] = array('class' => '',
'name' => '道の駅・温泉',
'where' => 'C2[]=26&C2[]=28',
'spot' => $search->adjust($temp, $where['terminal']));
}
// 泊まる
$temp = array();
$where = array();
$where['terminal'] = ($locomill->get_display_mode() == 'sp')? 3: 1;
$where['type'] = array(1, 3);
$where['C3'] = array(168, 169, 170, 171, 172, 173);
switch ($target) {
case 'F2':
$where['F2'][] = $area_id;
break;
case 'F1':
$where['F1'][] = $area_id;
break;
case 'A3':
$where['A3'][] = $area_id;
break;
case 'A2':
$where['A2'][] = $area_id;
break;
}
$sql = $search->get_query($where, 3, 'D', 3);
$result = $locomill->get_db4()->query($sql);
if ($result !== false) {
$item_num = $locomill->get_db4()->num($result);
if ($item_num > 0) {
while ($row = $locomill->get_db4()->fetch_array($result)) {
$temp[$row['id']] = $search->get_data_by_id($row['id']);
}
}
} else {
$err_str .= "・データの参照に失敗しました。
" . mysqli_error($locomill->get_db4()->get_db_connect());
}
if (!empty($temp)) {
$spot_array[] = array('class' => 'ic-fa-bed',
'name' => '泊まる',
'where' => 'C3[]=168&C3[]=169&C3[]=170&C3[]=171&C3[]=172&C3[]=173',
'spot' => $search->adjust($temp, $where['terminal']));
}
} catch (SearchError $e) {
$err_str .= $e->get_exception();
}
}
/* クチコミデータ取得 */
if ($err_str === "") {
if ($target == 'A3') {
$sql = $kuchikomi->get_id_query(5, $area_id);
$result = $locomill->get_db4()->query($sql);
if ($result !== false) {
$kuchikomi_num = $locomill->get_db4()->num($result);
if ($kuchikomi_num > 0) {
$count = 1;
while ($row = $locomill->get_db4()->fetch_array($result)) {
$kuchikomi_array[$row['id']] = $kuchikomi->adjust($row['id'], $login_user_id);
$kuchikomi_array[$row['id']]['COMMENT'] = mb_strimwidth($kuchikomi_array[$row['id']]['COMMENT'], 0, 60, '…');
$count++;
if (8 < $count)
break;
}
}
} else {
$err_str .= "・データの参照に失敗しました。
" . mysqli_error($locomill->get_db4()->get_db_connect());
}
}
if ($kuchikomi_num < 8) {
$cond = array('table' => 'new', 'limit' => (8 - $kuchikomi_num), 'target_type' => array(1, 2), $target => $area_id, 'parent_enable' => 2);
$sql = $kuchikomi->get_id_query(0, 0, true, $cond);
$result = $locomill->get_db4()->query($sql);
if ($result !== false) {
$kuchikomi_num_add = $locomill->get_db4()->num($result);
if ($kuchikomi_num_add > 0) {
while ($row = $locomill->get_db4()->fetch_array($result)) {
$kuchikomi_array[$row['id']] = $kuchikomi->adjust($row['id'], $login_user_id);
$kuchikomi_array[$row['id']]['COMMENT'] = mb_strimwidth($kuchikomi_array[$row['id']]['COMMENT'], 0, 60, '…');
}
}
} else {
$err_str .= "・データの参照に失敗しました。
" . mysqli_error($locomill->get_db4()->get_db_connect());
}
}
}
// 特集取得
if ($err_str === "" && $target == 'A3') {
$_feature_array = array();
$wlist = array();
$wlist[] = sprintf('`area_03_id` = %d', $area_id);
$wlist[] = '`enable` = 1';
$wlist[] = '`enable_pc` = 1';
$wlist[] = sprintf("('%s' BETWEEN `open_stamp` AND `close_stamp`)", date('Y-m-d H:i:s'));
$wlist[] = sprintf('`feature_id` IN (SELECT `id` FROM `feature_tbl` WHERE %s)', implode(' AND ', $wlist));
$sql = sprintf('SELECT `id` FROM `feature_document_tbl` WHERE %s ORDER BY `open_stamp` DESC, `update_stamp` DESC', implode(' AND ', $wlist));
$result = $locomill->get_db4()->query($sql);
if ($result !== false) {
if (0 < $locomill->get_db4()->num($result)) {
while ($row = $locomill->get_db4()->fetch_array($result)) {
$_feature_array[] = $row;
}
}
} else {
$err_str .= '・データの参照に失敗しました。
' . mysqli_error($locomill->get_db4()->get_db_connect());
}
if (!empty($_feature_array)) {
foreach ($_feature_array AS $v) {
try {
$document_data = $feature->get_document($v['id']);
$document_data = $feature->document_smarty_format($document_data);
} catch (FeatureError $e) {
continue;
}
try {
$feature_data = $feature->get_data($document_data['feature_id']);
$feature_data = $feature->feature_smarty_format($feature_data);
} catch (FeatureError $e) {
continue;
}
$temp = array();
$temp['id'] = $document_data['id'];
$temp['title_01'] = strip_tags($document_data['title_01']);
$temp['public_date'] = $document_data['public_date'];
$temp['report_date'] = $document_data['report_date'];
$temp['description'] = $document_data['description'];
$temp['image_01_src'] = (!empty($document_data['image_01_src']))? $document_data['image_01_src']: $feature_data['image_17_src'];
$temp['is_new'] = 0;
if ($now - strtotime($document_data['public_date']) < (60 * 60 * 24)) {
$temp['is_new'] = 1;
}
$temp['feature_id'] = $feature_data['id'];
$temp['feature_title'] = strip_tags($feature_data['title_01']);
$temp['type_id'] = $feature_data['type_id'];
$feature_array[] = $temp;
unset($document_data, $feature_data);
}
}
unset($_feature_array);
}
$smarty->assign_ex("FEATURE_ARRAY", $feature_array);
// セレクト取得
if ($err_str === "" && $target == 'A3') {
$_entry_array = array();
$wlist = array();
$wlist[] = sprintf('`recommend_area_03_id` = %d', $area_id);
$wlist[] = "`theme_key` != ''";
$wlist[] = '`enable` = 1';
$wlist[] = sprintf('(%d BETWEEN `start_stamp` AND `end_stamp`)', $now);
$sql = sprintf('SELECT `id` FROM `entry_tbl` WHERE %s ORDER BY `update_stamp` DESC LIMIT 10', implode(' AND ', $wlist));
$result = $locomill->get_db4()->query($sql);
if ($result !== false) {
if (0 < $locomill->get_db4()->num($result)) {
while ($row = $locomill->get_db4()->fetch_array($result)) {
$_entry_array[] = $row;
}
}
} else {
$err_str .= '・データの参照に失敗しました。
' . mysqli_error($locomill->get_db4()->get_db_connect());
}
if (!empty($_entry_array)) {
$upimg_path_01 = $entry->get_upimg_path();
foreach ($_entry_array AS $v) {
try {
$entry_data = $entry->get_data($v['id']);
} catch (EntryError $e) {
continue;
}
$entry_data['update_date'] = date('Y/m/d', $entry_data['update_stamp']);
if (!empty($entry_data['image_01']['up_name']) && file_exists($upimg_path_01 . '/' . $entry_data['image_01']['up_name'])) {
$entry_data['image_01_src'] = '/img/entry/' . $entry_data['image_01']['up_name'];
} else {
$entry_data['image_01_src'] = '';
}
$entry_data['is_new'] = $entry_data['is_up'] = 0;
if ($now - $entry_data['start_stamp'] < (60 * 60 * 24)) {
$entry_data['is_new'] = 1;
} elseif ($now - $entry_data['update_stamp'] < (60 * 60 * 24)) {
$entry_data['is_up'] = 1;
}
$entry_array[] = $entry_data;
unset($entry_data);
}
}
unset($_entry_array);
}
$smarty->assign_ex("ENTRY_ARRAY", $entry_array);
/* 百様取得 */
$hyakusama_array = array();
if ($err_str === "") {
if ($target == 'A3') {
$hyakusama_path = '/area/common/images/100sama/';
$csv_file = WEB_ROOT_DIR . $hyakusama_path . 'hyakusama.csv';
if (file_exists($csv_file)) {
$temp = $temp2 = array();
$data = file($csv_file);
foreach ($data AS $v) {
$v = explode(',', mb_convert_encoding($v, 'UTF-8', 'SJIS-win'));
if (trim($v[2]) == trim($area_data['name'])) {
$temp[$v[0]] = array('id' => $v[0], 'name' => $v[1], 'image' => $hyakusama_path . $v[3], 'url' => $v[4]);
} elseif (trim($v[2]) == '-') {
$temp2[$v[0]] = array('id' => $v[0], 'name' => $v[1], 'image' => $hyakusama_path . $v[3], 'url' => $v[4]);
}
}
$count = count($temp);
if ($count < 4) {
shuffle($temp2);
for ($i = 0; $i < (4 - $count); $i++) {
$temp[] = $temp2[$i];
}
}
shuffle($temp);
foreach ($temp AS $k => $v) {
$hyakusama_array[$k] = $v;
if (4 <= count($hyakusama_array))
break;
}
unset($temp, $temp2, $data, $count);
}
}
}
$smarty->assign("HYAKUSAMA_ARRAY", $hyakusama_array);
$smarty->assign("HYAKUSAMA_LIMIT", mktime(0, 0, 0, 2, 1, 2017));
// 那須ファンクチコミ取得
if ($err_str === "" && $target == 'A3' && $area_id == 27) {
$_nasu_kuchikomi_array = array();
$wlist = array();
$wlist2 = array();
$wlist2[] = '`enable` = 1';
$wlist2[] = '`nasu_flg` = 1';
$wlist[] = sprintf('`member_id` IN (SELECT `id` FROM `member_tbl` WHERE %s)', implode(' AND ', $wlist2));
$wlist2 = array();
$wlist2[] = '`area_03_id` = 27';
$wlist2[] = '`enable` = 1';
$wlist2[] = '`is_closed` != 1';
$wlist2[] = sprintf('(%d BETWEEN `start_stamp` AND `end_stamp`)', $now);
$wlist[] = sprintf('`parent_id` IN (SELECT `id` FROM `spot_tbl` WHERE %s)', implode(' AND ', $wlist2));
$wlist[] = '`type` = 1';
$wlist[] = '`enable` = 1';
$wlist[] = '`is_dispose` = 2';
$wlist[] = sprintf('`display_stamp` <= %d', $now);
$sql = sprintf('SELECT `id` FROM `kuchikomi_tbl` WHERE %s ORDER BY `display_stamp` DESC LIMIT 3', implode(' AND ', $wlist));
$result = $locomill->get_db4()->query($sql);
if ($result !== false) {
if (0 < $locomill->get_db4()->num($result)) {
while ($row = $locomill->get_db4()->fetch_array($result)) {
$_nasu_kuchikomi_array[] = $row;
}
}
} else {
$err_str .= '・データの参照に失敗しました。
' . mysqli_error($locomill->get_db4()->get_db_connect());
}
if (!empty($_nasu_kuchikomi_array)) {
foreach ($_nasu_kuchikomi_array AS $v) {
try {
$tmp = $kuchikomi->adjust($v['id'], $login_user_id, true);
} catch (KuchikomiError $e) {
continue;
}
$nasu_kuchikomi_array[] = $tmp;
}
}
unset($_nasu_kuchikomi_array);
}
$smarty->assign_ex("NASU_KUCHIKOMI_ARRAY", $nasu_kuchikomi_array);
/* 変数の準備 */
// 現在のエリア一覧
$smarty->assign("CURRENT_AREA_DATA", $current_area_data);
// 現在のエリア階層
$smarty->assign("LEVEL_TARGET", $target);
// エリアトップディレクトリ
$smarty->assign("DIR", $dir_name);
// エリア配列
$smarty->assign("AREA_ARRAY", $area_array);
// エリアグループ配列
$smarty->assign("AREA_GROUP_ARRAY", $area_group_array);
// スポット一覧
$smarty->assign("SPOT_ARRAY", $spot_array);
// イベント一覧
$smarty->assign("EVENT_ARRAY", $event_array);
// クチコミ一覧
$smarty->assign("KUCHIKOMI_NUM", $kuchikomi_num, 0);
$smarty->assign("KUCHIKOMI_ARRAY", $kuchikomi_array);
// クチコミキャンペーン
$smarty->assign("KUCHIKOMI_CAMPAIGN_ARRAY", escapeHTML($kuchikomi_campaign_array));
// 全エリア配列
$smarty->assign("AREA_03_LIST", $area_03_list);
// イマココ
$imakoko = getTopicsPath('area');
if ($err_str === "") {
$imakoko[] = array($current_area_data['page_url'], $current_area_data['name']);
}
$smarty->assign("IMAKOKO_ARRAY", $imakoko);
// 最新情報
include('common/whatsnew.inc');
/* Newsクラスインスタンス生成 */
if ($err_str === "") {
try {
$news = new News($locomill->get_db4());
$temp = $news->get_latest_news(19, 6, 1, 0,
$current_area_data['area_01_id'],
$current_area_data['area_02_id'],
$current_area_data['area_03_id']);
$news_num = count($temp);
foreach ($temp AS $k => $v) {
try {
$name = $area->get_name('area_master_03_tbl', $v['area_03_id']);
} catch (AreaError $e) {
$name = '';
}
$v = $news->adjust($v);
$v['TITLE'] .= (!empty($name))? '【' . $name . '】': '';
$news_array[$k] = $v;
if (count($news_array) == 5)
break;
}
} catch (NewsError $e) {
$err_str .= $e->get_exception();
}
}
$smarty->assign("NEWS_NUM", $news_num);
$smarty->assign("NEWS_ARRAY", $news_array);
/* 広告系 */
$the_corner_id = 29;
$adver_param = array("terminal_type" => 1,
"corner_id" => $the_corner_id,
"is_sp" => (($locomill->get_display_mode() == 'sp')? 1: 0),
"area_02_id" => $the_area_02_id,
"area_03_id" => $the_area_03_id,
"area_flag_01_id" => $the_area_flag_01_id,
"area_flag_02_id" => $the_area_flag_02_id);
$adver_b_type = array(1, 6, 7);
include('common/banners.inc');
// スライダ専用
$adver_param['corner_id'] = 48;
try {
$topics_02_out = $topics->get_topics_data($adver_param, 10, 1);
$smarty->assign("TOPICS_02", $topics_02_out);
$smarty->assign("TOPICS_02_NUM", count($topics_02_out));
} catch (TopicsError $e) {
$err_str .= $e->get_exception();
}
// エラー文字列
$smarty->assign("ERR_STR", $err_str);
// Smarty Cache
if ($err_str === "") {
$smarty = getSmartyCache($smarty);
}
/* 出力 */
$smarty->display('area/list/index_medium.tpl', getSmartyCacheId(array($target, $area_id)));