edit html
@@ -1,7 +1,7 @@ | ||
1 | 1 | <?php |
2 | 2 | /*! |
3 | 3 | \file |
4 | - \brief 共通処理 | |
4 | + \brief 記事の閲覧 | |
5 | 5 | |
6 | 6 | \author Satofumi KAMIMURA |
7 | 7 |
@@ -8,7 +8,180 @@ | ||
8 | 8 | $Id$ |
9 | 9 | */ |
10 | 10 | |
11 | +require_once('config.php'); | |
12 | +require_once('AccessBbsData.php'); | |
11 | 13 | |
14 | +define('PAGE_ARTICLE_NUM', 6); | |
15 | + | |
16 | + | |
17 | +// スレッド情報の作成 | |
18 | +function echoThreadText($thread) | |
19 | +{ | |
20 | + if (count($thread) <= 0) { | |
21 | + print <<<EOB | |
22 | +<div id="bbs_thread"> | |
23 | +<ul> | |
24 | +<li>スレッドなし</li> | |
25 | +</ul> | |
26 | +</div> | |
27 | +EOB; | |
28 | + } else { | |
29 | + // !!! | |
30 | + } | |
31 | +} | |
32 | + | |
33 | + | |
34 | +// 記事を整形して表示 | |
35 | +function echoArticles($articles) | |
36 | +{ | |
37 | + if (count($articles) <= 0) { | |
38 | + print <<<EOB | |
39 | +<div id="bbs_article"> | |
40 | +<ul> | |
41 | +<li>投稿なし</li> | |
42 | +</ul> | |
43 | +</div> | |
44 | +EOB; | |
45 | + } else { | |
46 | + print '<div id="bbs_article">'; | |
47 | + foreach ($articles as $each_thread) { | |
48 | + // !!! 汚いな... | |
49 | + $i = 0; | |
50 | + $n = count($each_thread); | |
51 | + if ($n > 1) { | |
52 | + print '<table width="100%"><tr><td>'; | |
53 | + } | |
54 | + foreach ($each_thread as $each_article) { | |
55 | + echo bbs_createArticleTable($each_article); | |
56 | + if ($i != ($n - 1)) { | |
57 | + echo '<br>'; | |
58 | + } | |
59 | + ++$i; | |
60 | + } | |
61 | + if ($n > 1) { | |
62 | + print '</td></tr></table>'; | |
63 | + } | |
64 | + print '<br>'; | |
65 | + } | |
66 | + print '</div>'; | |
67 | + } | |
68 | +} | |
69 | + | |
70 | + | |
71 | +function bbs_header() { | |
72 | + | |
73 | + // データベースに接続 | |
74 | + $db = new AccessDatabase(DB_HOST, DB_NAME, DB_USER, DB_PASSWORD); | |
75 | + if (! $db->connect()) { | |
76 | + // !!! エラーメッセージの表示 | |
77 | + return; | |
78 | + } | |
79 | + | |
80 | + // 表示するページの取得 | |
81 | + $page = 0; | |
82 | + if (isset($_GET['page'])) { | |
83 | + $page = intval($_GET['page']); | |
84 | + } | |
85 | + | |
86 | + // 記事の削除 | |
87 | + if (isset($_POST['remove']) && | |
88 | + isset($_POST['article_id']) && | |
89 | + isset($_POST['delete_key'])) { | |
90 | + $delete_key = $_POST['delete_key']; | |
91 | + $article_id = intval($_POST['article_id']); | |
92 | + $db->deleteArticle($article_id, $delete_key); | |
93 | + | |
94 | + header('Location: bbs.php'); | |
95 | + } | |
96 | + | |
97 | + $test_article = bbs_parseCommitted($_POST); | |
98 | + | |
99 | + if (isset($_POST['test'])) { | |
100 | + // テスト投稿の場合、その情報を取得 | |
101 | + $commit_key = $test_article['commit_key']; | |
102 | + | |
103 | + } else if (isset($_POST['submit']) && | |
104 | + (! isset($test_article['error_message']))) { | |
105 | + // 投稿の場合、登録処理 | |
106 | + $db->commitArticle($test_article); | |
107 | + header('Location: bbs.php'); | |
108 | + | |
109 | + } else if (isset($_GET['id'])) { | |
110 | + // Reply の場合、その記事を引用した入力フォームを作る | |
111 | + $commit_key = $db->getCommitKey(); | |
112 | + $id = intval($_GET['id']); | |
113 | + $test_article = $db->getReplyArticle($id, $_POST); | |
114 | + | |
115 | + } else { | |
116 | + // 通常の閲覧 | |
117 | + $test_article = array(); | |
118 | + $test_article['error_message'] = ''; | |
119 | + | |
120 | + // システムからキーを取得 | |
121 | + $commit_key = $db->getCommitKey(); | |
122 | + } | |
123 | + | |
124 | + // スレッド情報の取得 | |
125 | + $threads = $db->getThreadList(); | |
126 | + | |
127 | + // ページ情報の取得 | |
128 | + $page_max = $db->getPageMax(); | |
129 | + | |
130 | + // 記事の取得 | |
131 | + list($articles, $page_max) = $db->getArticles($page, PAGE_ARTICLE_NUM); | |
132 | + | |
133 | + return array($db, $articles, $page_max, $commit_key, $test_article, $page); | |
134 | +} | |
135 | + | |
136 | + | |
137 | +function bbs_body($args) { | |
138 | + | |
139 | + list($db, $articles, $page_max, $commit_key, $test_article, $page) = $args; | |
140 | + print '<div id="bbs">'; | |
141 | + print '<a name="bbs_top"></a>'; | |
142 | + | |
143 | + // _GET[], _POST[] が空の場合のみ、最近の書き込みを表示する | |
144 | + if ((count($_POST) == 0) && (count($_GET) == 0)) { | |
145 | + $recent_articles = $db->getRecentArticlesAbst(3); | |
146 | + if (count($recent_articles) > 0) { | |
147 | + print '最近の書き込み'; | |
148 | + print '<ul>'; | |
149 | + | |
150 | + foreach ($recent_articles as $article) { | |
151 | + $id = $article['id']; | |
152 | + print '<li>'. $article['datetime']. | |
153 | + ' <b>'. $article['name']. '</b> <a href="#'. $id. '">「'. $article['title']. '」</a></li>'; | |
154 | + } | |
155 | + | |
156 | + print '</ul><br>'; | |
157 | + } | |
158 | + } | |
159 | + | |
160 | + // テスト投稿の内容と、エラーメッセージを表示 | |
161 | + if (isset($_POST['test']) || isset($_GET['id'])) { | |
162 | + print '<div id="bbs_article">'; | |
163 | + echo bbs_createArticleTable($test_article); | |
164 | + print '<br></div>'; | |
165 | + | |
166 | + if (isset($test_article['error_message'])) { | |
167 | + echo htmlspecialchars($test_article['error_message'], ENT_QUOTES); | |
168 | + } | |
169 | + } | |
170 | + | |
171 | + // 投稿フォームの表示 | |
172 | + $valid = isset($test_article['error_message']) ? false : true; | |
173 | + echo bbs_commitForm($commit_key, $test_article, $valid, $page); | |
174 | + | |
175 | + echo '<br>'; | |
176 | + | |
177 | + // 記事の表示 | |
178 | + echoArticles($articles); | |
179 | + | |
180 | + // ページ用リンクの表示 | |
181 | + echo bbs_createPageLink($page_max); | |
182 | +} | |
183 | + | |
184 | + | |
12 | 185 | // 投稿フォームの表示 |
13 | 186 | function bbs_commitForm($commit_key, $default = array(), $valid = false, |
14 | 187 | $page = 0) |
@@ -38,7 +211,7 @@ | ||
38 | 211 | $output = <<<EOB |
39 | 212 | <div id="bbs_commit"> |
40 | 213 | <form method="post" action="#bbs_top?page=$page"> |
41 | -<table> | |
214 | +<table width="100%"> | |
42 | 215 | <tr><th>Name</th><td><input type="text" name="name" value="$name" size="16"></input></td></tr> |
43 | 216 | <tr><th>Title</th><td><input type="text" name="title" value="$title" size="32"></input></td></tr> |
44 | 217 | <tr><th>Message</th><td><textarea name="message" rows="4" cols="53" value="$message">$message</textarea></td></tr> |
@@ -141,13 +314,20 @@ | ||
141 | 314 | $name = $article['name']; |
142 | 315 | $id = isset($article['article_id']) ? $article['article_id'] : ' TEST '; |
143 | 316 | $page = intval($page); |
317 | + if (isset($article['depth'])) { | |
318 | + $width = 100 - intval($article['depth']) * 5; | |
319 | + } else { | |
320 | + $width = 100; | |
321 | + } | |
144 | 322 | |
145 | 323 | $output = <<<EOB |
146 | 324 | <a name="$id"></a> |
147 | -<table> | |
325 | +<div align="right"> | |
326 | +<table width="$width%"> | |
148 | 327 | <tr><th width="60%" align="left">$title</th><th class="reply" width="35%" align="center">$date $time</th><th class="reply" width="5%" align="center"><a href="bbs.php?id=$id&page=$page">Reply</a></th></tr> |
149 | 328 | <tr><td colspan="3"><b>$name</b><br>$message<br><br><div align="right">[$id]</a></td></tr> |
150 | 329 | </table> |
330 | +</div> | |
151 | 331 | EOB; |
152 | 332 | return $output; |
153 | 333 | } |
@@ -176,4 +356,3 @@ | ||
176 | 356 | $output .= '</div>'; |
177 | 357 | return $output; |
178 | 358 | } |
179 | -?> |
@@ -1,7 +1,31 @@ | ||
1 | 1 | <?php |
2 | +/*! | |
3 | + \brief 簡易カウンタ | |
4 | + | |
5 | + \author Satofumi KAMIMURA | |
6 | + | |
7 | + $Id$ | |
8 | + | |
9 | + \todo 直前のアクセスと同じサイトからの閲覧では、カウントアップしないようにする | |
10 | +*/ | |
2 | 11 | require_once('config.php'); |
3 | 12 | require_once('CounterManager.php'); |
4 | 13 | |
14 | + | |
15 | +// カウンタの表示 | |
16 | +function view_counter($count) { | |
17 | + | |
18 | + $counter_text = sprintf("%08d", $count); | |
19 | + print '<table width="120px"><tr><td>'; | |
20 | + for ($i = 0; $i < strlen($counter_text); ++$i) { | |
21 | + $number = $counter_text[$i]; | |
22 | + print '<img src="img/'. $number. '.gif">'; | |
23 | + } | |
24 | + print '</td></tr></table>'; | |
25 | +} | |
26 | + | |
27 | + | |
28 | +// カウンタ値の取得 | |
5 | 29 | function html_count() { |
6 | 30 | $db = new CounterManager(DB_HOST, DB_NAME, DB_USER, DB_PASSWORD); |
7 | 31 | if (! $db->connect()) { |
@@ -130,7 +130,7 @@ | ||
130 | 130 | |
131 | 131 | // 最後のページが空だったら、ページの最大番号を1つ戻す |
132 | 132 | if (($page_counter > 0) && (! $have_article)) { |
133 | - --$page_counter; | |
133 | + //--$page_counter; | |
134 | 134 | } |
135 | 135 | |
136 | 136 | return array($articles, $page_counter); |
@@ -139,7 +139,7 @@ | ||
139 | 139 | // スレッド毎の記事の取得 |
140 | 140 | function getThreadArticle($thread_id) |
141 | 141 | { |
142 | - $query = "SELECT article_id, user_name as name, article_pass as pass, article_title as title, article_text as message, commit_time as time FROM article WHERE active!=0 and (thread_id=$thread_id or article_id=$thread_id) ORDER BY article_id"; // DESC | |
142 | + $query = "SELECT article_id, user_name as name, article_pass as pass, article_title as title, article_text as message, commit_time as time, parent_id FROM article WHERE active!=0 and (thread_id=$thread_id or article_id=$thread_id) ORDER BY article_id"; | |
143 | 143 | $result = mysql_query($query); |
144 | 144 | if (! $result) { |
145 | 145 | return array(); |
@@ -147,12 +147,37 @@ | ||
147 | 147 | |
148 | 148 | $articles = array(); |
149 | 149 | |
150 | - while ($record = mysql_fetch_array($result)) { | |
150 | + while ($record = mysql_fetch_array($result, MYSQL_ASSOC)) { | |
151 | + $record['depth'] = 0; | |
151 | 152 | array_push($articles, $record); |
152 | 153 | } |
153 | 154 | mysql_free_result($result); |
154 | 155 | |
155 | - return $articles; | |
156 | + // Reply に応じたインデントを付加する | |
157 | + $sorted_articles = array(); | |
158 | + foreach ($articles as $each_article) { | |
159 | + | |
160 | + $pushed = false; | |
161 | + $loop_articles = array_reverse($sorted_articles); | |
162 | + $index = count($loop_articles); | |
163 | + foreach ($loop_articles as $compare_article) { | |
164 | + if ($compare_article['article_id'] == $each_article['parent_id']) { | |
165 | + // 配列を分割して、間に記事を入れる | |
166 | + $front = array_slice($sorted_articles, 0, $index + 1); | |
167 | + $back = array_slice($sorted_articles, $index + 1); | |
168 | + | |
169 | + $each_article['depth'] = $compare_article['depth'] + 1; | |
170 | + $sorted_articles = array_merge($front, array($each_article), $back); | |
171 | + $pushed = true; | |
172 | + break; | |
173 | + } | |
174 | + --$index; | |
175 | + } | |
176 | + if (! $pushed) { | |
177 | + array_push($sorted_articles, $each_article); | |
178 | + } | |
179 | + } | |
180 | + return $sorted_articles; | |
156 | 181 | } |
157 | 182 | |
158 | 183 | // 記事の登録処理 |
@@ -256,7 +281,7 @@ | ||
256 | 281 | |
257 | 282 | // 最近の記事の取得 |
258 | 283 | function getRecentArticlesAbst($limit) { |
259 | - $query = "SELECT article_title as title, access_time, user_name, article_id FROM article WHERE active=1 ORDER BY access_time DESC LIMIT $limit"; | |
284 | + $query = "SELECT article_title as title, commit_time, user_name, article_id FROM article WHERE active=1 ORDER BY commit_time DESC LIMIT $limit"; | |
260 | 285 | $result = mysql_query($query); |
261 | 286 | if (! $result) { |
262 | 287 | return array(); |
@@ -266,8 +291,8 @@ | ||
266 | 291 | while ($record = mysql_fetch_array($result)) { |
267 | 292 | $title = htmlspecialchars($record['title'], ENT_QUOTES); |
268 | 293 | $name = htmlspecialchars($record['user_name'], ENT_QUOTES); |
269 | - $date = date("Y-m-d", $record['access_time']); | |
270 | - $time = date("H:i", $record['access_time']); | |
294 | + $date = date("Y-m-d", $record['commit_time']); | |
295 | + $time = date("H:i", $record['commit_time']); | |
271 | 296 | $id = intval($record['article_id']); |
272 | 297 | |
273 | 298 | array_push($articles, array('title' => $title, |
@@ -0,0 +1,17 @@ | ||
1 | +<?php | |
2 | +/*! | |
3 | + \file | |
4 | + \brief 設定ファイル | |
5 | + | |
6 | + \author Satofumi KAMIMURA | |
7 | + | |
8 | + $Id$ | |
9 | + | |
10 | + \todo SourceForge ユーザから見えないようにする | |
11 | +*/ | |
12 | + | |
13 | +define('DB_HOST', 'localhost'); | |
14 | +define('DB_NAME', 'kanjiwar'); | |
15 | +define('DB_USER', 'root'); | |
16 | +define('DB_PASSWORD', ''); | |
17 | +?> |
@@ -6,137 +6,11 @@ | ||
6 | 6 | \author Satofumi KAMIMURA |
7 | 7 | |
8 | 8 | $Id$ |
9 | - | |
10 | - \todo Reply の記事対応を適切にし、インデントを行う | |
11 | - \todo 記事部分を完全に独立させて、使いやすいようにする | |
12 | 9 | */ |
13 | - | |
14 | -require_once('includes/config.php'); | |
10 | +?> | |
11 | +<?php | |
15 | 12 | require_once('includes/bbs_functions.php'); |
16 | -require_once('includes/AccessBbsData.php'); | |
17 | - | |
18 | -define('PAGE_ARTICLE_NUM', 6); | |
19 | - | |
20 | - | |
21 | -// スレッド情報の作成 | |
22 | -function echoThreadText($thread) | |
23 | -{ | |
24 | - if (count($thread) <= 0) { | |
25 | - print <<<EOB | |
26 | -<div id="bbs_thread"> | |
27 | -<ul> | |
28 | -<li>スレッドなし</li> | |
29 | -</ul> | |
30 | -</div> | |
31 | -EOB; | |
32 | - } else { | |
33 | - // !!! | |
34 | - } | |
35 | -} | |
36 | - | |
37 | - | |
38 | -// 記事を整形して表示 | |
39 | -function echoArticles($articles) | |
40 | -{ | |
41 | - if (count($articles) <= 0) { | |
42 | - print <<<EOB | |
43 | -<div id="bbs_article"> | |
44 | -<ul> | |
45 | -<li>投稿なし</li> | |
46 | -</ul> | |
47 | -</div> | |
48 | -EOB; | |
49 | - } else { | |
50 | - print '<div id="bbs_article">'; | |
51 | - foreach ($articles as $each_thread) { | |
52 | - // !!! 汚いな... | |
53 | - $i = 0; | |
54 | - $n = count($each_thread); | |
55 | - if ($n > 1) { | |
56 | - print '<table><tr><td>'; | |
57 | - } | |
58 | - foreach ($each_thread as $each_article) { | |
59 | - echo bbs_createArticleTable($each_article); | |
60 | - if ($i != ($n - 1)) { | |
61 | - echo '<br>'; | |
62 | - } | |
63 | - ++$i; | |
64 | - } | |
65 | - if ($n > 1) { | |
66 | - print '</td></tr></table>'; | |
67 | - } | |
68 | - print '<br>'; | |
69 | - } | |
70 | - print '</div>'; | |
71 | - } | |
72 | -} | |
73 | - | |
74 | -// メイン処理 //////////////////////////////////////// | |
75 | - | |
76 | -// データベースに接続 | |
77 | -$db = new AccessDatabase(DB_HOST, DB_NAME, DB_USER, DB_PASSWORD); | |
78 | -if (! $db->connect()) { | |
79 | - // !!! エラーメッセージの表示 | |
80 | - return; | |
81 | -} | |
82 | - | |
83 | - | |
84 | -// 表示するページの取得 | |
85 | -$page = 0; | |
86 | -if (isset($_GET['page'])) { | |
87 | - $page = intval($_GET['page']); | |
88 | -} | |
89 | - | |
90 | -// 記事の削除 | |
91 | -if (isset($_POST['remove']) && | |
92 | - isset($_POST['article_id']) && | |
93 | - isset($_POST['delete_key'])) { | |
94 | - $delete_key = $_POST['delete_key']; | |
95 | - $article_id = intval($_POST['article_id']); | |
96 | - $db->deleteArticle($article_id, $delete_key); | |
97 | - | |
98 | - header('Location: bbs.php'); | |
99 | -} | |
100 | - | |
101 | -$test_article = bbs_parseCommitted($_POST); | |
102 | - | |
103 | -if (isset($_POST['test'])) { | |
104 | - // テスト投稿の場合、その情報を取得 | |
105 | - $commit_key = $test_article['commit_key']; | |
106 | - | |
107 | -} else if (isset($_POST['submit']) && | |
108 | - (! isset($test_article['error_message']))) { | |
109 | - // 投稿の場合、登録処理 | |
110 | - $db->commitArticle($test_article); | |
111 | - header('Location: bbs.php'); | |
112 | - | |
113 | -} else if (isset($_GET['id'])) { | |
114 | - // Reply の場合、その記事を引用した入力フォームを作る | |
115 | - $commit_key = $db->getCommitKey(); | |
116 | - $id = intval($_GET['id']); | |
117 | - $test_article = $db->getReplyArticle($id, $_POST); | |
118 | - | |
119 | -} else { | |
120 | - // 通常の閲覧 | |
121 | - $test_article = array(); | |
122 | - $test_article['error_message'] = ''; | |
123 | - | |
124 | - // システムからキーを取得 | |
125 | - $commit_key = $db->getCommitKey(); | |
126 | -} | |
127 | - | |
128 | - | |
129 | -// スレッド情報の取得 | |
130 | -$threads = $db->getThreadList(); | |
131 | - | |
132 | -// ページ情報の取得 | |
133 | -$page_max = $db->getPageMax(); | |
134 | - | |
135 | -// 記事の取得 | |
136 | -list($articles, $page_max) = $db->getArticles($page, PAGE_ARTICLE_NUM); | |
137 | - | |
138 | - | |
139 | -// 表示処理 //////////////////////////////////////// | |
13 | +$args = bbs_header(); | |
140 | 14 | ?> |
141 | 15 | <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> |
142 | 16 | <html xmlns="http://www.w3/org/1999/xhtml" xml:lang="ja" lang="ja"> |
@@ -147,62 +21,32 @@ | ||
147 | 21 | <link rel="SHORTCUT ICON" href="favicon.ico"> |
148 | 22 | </head> |
149 | 23 | <body> |
24 | +<div id="wrapper"> | |
150 | 25 | |
151 | -<h2>掲示板<a name="bbs_top"></a></h2> | |
152 | -<?php | |
153 | -// _GET[], _POST[] が空の場合のみ、最近の書き込みを表示する | |
154 | -if ((count($_POST) == 0) && (count($_GET) == 0)) { | |
155 | - $recent_articles = $db->getRecentArticlesAbst(3); | |
156 | - if (count($recent_articles) > 0) { | |
157 | - print '最近の書き込み'; | |
158 | - print '<ul>'; | |
26 | +<div id="navigation"> | |
159 | 27 | |
160 | - foreach ($recent_articles as $article) { | |
161 | - $id = $article['id']; | |
162 | - print '<li>'. $article['datetime']. | |
163 | - ' <b>'. $article['name']. '</b> <a href="#'. $id. '">「'. $article['title']. '」</a></li>'; | |
164 | - } | |
28 | +<a href="http://sourceforge.jp/"><img src="http://sourceforge.jp/sflogo.php?group_id=3542" width="96" height="31" border="0" alt="SourceForge.JP"></a> | |
165 | 29 | |
166 | - print '</ul>'; | |
167 | - } | |
168 | -} | |
169 | -?> | |
30 | +<ul> | |
31 | +<li><a class="navigation" href="index.php">トップ</a></li> | |
32 | +<li><a class="navigation" href="bbs.php">掲示板</a></li> | |
33 | +</ul> | |
170 | 34 | </div> |
171 | -<?php | |
172 | -// テスト投稿の内容と、エラーメッセージを表示 | |
173 | -if (isset($_POST['test']) || isset($_GET['id'])) { | |
174 | - print '<div">'; | |
175 | - echo bbs_createArticleTable($test_article); | |
176 | - print '<br></div>'; | |
177 | 35 | |
178 | - if (isset($test_article['error_message'])) { | |
179 | - echo htmlspecialchars($test_article['error_message'], ENT_QUOTES); | |
180 | - } | |
181 | -} | |
36 | +<div id="contents"> | |
182 | 37 | |
183 | -// 投稿フォームの表示 | |
184 | -$valid = isset($test_article['error_message']) ? false : true; | |
185 | -echo bbs_commitForm($commit_key, $test_article, $valid, $page); | |
38 | +<h2>掲示板<a name="bbs_top"></a></h2> | |
39 | +<?php | |
40 | +bbs_body($args); | |
186 | 41 | |
187 | -echo '<br>'; | |
42 | +echo '<hr>'; | |
43 | +echo bbs_createRemoveForm(); | |
44 | +?> | |
188 | 45 | |
189 | -// 記事の表示 | |
190 | -echoArticles($articles); | |
46 | +</div> | |
191 | 47 | |
192 | -// ページ用リンクの表示 | |
193 | -echo bbs_createPageLink($page_max); | |
194 | -echo '<br>'; | |
48 | +</div> | |
195 | 49 | |
196 | -echo '<hr>'; | |
197 | -echo bbs_createRemoveForm(); | |
198 | -?> | |
199 | -<!-- | |
200 | -<div> | |
201 | -<p>!!! 最近のコメント</p> --> | |
202 | -<?php | |
203 | -// スレッド情報の表示 | |
204 | -//echoThreadText($threads); | |
205 | -?> | |
206 | 50 | <div id="footer"> |
207 | 51 | </div> |
208 | 52 | </body> |
@@ -1,36 +1,44 @@ | ||
1 | 1 | <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> |
2 | 2 | <html xmlns="http://www.w3/org/1999/xhtml" xml:lang="ja" lang="ja"> |
3 | 3 | <head> |
4 | -<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> | |
5 | -<title>kanjiwar: 貍「蟄怜ッセ謌ヲ</title> | |
4 | +<meta http-equiv="Content-Type" content="text/html; charset=EUC-JP"> | |
5 | +<title>kanjiwar: エチサ?ミタ?/title> | |
6 | 6 | <link rel="stylesheet" type="text/css" href="kanjiwar.css" title="kanjiwar" media="screen,tv"/> |
7 | 7 | <link rel="SHORTCUT ICON" href="favicon.ico"> |
8 | 8 | </head> |
9 | 9 | <body> |
10 | - | |
11 | 10 | <div id="wrapper"> |
12 | 11 | |
13 | -<div id="sourceforge"> | |
12 | +<div id="navigation"> | |
13 | + | |
14 | 14 | <a href="http://sourceforge.jp/"><img src="http://sourceforge.jp/sflogo.php?group_id=3542" width="96" height="31" border="0" alt="SourceForge.JP"></a> |
15 | + | |
16 | +<ul> | |
17 | +<li><a class="navigation" href="index.php">・ネ・テ・ラ</a></li> | |
18 | +<li><a class="navigation" href="bbs.php">キヌシィネト</a></li> | |
19 | +</ul> | |
20 | +</div> | |
21 | + | |
22 | +<div id="contents"> | |
15 | 23 | <?php |
24 | +// ・ォ・ヲ・?ソ、ホノスシィ | |
16 | 25 | require_once('includes/counter.php'); |
17 | -$counter_text = sprintf("%08d", html_count()); | |
18 | -print '<table width="120px"><tr><td>'; | |
19 | -for ($i = 0; $i < strlen($counter_text); ++$i) { | |
20 | - $number = $counter_text[$i]; | |
21 | - print '<img src="img/'. $number. '.gif">'; | |
22 | -} | |
23 | -print '</td></tr></table>'; | |
26 | +view_counter(html_count()); | |
24 | 27 | ?> |
28 | +<h1>エチサ?鄲?/h1> | |
29 | + | |
30 | +<p>エチサ??爨?鄲?イ。シ・爨ホコ?ョ</p> | |
31 | +<br> | |
32 | + | |
33 | +<ul> | |
34 | +<li>チ犲?マ Wii ・?筵ウ・ (!!! ヘスト?</li> | |
35 | +<li>ノャサヲオサ、ホネッニー、マ。「サネヘムテ讀ホエチサ? Wii ・?筵ウ・?ヌノチイ (!!! ヘスト?</li> | |
36 | +</ul> | |
37 | +<br> | |
38 | + | |
25 | 39 | </div> |
26 | 40 | |
27 | -<p>!!! 繧ソ繧、繝医Ν繝ュ繧エ</p> | |
41 | +</div> | |
28 | 42 | |
29 | -<p> | |
30 | -!!! 縺薙l縺ッ縺ェ縺ォ縺 | |
31 | -</p> | |
32 | -<p></p> | |
33 | - | |
34 | -<a href="bbs.php">謗イ遉コ譚ソ</a> | |
35 | 43 | </body> |
36 | 44 | </html> |
@@ -0,0 +1,161 @@ | ||
1 | +h1,h2,h3,h4,h5,h6,p,ul,ol,dl { | |
2 | + margin-top: 0; | |
3 | + margin-bottom: 0; | |
4 | +} | |
5 | + | |
6 | +a { | |
7 | + color: #3333ff; | |
8 | +} | |
9 | + | |
10 | +h1 { | |
11 | + text-align: center; | |
12 | + font-size: x-large; | |
13 | +} | |
14 | + | |
15 | +h2 { | |
16 | + font-size: medium; | |
17 | + background-color: #87CEFA; | |
18 | + margin: 2px 10px 8px 0; | |
19 | + padding: 4px 0 3px 8px; | |
20 | +} | |
21 | + | |
22 | +body { | |
23 | + background: floralwhite; | |
24 | +} | |
25 | + | |
26 | +#wrapper { | |
27 | + position: relative; | |
28 | + line-height: 1.3; | |
29 | + margin: 0 auto; | |
30 | + padding: 0; | |
31 | +} | |
32 | + | |
33 | +#navigation { | |
34 | + float: left; | |
35 | + width: 150px; | |
36 | + margin-top: 0; | |
37 | +} | |
38 | + | |
39 | +#navigation ul { | |
40 | + list-style-type: none; | |
41 | + padding: 0; | |
42 | + margin: 0; | |
43 | +} | |
44 | + | |
45 | +a.navigation { | |
46 | + display: block; | |
47 | + width: 100px; | |
48 | + padding: 4px 0 4px 1em; | |
49 | + margin: 3px; | |
50 | + text-decoration: underline; | |
51 | + border: 1px solid white; | |
52 | +} | |
53 | + | |
54 | +a.navigation:hover { | |
55 | + border: 1px solid blue; | |
56 | +} | |
57 | + | |
58 | +#contents { | |
59 | + margin: 10px 100px 0 150px; | |
60 | +} | |
61 | + | |
62 | +#theme td { | |
63 | + text-align: center; | |
64 | + vertical-align: bottom; | |
65 | +} | |
66 | + | |
67 | +#theme th { | |
68 | + font-size: small; | |
69 | + padding: 0 5px 0 5px; | |
70 | +} | |
71 | + | |
72 | +#footer { | |
73 | + margin-left: 150px; | |
74 | + clear: both; | |
75 | + font-size: small; | |
76 | +} | |
77 | + | |
78 | + | |
79 | +#bbs table { | |
80 | + border: solid 1px; | |
81 | +} | |
82 | + | |
83 | +#bbs_article b { | |
84 | + font-weight: bold; | |
85 | +} | |
86 | + | |
87 | +#bbs_article table { | |
88 | + border: solid 1px black; | |
89 | + border-collapse: collapse; | |
90 | +} | |
91 | + | |
92 | +#bbs_article th { | |
93 | + border: solid 0px; | |
94 | + background-color: #87CEFA; | |
95 | + padding: 2px 5px 2px 5px; | |
96 | +} | |
97 | + | |
98 | +#bbs_article td { | |
99 | + text-align: left; | |
100 | + padding: 5px; | |
101 | +} | |
102 | + | |
103 | +#bbs_article th.reply { | |
104 | + text-align: right; | |
105 | + background-color: #87CEFA; | |
106 | + font-weight: normal; | |
107 | + padding: 2px 10px 2px 5px; | |
108 | +} | |
109 | + | |
110 | + | |
111 | +#list { | |
112 | + list-style-image: url(img/ldot.png) | |
113 | +} | |
114 | + | |
115 | +#list dt { | |
116 | + font-style: italic; | |
117 | + font-weight: bold; | |
118 | + margin: 0.4em 0 0 0.5em; | |
119 | + line-height: 1.4; | |
120 | +} | |
121 | + | |
122 | +#list dd { | |
123 | + margin: -0.2em 0.5em 0.8em 2em; | |
124 | + padding: 0 0 0 14px; | |
125 | + line-height: 1.4; | |
126 | + background-image: url(img/cdot.png); | |
127 | + background-position: center left; | |
128 | + background-repeat: no-repeat; | |
129 | +} | |
130 | + | |
131 | + | |
132 | +#right { | |
133 | + text-align: right; | |
134 | + margin-bottom: 1em; | |
135 | +} | |
136 | + | |
137 | + | |
138 | +dd.first { | |
139 | + margin-top: -1.3em; | |
140 | +} | |
141 | + | |
142 | +dd { | |
143 | + margin-left: 6em; | |
144 | +} | |
145 | + | |
146 | +dt.dot { | |
147 | + margin-left: -8px; | |
148 | + padding: 0 0 0 9px; | |
149 | + background-image: url(img/cdot.png); | |
150 | + background-position: center left; | |
151 | + background-repeat: no-repeat; | |
152 | +} | |
153 | + | |
154 | +#indent { | |
155 | + margin-left: 1em; | |
156 | +} | |
157 | + | |
158 | +table.board { | |
159 | + border: solid 1px black; | |
160 | + background-color: white; | |
161 | +} | |
\ No newline at end of file |
@@ -12,5 +12,5 @@ | ||
12 | 12 | 操作サンプル |
13 | 13 | 矩形の表示 |
14 | 14 | 塗りつぶす |
15 | - Wii リモコンによる左右移動 | |
15 | + _X Wii リモコンによる左右移動 | |
16 | 16 | _X 640x480 固定 |
@@ -2,7 +2,7 @@ | ||
2 | 2 | # Satofumi KAMIMURA |
3 | 3 | # $Id$ |
4 | 4 | |
5 | -all : | |
5 | +all : counter_copy bbs_copy | |
6 | 6 | |
7 | 7 | clean : |
8 | 8 | ${RM} -rf output_html/* |
@@ -13,9 +13,22 @@ | ||
13 | 13 | upload : html |
14 | 14 | rsync -avz -e ssh --delete output_html/* shell.sourceforge.jp:/home/groups/k/ka/kanjiwar/htdocs/ |
15 | 15 | |
16 | -html : html_copy | |
16 | +html : html_copy bbs_copy | |
17 | +counter_copy : html/includes/counter.php html/includes/CounterManager.php | |
18 | +html/includes/CounterManager.php : ../../../web/counter/CounterManager.php | |
19 | + -cp $? $@ | |
17 | 20 | |
18 | -html_copy : | |
21 | +html/includes/counter.php : ../../../web/counter/counter.php | |
22 | + -cp $? $@ | |
23 | + | |
24 | +bbs_copy : html/includes/bbs_functions.php html/includes/AccessBbsData.php | |
25 | +html/includes/bbs_functions.php : ../../../web/bbs/bbs_functions.php | |
26 | + -cp $? $@ | |
27 | + | |
28 | +html/includes/AccessBbsData.php : ../../../web/bbs/AccessBbsData.php | |
29 | + -cp $? $@ | |
30 | + | |
31 | +html_copy : counter_copy | |
19 | 32 | if ! test -d output_html/includes; then mkdir output_html/includes; fi |
20 | 33 | cp html/*.php html/*.css output_html/ |
21 | 34 | -cp html/includes/.htaccess html/includes/*.php output_html/includes/ |