ここの情報は古いです。ご理解頂いた上でお取り扱いください。

Changeset 6001


Ignore:
Timestamp:
Mar 24, 2008, 2:12:20 PM (13 years ago)
Author:
ebihara
Message:

#2114:作業用に r4918:4924 をマージ

Location:
OpenPNE/branches/stable-2.10.x
Files:
13 edited
3 copied

Legend:

Unmodified
Added
Removed
  • OpenPNE/branches/stable-2.10.x/lib/include/Services/Amazon.php

    r2 r6001  
    6969* @author  Tatsuya Tsuruoka <ttsuruoka@p4life.jp>
    7070* @access  public
    71 * @version Release: 0.6.0
     71* @version Release: 0.7.1
    7272* @uses    PEAR
    7373* @uses    HTTP_Request
     
    119119    * @see    setLocale
    120120    */
    121     function Services_Amazon($token = null, $affid = null, $locale = 'us', $baseurl = 'http://xml.amazon.com/onca/xml2') {
     121    function Services_Amazon($token = null, $affid = null, $locale = 'us', $baseurl = 'http://webservices.amazon.com/onca/xml2') {
    122122        if (!is_null($token)) {
    123123            $this->_token = $token;
     
    128128        }
    129129       
    130         $this->_locale  = $locale;
    131130        $this->_baseurl = $baseurl;
     131        $this->setLocale($locale);
    132132    }
    133133
     
    237237   
    238238    /**
    239     * Sets the locale passed when making a query to Amazon.com.
    240     *
    241     * Currently only us, uk, and de are supported by Amazon.
     239    * Sets the locale passed when making a query to Amazon.
     240    *
     241    * Currently only us, uk, de, jp, fr and ca are supported by Amazon.
    242242    *
    243243    * @access public
     
    247247    */   
    248248    function setLocale($locale) {
    249         $this->_locale = $locale;
     249        $urls = array(
     250            'us' => 'http://webservices.amazon.com/onca/xml2',
     251            'uk' => 'http://webservices.amazon.co.uk/onca/xml2',
     252            'de' => 'http://webservices.amazon.de/onca/xml2',
     253            'jp' => 'http://webservices.amazon.co.jp/onca/xml2',
     254            'fr' => 'http://webservices.amazon.fr/onca/xml2',
     255            'ca' => 'http://webservices.amazon.ca/onca/xml2',
     256        );
     257        $this->_locale = strtolower($locale);
     258        if (empty($urls[$locale])) {
     259            return;
     260        }
     261        $this->setBaseUrl($urls[$locale]);
    250262    }
    251263   
     
    725737                if (is_array($product->Artists->Artist)) {
    726738                    foreach ($product->Artists->Artist as $artist) {
    727                         $item['artists'][] = $author;
     739                        $item['artists'][] = $artist;
    728740                    }
    729741                } else {
     
    731743                }
    732744            }
    733             $item['release']      = $product->ReleaseDate;
    734             $item['manufacturer'] = $product->Manufacturer;
     745            $item['release']      = isset($product->ReleaseDate) ? $product->ReleaseDate : null;
     746            $item['manufacturer'] = isset($product->Manufacturer) ? $product->Manufacturer : null;
    735747            $item['imagesmall']   = $product->ImageUrlSmall;
    736748            $item['imagemedium']  = $product->ImageUrlMedium;
    737749            $item['imagelarge']   = $product->ImageUrlLarge;
    738             $item['listprice']    = $product->ListPrice;
    739             $item['ourprice']     = $product->ListPrice;
     750            $item['listprice']    = isset($product->ListPrice) ? $product->ListPrice : null;
     751            $item['ourprice']     = isset($product->ListPrice) ? $product->ListPrice : null;
    740752
    741753            $items[] = $item;
  • OpenPNE/branches/stable-2.10.x/lib/include/Services/AmazonECS4.php

    r2 r6001  
    9494* @author  Tatsuya Tsuruoka <ttsuruoka@p4life.jp>
    9595* @access  public
    96 * @version Release: 0.6.0
     96* @version Release: 0.7.1
    9797* @uses    PEAR
    9898* @uses    HTTP_Request
     
    150150
    151151    /**
     152    * The raw result returned from the request
     153    *
     154    * @access private
     155    * @var    string
     156    */
     157    var $_raw_result = null;
     158
     159    /**
    152160    * The cache object
    153161    *
     
    166174    */
    167175    var $_cache_expire = 3600;
     176
     177    /**
     178    * Proxy server
     179    *
     180    * @access private
     181    * @var    string
     182    */
     183    var $_proxy_host = null;
     184
     185    /**
     186    * Proxy port
     187    *
     188    * @access private
     189    * @var    integer
     190    */
     191    var $_proxy_port = null;
     192
     193    /**
     194    * Proxy username
     195    *
     196    * @access private
     197    * @var    string
     198    */
     199    var $_proxy_user = null;
     200
     201    /**
     202    * Proxy password
     203    *
     204    * @access private
     205    * @var    string
     206    */
     207    var $_proxy_pass = null;
    168208
    169209    /**
     
    201241    function getApiVersion()
    202242    {
    203         return '0.6.0';
     243        return '0.7.1';
    204244    }
    205245
     
    348388
    349389    /**
     390    * Sets a proxy
     391    *
     392    * @access public
     393    * @param string $host Proxy host
     394    * @param int $port Proxy port
     395    * @param string $user Proxy username
     396    * @param string $pass Proxy password
     397    */
     398    function setProxy($host, $port = 8080, $user = null, $pass = null)
     399    {
     400        $this->_proxy_host = $host;
     401        $this->_proxy_port = $port;
     402        $this->_proxy_user = $user;
     403        $this->_proxy_pass = $pass;
     404    }
     405
     406    /**
    350407    * Retrieves all error codes and messages
    351408    *
     
    406463    {
    407464        return $this->_lasturl;
     465    }
     466
     467    /**
     468     * Retrieves the raw result
     469     *
     470     * @access public
     471     * @return string The raw result
     472     */
     473    function getRawResult()
     474    {
     475        return $this->_raw_result;
    408476    }
    409477
     
    647715        $params = $options;
    648716        $params['Operation'] = 'ItemLookup';
     717        if (is_array($item_id)) {
     718            $item_id = implode(',', $item_id);
     719        }
    649720        $params['ItemId'] = $item_id;
    650721        return $this->_sendRequest($params);
     
    800871        $params = $options;
    801872        $params['Operation'] = 'SimilarityLookup';
     873        if (is_array($item_id)) {
     874            $item_id = implode(',', $item_id);
     875        }
    802876        $params['ItemId'] = $item_id;
    803877        return $this->_sendRequest($params);
     
    9571031
    9581032    /**
    959     * Sends the request to Amazon
    960     *
    961     * @access private
    962     * @param  array $params The array of request parameters
    963     * @return array The array of information returned by the query
    964     */
    965     function _sendRequest($params)
    966     {
    967         $this->_errors = array();
    968 
    969         if (is_null($this->_keyid)) {
    970             return PEAR::raiseError('Access Key ID have not been set');
    971         }
    972 
     1033    * Builds a URL
     1034    *
     1035    * @access private
     1036    * @param array $params
     1037    * @return string URL
     1038    */
     1039    function _buildUrl($params)
     1040    {
    9731041        $params['AWSAccessKeyId'] = $this->_keyid;
    9741042        $params['AssociateTag'] = $this->_associd;
     
    9781046            $url .= '&' . $k . '=' . urlencode($v);
    9791047        }
    980         $this->_lasturl = $url;
    981 
    982         // Return cached data if available
    983         $cache_id = false;
    984         if (isset($this->_cache) && !$this->_ignoreCache($params['Operation'])) {
    985             $cache_id = $this->_generateCacheId($params);
    986             $cache = $this->_cache->get($cache_id);
    987             if (!is_null($cache)) {
    988                 $this->_processing_time = 0;
    989                 return $cache;
    990             }
    991         }
    992 
     1048        return $url;
     1049    }
     1050
     1051    /**
     1052    * Sends a request
     1053    *
     1054    * @access private
     1055    * @param string $url
     1056    * @return string The response
     1057    */
     1058    function _sendHttpRequest($url)
     1059    {
    9931060        $http = &new HTTP_Request($url);
    9941061        $http->setHttpVer('1.0');
    9951062        $http->addHeader('User-Agent', 'Services_AmazonECS4/' . $this->getApiVersion());
    996         $http->sendRequest();
     1063        if ($this->_proxy_host) {
     1064            $http->setProxy($this->_proxy_host, $this->_proxy_port, $this->_proxy_user, $this->_proxy_pass);
     1065        }
     1066
     1067        $result = $http->sendRequest();
     1068        if (PEAR::isError($result)) {
     1069            return PEAR::raiseError('HTTP_Request::sendRequest failed: ' . $result->message);
     1070        }
    9971071
    9981072        if ($http->getResponseCode() != 200){
    9991073            return PEAR::raiseError('Amazon returned invalid HTTP response code ' . $http->getResponseCode());
    10001074        }
    1001         $result = $http->getResponseBody();
    1002 
     1075        return $http->getResponseBody();
     1076    }
     1077
     1078    /**
     1079    * Parses raw XML result
     1080    *
     1081    * @access private
     1082    * @param string $raw_result
     1083    * @return string The contents
     1084    */
     1085    function _parseRawResult($raw_result)
     1086    {
    10031087        $xml = &new XML_Unserializer();
    10041088        $xml->setOption(XML_UNSERIALIZER_OPTION_ATTRIBUTES_PARSE, true);
    10051089        $xml->setOption(XML_UNSERIALIZER_OPTION_FORCE_ENUM,
    10061090                        array('Item', 'Review', 'EditorialReview',
    1007                               'Parameter', 'Author', 'ResponseGroup', 'Error'));
    1008         $xml->unserialize($result, false);
     1091                              'Parameter', 'Author', 'Creator', 'ResponseGroup', 'Error'));
     1092        $xml->unserialize($raw_result, false);
    10091093        $data = $xml->getUnserializedData();
    10101094        if (PEAR::isError($data)) {
     
    10431127            }
    10441128        }
    1045 
    1046         if ($cache_id) {
    1047             $this->_cache->save($cache_id, $contents, $this->_cache_expire);
    1048         }
    1049 
    10501129        return $contents;
    10511130    }
     
    10571136    * @param  array $content Values of the content elements
    10581137    * @return array mixed A PEAR_Error on error, a true on success
     1138    * @see    _parseRawResult
    10591139    */
    10601140    function _checkContentError($content)
     
    10771157        return true;
    10781158    }
     1159
     1160    /**
     1161    * Sends the request to Amazon
     1162    *
     1163    * @access private
     1164    * @param  array $params The array of request parameters
     1165    * @return array The array of information returned by the query
     1166    */
     1167    function _sendRequest($params)
     1168    {
     1169        $this->_errors = array();
     1170
     1171        if (is_null($this->_keyid)) {
     1172            return PEAR::raiseError('Access Key ID have not been set');
     1173        }
     1174
     1175        $url = $this->_buildUrl($params);
     1176        $this->_lasturl = $url;
     1177        if (PEAR::isError($url)) {
     1178            return $url;
     1179        }
     1180
     1181        // Return cached data if available
     1182        $cache_id = false;
     1183        if (isset($this->_cache) && !$this->_ignoreCache($params['Operation'])) {
     1184            $cache_id = $this->_generateCacheId($params);
     1185            $cache = $this->_cache->get($cache_id);
     1186            if (!is_null($cache)) {
     1187                $this->_processing_time = 0;
     1188                return $cache;
     1189            }
     1190        }
     1191
     1192        $result = $this->_sendHttpRequest($url);
     1193        $this->_raw_result = $result;
     1194        if (PEAR::isError($result)) {
     1195            return $result;
     1196        }
     1197
     1198        $contents = $this->_parseRawResult($result);
     1199        if (PEAR::isError($contents)) {
     1200            return $contents;
     1201        }
     1202
     1203        if ($cache_id) {
     1204            $this->_cache->save($cache_id, $contents, $this->_cache_expire);
     1205        }
     1206
     1207        return $contents;
     1208    }
     1209
    10791210}
    10801211?>
  • OpenPNE/branches/stable-2.10.x/lib/include/XML/Parser.php

    r2 r6001  
    1919// +----------------------------------------------------------------------+
    2020//
    21 // $Id: Parser.php,v 1.26 2005/09/23 11:51:10 schst Exp $
     21// $Id: Parser.php,v 1.28 2006/12/01 16:23:22 schst Exp $
    2222
    2323/**
     
    165165    var $_handlerObj;
    166166
     167    /**
     168     * valid encodings
     169     *
     170     * @var array
     171     */
     172    var $_validEncodings = array('ISO-8859-1', 'UTF-8', 'US-ASCII');
     173
    167174    // }}}
    168175    // {{{ constructor
     
    222229     * @access  public
    223230     * @param   string          mode, either 'func' or 'event'
    224      * @return  boolean|object  true on success, PEAR_Error otherwise   
     231     * @return  boolean|object  true on success, PEAR_Error otherwise
    225232     */
    226233    function setMode($mode)
     
    333340            }
    334341            xml_parser_set_option($xp, XML_OPTION_CASE_FOLDING, $this->folding);
    335 
    336342            return true;
     343        }
     344        if (!in_array(strtoupper($this->srcenc), $this->_validEncodings)) {
     345            return $this->raiseError('invalid source encoding', XML_PARSER_ERROR_INVALID_ENCODING);
    337346        }
    338347        return $this->raiseError('Unable to create XML parser resource.', XML_PARSER_ERROR_NO_RESOURCE);
     
    382391            }
    383392        }
    384        
     393
    385394        $fp = @fopen($file, 'rb');
    386395        if (is_resource($fp)) {
     
    393402    // }}}
    394403    // {{{ setInputString()
    395    
     404
    396405    /**
    397406     * XML_Parser::setInputString()
    398      * 
     407     *
    399408     * Sets the xml input from a string
    400      * 
     409     *
    401410     * @param string $data a string containing the XML document
    402411     * @return null
     
    407416        return null;
    408417    }
    409    
     418
    410419    // }}}
    411420    // {{{ setInput()
     
    415424     *
    416425     * You should use setInputFile() or setInputString() if you
    417      * pass a string 
     426     * pass a string
    418427     *
    419428     * @param    mixed  $fp  Can be either a resource returned from fopen(),
     
    466475        // if $this->fp was fopened previously
    467476        if (is_resource($this->fp)) {
    468        
     477
    469478            while ($data = fread($this->fp, 4096)) {
    470479                if (!$this->_parseString($data, feof($this->fp))) {
     
    489498    /**
    490499     * XML_Parser::_parseString()
    491      * 
     500     *
    492501     * @param string $data
    493502     * @param boolean $eof
     
    500509        return xml_parse($this->parser, $data, $eof);
    501510    }
    502    
     511
    503512    // }}}
    504513    // {{{ parseString()
     
    506515    /**
    507516     * XML_Parser::parseString()
    508      * 
     517     *
    509518     * Parses a string.
    510519     *
     
    520529            $this->reset();
    521530        }
    522        
     531
    523532        if (!$this->_parseString($data, $eof)) {
    524533           $error = &$this->raiseError();
     
    532541        return true;
    533542    }
    534    
     543
    535544    /**
    536545     * XML_Parser::free()
    537      * 
     546     *
    538547     * Free the internal resources associated with the parser
    539      * 
     548     *
    540549     * @return null
    541550     **/
     
    552561        return null;
    553562    }
    554    
     563
    555564    /**
    556565     * XML_Parser::raiseError()
    557      * 
     566     *
    558567     * Throws a XML_Parser_Error
    559      * 
     568     *
    560569     * @param string  $msg   the error message
    561570     * @param integer $ecode the error message code
    562      * @return XML_Parser_Error 
     571     * @return XML_Parser_Error
    563572     **/
    564573    function raiseError($msg = null, $ecode = 0)
     
    568577        return parent::raiseError($err);
    569578    }
    570    
     579
    571580    // }}}
    572581    // {{{ funcStartHandler()
     
    575584    {
    576585        $func = 'xmltag_' . $elem;
    577         if (strchr($func, '.')) {
    578             $func = str_replace('.', '_', $func);
    579         }
     586        $func = str_replace(array('.', '-', ':'), '_', $func);
    580587        if (method_exists($this->_handlerObj, $func)) {
    581588            call_user_func(array(&$this->_handlerObj, $func), $xp, $elem, $attribs);
     
    591598    {
    592599        $func = 'xmltag_' . $elem . '_';
    593         if (strchr($func, '.')) {
    594             $func = str_replace('.', '_', $func);
    595         }
     600        $func = str_replace(array('.', '-', ':'), '_', $func);
    596601        if (method_exists($this->_handlerObj, $func)) {
    597602            call_user_func(array(&$this->_handlerObj, $func), $xp, $elem);
     
    652657    *
    653658    * @var      string
    654     */   
     659    */
    655660    var $error_message_prefix = 'XML_Parser: ';
    656661
     
    669674    * @param    integer             error handling
    670675    * @param    integer             error level
    671     */   
     676    */
    672677    function XML_Parser_Error($msgorparser = 'unknown error', $code = 0, $mode = PEAR_ERROR_RETURN, $level = E_USER_NOTICE)
    673678    {
  • OpenPNE/branches/stable-2.10.x/lib/include/XML/RPC.php

    r2 r6001  
    3333 * @author     Daniel Convissor <danielc@php.net>
    3434 * @copyright  1999-2001 Edd Dumbill, 2001-2006 The PHP Group
    35  * @version    CVS: $Id: RPC.php,v 1.99 2006/06/16 16:00:54 danielc Exp $
     35 * @version    CVS: $Id: RPC.php,v 1.101 2006/10/28 16:42:34 danielc Exp $
    3636 * @link       http://pear.php.net/package/XML_RPC
    3737 */
     
    580580 * @author     Daniel Convissor <danielc@php.net>
    581581 * @copyright  1999-2001 Edd Dumbill, 2001-2006 The PHP Group
    582  * @version    Release: 1.5.0
     582 * @version    Release: 1.5.1
    583583 * @link       http://pear.php.net/package/XML_RPC
    584584 */
     
    625625 * @author     Daniel Convissor <danielc@php.net>
    626626 * @copyright  1999-2001 Edd Dumbill, 2001-2006 The PHP Group
    627  * @version    Release: 1.5.0
     627 * @version    Release: 1.5.1
    628628 * @link       http://pear.php.net/package/XML_RPC
    629629 */
     
    10671067 * @author     Daniel Convissor <danielc@php.net>
    10681068 * @copyright  1999-2001 Edd Dumbill, 2001-2006 The PHP Group
    1069  * @version    Release: 1.5.0
     1069 * @version    Release: 1.5.1
    10701070 * @link       http://pear.php.net/package/XML_RPC
    10711071 */
     
    11581158 * @author     Daniel Convissor <danielc@php.net>
    11591159 * @copyright  1999-2001 Edd Dumbill, 2001-2006 The PHP Group
    1160  * @version    Release: 1.5.0
     1160 * @version    Release: 1.5.1
    11611161 * @link       http://pear.php.net/package/XML_RPC
    11621162 */
    11631163class XML_RPC_Message extends XML_RPC_Base
    11641164{
     1165    /**
     1166     * Should the payload's content be passed through mb_convert_encoding()?
     1167     *
     1168     * @see XML_RPC_Message::setConvertPayloadEncoding()
     1169     * @since Property available since Release 1.5.1
     1170     * @var boolean
     1171     */
     1172    var $convert_payload_encoding = false;
     1173
    11651174    /**
    11661175     * The current debug mode (1 = on, 0 = off)
     
    12621271     * (CRLF), which is probably required by specifications.
    12631272     *
    1264      * If PHP's mbstring extension is enabled, the mb_convert_encoding()
    1265      * function is used to ensure the payload matches the encoding set in the
     1273     * If XML_RPC_Message::setConvertPayloadEncoding() was set to true,
     1274     * the payload gets passed through mb_convert_encoding()
     1275     * to ensure the payload matches the encoding set in the
    12661276     * XML declaration.  The encoding type can be manually set via
    12671277     * XML_RPC_Message::setSendEncoding().
     
    12701280     *
    12711281     * @uses XML_RPC_Message::xml_header(), XML_RPC_Message::xml_footer()
    1272      * @see XML_RPC_Message::setSendEncoding(), $GLOBALS['XML_RPC_defencoding']
     1282     * @see XML_RPC_Message::setSendEncoding(), $GLOBALS['XML_RPC_defencoding'],
     1283     *      XML_RPC_Message::setConvertPayloadEncoding()
    12731284     */
    12741285    function createPayload()
     
    12881299            $this->payload = $GLOBALS['XML_RPC_func_ereg_replace']("\r\n|\n|\r|\n\r", "\r\n", $this->payload);
    12891300        }
    1290         if (function_exists('mb_convert_encoding')) {
     1301        if ($this->convert_payload_encoding) {
    12911302            $this->payload = mb_convert_encoding($this->payload, $this->send_encoding);
    12921303        }
     
    13541365
    13551366    /**
     1367     * Sets whether the payload's content gets passed through
     1368     * mb_convert_encoding()
     1369     *
     1370     * Returns PEAR_ERROR object if mb_convert_encoding() isn't available.
     1371     *
     1372     * @param int $in  where 1 = on, 0 = off
     1373     *
     1374     * @return void
     1375     *
     1376     * @see XML_RPC_Message::setSendEncoding()
     1377     * @since Method available since Release 1.5.1
     1378     */
     1379    function setConvertPayloadEncoding($in)
     1380    {
     1381        if ($in && !function_exists('mb_convert_encoding')) {
     1382            return $this->raiseError('mb_convert_encoding() is not available',
     1383                              XML_RPC_ERROR_PROGRAMMING);
     1384        }
     1385        $this->convert_payload_encoding = $in;
     1386    }
     1387
     1388    /**
    13561389     * Sets the XML declaration's encoding attribute
    13571390     *
     
    13601393     * @return void
    13611394     *
    1362      * @see XML_RPC_Message::$send_encoding, XML_RPC_Message::xml_header()
     1395     * @see XML_RPC_Message::setConvertPayloadEncoding(), XML_RPC_Message::xml_header()
    13631396     * @since Method available since Release 1.2.0
    13641397     */
     
    15141547        } else {
    15151548            $v = $XML_RPC_xh[$parser]['value'];
    1516             $allOK=1;
    15171549            if ($XML_RPC_xh[$parser]['isf']) {
    15181550                $f = $v->structmem('faultCode');
     
    15391571 * @author     Daniel Convissor <danielc@php.net>
    15401572 * @copyright  1999-2001 Edd Dumbill, 2001-2006 The PHP Group
    1541  * @version    Release: 1.5.0
     1573 * @version    Release: 1.5.1
    15421574 * @link       http://pear.php.net/package/XML_RPC
    15431575 */
     
    18141846
    18151847    /**
    1816      * @return mixed
     1848     * @return mixed  the current element's scalar value.  If the value is
     1849     *                 not scalar, FALSE is returned.
    18171850     */
    18181851    function scalarval()
    18191852    {
    18201853        reset($this->me);
    1821         return current($this->me);
     1854        $v = current($this->me);
     1855        if (!is_scalar($v)) {
     1856            $v = false;
     1857        }
     1858        return $v;
    18221859    }
    18231860
  • OpenPNE/branches/stable-2.10.x/lib/include/XML/RPC/Dump.php

    r2 r6001  
    4343 * @package    XML_RPC
    4444 * @author     Christian Weiske <cweiske@php.net>
    45  * @version    Release: 1.5.0
     45 * @version    Release: 1.5.1
    4646 * @link       http://pear.php.net/package/XML_RPC
    4747 */
  • OpenPNE/branches/stable-2.10.x/lib/include/XML/RPC/Server.php

    r2 r6001  
    3333 * @author     Daniel Convissor <danielc@php.net>
    3434 * @copyright  1999-2001 Edd Dumbill, 2001-2006 The PHP Group
    35  * @version    CVS: $Id: Server.php,v 1.36 2006/06/21 12:17:27 danielc Exp $
     35 * @version    CVS: $Id: Server.php,v 1.37 2006/10/28 16:42:34 danielc Exp $
    3636 * @link       http://pear.php.net/package/XML_RPC
    3737 */
     
    271271 * @author     Daniel Convissor <danielc@php.net>
    272272 * @copyright  1999-2001 Edd Dumbill, 2001-2006 The PHP Group
    273  * @version    Release: 1.5.0
     273 * @version    Release: 1.5.1
    274274 * @link       http://pear.php.net/package/XML_RPC
    275275 */
    276276class XML_RPC_Server
    277277{
     278    /**
     279     * Should the payload's content be passed through mb_convert_encoding()?
     280     *
     281     * @see XML_RPC_Server::setConvertPayloadEncoding()
     282     * @since Property available since Release 1.5.1
     283     * @var boolean
     284     */
     285    var $convert_payload_encoding = false;
     286
    278287    /**
    279288     * The dispatch map, listing the methods this server provides.
     
    374383
    375384    /**
     385     * Sets whether the payload's content gets passed through
     386     * mb_convert_encoding()
     387     *
     388     * Returns PEAR_ERROR object if mb_convert_encoding() isn't available.
     389     *
     390     * @param int $in  where 1 = on, 0 = off
     391     *
     392     * @return void
     393     *
     394     * @see XML_RPC_Message::getEncoding()
     395     * @since Method available since Release 1.5.1
     396     */
     397    function setConvertPayloadEncoding($in)
     398    {
     399        if ($in && !function_exists('mb_convert_encoding')) {
     400            return $this->raiseError('mb_convert_encoding() is not available',
     401                              XML_RPC_ERROR_PROGRAMMING);
     402        }
     403        $this->convert_payload_encoding = $in;
     404    }
     405
     406    /**
    376407     * Sends the response
    377408     *
     
    415446     * Generates the payload and puts it in the $server_payload property
    416447     *
     448     * If XML_RPC_Server::setConvertPayloadEncoding() was set to true,
     449     * the payload gets passed through mb_convert_encoding()
     450     * to ensure the payload matches the encoding set in the
     451     * XML declaration.  The encoding type can be manually set via
     452     * XML_RPC_Message::setSendEncoding().
     453     *
    417454     * @return void
    418455     *
    419456     * @uses XML_RPC_Server::parseRequest(), XML_RPC_Server::$encoding,
    420457     *       XML_RPC_Response::serialize(), XML_RPC_Server::serializeDebug()
     458     * @see  XML_RPC_Server::setConvertPayloadEncoding()
    421459     */
    422460    function createServerPayload()
     
    427465                              . $this->serializeDebug()
    428466                              . $r->serialize();
    429         if (function_exists('mb_convert_encoding')) {
     467        if ($this->convert_payload_encoding) {
    430468            $this->server_payload = mb_convert_encoding($this->server_payload,
    431469                                                        $this->encoding);
  • OpenPNE/branches/stable-2.10.x/setup/sql/mysql40/install/install-2.10-insert_data.sql

    r4481 r6001  
    197197INSERT INTO `c_rank` VALUES (NULL,'GOLD','r_3_gold.gif',1000);
    198198INSERT INTO `c_rank` VALUES (NULL,'PLATINUM','r_4_platinum.gif',10000);
    199 INSERT INTO `c_review_category` VALUES (NULL,'books-jp','和書',1);
    200 INSERT INTO `c_review_category` VALUES (NULL,'books-us','洋書',2);
    201 INSERT INTO `c_review_category` VALUES (NULL,'music-jp','CDポピュラー',3);
    202 INSERT INTO `c_review_category` VALUES (NULL,'classical-jp','CDクラシック',4);
    203 INSERT INTO `c_review_category` VALUES (NULL,'dvd-jp','DVD',5);
    204 INSERT INTO `c_review_category` VALUES (NULL,'videogames-jp','ゲーム',6);
    205 INSERT INTO `c_review_category` VALUES (NULL,'software-jp','ソフトウェア',7);
    206 INSERT INTO `c_review_category` VALUES (NULL,'electronics-jp','エレクトロニクス',8);
    207 INSERT INTO `c_review_category` VALUES (NULL,'kitchen-jp','キッチン',9);
    208 INSERT INTO `c_review_category` VALUES (NULL,'toys-jp','おもちゃ&ホビー',10);
    209 INSERT INTO `c_review_category` VALUES (NULL,'sporting-goods-jp','スポーツ',11);
    210 INSERT INTO `c_review_category` VALUES (NULL,'hpc-jp','ヘルス&ビューティー',12);
     199INSERT INTO `c_review_category` VALUES (NULL,'Books','和書',1);
     200INSERT INTO `c_review_category` VALUES (NULL,'ForeignBooks','洋書',2);
     201INSERT INTO `c_review_category` VALUES (NULL,'Music','CDポピュラー',3);
     202INSERT INTO `c_review_category` VALUES (NULL,'Classical','CDクラシック',4);
     203INSERT INTO `c_review_category` VALUES (NULL,'DVD','DVD',5);
     204INSERT INTO `c_review_category` VALUES (NULL,'VideoGames','ゲーム',6);
     205INSERT INTO `c_review_category` VALUES (NULL,'Software','ソフトウェア',7);
     206INSERT INTO `c_review_category` VALUES (NULL,'Electronics','エレクトロニクス',8);
     207INSERT INTO `c_review_category` VALUES (NULL,'Kitchen','キッチン',9);
     208INSERT INTO `c_review_category` VALUES (NULL,'Toys','おもちゃ&ホビー',10);
     209INSERT INTO `c_review_category` VALUES (NULL,'SportingGoods','スポーツ',11);
     210INSERT INTO `c_review_category` VALUES (NULL,'HealthPersonalCare','ヘルス&ビューティー',12);
     211INSERT INTO `c_review_category` VALUES (NULL,'Watches','時計',13);
     212INSERT INTO `c_review_category` VALUES (NULL,'Baby','ベビー&マタニティ',14);
     213INSERT INTO `c_review_category` VALUES (NULL,'Apparel','アパレル&シューズ',15);
    211214INSERT INTO `c_siteadmin` VALUES (NULL,'inc_page_footer_before','<a href=\"./?m=pc&amp;a=page_o_sns_kiyaku\" target=\"_blank\">利用規約</a> <a href=\"./?m=pc&amp;a=page_o_sns_privacy\" target=\"_blank\">プライバシーポリシー</a> <a href=\"http://www.openpne.jp/about/\" target=\"_blank\">OpenPNEとは</a>',NOW());
    212215INSERT INTO `c_siteadmin` VALUES (NULL,'inc_page_footer_after','<a href=\"./?m=pc&amp;a=page_o_sns_kiyaku\" target=\"_blank\">利用規約</a> <a href=\"./?m=pc&amp;a=page_o_sns_privacy\" target=\"_blank\">プライバシーポリシー</a>',NOW());
  • OpenPNE/branches/stable-2.10.x/setup/sql/mysql41/install/install-2.10-insert_data.sql

    r4481 r6001  
    199199INSERT INTO `c_rank` VALUES (NULL,'GOLD','r_3_gold.gif',1000);
    200200INSERT INTO `c_rank` VALUES (NULL,'PLATINUM','r_4_platinum.gif',10000);
    201 INSERT INTO `c_review_category` VALUES (NULL,'books-jp','和書',1);
    202 INSERT INTO `c_review_category` VALUES (NULL,'books-us','洋書',2);
    203 INSERT INTO `c_review_category` VALUES (NULL,'music-jp','CDポピュラー',3);
    204 INSERT INTO `c_review_category` VALUES (NULL,'classical-jp','CDクラシック',4);
    205 INSERT INTO `c_review_category` VALUES (NULL,'dvd-jp','DVD',5);
    206 INSERT INTO `c_review_category` VALUES (NULL,'videogames-jp','ゲーム',6);
    207 INSERT INTO `c_review_category` VALUES (NULL,'software-jp','ソフトウェア',7);
    208 INSERT INTO `c_review_category` VALUES (NULL,'electronics-jp','エレクトロニクス',8);
    209 INSERT INTO `c_review_category` VALUES (NULL,'kitchen-jp','キッチン',9);
    210 INSERT INTO `c_review_category` VALUES (NULL,'toys-jp','おもちゃ&ホビー',10);
    211 INSERT INTO `c_review_category` VALUES (NULL,'sporting-goods-jp','スポーツ',11);
    212 INSERT INTO `c_review_category` VALUES (NULL,'hpc-jp','ヘルス&ビューティー',12);
     201INSERT INTO `c_review_category` VALUES (NULL,'Books','和書',1);
     202INSERT INTO `c_review_category` VALUES (NULL,'ForeignBooks','洋書',2);
     203INSERT INTO `c_review_category` VALUES (NULL,'Music','CDポピュラー',3);
     204INSERT INTO `c_review_category` VALUES (NULL,'Classical','CDクラシック',4);
     205INSERT INTO `c_review_category` VALUES (NULL,'DVD','DVD',5);
     206INSERT INTO `c_review_category` VALUES (NULL,'VideoGames','ゲーム',6);
     207INSERT INTO `c_review_category` VALUES (NULL,'Software','ソフトウェア',7);
     208INSERT INTO `c_review_category` VALUES (NULL,'Electronics','エレクトロニクス',8);
     209INSERT INTO `c_review_category` VALUES (NULL,'Kitchen','キッチン',9);
     210INSERT INTO `c_review_category` VALUES (NULL,'Toys','おもちゃ&ホビー',10);
     211INSERT INTO `c_review_category` VALUES (NULL,'SportingGoods','スポーツ',11);
     212INSERT INTO `c_review_category` VALUES (NULL,'HealthPersonalCare','ヘルス&ビューティー',12);
     213INSERT INTO `c_review_category` VALUES (NULL,'Watches','時計',13);
     214INSERT INTO `c_review_category` VALUES (NULL,'Baby','ベビー&マタニティ',14);
     215INSERT INTO `c_review_category` VALUES (NULL,'Apparel','アパレル&シューズ',15);
    213216INSERT INTO `c_siteadmin` VALUES (NULL,'inc_page_footer_before','<a href=\"./?m=pc&amp;a=page_o_sns_kiyaku\" target=\"_blank\">利用規約</a> <a href=\"./?m=pc&amp;a=page_o_sns_privacy\" target=\"_blank\">プライバシーポリシー</a> <a href=\"http://www.openpne.jp/about/\" target=\"_blank\">OpenPNEとは</a>',NOW());
    214217INSERT INTO `c_siteadmin` VALUES (NULL,'inc_page_footer_after','<a href=\"./?m=pc&amp;a=page_o_sns_kiyaku\" target=\"_blank\">利用規約</a> <a href=\"./?m=pc&amp;a=page_o_sns_privacy\" target=\"_blank\">プライバシーポリシー</a>',NOW());
  • OpenPNE/branches/stable-2.10.x/setup/sql/postgres74/install/install-2.10-insert_data.sql

    r4543 r6001  
    197197INSERT INTO c_rank VALUES (nextval('c_rank_c_rank_id_seq'),'GOLD','r_3_gold.gif',1000);
    198198INSERT INTO c_rank VALUES (nextval('c_rank_c_rank_id_seq'),'PLATINUM','r_4_platinum.gif',10000);
    199 INSERT INTO c_review_category VALUES (nextval('c_review_category_c_review_category_id_seq'),'books-jp','和書',1);
    200 INSERT INTO c_review_category VALUES (nextval('c_review_category_c_review_category_id_seq'),'books-us','洋書',2);
    201 INSERT INTO c_review_category VALUES (nextval('c_review_category_c_review_category_id_seq'),'music-jp','CDポピュラー',3);
    202 INSERT INTO c_review_category VALUES (nextval('c_review_category_c_review_category_id_seq'),'classical-jp','CDクラシック',4);
    203 INSERT INTO c_review_category VALUES (nextval('c_review_category_c_review_category_id_seq'),'dvd-jp','DVD',5);
    204 INSERT INTO c_review_category VALUES (nextval('c_review_category_c_review_category_id_seq'),'videogames-jp','ゲーム',6);
    205 INSERT INTO c_review_category VALUES (nextval('c_review_category_c_review_category_id_seq'),'software-jp','ソフトウェア',7);
    206 INSERT INTO c_review_category VALUES (nextval('c_review_category_c_review_category_id_seq'),'electronics-jp','エレクトロニクス',8);
    207 INSERT INTO c_review_category VALUES (nextval('c_review_category_c_review_category_id_seq'),'kitchen-jp','キッチン',9);
    208 INSERT INTO c_review_category VALUES (nextval('c_review_category_c_review_category_id_seq'),'toys-jp','おもちゃ&ホビー',10);
    209 INSERT INTO c_review_category VALUES (nextval('c_review_category_c_review_category_id_seq'),'sporting-goods-jp','スポーツ',11);
    210 INSERT INTO c_review_category VALUES (nextval('c_review_category_c_review_category_id_seq'),'hpc-jp','ヘルス&ビューティー',12);
     199INSERT INTO c_review_category VALUES (nextval('c_review_category_c_review_category_id_seq'),'Books','和書',1);
     200INSERT INTO c_review_category VALUES (nextval('c_review_category_c_review_category_id_seq'),'ForeignBooks','洋書',2);
     201INSERT INTO c_review_category VALUES (nextval('c_review_category_c_review_category_id_seq'),'Music','CDポピュラー',3);
     202INSERT INTO c_review_category VALUES (nextval('c_review_category_c_review_category_id_seq'),'Classical','CDクラシック',4);
     203INSERT INTO c_review_category VALUES (nextval('c_review_category_c_review_category_id_seq'),'DVD','DVD',5);
     204INSERT INTO c_review_category VALUES (nextval('c_review_category_c_review_category_id_seq'),'VideoGames','ゲーム',6);
     205INSERT INTO c_review_category VALUES (nextval('c_review_category_c_review_category_id_seq'),'Software','ソフトウェア',7);
     206INSERT INTO c_review_category VALUES (nextval('c_review_category_c_review_category_id_seq'),'Electronics','エレクトロニクス',8);
     207INSERT INTO c_review_category VALUES (nextval('c_review_category_c_review_category_id_seq'),'Kitchen','キッチン',9);
     208INSERT INTO c_review_category VALUES (nextval('c_review_category_c_review_category_id_seq'),'Toys','おもちゃ&ホビー',10);
     209INSERT INTO c_review_category VALUES (nextval('c_review_category_c_review_category_id_seq'),'SportingGoods','スポーツ',11);
     210INSERT INTO c_review_category VALUES (nextval('c_review_category_c_review_category_id_seq'),'HealthPersonalCare','ヘルス&ビューティー',12);
     211INSERT INTO c_review_category VALUES (nextval('c_review_category_c_review_category_id_seq'),'Watches','時計',13);
     212INSERT INTO c_review_category VALUES (nextval('c_review_category_c_review_category_id_seq'),'Baby','ベビー&マタニティ',14);
     213INSERT INTO c_review_category VALUES (nextval('c_review_category_c_review_category_id_seq'),'Apparel','アパレル&シューズ',15);
    211214INSERT INTO c_siteadmin VALUES (nextval('c_siteadmin_c_siteadmin_id_seq'),'inc_page_footer_before','<a href=\"./?m=pc&amp;a=page_o_sns_kiyaku\" target=\"_blank\">利用規約</a> <a href=\"./?m=pc&amp;a=page_o_sns_privacy\" target=\"_blank\">プライバシーポリシー</a> <a href=\"http://www.openpne.jp/about/\" target=\"_blank\">OpenPNEとは</a>',NOW());
    212215INSERT INTO c_siteadmin VALUES (nextval('c_siteadmin_c_siteadmin_id_seq'),'inc_page_footer_after','<a href=\"./?m=pc&amp;a=page_o_sns_kiyaku\" target=\"_blank\">利用規約</a> <a href=\"./?m=pc&amp;a=page_o_sns_privacy\" target=\"_blank\">プライバシーポリシー</a>',NOW());
  • OpenPNE/branches/stable-2.10.x/webapp/lib/OpenPNE/Config.php

    r5008 r6001  
    197197            'AMAZON_TOKEN'   => '1WZYY1W9YF49AGM0RTG2',
    198198            'AMAZON_LOCALE'  => 'jp',
    199             'AMAZON_BASEURL' => 'http://xml-jp.amznxslt.com/onca/xml3',
     199            'AMAZON_BASEURL' => 'http://webservices.amazon.co.jp/onca/xml?Service=AWSECommerceService',
    200200            'OPENPNE_REGIST_FROM_NONE'   => 0,
    201201            'OPENPNE_REGIST_FROM_PC'     => 1,
  • OpenPNE/branches/stable-2.10.x/webapp/lib/db/review.php

    r4272 r6001  
    9595    }
    9696
    97     include_once 'Services/Amazon.php';
    98     $amazon =& new Services_Amazon(AMAZON_TOKEN, AMAZON_AFFID, AMAZON_LOCALE, AMAZON_BASEURL);
    99     $products = $amazon->searchKeyword($keyword, $category, $page);
     97    include_once 'Services/AmazonECS4.php';
     98    $amazon =& new Services_AmazonECS4(AMAZON_TOKEN, AMAZON_AFFID);
     99    $amazon->setLocale(AMAZON_LOCALE);
     100    $amazon->setBaseUrl(AMAZON_BASEURL);
     101
     102    $options = array(
     103        'Keywords' => $keyword,
     104        'ItemPage' => $page,
     105        'ResponseGroup' => 'Large',
     106    );
     107    $products = $amazon->ItemSearch($category, $options);
     108
    100109    if (PEAR::isError($products)) {
    101110        return null;
    102111    }
    103     if (empty($products['totalresults'])) {
     112    if (empty($products['Request']['IsValid']) || $products['Request']['IsValid'] !== 'True') {
    104113        return null;
    105114    }
    106115
    107     foreach ($products as $key => $value) {
    108         if (is_array($value['authors'])) {
    109             $authors = array_unique($value['authors']);
    110             $products[$key]['author'] = implode(', ', $authors);
    111         }
    112         if (is_array($value['artists'])) {
    113             $artists = array_unique($value['artists']);
    114             $products[$key]['artist'] = implode(', ', $artists);
    115         }
    116     }
    117 
    118     $product_page = $products['page'];
    119     $product_pages = $products['pages'];
    120     $total_num = $products['totalresults'];
    121     unset($products[0]);
    122     unset($products['page']);
    123     unset($products['pages']);
    124     unset($products['totalresults']);
    125 
    126     return array($products, $product_page, $product_pages, $total_num);
     116    foreach ($products['Item'] as $key => $value) {
     117        if (is_array($value['ItemAttributes']['Author'])) {
     118            $authors = array_unique($value['ItemAttributes']['Author']);
     119            $products['Item'][$key]['author'] = implode(', ', $authors);
     120        }
     121        if (is_array($value['ItemAttributes']['Aritst'])) {
     122            $artists = array_unique($value['ItemAttributes']['Artist']);
     123            $products['Item'][$key]['artist'] = implode(', ', $artists);
     124        }
     125    }
     126
     127    $product_page = $products['Request']['ItemSearchRequest']['ItemPage'];
     128    $product_pages = $products['TotalPages'];
     129    $total_num = $products['TotalResults'];
     130
     131    return array($products['Item'], $product_page, $product_pages, $total_num);
    127132}
    128133
    129134function db_review_write_product4asin($asin)
    130135{
    131     include_once 'Services/Amazon.php';
    132     $amazon =& new Services_Amazon(AMAZON_TOKEN, AMAZON_AFFID, AMAZON_LOCALE, AMAZON_BASEURL);
     136    include_once 'Services/AmazonECS4.php';
     137    $amazon =& new Services_AmazonECS4(AMAZON_TOKEN, AMAZON_AFFID);
     138    $amazon->setLocale(AMAZON_LOCALE);
     139    $amazon->setBaseUrl(AMAZON_BASEURL);
    133140    $keyword = mb_convert_encoding($keyword, "UTF-8", "auto");
    134141
    135     $result = $amazon->searchAsin($asin);
     142    $options = array();
     143    $options['ResponseGroup'] = 'Large';
     144    $result = $amazon->ItemLookup($asin, $options);
    136145    if (PEAR::isError($result)) {
    137146        return false;
    138147    }
    139 
    140     $product  =$result[1];
    141     if ($result[1]['authors']) {
    142         $product['author'] = implode(',', $result[1]['authors']);
    143     }
    144    
    145     if (!is_array($product)) {
    146         return false;
    147     }
    148     foreach ($product as $key => $value) {
    149         $product[$key] = mb_convert_encoding($value, 'UTF-8', 'auto');
     148    if (empty($result['Request']['IsValid']) || $result['Request']['IsValid'] !== 'True') {
     149        return null;
     150    }
     151
     152    $product  = $result['Item'][0];
     153    if (is_array($product['ItemAttributes']['Author'])) {
     154        $authors = array_unique($product['ItemAttributes']['Author']);
     155        $product['author'] = implode(', ', $authors);
     156    }
     157    if (is_array($product['ItemAttributes']['Aritst'])) {
     158        $artists = array_unique($product['ItemAttributes']['Artist']);
     159        $product['artist'] = implode(', ', $artists);
    150160    }
    151161
     
    503513{
    504514    $sql = 'SELECT c_review_id FROM c_review WHERE asin = ?';
    505     $params = array($product['asin']);
     515    $params = array($product['ASIN']);
    506516    if ($c_review_id = db_get_one($sql, $params)) {
    507517        return $c_review_id;
     
    509519
    510520    $data = array(
    511         'title'        => $product['name'],
    512         'release_date' => $product['release'],
    513         'manufacturer' => $product['manufacturer'],
     521        'title'        => $product['ItemAttributes']['Title'],
     522        'release_date' => $product['ItemAttributes']['PublicationDate'],
     523        'manufacturer' => $product['ItemAttributes']['Manufacturer'],
    514524        'author'       => $product['author'],
    515525        'c_review_category_id' => intval($c_review_category_id),
    516         'image_small'  => $product['imagesmall'],
    517         'image_medium' => $product['imagemedium'],
    518         'image_large'  => $product['imagelarge'],
    519         'url'          => $product['url'],
    520         'asin'         => $product['asin'],
    521         'list_price'   => $product['listprice'],
    522         'retail_price' => $product['ourprice'],
     526        'image_small'  => $product['MediumImage']['URL'],
     527        'image_medium' => $product['MediumImage']['URL'],
     528        'image_large'  => $product['MediumImage']['URL'],
     529        'url'          => $product['DetailPageURL'],
     530        'asin'         => $product['ASIN'],
     531        'list_price'   => $product['ListPrice']['FormattedPrice'],
     532        'retail_price' => $product['OfferSummary']['LowestUsedPrice']['FormattedPrice'],
    523533        'r_datetime'   => db_now(),
    524534    );
  • OpenPNE/branches/stable-2.10.x/webapp/modules/pc/templates/h_review_add.tpl

    r5358 r6001  
    180180<div class="padding_s">
    181181
    182 <a href="({$product.url})" target="_blank"><img src="({if $product.imagemedium})({$product.imagemedium})({else})({t_img_url_skin filename=no_image w=120 h=120})({/if})"><br>詳細を見る</a>
     182<a href="({$product.DetailPageURL})" target="_blank"><img src="({if $product.MediumImage})({$product.MediumImage.URL})({else})./skin/dummy.gif({/if})"><br>詳細を見る</a>
    183183
    184184</div>
     
    208208<div class="padding_s">
    209209
    210 <span class="b_b">({$product.name})</span>
     210<span class="b_b">({$product.ItemAttributes.Title})</span>
    211211
    212212</div>
     
    240240<div class="padding_s">
    241241
    242 ({$product.release})<br>
    243 ({$product.manufacturer})<br>
     242({$product.ItemAttributes.PublicationDate})<br>
     243({$product.ItemAttributes.Manufacturer})<br>
    244244({$product.artist})({$product.author})
    245245
     
    262262<div class="padding_s">
    263263
    264 <a href="({t_url m=pc a=page_h_review_add_write})&amp;category_id=({$category_id})&amp;asin=({$product.asin})">レビューを書く</a>
     264<a href="({t_url m=pc a=page_h_review_add_write})&amp;category_id=({$category_id})&amp;asin=({$product.ASIN})">レビューを書く</a>
    265265
    266266</div>
  • OpenPNE/branches/stable-2.10.x/webapp/modules/pc/templates/h_review_add_write.tpl

    r5358 r6001  
    4646<td class="bg_02" style="width:180px;" align="center" rowspan="7">
    4747
    48 <a href="({$product.url})" target="_blank"><img src="({if $product.imagemedium})({$product.imagemedium})({else})({t_img_url_skin filename=no_image w=120 h=120})({/if})"><br>詳細を見る</a>
     48<a href="({$product.DetailPageURL})" target="_blank"><img src="({if $product.MediumImage})({$product.MediumImage.URL})({else})./skin/dummy.gif({/if})"><br>詳細を見る</a>
    4949
    5050</td>
     
    6464<div class="padding_s">
    6565
    66 ({$product.name})
     66({$product.ItemAttributes.Title})
    6767
    6868</div>
     
    9393<div class="padding_s">
    9494
    95 ({$product.release})<br>
    96 ({$product.manufacturer})<br>
    97 ({$product.artist})({$product.author})<br>
     95({$product.ItemAttributes.PublicationDate})<br>
     96({$product.ItemAttributes.Manufacturer})<br>
     97({$product.artist})({$product.author})
    9898
    9999</div>
Note: See TracChangeset for help on using the changeset viewer.