setReadOnly();
$userID = Session::getUserID();
$db = DB::db();
$gameStor = KVStorage::getStorage($db, 'game_env');
if (!$serverID) {
$serverID = UniqueConst::$serverID;
}
if ($serverID === UniqueConst::$serverID) {
increaseRefresh("연감", 1);
}
$admin = $gameStor->getValues(['startyear', 'year', 'month']);
$me = $db->queryFirstRow('SELECT con, turntime FROM general WHERE owner = %i', $userID);
$con = checkLimit($me['con']);
if ($con >= 2) {
printLimitMsg($me['turntime']);
exit();
}
[$s_year, $s_month] = $db->queryFirstList('SELECT year, month FROM ng_history WHERE server_id = %s ORDER BY year ASC, month ASC LIMIT 1', $serverID);
$s = Util::joinYearMonth($s_year, $s_month);
if ($s_year === null) {
echo '인자 에러';
exit();
}
[$e_year, $e_month] = $db->queryFirstList('SELECT year, month FROM ng_history WHERE server_id = %s ORDER BY year DESC, month DESC LIMIT 1', $serverID);
$e = Util::joinYearMonth($e_year, $e_month);
if ($serverID !== UniqueConst::$serverID) {
$mapName = $db->queryFirstField('SELECT map FROM ng_games WHERE server_id=%s', $serverID) ?: 'che';
} else {
$mapName = GameConst::$mapName;
}
//FIXME: $yearmonth가 올바르지 않을 경우에 처리가 필요.
if ($serverID !== UniqueConst::$serverID && !$yearMonth) {
$yearMonth = $s;
} else if (!$yearMonth) {
$yearMonth = Util::joinYearMonth($admin['year'], $admin['month']);
} else {
if ($btn == "◀◀ 이전달") {
$yearMonth -= 1;
} elseif ($btn == "다음달 ▶▶") {
$yearMonth += 1;
}
}
$isCurrent = false;
if ($yearMonth < $s) {
$yearMonth = $s;
}
if ($yearMonth > $e) {
$isCurrent = true;
$yearMonth = $e + 1;
}
[$year, $month] = Util::parseYearMonth($yearMonth);
function getHistory($serverID, $year, $month):array{
$db = DB::db();
$history = $db->queryFirstRow('SELECT * FROM ng_history WHERE server_id = %s AND year = %i AND month = %i', $serverID, $year, $month);
$history['global_history'] = Json::decode($history['global_history']);
$history['global_action'] = Json::decode($history['global_action']);
$history['nations'] = Json::decode($history['nations']);
return $history;
}
if($isCurrent){
$history = getCurrentHistory();
}
else{
$history = getHistory($serverID, $year, $month);
}
$nations = $history['nations'];
?>
= UniqueConst::$serverName ?>: 연감
= WebUtil::printJS('../d_shared/common_path.js') ?>
= WebUtil::printJS("js/map/theme_{$mapName}.js") ?>
= WebUtil::printCSS('../d_shared/common.css') ?>
= WebUtil::printCSS('css/map.css') ?>
= WebUtil::printCSS('css/history.css') ?>
= WebUtil::printStaticValues([
'staticValues' => [
'startYear' => $s_year,
'startMonth' => $s_month,
'lastYear' => $e_year,
'lastMonth' => $e_month,
'selectYear' => $year,
'selectMonth' => $month,
'nations' => $nations ? $history['nations'] : [],
'serverNick' => DB::prefix(),
'serverID' => UniqueConst::$serverID,
]
])?>
= WebUtil::printDist('ts', ['common', 'history']) ?>
| 중 원 지 도 |
|
= getMapHtml($mapName) ?>
|
| 국명 |
국력 |
장수 |
속령 |
| ;background-color:= $nation['color'] ?>'>= $nation['name'] ?> |
= number_format($nation['power']) ?> |
= number_format($nation['gennum']) ?> |
= number_format(count($nation['cities'] ?? [])) ?> |
|
| 중 원 정 세 |
|
= formatHistoryToHTML($history['global_history']) ?>
|
| 장 수 동 향 |
|
= formatHistoryToHTML($history['global_action']) ?>
|
| = closeButton() ?> |
| = banner() ?> |