function amazon_fetch($asin, $mode) { global $serendipity; if (!class_exists('serendipity_event_amazonchooser')) { return; } $country = trim($this->get_config('server')); list($country_url, $mode_list) = Amazon_country_code($country); $mode_names = Amazon_return_mode_array(); if (!is_dir($serendipity['serendipityPath'] . 'templates_c/amazonget/')) { mkdir($serendipity['serendipityPath'] . 'templates_c/amazonget/'); } if (!in_array($mode, $mode_list)) { $mode = "All"; } $data = array(); serendipity_plugin_api::hook_event('serendipity_event_amazonchooser_devinfo', $data); $AWSAccessKey = $data['dtoken']; $secretKey = $data['secretKey']; $AssociateTag = $data['aaid']; if (@(include_once "Cache/Lite.php")) { $cache_obj = new Cache_Lite(array('cacheDir' => $serendipity['serendipityPath'] . 'templates_c/amazonget/', 'automaticSerialization' => true, 'lifeTime' => 43200)); $results = $cache_obj->get('amazonlookup' . $asin); } if (!$results['return_date']) { $results = Amazon_ItemLookup($AWSAccessKey, $AssociateTag, $secretKey, $mode, $asin, $country_url); if ($results['return_date'] && class_exists('Cache_Lite') && is_object($cache_obj)) { $cache_obj->save($results, 'amazonlookup' . $asin); } } if ($results['count'] == 0 || $results['return_count'] == 0) { $results['items'] = ""; } return $results; }
function get_amazon_item($matches) { global $serendipity; if (!is_dir($serendipity['serendipityPath'] . 'templates_c/amazonchooser/')) { mkdir($serendipity['serendipityPath'] . 'templates_c/amazonchooser/'); } $content = false; $asin = $matches[1]; $Searchindex = $matches[2]; $country = trim($this->get_config('server')); list($country_url, $mode) = Amazon_country_code($country); if (@(include_once "Cache/Lite.php")) { $cache_obj = new Cache_Lite(array('cacheDir' => $serendipity['serendipityPath'] . 'templates_c/amazonchooser/', 'automaticSerialization' => true, 'lifeTime' => 3600)); $content = $cache_obj->get('amazonchooser' . $asin); } if (!$content) { if (!is_object($serendipity['smarty'])) { serendipity_smarty_init(); } if (isset($asin)) { $method = "lookup"; $result = $this->Amazon_Call($method, $Searchindex, $asin, $country_url, 0); } else { $item_count = -1; $error_message = PLUGIN_EVENT_AMAZONCHOOSER_NOASIN; } $serendipity['smarty']->assign(array('plugin_amazonchooser_item_count' => $result['count'], 'plugin_amazonchooser_return_count' => $result['return_count'], 'plugin_amazonchooser_error_message' => $result['error_message'], 'plugin_amazonchooser_error_result' => $result['error_result'], 'plugin_amazonchooser_cache_time' => $result['return_date'], 'thingy' => $result['items'][0])); // use native API here - extends s9y version >= 1.3' $content = $this->parseTemplate('plugin_amazon_display.tpl'); $content = str_replace("\n", '', $content); if (class_exists('Cache_Lite') && is_object($cache_obj)) { $cache_obj->save($content, 'amazonchooser' . $asin); } } return $content; }