OSDN Git Service

一頁に表示できる最大件数を200に拡大。ユーザーTLとキーワードTLで長い投稿を省略しないように変更。
[yanmah2/YANMAH2-season2-.git] / entries.php
1 <?php
2 //YANMAH2 - Yet ANother Mobile Accelerated HatenaHaiku
3 //(c) 2016 YANMAH2 project
4 //This program is freesoftware. you can redistribute it and/or modify it under the terms of the [GNU Affero GPL v3](http://www.gnu.org/licenses/agpl.html).
5 ?>
6 <?php
7 define("HELLO","world");
8 require_once "product_definitions.php";
9 require_once "configurable_variables.php";
10 require_once "common_functions.php";
11 ?>
12 <?php
13 require_once 'init_processor.php';
14 // var_dump($_SESSION);
15 if (isset($_GET["reftime"]) && $_GET["reftime"] != '') {
16   header('Cache-Control: private, max-age=' . 60*60*24);
17 }
18 ?>
19 <?php
20 $selfcall = htmlspecialchars($_SERVER["PHP_SELF"], ENT_QUOTES);
21 $safequery = htmlspecialchars($_SERVER["QUERY_STRING"], ENT_QUOTES);
22 ?>
23 <?php //セキュリティのための前処理。
24 //長すぎる keyword
25 if (isset($_GET["keyword"])) checkKeyword($_GET["keyword"]);
26 if (isset($_GET['word'])) checkKeyword($_GET['word']);
27 if (isset($_GET['users'])) checkKeyword($_GET['users']);
28 if (isset($_GET["user"])) {
29   checkId($_GET["user"]);
30   $_GET['user'] = preg_replace("/ +$/u", "", $_GET['user']);
31   }
32 if (isset($_GET["following"])) {
33   checkId($_GET["following"]);
34   $_GET['following'] = preg_replace("/ +$/u", "", $_GET['following']);
35 }
36 //不正な page
37 if (isset($_GET['page'])) checkPagenum($_GET['page']);
38 if (isset($_GET['image'])) checkImagemode($_GET['image']);
39 if (isset($_SESSION['image'])) checkImagemode($_SESSION['image']);
40 if (isset($_GET['album'])) checkAlbum($_GET['album']);
41 ?>
42 <?php
43 if (!isset($_SESSION['auth']) || $_SESSION['auth'] != TRUE){
44   $_SESSION = array();
45   if (isset($_COOKIE[session_name()])){
46         setcookie(session_name(), '', time() - 42000, dirname($_SERVER['SCRIPT_NAME']) . '/', $_SERVER["SERVER_NAME"]);
47   }
48   session_destroy();
49 }
50 ?>
51 <?php
52 //
53 if (isset($_GET['with']) || isset($_GET['log'])){
54   require 'login_processor.php';
55 }
56 // if (isset($_SESSION['oauth_stat'])) session_regenerate_id(TRUE);
57
58 //投稿処理の呼び出し。
59 //var_dump($_POST);
60 if (isset($_POST['posting'])){
61   require 'post_processor.php';
62 }
63 ?>
64 <?php
65 //前置きはこのくらいにして、本題に入る!
66 if (isset($_GET["keyword"]) && $_GET["keyword"] != ''){
67         $get_keyword = htmlspecialchars($_GET["keyword"], ENT_QUOTES);
68         $json_url = "{$api_base_url}statuses/keyword_timeline.xml?word=" . rawurlencode($_GET['keyword']) . "&body_formats=html_touch";
69         $page_head = $get_keyword . " でひとこと";
70         $official = "{$haiku_official_url}keyword/" . rawurlencode($_GET['keyword']);
71         $self_anchor = "http://{$_SERVER["SERVER_NAME"]}{$selfcall}?keyword=" . rawurlencode($_GET['keyword']);
72         $entries_mode = 'keyword_timeline';
73 }       elseif (isset($_GET["user"]) && $_GET["user"] != ''){
74                 $get_user = htmlspecialchars($_GET["user"], ENT_QUOTES);
75                 $json_url = "{$api_base_url}statuses/user_timeline/".$_GET['user'].".xml?body_formats=html_touch";
76                 $page_head = "{$get_user} のエントリー";
77                 $official = "{$haiku_official_url}{$get_user}/";
78                 $self_anchor = "http://{$_SERVER["SERVER_NAME"]}{$selfcall}?user=".rawurlencode($_GET['user']);
79                 $entries_mode = 'user_timeline';
80 }       elseif (isset($_GET["following"]) && $_GET["following"] != ''){
81                 $get_following = htmlspecialchars($_GET["following"], ENT_QUOTES);
82                 $json_url = "{$api_base_url}statuses/friends_timeline/".$_GET['following'].".xml";
83                 if (isset($_SESSION['auth']) && $_SESSION['auth'] === TRUE
84                     && $get_following == $_SESSION['hatenaid']){
85                     $json_url_noaouth = $json_url . "?body_formats=html_touch";
86                     $json_url = "{$api_base_url}statuses/friends_timeline.xml";
87                 }
88                 $json_url = $json_url . "?body_formats=html_touch";
89                 $page_head = "{$get_following} のアンテナ";
90                 $official = "{$haiku_official_url}{$get_following}/following";
91                 $self_anchor = "http://{$_SERVER["SERVER_NAME"]}{$selfcall}?following=".rawurlencode($_GET['following']);
92                 $entries_mode = 'friends_timeline';
93 }       elseif (isset($_GET['album']) && $_GET['album'] != ''){
94         if ($_GET['album'] == 'public'){
95                 $get_album = 'public';
96                 $json_url = "{$api_base_url}statuses/album.xml?body_formats=html_touch";
97                 $page_head = 'みんなのアルバム';
98                 $official = $haiku_official_url . 'album';
99                 $self_anchor = "http://{$_SERVER["SERVER_NAME"]}{$selfcall}?album=".rawurlencode($_GET['album']);
100                 $entries_mode = 'album';
101         } else {
102                 $get_album = htmlspecialchars($_GET['album'], ENT_QUOTES);
103                 $json_url = "{$api_base_url}statuses/album.xml?word=".rawurlencode($_GET['album'])."&body_formats=html_touch";
104                 $page_head = $get_album.'のアルバム';
105                 $official = $haiku_official_url.'keyword/'.rawurlencode($_GET['keyword']).'?mode=album';
106                 $self_anchor = "http://{$_SERVER["SERVER_NAME"]}{$selfcall}?album=public";
107                 $entries_mode = 'album';
108         }
109 }       elseif (isset($_GET['users']) && $_GET['users'] != ''){
110           if ($_GET['users'] == 'public'){
111                 $get_users = htmlspecialchars($_GET['users'], ENT_QUOTES);
112                 $json_url = $api_base_url.'statuses/public_timeline.xml?count=100&body_formats=html_touch';
113                 $page_head = 'ユーザー一覧';
114                 $official = $haiku_official_url;
115                 $self_anchor = "http://{$_SERVER["SERVER_NAME"]}{$selfcall}?users=public";
116                 $entries_mode = 'users';
117           } else {
118                 $get_users = htmlspecialchars($_GET['users'], ENT_QUOTES);
119                 $json_url = $api_base_url.'statuses/keyword_timeline.xml?word='.rawurlencode($_GET['users']).'&count=100&body_formats=html_touch';
120                 $page_head = $get_users.' のユーザー一覧';
121                 $official = "{$haiku_official_url}keyword/" . rawurlencode($_GET['users']);
122                 $self_anchor = "http://{$_SERVER["SERVER_NAME"]}{$selfcall}?users=".rawurlencode($_GET['users']);
123                 $entries_mode = 'keyword_users';
124           }
125 }       elseif (isset($_GET['favours']) && $_GET['favours'] != ''){
126                 $get_favours = htmlspecialchars($_GET['favours'], ENT_QUOTES);
127                 $json_url = "{$api_base_url}statuses/friends_timeline/".$get_favours.".xml";
128                 if (isset($_SESSION['auth']) && $_SESSION['auth'] === TRUE
129                     && $get_favours == $_SESSION['hatenaid']){
130                     $json_url_noaouth = $json_url . "?count=100&body_formats=html_touch";
131                     $json_url = "{$api_base_url}statuses/friends_timeline.xml";
132                 }
133                 $json_url = $json_url . "?count=100&body_formats=html_touch";
134         $page_head = $get_favours.' のお気に入り';
135         $official = "{$haiku_official_url}following";
136         $self_anchor = "http://{$_SERVER["SERVER_NAME"]}{$selfcall}?favours={$_GET['favours']}";
137         $entries_mode = 'favours';
138 }       else {
139         $json_url = "{$api_base_url}statuses/public_timeline.xml?body_formats=html_touch";
140         $page_head = "みんなのエントリー";
141         $official = $haiku_official_url;
142         $self_anchor = "http://{$_SERVER["SERVER_NAME"]}{$selfcall}";
143         $entries_mode = 'default';
144 }
145 //
146 if (isset($_GET['page']) && $_GET['page'] != ''){
147         if ($entries_mode == 'default'){
148                 $self_anchor_possibly_with_pagenum = $self_anchor . '?page=' . $_GET['page'];
149         } else {
150                 $self_anchor_possibly_with_pagenum = $self_anchor . '&page=' . $_GET['page'];
151         }
152         $relog_back = $self_anchor_possibly_with_pagenum . '&log=try';
153         $relogin = $self_anchor_possibly_with_pagenum . '&with=haiku&callback='.rawurlencode(rawurldecode($relog_back));
154 } else {
155         if ($entries_mode != 'default'){
156           $self_anchor_possibly_with_pagenum = $self_anchor.'&page=1';
157         } else {
158           $self_anchor_possibly_with_pagenum = $self_anchor.'?page=1';
159         }
160           $relog_back = $self_anchor_possibly_with_pagenum . '&log=try';
161           $relogin = $self_anchor_possibly_with_pagenum . '&with=haiku&callback='.rawurlencode(rawurldecode($relog_back));
162 }
163 //
164 if ($get_image == 'on'){
165                 $self_anchor_with_imagemode = $self_anchor_possibly_with_pagenum . '&image=on';
166 } else {
167                 $self_anchor_with_imagemode = $self_anchor_possibly_with_pagenum . '&image=off';
168 }
169 $relog_back = $self_anchor_with_imagemode . '&log=try';
170 $relogin = $self_anchor_with_imagemode . '&amp;with=haiku&amp;callback='.rawurlencode(rawurldecode($relog_back));
171 ?>
172 <?php
173 $echo = <<<EOL
174 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
175    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
176 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="ja" lang="ja">
177 <head>
178         <meta http-equiv="Content-Type" content="text/html; charset={$meta_charset}" />
179         <meta http-equiv="Content-Style-Type" content="text/css" />
180         <meta http-equiv="Content-Script-Type" content="text/javascript" />
181         <meta name="viewport" content="initial-scale={$iscale}, minimum-scale=0.1" />
182         <title>{$page_head} - {$site_name} {$site_name_caption}</title>
183         <link rel="stylesheet" href="{$style_sheet}" />
184         <link rel="icon" href="./favicon.ico" type="image/vnd.microsoft.icon" />
185         <link rel="shortcut icon" href="./favicon.ico" type="image/vnd.microsoft.icon" />
186         <link rel="apple-touch-icon" href="./apple-touch-icon.png" />
187
188 EOL;
189 if (isset($starisjs) && $starisjs == '1'){
190 if ($entries_mode != 'users' && $entries_mode != 'keyword_users' && $entries_mode != 'favours'){
191   $echo = $echo . <<<EOL
192         <script type="text/javascript" src="http://s.hatena.ne.jp/js/HatenaStar.js"></script>
193         <script type="text/javascript">
194         Hatena.Star.SiteConfig = {
195           entryNodes: {
196                 'div.entry': {
197                   uri: 'a.to-original-link',
198                   title: 'a.keyword',
199                   container: 'span.entry-head'
200                 }
201           }
202         };
203         </script>
204
205 EOL;
206 }
207 }
208 $echo = $echo . <<<EOL
209 </head>
210 <body>
211 <div id="page">
212 EOL;
213 ?>
214 <?php
215 // var_dump($_SESSION);
216 //var_dump($_POST);
217 //var_dump($_GET);
218 $echo = $echo . echoCommonHeader('#navigation-menu', $self_anchor_with_imagemode) . "<hr />\n";
219 $echo = $echo . "<div id=\"header\" class=\"{$entries_mode}\">\n";
220 $echo = $echo . "<h1 id=\"entries-head\" class=\"head1\">{$page_head} <a href=\"{$official}\" class=\"to-original-link\">&nbsp;‡&nbsp;</a></h1>\n<hr />";
221 $echo = $echo . "</div>\n";
222 echo mb_convert_encoding($echo, $charcode, 'UTF-8');
223 $echo = '';
224 ?>
225 <?php
226 if (isset($_SESSION['auth']) && $_SESSION['auth'] === TRUE){
227   if ($device_who == 'ktai'){
228         $rows = '3';
229   } else {
230         $rows = '6';
231   }
232         $echo = $echo . '<div class="post-box">';
233         $echo = $echo . '<form method="post" action="./post.php" enctype="application/x-www-form-urlencoded" accept-charset="'.$meta_charset.'">';
234         if ($entries_mode == 'keyword_timeline'){
235                 $echo = $echo . '<input type="hidden" id="post-keyword" name="keyword" value="' . $get_keyword . '" />';
236         } else {
237                 $echo = $echo . '<input type="text" id="post-keyword" name="keyword" maxlength="255" value="';
238                 if (isset($_GET['word'])) $echo = $echo . htmlspecialchars($_GET['word'],ENT_QUOTES);
239                 $echo = $echo . '" title="キーワード" size="80" /><br />';
240         }
241         $echo = $echo . '<textarea id="post-text" name="status" rows="'. $rows .'" cols="80" title="本文">';
242         if (isset($_GET['body'])) $echo = $echo . htmlspecialchars($_GET['body']);
243         $echo = $echo . '</textarea><br />';
244         $echo = $echo . '<input type="hidden" name="posting" value="status" />';
245         $echo = $echo . '<input type="hidden" name="return" value="'.htmlspecialchars($self_anchor_possibly_with_pagenum,ENT_QUOTES).'" />';
246   if (isset($_GET['from']) && $_GET['from'] != ''){
247         $_SESSION['source'] = htmlspecialchars($_GET['from'], ENT_QUOTES);
248   }
249   if (isset($_SESSION['source']) && $_SESSION['source'] != ''){
250         $from = $_SESSION['source'];
251   } else {
252         $from = $product_name_abbr;
253   }
254   $echo = $echo . <<<EOL
255 <input type="submit" id="post-haiku" value="Haiku!" />
256  <label for="post-from">from </label><input type="text" id="post-from" name="source" value="{$from}" maxlength="170" />
257  <a href="./coco.php?
258 EOL;
259 $echo = $echo . "return=".htmlspecialchars($self_anchor_with_imagemode,ENT_QUOTES);
260 $echo = $echo . '" class="navigation-link">イマココ</a>';
261 $echo = $echo . '</form>';
262  if (isset($_SESSION['post_result']) && $_SESSION['post_result'] != ''){
263   $echo = $echo . '<div class="post-result">';
264 //   var_dump($_SESSION);
265         if ($_SESSION['post_result'] === TRUE){
266 //              var_dump($_SESSION['post_to']);
267                 if ($_SESSION['post_to'] == 'hateb'){
268 //                var_dump($_SESSION['post_body']);
269                   $echo = $echo . echoHateBxml(simplexml_load_string($_SESSION['post_body']));
270                 } else {
271                   $json_body = $_SESSION['post_body'];
272                   $contents = checkEntryData($json_body);
273                   if (preg_match("/^oauth_problem=token_rejected$/", $json_body)){
274                       $echo = $echo . "<p>アクセストークンが無効になっています。<a href=\"{$relogin}\">再認証</a>を行なってください。</p>";
275                   } elseif ($contents['stat'] == FALSE && $contents['ercode'] != 'x'){
276                         $echo = $echo . "<p>何かのエラーです。</p>\n";
277                         $echo = $echo . print_r(strip_tags($contents['contents']));
278                         $echo = $echo . "<br />{$json_body}</blockquote>\n";
279                   } elseif ($contents['stat'] == FALSE && $contents['ercode'] == 'x'){
280                         $echo = $echo . "<p>何かのエラーですす。</p>\n";
281                         $echo = $echo . "<blockquote>{$contents['ermes']}</blockquote>\n";      
282                   } else {
283                         $echo = $echo . '<span>' . $_SESSION['post_result_mes'] . '</span>';
284                         $entry_processor_mode = "entry"; $eprocessor_sub_mode = 'presult';
285                         $val = $contents['contents'];
286                         require 'entry_processor.php';
287                         unset($eprocessor_sub_mode);
288                         $echo = $echo . "<hr />\n";
289                   }
290                   $contents = '';
291                 }
292         }
293         if ($_SESSION['post_result'] === FALSE){
294                 $echo = $echo . '<span>' . $_SESSION['post_result_mes'] . '</span>';
295                 $echo = $echo . "<blockquote>{$_SESSION['post_error']}</blockquote>";
296         }
297   $echo = $echo . '</div>';
298         $_SESSION['post_to'] = '';
299         $_SESSION['post_result'] = '';
300         $_SESSION['post_result_mes'] = '';
301         $_SESSION['post_error'] = '';
302         $_SESSION['post_body'] = '';
303         libxml_clear_errors();
304  }
305 $echo = $echo . '</div>';
306 echo mb_convert_encoding($echo, $charcode, 'UTF-8');
307 $echo = '';
308 }
309 if (isset($_SESSION['oauth_stat'])){
310   $echo = $echo . '<div class="oauth-res">'."\n";
311   if ($_SESSION['oauth_stat'] === TRUE) {
312         $echo = $echo . "<span>アクセストークンを更新しました。</span>\n";
313   } else {
314         $echo = $echo . "<span>アクセストークンを取得できませんでした。</span>\n";
315         $echo = $echo . "<blockquote>{$_SESSION['oauth_stat']}</blockquote>";
316   }
317   $echo = $echo . '</div>'."\n";
318 echo mb_convert_encoding($echo, $charcode, 'UTF-8');
319 $echo = '';
320 }
321 ?>
322
323 <?php
324 $echo = $echo . '<div class="contents">'."\n";
325 function constRequest($json_url){
326   global $ecount, $entries_mode;
327   if (isset($_GET["reftime"]) && $_GET["reftime"] != '') {
328         $request_url = $json_url . '&reftime=' . rawurlencode($_GET['reftime']);
329   } elseif (!isset($_GET["page"])){
330           $request_url = $json_url;
331   }     else {
332           $request_url = $json_url.'&page='.$_GET["page"];
333   }
334   if (isset($ecount) && !preg_match("/users|keyword_users|favours/", $entries_mode)){
335         $request_url = $request_url . '&count=' . $ecount;
336   }
337   return $request_url;
338 }
339 $request_url = constRequest($json_url);
340 // var_dump($entries_mode);
341 // var_dump($request_url);
342 // var_dump($request_url);
343 // var_dump ($_GET);
344 // var_dump($get_image);
345 if (isset($_SESSION['auth']) && $_SESSION['auth'] === TRUE){
346   $json = getJson($request_url, TRUE, $conkey, $conkey_sec, $_SESSION['acstoken'], $_SESSION['acs_sec']);
347   if (preg_match("/^oauth_problem=token_rejected$/", $json['body'])){
348       $echo = $echo . "<p class=\"oauth-res\">アクセストークンが無効になっています。<a href=\"{$relogin}\">再認証</a>を行なってください。</p>";
349       $json = getJson(constRequest($json_url_noaouth), FALSE);
350   }
351   if ($json['stat'] !== TRUE){
352     $contents = strip_tags($json['stat']);
353     $echo = $echo . "<p>はてなハイク API からデータを取得できなかったような気がします。</p>\n";
354     $echo = $echo . "<blockquote>";
355     if (isset($json['http'])) echo "HTTP {$json['http']}<br />";
356     $echo = $echo . "{$json['stat']}<br />{$contents}</blockquote>\n";
357     $timeline_putted = FALSE;
358   } else {
359     $json_body = $json['body'];
360     $contents = checkEntryData($json_body);
361     if ($contents['stat'] == FALSE && $contents['ercode'] != 'x'){
362   //   var_dump($contents);
363   //   var_dump($json['body']);
364           $echo = $echo . "<p>はてなハイク API からデータを取得できなかったような気がします。</p>\n";
365           $echo = $echo . "<blockquote>HTTP {$json['http']}<br />";
366           $echo = $echo . 'XML error '.$contents['ercode'].':'.$contents['ermes'];
367           $echo = $echo . "<br /><pre>".strip_tags($json['body'])."</pre></blockquote>\n";
368           $timeline_putted = FALSE;
369     } elseif ($contents['stat'] == FALSE && $contents['ercode'] == 'x'){
370           $echo = $echo . "<p>はてなハイク API からデータを取得できなかったような気がします。</p>\n";
371           $echo = $echo . "<blockquote>HTTP {$json['http']}<br />{$contents['ermes']}</blockquote>\n";  
372           $timeline_putted = FALSE;
373     } else {
374   //     var_dump($contents);
375           $first_e = 'first';
376           if ($entries_mode == 'default' || $entries_mode == 'album'){ $dict = array(); $spam = 0; }
377           if ($entries_mode  == 'users' || $entries_mode == 'keyword_users' || $entries_mode == 'favours'){
378             $ustock = array();
379             $echo = $echo . "<dl class=\"users-list\">\n";
380           }
381           foreach ($contents['contents'] as $val){
382             echo mb_convert_encoding($echo, $charcode, 'UTF-8');
383             $echo = '';
384             if ($entries_mode == 'users' || $entries_mode == 'keyword_users' || $entries_mode == 'favours'){
385                   $entry_processor_mode = 'users';
386                   require 'entry_processor.php';
387             } else {
388                   $entry_processor_mode = "entries";
389                   require 'entry_processor.php';
390                   echo mb_convert_encoding($echo, $charcode, 'UTF-8');
391                   $echo = '';
392             }
393             $timeline_putted = TRUE;
394           }
395           if (isset($spam) && $spam > 0) $echo = "<p>{$spam} スパムっぽいのを表示しませんでした。</p>";
396           if ($entries_mode  == 'users' || $entries_mode == 'keyword_users' || $entries_mode == 'favours') {
397             $echo = $echo . "</dl>\n";
398   //    var_dump($dict);
399             $echo = $echo . '<p>' . count($ustock) . '/' . count($contents['contents']) . 
400               ' unique</p>' . "\n";
401           }
402     }
403   }
404 } else {
405   $echo = $echo . '<p>内容を読むには<a href="./login.php?return='.rawurlencode(rawurldecode($self_anchor_with_imagemode)).'" class="navigation-link">ログイン</a>してください。</p>';
406 }
407 echo mb_convert_encoding($echo, $charcode, 'UTF-8');
408 $echo = '';
409 ?>
410 <?php
411 // var_dump($contents);
412 if (isset($_SESSION['auth']) && $_SESSION['auth'] === TRUE){
413 if ($entries_mode == 'keyword_timeline' || $entries_mode == 'keyword_users'){
414   if (isset($timeline_putted) && $timeline_putted === TRUE){
415         $object_key = $contents['contents']->status[0]->keyword;
416         $object_title = $contents['contents']->status[0]->target->title;
417   } else {
418         if ($entries_mode == 'keyword_timeline'){
419           $object_key = $_GET['keyword'];
420           $object_title =$_GET['keyword'];
421         }
422         if ($entries_mode == 'keyword_users'){
423           $object_key = $_GET['users'];
424           $object_title = $_GET['users'];
425         }
426   }
427 //   var_dump($status_0);
428   if (preg_match("/^{$http_url_regexp}$/u", $object_key)){
429 //      if (preg_match("/&/u", $object_key)){
430 //        $echo = $echo . '<p>URL: <a href="'.$mobile_gateway.rawurlencode(rawurldecode($object_key)).'" class="external-link">'.htmlspecialchars($object_title,ENT_QUOTES).'</a> を<a href="mailto:b@hatena.ne.jp?body='.rawurlencode(rawurldecode($object_key)).'">メールではてなブックマークに追加する。</a></p>';
431 //      } else {
432 //        $echo = $echo . '<form method="post" action="" enctype="application/x-www-form-urlencoded" accept-charset="'.$meta_charset.'" class="hateb-form">'."\n";
433 //        $echo = $echo .  '<label>URL: <a href="'.$mobile_gateway.rawurlencode(rawurldecode($object_key)).'" class="external-link">'.htmlspecialchars($object_title,ENT_QUOTES).'</a> をはてなブックマークに追加する。</label><br />';
434 //        $echo = $echo . '<label for="bcomment">コメント:</label>';
435 //        $echo = $echo . '<input type="text" id="bcomment" name="comment" maxlength="100" value="" title="ブックマークコメント" />';
436 //        $echo = $echo . '<input type="hidden" name="url" value="'.$get_keyword.'" />';
437 //        $echo = $echo . '<input type="hidden" name="posting" value="hateb" />';
438 //        $echo = $echo . '<input type="hidden" name="return" value="'.htmlspecialchars($self_anchor_possibly_with_pagenum, ENT_QUOTES).'" />';
439 //        $echo = $echo . '<input type="submit" id="post-hateb" value="[B!]" title="URL をはてなブックマークに追加する。" />';
440 //        $echo = $echo . '</form>';
441   //    echo "...";
442 //      }
443   } elseif (preg_match("/^(asin:)([[:alnum:]])+$/u", $object_key)){
444         $asin = preg_replace("/^(asin:)([[:alnum:]]+)$/u", "\${2}", $object_key);
445         $echo = $echo . '<p class="to-amazon"><a href="'.'http://www.amazon.co.jp/gp/aw/d.html/?a='.$asin.'" class="external-link">'.$object_title.' を Amazon.co.jp で見る。</a></p>';
446   } elseif (preg_match("/^id:[a-zA-Z1234567890]{1}[-_a-zA-Z1234567890@]{1,30}[a-zA-Z1234567890]{1} *$/u", $object_key)){
447   } else {
448 //        $echo = $echo . '<form method="post" action="" enctype="application/x-www-form-urlencoded" accept-charset="'.$meta_charset.'" class="hateb-form">'."\n";
449 //        $echo = $echo .  '<label>このハイクキーワードをはてなブックマークに追加する。</label><br />';
450 //        $echo = $echo . '<label for="bcomment">コメント:</label>';
451 //        $echo = $echo . '<input type="text" id="bcomment" name="comment" maxlength="100" value="" title="ブックマークコメント" />';
452 //        $echo = $echo . '<input type="hidden" name="url" value="http://'.$haiku_host.'/keyword/'.htmlspecialchars($get_keyword, ENT_QUOTES).'" />';
453 //        $echo = $echo . '<input type="hidden" name="posting" value="hateb" />';
454 //        $echo = $echo . '<input type="hidden" name="return" value="'.htmlspecialchars($self_anchor_possibly_with_pagenum, ENT_QUOTES).'" />';
455 //        $echo = $echo . '<input type="submit" id="post-hateb" value="[B!]" title="このハイクキーワードをはてなブックマークに追加する。" />';
456 //        $echo = $echo . '</form>';
457   }
458 }
459 }
460 $echo = $echo . '</div>';
461 echo mb_convert_encoding($echo, $charcode, 'UTF-8');
462 $echo = '';
463 ?>
464
465 <?php
466 $navi_paging = TRUE;
467 $navi_imaging = TRUE;
468 require 'footer_include.php';
469 $echo = $echo . '</div></body></html>';
470 echo mb_convert_encoding($echo, $charcode, 'UTF-8');
471 if (isset($_SESSION['oauth_stat'])) unset($_SESSION['oauth_stat']);
472 ?>