ini_set('zlib.output_compression', 'On');
require_once "db_common.inc";
+require_once "web_template.inc";
-function print_popularity_table($stat, $id_name, $name)
+function print_popularity_table($fp, $stat, $id_name, $name)
{
- echo <<<EOM
+ fwrite($fp, <<<EOM
<div id="{$id_name}">
<table class="tablesorter statistics_table">
<thead>
<tr>
<th>$name</th>
-EOM;
+
+EOM
+ );
foreach ([
'計', '男性', '女性', '勝利', '平均スコア', '最大スコア',
] as $name) {
- echo "<th>${name}</th>";
+ fwrite($fp, "<th>${name}</th>\n");
}
- echo "</tr>\n";
- echo "</thead>\n";
+ fwrite($fp, "</tr>\n".
+ "</thead>\n");
foreach ($stat as $k => $s) {
$name_link = "<a href='score_ranking.php?{$id_name}={$s['id']}'>{$s['name']}</a></td>";
$average_score = floor($s['average_score']);
- echo <<<EOM
+ fwrite($fp, <<<EOM
<tr>
<td>$name_link</td>
<td>{$s['total_count']}</td>
<td>$average_score</td>
<td>{$s['max_score']}</td>
</tr>
-EOM;
+
+EOM
+ );
}
- echo "</table>";
- echo "</div>";
+ fwrite($fp, "</table>\n".
+ "</div>\n");
}
-function print_realm_popularity_table($stat, $id_name)
+function print_realm_popularity_table($fp, $stat, $id_name)
{
// 魔法領域の統計を職業ごとにグループ分け
$class_ids = array_unique(array_column($stat, "class_id"));
$class_realm_stat_list[intval($s["class_id"])][] = $s;
}
- echo "<div id=\"{$id_name}\">";
+ fwrite($fp, "<div id=\"{$id_name}\">");
// 職業ごとにテーブルを表示
foreach ($class_realm_stat_list as $class_id => $class_realm_stat) {
$class_name = $class_realm_stat[0]['class_name'];
- echo <<<EOM
+ fwrite($fp, <<<EOM
<table class="tablesorter statistics_table" id="${id_name}">
<thead>
<tr>
<th>{$class_name}</th>
-EOM;
+
+EOM
+ );
foreach ([
'計', '男性', '女性', '勝利', '平均スコア', '最大スコア',
] as $th_name) {
- echo "<th>${th_name}</th>";
+ fwrite($fp, "<th>${th_name}</th>\n");
}
- echo "</tr>\n";
- echo "</thead>\n";
+ fwrite($fp, "</tr>\n".
+ "</thead>\n");
foreach ($class_realm_stat as $realm) {
$name_link = "<a href='score_ranking.php?class_id={$class_id}&{$id_name}={$realm['realm_id']}'>{$realm['realm_name']}</a></td>";
$average_score = floor($realm['average_score']);
- echo <<<EOM
+ fwrite($fp, <<<EOM
<tr>
<td>$name_link</td>
<td>{$realm['total_count']}</td>
<td>$average_score</td>
<td>{$realm['max_score']}</td>
</tr>
-EOM;
+
+EOM
+ );
}
- echo "</table>";
+ fwrite($fp, "</table>\n");
}
- echo "</div>";
+ fwrite($fp, "</div>\n");
}
$db = new ScoreDB();
$statistics = $db->get_statistics_tables('total_count');
$query_time = microtime(true) - $time_start;
-?>
-
-<!DOCTYPE html>
-
-<html lang="jp">
- <head>
- <meta charset="utf-8"/>
- <link rev=made href="mailto:hengband-dev@lists.sourceforge.jp">
- <link rel="stylesheet" type="text/css" href="/hengband.css">
- <link rel="stylesheet" type="text/css" href="tablesorter-theme/style.css">
- <link rel="alternate" title="変愚蛮怒 新着スコア" href="feed/newcome-atom.xml" type="application/atom+xml" />
- <script
- src="https://code.jquery.com/jquery-3.3.1.min.js"
- integrity="sha256-FgpCb/KJQlLNfOu91ta32o/NMZxltwRo8QtmkMRdAu8="
- crossorigin="anonymous"></script>
-
- <script src="jquery.tablesorter.min.js" type="text/javascript"></script>
- <script src="popularity_ranking.js" type="text/javascript"></script>
- <title>変愚蛮怒 公式WEB スコアランキング 人気のある種族・職業・性格・魔法領域</title>
- </head>
-
- <body>
-
- <header>
-
- <section id="title">
- <img class="tama1" src="/image/tama.gif" alt="tama">
- <img class="tama2" src="/image/tama.gif" alt="tama">
- <img class="tama3" src="/image/tama.gif" alt="tama">
- <img class="tama4" src="/image/tama.gif" alt="tama">
- <img id="hengTitle" src="/image/hengband_title.png" alt="変愚蛮怒 Hengband">
- <img class="tama4" src="/image/tama.gif" alt="tama">
- <img class="tama3" src="/image/tama.gif" alt="tama">
- <img class="tama2" src="/image/tama.gif" alt="tama">
- <img class="tama1" src="/image/tama.gif" alt="tama">
- </section>
-
- <section id="mainMenu">
- <a href="/index.html">トップ</a>
- <a href="/download.html">ダウンロード</a>
- <a href="/score.html">スコア</a>
- <a href="/lists.html">コミュニティ</a>
- <a href="/history.html">バージョン履歴</a>
- <a href="/link.html">関連リンク</a>
- <a href="/jlicense.html">著作権表記</a>
- <span>English (Coming Soon)</span>
- </section>
-
- </header>
-
- <div id="main">
-<!--main contents-->
-<h2>人気のある種族・職業・性格・魔法領域</h2>
-<!--
-<small>
-<?php
-echo sprintf("(%.2f 秒)", $query_time);
-?>
-</small>
--->
- <nobr>[ <a href="javascript:void(0)" class="table_select" id="race_id">種族</a> | <a href="javascript:void(0)" class="table_select" id="class_id">職業</a> | <a href="javascript:void(0)" class="table_select" id="personality_id">性格</a> ] [ <a href="javascript:void(0)" class="table_select" id="realm_id1">魔法領域1</a> | <a href="javascript:void(0)" class="table_select" id="realm_id2">魔法領域2</a> ]</nobr>
-
-<?php
-print_popularity_table($statistics['race'], 'race_id', "種族");
-?>
-<?php
-print_popularity_table($statistics['class'], 'class_id', "職業");
-?>
-<?php
-print_popularity_table($statistics['personality'], 'personality_id', "性格");
-?>
-<?php
-print_realm_popularity_table($statistics['realm1'], 'realm_id1');
-?>
-<?php
-print_realm_popularity_table($statistics['realm2'], 'realm_id2');
-?>
-
- </div>
-
- <footer>
-
- <section>
- 各ページへのリンクは御自由にどうぞ。/ Link Free.<br>
- 2018 Hengband Dev Team. <a href="mailto:hengband-dev@lists.sourceforge.jp">hengband-dev@lists.sourceforge.jp</a><br>
- </section>
-
- <section>
- Powered by <a href="https://ja.osdn.net/" class="footer_banner">
- <img src="https://ja.osdn.net/sflogo.php?group_id=541" border="0" alt="OSDN.jp">
- </a>
- </section>
-
- </footer>
-
- </body>
-</html>
+$wt = new WebTemplate();
+
+$wt->add_head_contents('<link rel="stylesheet" type="text/css" href="tablesorter-theme/style.css">');
+$wt->add_head_contents(
+ <<<EOM
+<script
+src="https://code.jquery.com/jquery-3.3.1.min.js"
+integrity="sha256-FgpCb/KJQlLNfOu91ta32o/NMZxltwRo8QtmkMRdAu8="
+crossorigin="anonymous"></script>
+EOM
+);
+$wt->add_head_contents('<script src="jquery.tablesorter.min.js" type="text/javascript"></script>');
+$wt->add_head_contents('<script src="popularity_ranking.js" type="text/javascript"></script>');
+$wt->set_title("変愚蛮怒 スコアランキング 人気のある種族・職業・性格・魔法領域");
+
+$fp = $wt->main_contents_fp();
+fwrite($fp, "<h2>人気のある種族・職業・性格・魔法領域</h2>\n");
+//fprintf($fp, "<small>(%.2f 秒)</small>", $query_time);
+fwrite($fp, <<<EOM
+<nobr>[ <a href="javascript:void(0)" class="table_select" id="race_id">種族</a> | <a href="javascript:void(0)" class="table_select" id="class_id">職業</a> | <a href="javascript:void(0)" class="table_select" id="personality_id">性格</a> ] [ <a href="javascript:void(0)" class="table_select" id="realm_id1">魔法領域1</a> | <a href="javascript:void(0)" class="table_select" id="realm_id2">魔法領域2</a> ]</nobr>
+
+EOM
+
+);
+
+print_popularity_table($fp, $statistics['race'], 'race_id', "種族");
+print_popularity_table($fp, $statistics['class'], 'class_id', "職業");
+print_popularity_table($fp, $statistics['personality'], 'personality_id', "性格");
+print_realm_popularity_table($fp, $statistics['realm1'], 'realm_id1');
+print_realm_popularity_table($fp, $statistics['realm2'], 'realm_id2');
+
+$wt->print_page();
require_once "db_common.inc";
require_once "dump_file.inc";
+require_once "web_template.inc";
ini_set('zlib.output_compression', 'On');
/**
- * ページナビゲーションテーブルを表示する
+ * ページナビゲーションテーブルを出力する
*
+ * @param resource $fp 出力先リソースへのハンドル
* @param array $pageinfo calc_page_info()関数で取得したページ情報を保持する連想配列
*/
-function print_navi_page_table($pageinfo)
+function print_navi_page_table($fp, $pageinfo)
{
if (count($pageinfo['navi_list']) <= 1) return;
$href_base .= "?";
}
- echo "<table align='center'>\n"
- ."<tr>";
+ fwrite($fp, "<table align='center'>\n"
+ ."<tr>\n");
if ($pageinfo['current'] > 0) {
$href = $href_base . "&start=". ($pageinfo['current'] - 1) * $pageinfo['data_count_per_page'];
- echo "<td><a href={$href}>< 前へ</a></td>";
+ fwrite($fp, "<td><a href={$href}>< 前へ</a></td>\n");
}
foreach ($pageinfo['navi_list'] as $page) {
$page_num = $page + 1;
$href = $href_base . "&start=". $page * $pageinfo['data_count_per_page'];
if ($page === $pageinfo['current']) {
- echo "<td>$page_num</td>";
+ fwrite($fp, "<td>$page_num</td>\n");
} else {
- echo "<td><a href={$href}>$page_num</a></td>";
+ fwrite($fp, "<td><a href={$href}>$page_num</a></td>\n");
}
}
if ($pageinfo['current'] < $pageinfo['last']) {
$href = $href_base . "&start=". ($pageinfo['current'] + 1) * $pageinfo['data_count_per_page'];
- echo "<td><a href={$href}>次へ ></a></td>";
+ fwrite($fp, "<td><a href={$href}>次へ ></a></td>\n");
}
- echo "</tr>\n"
- ."</table>\n";
+ fwrite($fp, "</tr>\n"
+ ."</table>\n");
}
/**
- * スコアランキングテーブルを表示する
+ * スコアランキングテーブルを出力する
*
+ * @param resource $fp 出力先リソースへのハンドル
* @param array $scores スコア
* @param integer $rank_start 順位の開始番号(0オリジン)
*/
-function print_score_table($scores, $rank_start)
+function print_score_table($fp, $scores, $rank_start)
{
- echo <<<EOM
+ fwrite($fp, <<<EOM
<table align='center' border=1>
<tr>
<th>順位</th>
<th>死因</th>
</tr>
-EOM;
+EOM
+ );
foreach($scores as $idx => $score) {
$rank = $rank_start + $idx + 1;
$realms = isset($score['realms_name']) ? "(".$score['realms_name'].")" : "";
$dumpfile = new DumpFile($score['score_id']);
- echo "<tr>\n";
if ($dumpfile->exists('dumps', 'txt')) {
- $name = "<a href=\"show_dump.php?score_id={$score['score_id']}\">{$score['personality_name']}{$score['name']}</a>\n";
+ $name = "<a href=\"show_dump.php?score_id={$score['score_id']}\">{$score['personality_name']}{$score['name']}</a>";
} else {
$name = "{$score['personality_name']}{$score['name']}";
}
- echo <<<EOM
+ fwrite($fp, <<<EOM
+<tr>
<td>$rank</td>
<td align="right">{$score['score']}</td>
<td><nobr>$date</nobr></td>
<td>{$score['class_name']}$realms</td>
<td>$sex_str</td>
-EOM;
+EOM
+ );
if ($dumpfile->exists('screens', 'html')) {
- echo "<td><a href=\"show_screen.php?score_id={$score['score_id']}\">{$score['death_reason']}</a>";
+ fwrite($fp, "<td><a href=\"show_screen.php?score_id={$score['score_id']}\">{$score['death_reason']}</a>");
} else {
- echo "<td>{$score['death_reason']}";
+ fwrite($fp, "<td>{$score['death_reason']}");
}
- echo "<br>({$depth}{$score['version']})</td>\n";
- echo "</tr>\n";
+ fwrite($fp, "<br>({$depth}{$score['version']})</td>\n".
+ "</tr>\n");
}
- echo "</table>\n";
+ fwrite($fp, "</table>\n");
}
$db = new ScoreDB();
$search_result = $db->search_score($start_num, 50);
$pageinfo = calc_page_info($search_result['total_data_count'], $start_num, 50);
-?>
-
-<!DOCTYPE html>
-
-<html lang="jp">
- <head>
- <meta charset="utf-8"/>
- <link rev=made href="mailto:hengband-dev@lists.sourceforge.jp">
- <link rel="stylesheet" type="text/css" href="/hengband.css">
- <title>変愚蛮怒 公式WEB スコアランキング</title>
- </head>
-
- <body>
-
- <header>
-
- <section id="title">
- <img class="tama1" src="/image/tama.gif" alt="tama">
- <img class="tama2" src="/image/tama.gif" alt="tama">
- <img class="tama3" src="/image/tama.gif" alt="tama">
- <img class="tama4" src="/image/tama.gif" alt="tama">
- <img id="hengTitle" src="/image/hengband_title.png" alt="変愚蛮怒 Hengband">
- <img class="tama4" src="/image/tama.gif" alt="tama">
- <img class="tama3" src="/image/tama.gif" alt="tama">
- <img class="tama2" src="/image/tama.gif" alt="tama">
- <img class="tama1" src="/image/tama.gif" alt="tama">
- </section>
-
- <section id="mainMenu">
- <a href="/index.html">トップ</a>
- <a href="/download.html">ダウンロード</a>
- <a href="/score.html">スコア</a>
- <a href="/lists.html">コミュニティ</a>
- <a href="/history.html">バージョン履歴</a>
- <a href="/link.html">関連リンク</a>
- <a href="/jlicense.html">著作権表記</a>
- <span>English (Coming Soon)</span>
- </section>
-
- </header>
-
- <div id="main">
-<!--main contents-->
-<h2>変愚蛮怒 歴代スコア (<?php echo $db->get_sort_mode_name(); ?>)</h2>
+
+
+$wt = new WebTemplate();
+$wt->set_title("変愚蛮怒 スコアランキング");
+$fp = $wt->main_contents_fp();
+fprintf($fp, "<h2>変愚蛮怒 歴代スコア (%s)</h2>\n", $db->get_sort_mode_name());
+fprintf($fp, <<<EOM
<div align="right">
<small>
-<?php
-echo sprintf("件数 %d 件 (%.2f 秒)", $search_result['total_data_count'], $search_result['elapsed_time']);
-?>
+件数 %d 件 (%.2f 秒)
</small>
</div>
-<div>
-<?php
-print_navi_page_table($pageinfo);
-print_score_table($search_result['scores'], $pageinfo['current'] * $pageinfo['data_count_per_page']);
-print_navi_page_table($pageinfo);
-?>
-</div>
- </div>
-
- <footer>
-
- <section>
- 各ページへのリンクは御自由にどうぞ。/ Link Free.<br>
- 2018 Hengband Dev Team. <a href="mailto:hengband-dev@lists.sourceforge.jp">hengband-dev@lists.sourceforge.jp</a><br>
- </section>
-
- <section>
- Powered by <a href="https://ja.osdn.net/" class="footer_banner">
- <img src="https://ja.osdn.net/sflogo.php?group_id=541" border="0" alt="OSDN.jp">
- </a>
- </section>
- </footer>
+EOM
+ ,$search_result['total_data_count'], $search_result['elapsed_time']
+);
- </body>
+print_navi_page_table($fp, $pageinfo);
+print_score_table($fp, $search_result['scores'], $pageinfo['current'] * $pageinfo['data_count_per_page']);
+print_navi_page_table($fp, $pageinfo);
-</html>
+$wt->print_page();