OSDN Git Service

BugTrack2/122: tempnam() fails when open_basedir is specified in php.ini
[pukiwiki/pukiwiki.git] / plugin / amazon.inc.php
index 79a9430..d4cb76c 100644 (file)
@@ -1,20 +1,20 @@
 <?php
-/////////////////////////////////////////////////
 // PukiWiki - Yet another WikiWikiWeb clone.
-//
-// $Id: amazon.inc.php,v 1.5 2004/12/25 01:47:20 henoheno Exp $
+// $Id: amazon.inc.php,v 1.15 2005/04/09 03:18:06 henoheno Exp $
 // Id: amazon.inc.php,v 1.1 2003/07/24 13:00:00 ´×¼Ë
 //
+// Amazon plugin: Book-review maker via amazon.com/amazon.jp
+//
 // Copyright:
-//     2004 PukiWiki Developer Team
+//     2004-2005 PukiWiki Developers Team
 //     2003 ´×¼Ë <raku@rakunet.org> (Original author)
 //
-// Thanks: To reimy and PukiWiki Developers Team.
+// License: GNU/GPL
 //
 // ChangeLog:
 // * 2004/04/03 PukiWiki Developer Team (arino <arino@users.sourceforge.jp>)
 //        - replace plugin_amazon_get_page().
-//        - AMAZON_XML 'xml.amazon.com' -> 'xml.amazon.co.jp'
+//        - PLUGIN_AMAZON_XML 'xml.amazon.com' -> 'xml.amazon.co.jp'
 // * 0.6  URL ¤¬Â¸ºß¤·¤Ê¤¤¾ì¹ç¡¢No image ¤òɽ¼¨¡¢²èÁüÇÛÃ֤ʤɽ¤Àµ¡£
 //        ¥¤¥ó¥é¥¤¥ó¥×¥é¥°¥¤¥ó¤Î¸Æ¤Ó½Ð¤·Êý¤ò½¤Àµ¡£
 //       ASIN ÈÖ¹æÉôʬ¤ò¥Á¥§¥Ã¥¯¤¹¤ë¡£
 //        ²èÁü¤ÎºÇ¸å¤¬ 01 ¤Î¾ì¹ç¡¢image ¤òºï½ü¤¹¤ë¤È noimage.jpg ¤È¤Ê¤Ã¤Æ¤·¤Þ¤¦¥Ð¥°¤ò½¤Àµ¡£
 //        1.0 ¤ÇƳÆþ¤·¤¿ XML ¥¢¥¯¥»¥¹¤Ï¹â®¤À¤¬¡¢ÊÖ¤¹²èÁü¾ðÊ󤬥¦¥½¤Ê¤Î¤Ç¡¢09 ¤¬¤À¤á¤Ê¤é 01 ¤ò¥È¥é¥¤¤¹¤ë¡¢¤Ç»ÃÄêŪ¤Ë²ò·è¡£
 //
-// License: GNU/GPL
-//
 // Caution!:
 // * Ãøºî¸¢¤¬´ØÏ¢¤¹¤ë°Ù¡¢www.amazon.co.jp ¤Î¥¢¥½¥·¥¨¥¤¥È¥×¥í¥°¥é¥à¤ò³Îǧ¤Î¾å¤´ÍøÍѲ¼¤µ¤¤¡£
 // * ¥ì¥Ó¥å¡¼¤Ï¡¢amazon ¥×¥é¥°¥¤¥ó¤¬¸Æ¤Ó½Ð¤¹ÊÔ½¸²èÌ̤Ϥ⤦½ÐÍè¤Æ PukiWiki ¤ËÅÐÏ¿¤µ¤ì¤Æ¤¤¤ë¤Î¤Ç¡¢
 //   Ãæ»ß¤¹¤ë¤Ê¤éÁ´Ê¸¤òºï½ü¤·¤Æ¥Ú¡¼¥¸¤Î¹¹¿·¥Ü¥¿¥ó¤ò²¡¤¹¤³¤È¡£
-// * ²¼¤Î AMAZON_AID¡¢PROXY ¥µ¡¼¥Ð¤ÎÉôʬ¡¢expire ¤ÎÉôʬ¤òŬÅö¤ËÊÔ½¸¤·¤Æ»ÈÍѤ·¤Æ¤¯¤À¤µ¤¤(¾¤Ï¤½¤Î¤Þ¤Þ¤Ç¤â Ok)¡£
+// * ²¼¤Î PLUGIN_AMAZON_AID¡¢PROXY ¥µ¡¼¥Ð¤ÎÉôʬ¡¢expire ¤ÎÉôʬ¤òŬÅö¤ËÊÔ½¸¤·¤Æ»ÈÍѤ·¤Æ¤¯¤À¤µ¤¤(¾¤Ï¤½¤Î¤Þ¤Þ¤Ç¤â Ok)¡£
+//
+// Thanks to: Reimy and PukiWiki Developers Team
 //
 
 /////////////////////////////////////////////////
-// amazon ¤Î¥¢¥½¥·¥¨¥¤¥È ID(¤Ê¤¤¤Ê¤é °ìÈ̥桼¥¶)
-define('AMAZON_AID','');
-/////////////////////////////////////////////////
-// expire ²èÁü/¥¿¥¤¥È¥ë¥­¥ã¥Ã¥·¥å¤ò²¿Æü¤Çºï½ü¤¹¤ë¤«
-define('AMAZON_EXPIRE_IMG',1);
-define('AMAZON_EXPIRE_TIT',356);
-/////////////////////////////////////////////////
-// ²èÁü¤Ê¤·¤Î¾ì¹ç¤Î²èÁü
-define('NO_IMAGE','./image/noimage.jpg');
-/////////////////////////////////////////////////
-// amazon ¥·¥ç¥Ã¥×
-define('AMAZON_SHOP','http://www.amazon.co.jp/exec/obidos/ASIN/');
+// Settings
+
+// Amazon associate ID
+//define('PLUGIN_AMAZON_AID',''); // None
+define('PLUGIN_AMAZON_AID','');
+
+// Expire caches per ? days
+define('PLUGIN_AMAZON_EXPIRE_IMAGECACHE',   1);
+define('PLUGIN_AMAZON_EXPIRE_TITLECACHE', 356);
+
+// Alternative image for 'Image not found'
+define('PLUGIN_AMAZON_NO_IMAGE', IMAGE_DIR . 'noimage.png');
+
+// URI prefixes
+switch(LANG){
+case 'ja':
+       // Amazon shop
+       define('PLUGIN_AMAZON_SHOP_URI', 'http://www.amazon.co.jp/exec/obidos/ASIN/');
+
+       // Amazon information inquiry (dev-t = default value in the manual)
+       define('PLUGIN_AMAZON_XML', 'http://xml.amazon.co.jp/onca/xml3?t=webservices-20&' .
+               'dev-t=GTYDRES564THU&type=lite&page=1&f=xml&locale=jp&AsinSearch=');
+       break;
+default:
+       // Amazon shop
+       define('PLUGIN_AMAZON_SHOP_URI', 'http://www.amazon.com/exec/obidos/ASIN/');
+
+       // Amazon information inquiry (dev-t = default value in the manual)
+       define('PLUGIN_AMAZON_XML', 'http://xml.amazon.com/onca/xml3?t=webservices-20&' .
+               'dev-t=GTYDRES564THU&type=lite&page=1&f=xml&locale=us&AsinSearch=');
+       break;
+}
+
 /////////////////////////////////////////////////
-// amazon ¾¦ÉʾðÊóÌä¹ç¤» URI(dev-t ¤Ï¥Þ¥Ë¥å¥¢¥ë¤Î¥Ç¥£¥Õ¥©¥ë¥ÈÃÍ)
-define('AMAZON_XML','http://xml.amazon.co.jp/onca/xml3?t=webservices-20&dev-t=GTYDRES564THU&type=lite&page=1&f=xml&locale=jp&AsinSearch=');
 
 function plugin_amazon_init()
 {
-  global $amazon_aid, $amazon_body;
-
-  if (AMAZON_AID == '') {
-    $amazon_aid = '';
-  } else {
-    $amazon_aid = AMAZON_AID . '/';
-  }
-  $amazon_body = <<<EOD
+       global $amazon_aid, $amazon_body;
+
+       if (PLUGIN_AMAZON_AID == '') {
+               $amazon_aid = '';
+       } else {
+               $amazon_aid = PLUGIN_AMAZON_AID . '/';
+       }
+       $amazon_body = <<<EOD
 -ºî¼Ô: [[¤³¤³ÊÔ½¸¤Î¤³¤È]]
 -ɾ¼Ô: ¤ªÌ¾Á°
 -ÆüÉÕ: &date;
@@ -94,14 +113,21 @@ EOD;
 
 function plugin_amazon_convert()
 {
-  global $script, $vars, $asin, $asin_all;
-
-  if (func_num_args() == 0) { // ¥ì¥Ó¥å¡¼ºîÀ®
-    $s_page = htmlspecialchars($vars['page']);
-    if ($s_page == '') {
-      $s_page = $vars['refer'];
-    }
-    $ret = <<<EOD
+       global $script, $vars, $asin, $asin_all;
+
+       if (func_num_args() > 3) {
+               if (PKWK_READONLY) return ''; // Show nothing
+
+               return '#amazon([ASIN-number][,left|,right]' .
+                       '[,book-title|,image|,delimage|,deltitle|,delete])';
+
+       } else if (func_num_args() == 0) {
+               // ¥ì¥Ó¥å¡¼ºîÀ®
+               if (PKWK_READONLY) return ''; // Show nothing
+
+               $s_page = htmlspecialchars($vars['page']);
+               if ($s_page == '') $s_page = isset($vars['refer']) ? $vars['refer'] : '';
+               $ret = <<<EOD
 <form action="$script" method="post">
  <div>
   <input type="hidden" name="plugin" value="amazon" />
@@ -112,317 +138,327 @@ function plugin_amazon_convert()
  </div>
 </form>
 EOD;
-    return $ret;
-  } elseif (func_num_args() < 1 || func_num_args() > 3) {
-    return false;
-  }
-  $aryargs = func_get_args();
-
-  $align = strtolower($aryargs[1]);
-  if ($align == 'clear') return '<div style="clear:both"></div>'; // ²þ¹ÔÁÞÆþ
-  if ($align != 'left') $align = 'right'; // ÇÛÃÖ·èÄê
-
-  $asin_all = htmlspecialchars($aryargs[0]);  // for XSS
-  if (is_asin() == false && $align != 'clear') return false;
-
-  if ($aryargs[2] != '') { // ¥¿¥¤¥È¥ë»ØÄ꤫¼«Æ°¼èÆÀ¤«
-    $title = $alt = htmlspecialchars($aryargs[2]); // for XSS
-    if ($alt == 'image') {
-      $alt = plugin_amazon_get_asin_title();
-      if ($alt == '') return false;
-      $title = '';
-    } elseif ($alt == 'delimage') {
-      if (unlink(CACHE_DIR . 'ASIN' . $asin . '.jpg')) {
-        return 'Image of ' . $asin . ' deleted...';
-      } else {
-        return 'Image of ' . $asin . ' NOT DELETED...';
-      }
-    } elseif ($alt == 'deltitle') {
-      if (unlink(CACHE_DIR . 'ASIN' . $asin . '.tit')) {
-        return 'Title of ' . $asin . ' deleted...';
-      } else {
-        return 'Title of ' . $asin . ' NOT DELETED...';
-      }
-    } elseif ($alt == 'delete') {
-      if ((unlink(CACHE_DIR . 'ASIN' . $asin . '.jpg') && unlink(CACHE_DIR . 'ASIN' . $asin . '.tit'))) {
-        return 'Title and Image of ' . $asin . ' deleted...';
-      } else {
-        return 'Title and Image of ' . $asin . ' NOT DELETED...';
-      }
-    }
-  } else {
-    $alt = $title = plugin_amazon_get_asin_title(); // ¥¿¥¤¥È¥ë¼«Æ°¼èÆÀ
-    if ($alt == '') return false;
-  }
-
-  return plugin_amazon_print_object($align, $alt, $title);
+               return $ret;
+       }
+
+       $aryargs = func_get_args();
+
+       $align = strtolower($aryargs[1]);
+       if ($align == 'clear') return '<div style="clear:both"></div>'; // ²þ¹ÔÁÞÆþ
+       if ($align != 'left') $align = 'right'; // ÇÛÃÖ·èÄê
+
+       $asin_all = htmlspecialchars($aryargs[0]);  // for XSS
+       if (is_asin() == FALSE && $align != 'clear') return FALSE;
+
+       if ($aryargs[2] != '') {
+               // ¥¿¥¤¥È¥ë»ØÄê
+               $title = $alt = htmlspecialchars($aryargs[2]); // for XSS
+               if ($alt == 'image') {
+                       $alt = plugin_amazon_get_asin_title();
+                       if ($alt == '') return FALSE;
+                       $title = '';
+               } else if ($alt == 'delimage') {
+                       if (unlink(CACHE_DIR . 'ASIN' . $asin . '.jpg')) {
+                               return 'Image of ' . $asin . ' deleted...';
+                       } else {
+                               return 'Image of ' . $asin . ' NOT DELETED...';
+                       }
+               } elseif ($alt == 'deltitle') {
+                       if (unlink(CACHE_DIR . 'ASIN' . $asin . '.tit')) {
+                               return 'Title of ' . $asin . ' deleted...';
+                       } else {
+                               return 'Title of ' . $asin . ' NOT DELETED...';
+                       }
+               } elseif ($alt == 'delete') {
+                       if ((unlink(CACHE_DIR . 'ASIN' . $asin . '.jpg') &&
+                            unlink(CACHE_DIR . 'ASIN' . $asin . '.tit'))) {
+                               return 'Title and Image of ' . $asin . ' deleted...';
+                       } else {
+                               return 'Title and Image of ' . $asin . ' NOT DELETED...';
+                       }
+               }
+       } else {
+               // ¥¿¥¤¥È¥ë¼«Æ°¼èÆÀ
+               $alt = $title = plugin_amazon_get_asin_title();
+               if ($alt == '') return FALSE;
+       }
+
+       return plugin_amazon_print_object($align, $alt, $title);
 }
 
 function plugin_amazon_action()
 {
-  global $vars, $script, $edit_auth, $edit_auth_users;
-  global $amazon_body, $asin, $asin_all;
-
-  $asin_all = htmlspecialchars(rawurlencode(strip_bracket($vars['asin'])));
-
-  if (! is_asin()) {
-    $retvars['msg']   = '¥Ö¥Ã¥¯¥ì¥Ó¥å¡¼ÊÔ½¸';
-    $retvars['refer'] = $vars['refer'];
-    $retvars['body']  = plugin_amazon_convert();
-    return $retvars;
-
-  } else {
-    $s_page     = $vars['refer'];
-    $r_page     = $s_page . '/' . $asin;
-    $r_page_url = rawurlencode($r_page);
-
-    pkwk_headers_sent();
-    if ($edit_auth && (! isset($_SERVER['PHP_AUTH_USER']) ||
-       ! array_key_exists($_SERVER['PHP_AUTH_USER'], $edit_auth_users) ||
-       $edit_auth_users[$_SERVER['PHP_AUTH_USER']] != $_SERVER['PHP_AUTH_PW'])) {
-      header('Location: ' . get_script_uri() . '?cmd=read&page=' . $r_page_url);
-    } else {
-      $title = plugin_amazon_get_asin_title();
-      if ($title == '' || preg_match('/^\//', $s_page)) {
-        header('Location: ' . get_script_uri() . '?cmd=read&page=' . encode($s_page));
-      }
-      $body = '#amazon(' . $asin_all . ',,image)' . "\n" . '*' . $title . "\n" . $amazon_body;
-      plugin_amazon_review_save($r_page, $body);
-      header('Location: ' . get_script_uri() . '?cmd=edit&page=' . $r_page_url);
-    }
-    exit;
-  }
+       global $vars, $script, $edit_auth, $edit_auth_users;
+       global $amazon_body, $asin, $asin_all;
+
+       if (PKWK_READONLY) die_message('PKWK_READONLY prohibits editing');
+
+       $s_page   = isset($vars['refer']) ? $vars['refer'] : '';
+       $asin_all = isset($vars['asin']) ?
+               htmlspecialchars(rawurlencode(strip_bracket($vars['asin']))) : '';
+
+       if (! is_asin()) {
+               $retvars['msg']   = '¥Ö¥Ã¥¯¥ì¥Ó¥å¡¼ÊÔ½¸';
+               $retvars['refer'] = & $s_page;
+               $retvars['body']  = plugin_amazon_convert();
+               return $retvars;
+
+       } else {
+               $r_page     = $s_page . '/' . $asin;
+               $r_page_url = rawurlencode($r_page);
+               $auth_user = isset($_SERVER['PHP_AUTH_USER']) ? $_SERVER['PHP_AUTH_USER'] : '';
+
+               pkwk_headers_sent();
+               if ($edit_auth && ($auth_user == '' || ! isset($edit_auth_users[$auth_user]) ||
+                   $edit_auth_users[$auth_user] != $_SERVER['PHP_AUTH_PW'])) {
+                       // Edit-auth failed. Just look the page
+                       header('Location: ' . get_script_uri() . '?' . $r_page_url);
+               } else {
+                       $title = plugin_amazon_get_asin_title();
+                       if ($title == '' || preg_match('#^/#', $s_page)) {
+                               // Invalid page name
+                               header('Location: ' . get_script_uri() . '?' . rawurlencode($s_page));
+                       } else {
+                               $body = '#amazon(' . $asin_all . ',,image)' . "\n" .
+                                       '*' . $title . "\n" . $amazon_body;
+                               plugin_amazon_review_save($r_page, $body);
+                               header('Location: ' . get_script_uri() .
+                                       '?cmd=edit&page=' . $r_page_url);
+                       }
+               }
+               exit;
+       }
 }
 
 function plugin_amazon_inline()
 {
-  global $amazon_aid;
-  global $asin, $asin_ext, $asin_all;
+       global $amazon_aid, $asin, $asin_all;
 
-  list($asin_all) = func_get_args();
+       list($asin_all) = func_get_args();
 
-  $asin_all = htmlspecialchars($asin_all); // for XSS
-  if (! is_asin()) return false;
+       $asin_all = htmlspecialchars($asin_all); // for XSS
+       if (! is_asin()) return FALSE;
 
-  $title = plugin_amazon_get_asin_title();
-  if ($title == '')
-    return false;
-  else
-    return '<a href="' . AMAZON_SHOP . "$asin/$amazon_aid" . 'ref=nosim">' . "$title</a>\n";
+       $title = plugin_amazon_get_asin_title();
+       if ($title == '') {
+               return FALSE;
+       } else {
+               return '<a href="' . PLUGIN_AMAZON_SHOP_URI .
+                       $asin . '/' . $amazon_aid . 'ref=nosim">' . $title . '</a>' . "\n";
+       }
 }
 
 function plugin_amazon_print_object($align, $alt, $title)
 {
-  global $amazon_aid;
-  global $asin, $asin_ext, $asin_all;
-
-  $url = plugin_amazon_cache_image_fetch(CACHE_DIR);
-
-  if ($title == '') { // ¥¿¥¤¥È¥ë¤¬¤Ê¤±¤ì¤Ð¡¢²èÁü¤Î¤ßɽ¼¨
-    $div = '<div style="float:' . $align . ';margin:16px 16px 16px 16px;text-align:center">' . "\n";
-    $div .= ' <a href="' . AMAZON_SHOP . $asin . '/' . $amazon_aid . 'ref=nosim">' .
-       '<img src="' . $url . '" alt="' . $alt . '" /></a>' . "\n";
-    $div .= '</div>' . "\n";
-  } else {           // Ä̾ïɽ¼¨
-    $div = '<div style="float:' . $align . ';padding:.5em 1.5em .5em 1.5em;text-align:center">' . "\n";
-    $div .= ' <table style="width:110px;border:0;text-align:center"><tr><td style="text-align:center">' . "\n";
-    $div .= '  <a href="' . AMAZON_SHOP . $asin . '/' . $amazon_aid . 'ref=nosim">' .
-       '<img src="' . $url . '" alt="' . $alt  .'" /></a></td></tr>' . "\n";
-    $div .= '  <tr><td style="text-align:center"><a href="' .
-       AMAZON_SHOP . $asin . '/' . $amazon_aid . 'ref=nosim">' . $title . '</a></td>' . "\n";
-    $div .= ' </tr></table>' . "\n" . '</div>' . "\n";
-  }
-  return $div;
+       global $amazon_aid;
+       global $asin, $asin_ext, $asin_all;
+
+       $url      = plugin_amazon_cache_image_fetch(CACHE_DIR);
+       $url_shop = PLUGIN_AMAZON_SHOP_URI . $asin . '/' . $amazon_aid . 'ref=nosim';
+       $center   = 'text-align:center';
+
+       if ($title == '') {
+               // Show image only
+               $div  = '<div style="float:' . $align . ';margin:16px 16px 16px 16px;' . $center . '">' . "\n";
+               $div .= ' <a href="' . $url_shop . '"><img src="' . $url . '" alt="' . $alt . '" /></a>' . "\n";
+               $div .= '</div>' . "\n";
+
+       } else {
+               // Show image and title
+               $div  = '<div style="float:' . $align . ';padding:.5em 1.5em .5em 1.5em;' . $center . '">' . "\n";
+               $div .= ' <table style="width:110px;border:0;' . $center . '">' . "\n";
+               $div .= '  <tr><td style="' . $center . '">' . "\n";
+               $div .= '   <a href="' . $url_shop . '"><img src="' . $url . '" alt="' . $alt  .'" /></a></td></tr>' . "\n";
+               $div .= '  <tr><td style="' . $center . '"><a href="' . $url_shop . '">' . $title . '</a></td></tr>' . "\n";
+               $div .= ' </table>' . "\n";
+               $div .= '</div>' . "\n";
+       }
+       return $div;
 }
 
 function plugin_amazon_get_asin_title()
 {
-  global $asin, $asin_ext, $asin_all;
-
-  if ($asin_all == '') return '';
+       global $asin, $asin_ext, $asin_all;
+
+       if ($asin_all == '') return '';
+
+       $nocache = $nocachable = 0;
+
+       $url = PLUGIN_AMAZON_XML . $asin;
+
+       if (file_exists(CACHE_DIR) === FALSE || is_writable(CACHE_DIR) === FALSE) $nocachable = 1; // ¥­¥ã¥Ã¥·¥åÉԲĤξì¹ç
+
+       if (($title = plugin_amazon_cache_title_fetch(CACHE_DIR)) == FALSE) {
+               $nocache = 1; // ¥­¥ã¥Ã¥·¥å¸«¤Ä¤«¤é¤º
+               $body    = plugin_amazon_get_page($url); // ¤·¤«¤¿¤Ê¤¤¤Î¤Ç¼è¤ê¤Ë¤¤¤¯
+               $tmpary  = array();
+               $body    = mb_convert_encoding($body, SOURCE_ENCODING, 'UTF-8');
+               preg_match('/<ProductName>([^<]*)</', $body, $tmpary);
+               $title     = trim($tmpary[1]);
+//             $tmpary[1] = '';
+//             preg_match('#<ImageUrlMedium>http://images-jp.amazon.com/images/P/[^.]+\.(..)\.#',
+//                     $body, $tmpary);
+//             if ($tmpary[1] != '') {
+//                     $asin_ext = $tmpary[1];
+//                     $asin_all = $asin . $asin_ext;
+//             }
+       }
 
-  $nocache = $nocachable = 0;
+       if ($title == '') {
+               return '';
+       } else {
+               if ($nocache == 1 && $nocachable != 1)
+                       plugin_amazon_cache_title_save($title, CACHE_DIR);
+               return $title;
+       }
+}
 
-  $url = AMAZON_XML . $asin;
+// ¥¿¥¤¥È¥ë¥­¥ã¥Ã¥·¥å¤¬¤¢¤ë¤«Ä´¤Ù¤ë
+function plugin_amazon_cache_title_fetch($dir)
+{
+       global $asin, $asin_ext, $asin_all;
 
-  if (file_exists(CACHE_DIR) === false || is_writable(CACHE_DIR) === false) $nocachable = 1; // ¥­¥ã¥Ã¥·¥åÉԲĤξì¹ç
+       $filename = $dir . 'ASIN' . $asin . '.tit';
 
-  if (($title = plugin_amazon_cache_title_fetch(CACHE_DIR)) == false) {
-    $nocache = 1; // ¥­¥ã¥Ã¥·¥å¸«¤Ä¤«¤é¤º
-    $body = plugin_amazon_get_page($url); // ¤·¤«¤¿¤Ê¤¤¤Î¤Ç¼è¤ê¤Ë¤¤¤¯
-    $tmpary = array();
-    $body = mb_convert_encoding($body, SOURCE_ENCODING, 'UTF-8');
-    preg_match('/<ProductName>([^<]*)</', $body, $tmpary);
-    $title = trim($tmpary[1]);
-//    $tmpary[1] = '';
-//    preg_match("/<ImageUrlMedium>http:\/\/images-jp.amazon.com\/images\/P\/[^.]+\.(..)\./", $body, $tmpary);
-//    if ($tmpary[1] != '') {
-//      $asin_ext = $tmpary[1];
-//      $asin_all = $asin . $asin_ext;
-//    }
-  }
+       $get_tit = 0;
+       if (! is_readable($filename)) {
+               $get_tit = 1;
+       } elseif (PLUGIN_AMAZON_EXPIRE_TITLECACHE * 3600 * 24 < time() - filemtime($filename)) {
+               $get_tit = 1;
+       }
 
-  if ($title == '') return '';
+       if ($get_tit) return FALSE;
 
-  if ($nocache == 1 && $nocachable != 1) plugin_amazon_cache_title_save($title, CACHE_DIR); // ¥¿¥¤¥È¥ë¤¬¤¢¤ì¤Ð¥­¥ã¥Ã¥·¥å¤ËÊݸ
-  return $title;
-}
+       if (($fp = @fopen($filename, 'r')) === FALSE) return FALSE;
+       $title = fgets($fp, 4096);
+//     $tmp_ext = fgets($fp, 4096);
+//     if ($tmp_ext != '') $asin_ext = $tmp_ext;
+       fclose($fp);
 
-// ¥¿¥¤¥È¥ë¥­¥ã¥Ã¥·¥å¤¬¤¢¤ë¤«Ä´¤Ù¤ë
-function plugin_amazon_cache_title_fetch($dir)
-{
-  global $asin, $asin_ext, $asin_all;
-
-  $filename = $dir . 'ASIN' . $asin . '.tit';
-
-  $get_tit = 0;
-  if (!is_readable($filename)) {
-    $get_tit = 1;
-  } elseif (AMAZON_EXPIRE_TIT * 3600 * 24 < time() - filemtime($filename)) {
-    $get_tit = 1;
-  }
-
-  if ($get_tit) return false;
-
-  if (!($fp = @fopen($filename, 'r'))) return false;
-  $title = fgets($fp, 4096);
-//  $tmp_ext = fgets($fp, 4096);
-//  if ($tmp_ext != '') {
-//    $asin_ext = $tmp_ext;
-//  }
-  fclose($fp);
-
-  if (strlen($title) > 0)
-    return $title;
-  else
-    return false;
+       if (strlen($title) > 0) {
+               return $title;
+       } else {
+               return FALSE;
+       }
 }
 
 // ²èÁü¥­¥ã¥Ã¥·¥å¤¬¤¢¤ë¤«Ä´¤Ù¤ë
 function plugin_amazon_cache_image_fetch($dir)
 {
-  global $asin, $asin_ext, $asin_all;
-
-  $filename = $dir . 'ASIN' . $asin . '.jpg';
-
-  $get_img = 0;
-  if (!is_readable($filename)) {
-    $get_img = 1;
-  } elseif (AMAZON_EXPIRE_IMG * 3600 * 24 < time() - filemtime($filename)) {
-    $get_img = 1;
-  }
-
-  if ($get_img) {
-    $url = 'http://images-jp.amazon.com/images/P/' . $asin . '.' . $asin_ext . '.MZZZZZZZ.jpg';
-
-    if (!is_url($url)) return false; // URL ·Á¼°¥Á¥§¥Ã¥¯
-    $body = plugin_amazon_get_page($url);
-    if ($body != '') {
-      $tmpfile = $dir . 'ASIN' . $asin . '.jpg.0';
-      $fp = fopen($tmpfile, 'wb');
-      fwrite($fp, $body);
-      fclose($fp);
-      $size = getimagesize($tmpfile);
-      unlink($tmpfile);
-    }
-    if ($body == '' || $size[1] <= 1) { // Ä̾ï¤Ï1¤¬Ê֤뤬ǰ¤Î¤¿¤á0¤Î¾ì¹ç¤â(reimy)
-      // ¥­¥ã¥Ã¥·¥å¤ò NO_IMAGE ¤Î¥³¥Ô¡¼¤È¤¹¤ë
-      if ($asin_ext == '09') {
-        $url = 'http://images-jp.amazon.com/images/P/' . $asin . '.01.MZZZZZZZ.jpg';
-        $body = plugin_amazon_get_page($url);
-       if ($body != '') {
-         $tmpfile = $dir . 'ASIN' . $asin . '.jpg.0';
-         $fp = fopen($tmpfile, 'wb');
-         fwrite($fp, $body);
-         fclose($fp);
-         $size = getimagesize($tmpfile);
-         unlink($tmpfile);
+       global $asin, $asin_ext, $asin_all;
+
+       $filename = $dir . 'ASIN' . $asin . '.jpg';
+
+       $get_img = 0;
+       if (! is_readable($filename)) {
+               $get_img = 1;
+       } elseif (PLUGIN_AMAZON_EXPIRE_IMAGECACHE * 3600 * 24 < time() - filemtime($filename)) {
+               $get_img = 1;
+       }
+
+       if ($get_img) {
+               $url = 'http://images-jp.amazon.com/images/P/' . $asin . '.' . $asin_ext . '.MZZZZZZZ.jpg';
+               if (! is_url($url)) return FALSE;
+
+               $body = plugin_amazon_get_page($url);
+               if ($body != '') {
+                       $tmpfile = $dir . 'ASIN' . $asin . '.jpg.0';
+                       $fp = fopen($tmpfile, 'wb');
+                       fwrite($fp, $body);
+                       fclose($fp);
+                       $size = getimagesize($tmpfile);
+                       unlink($tmpfile);
+               }
+               if ($body == '' || $size[1] <= 1) { // Ä̾ï¤Ï1¤¬Ê֤뤬ǰ¤Î¤¿¤á0¤Î¾ì¹ç¤â(reimy)
+                       // ¥­¥ã¥Ã¥·¥å¤ò PLUGIN_AMAZON_NO_IMAGE ¤Î¥³¥Ô¡¼¤È¤¹¤ë
+                       if ($asin_ext == '09') {
+                               $url = 'http://images-jp.amazon.com/images/P/' . $asin . '.01.MZZZZZZZ.jpg';
+                               $body = plugin_amazon_get_page($url);
+                               if ($body != '') {
+                                       $tmpfile = $dir . 'ASIN' . $asin . '.jpg.0';
+                                       $fp = fopen($tmpfile, 'wb');
+                                       fwrite($fp, $body);
+                                       fclose($fp);
+                                       $size = getimagesize($tmpfile);
+                                       unlink($tmpfile);
+                               }
+                       }
+                       if ($body == '' || $size[1] <= 1) {
+                               $fp = fopen(PLUGIN_AMAZON_NO_IMAGE, 'rb');
+                               if (! $fp) return FALSE;
+                               
+                               $body = '';
+                               while (! feof($fp)) $body .= fread($fp, 4096);
+                               fclose ($fp);
+                       }
+               }
+               plugin_amazon_cache_image_save($body, CACHE_DIR);
        }
-      }
-      if ($body == '' || $size[1] <= 1) {
-        $fp = fopen(NO_IMAGE, 'rb');
-        if (! $fp) return false;
-        $body = '';
-        while (!feof($fp)) {
-          $body .= fread($fp, 4096);
-        }
-        fclose ($fp);
-      }
-    }
-    plugin_amazon_cache_image_save($body, CACHE_DIR);
-  }
-  return $filename;
+       return $filename;
 }
 
-// ¥¿¥¤¥È¥ë¥­¥ã¥Ã¥·¥å¤òÊݸ
+// Save title cache
 function plugin_amazon_cache_title_save($data, $dir)
 {
-  global $asin, $asin_ext, $asin_all;
-
-  $filename = $dir . 'ASIN' . $asin . '.tit';
+       global $asin, $asin_ext, $asin_all;
 
-  $fp = fopen($filename, 'w');
-  fwrite($fp, "$data");
-  fclose($fp);
+       $filename = $dir . 'ASIN' . $asin . '.tit';
+       $fp = fopen($filename, 'w');
+       fwrite($fp, $data);
+       fclose($fp);
 
-  return $filename;
+       return $filename;
 }
 
-// ²èÁü¥­¥ã¥Ã¥·¥å¤òÊݸ
+// Save image cache
 function plugin_amazon_cache_image_save($data, $dir)
 {
-  global $asin, $asin_ext, $asin_all;
-
-  $filename = $dir . 'ASIN' . $asin . '.jpg';
+       global $asin, $asin_ext, $asin_all;
 
-  $fp = fopen($filename, 'wb');
-  fwrite($fp, $data);
-  fclose($fp);
+       $filename = $dir . 'ASIN' . $asin . '.jpg';
+       $fp = fopen($filename, 'wb');
+       fwrite($fp, $data);
+       fclose($fp);
 
-  return $filename;
+       return $filename;
 }
 
-// ½ñÀҥǡ¼¥¿¤òÊݸ
+// Save book data
 function plugin_amazon_review_save($page, $data)
 {
-  global $asin, $asin_ext, $asin_all;
-
-  $filename = DATA_DIR . encode($page) . '.txt';
-
-  if (! is_readable($filename)) {
-    $fp = fopen($filename, 'w');
-    fwrite($fp, $data);
-    fclose($fp);
-    return true;
-  }
-  return false;
+       global $asin, $asin_ext, $asin_all;
+
+       $filename = DATA_DIR . encode($page) . '.txt';
+       if (! is_readable($filename)) {
+               $fp = fopen($filename, 'w');
+               fwrite($fp, $data);
+               fclose($fp);
+               return TRUE;
+       } else {
+               return FALSE;
+       }
 }
 
-// ¥Í¥Ã¥È¾å¤Î URL ¤Î¥Ç¡¼¥¿¤ò¼è¤Ã¤Æ¤­¤ÆÊÖ¤¹(¤Ê¤±¤ì¤Ð¶õ¥Ç¡¼¥¿)
 function plugin_amazon_get_page($url)
 {
        $data = http_request($url);
-
        return ($data['rc'] == 200) ? $data['data'] : '';
 }
 
-// ASIN¤«¡©
+// is ASIN?
 function is_asin()
 {
-  global $asin, $asin_ext, $asin_all;
-
-  $tmpary = array();
-  if (preg_match('/^([A-Z0-9]{10}).?([0-9][0-9])?$/', $asin_all, $tmpary) == false) {
-    return false;
-  } else {
-    $asin = $tmpary[1];
-    $asin_ext = $tmpary[2];
-    if ($asin_ext == '') {
-      $asin_ext = '09';
-    }
-    $asin_all = $asin . $asin_ext;
-    return true;
-  }
+       global $asin, $asin_ext, $asin_all;
+
+       $tmpary = array();
+       if (preg_match('/^([A-Z0-9]{10}).?([0-9][0-9])?$/', $asin_all, $tmpary) == FALSE) {
+               return FALSE;
+       } else {
+               $asin     = $tmpary[1];
+               $asin_ext = isset($tmpary[2]) ? $tmpary[2] : '';
+               if ($asin_ext == '') $asin_ext = '09';
+               $asin_all = $asin . $asin_ext;
+               return TRUE;
+       }
 }
-
 ?>