'; // Query Amazon for item information $amzItems = amzLookup(implode(',',$asins), $associateId, $locale); $itemCount = 0; $amzItemData = array(); foreach ($amzItems->ItemLookupResponse->Items->children() as $amzItem) { if (is_object($amzItem->ASIN)) { $amzItemData[$amzItem->ASIN->CDATA()] = $amzItem; } } foreach ($asins as $asin) { $amzItem = $amzItemData[$asin]; $itemURL = ''; $itemTitle = ''; if (is_object($amzItem->DetailPageURL) && is_object($amzItem->ItemAttributes->Title)) { $itemURL = $amzItem->DetailPageURL->CDATA(); $itemTitle = $amzItem->ItemAttributes->Title->CDATA(); } // If this is a book, grab the author $itemAuthor = ''; $authorText = ''; if (is_object($amzItem->ItemAttributes->ProductGroup) && $amzItem->ItemAttributes->ProductGroup->CDATA() == 'Book') { if (is_object($amzItem->ItemAttributes->Author)) { $itemAuthor = $amzItem->ItemAttributes->Author->CDATA(); $authorText = ' by ' . $itemAuthor; } } $imgWidth = ''; $imgHeight = ''; $imgSource = ''; if (is_object($amzItem->SmallImage) && is_object($amzItem->MediumImage)) { if ($imageSizes[$itemCount] == 'small') { $imgWidth = $amzItem->SmallImage->Width->CDATA(); $imgHeight = $amzItem->SmallImage->Height->CDATA(); $imgSource = $amzItem->SmallImage->URL->CDATA(); } else { $imgWidth = $amzItem->MediumImage->Width->CDATA(); $imgHeight = $amzItem->MediumImage->Height->CDATA(); $imgSource = $amzItem->MediumImage->URL->CDATA(); } } if (!empty($itemURL) && !empty($itemTitle)) { // Output the widget content, using heredoc syntax for readability echo '
'; $itemCount++; } } echo ''; echo $after_widget; } function widget_amazonshowcase_control() { $options = get_option('widget_amazonshowcase'); if ( !is_array($options) ) $options = array( 'title' => '', 'associateId' => '', 'locale' => '', 'asins' => array(), 'imageSizes'=> array() ); // Fixes legacy options from 1.0 if (!is_array($options['asins'])) { $options['asins'] = array(htmlspecialchars($options['asin'], ENT_QUOTES)); $options['imageSizes'] = array(htmlspecialchars($options['imageSize'], ENT_QUOTES)); } if ( $_POST['amzshcs-submit'] ) { $options['title'] = strip_tags(stripslashes($_POST['amzshcs-title'])); $options['associateId'] = strip_tags(stripslashes($_POST['amzshcs-associateId'])); $options['locale'] = strip_tags(stripslashes($_POST['amzshcs-locale'])); $options['asins'] = array(); foreach ($_POST['amzshcs-asin'] as $asin) { if (!empty($asin)) $options['asins'][] = strip_tags(stripslashes($asin)); } $options['imageSizes'] = array(); foreach ($_POST['amzshcs-imageSize'] as $imageSize) { if (!empty($imageSize)) $options['imageSizes'][] = strip_tags(stripslashes($imageSize)); } update_option('widget_amazonshowcase', $options); } $title = htmlspecialchars($options['title'], ENT_QUOTES); $associateId = htmlspecialchars($options['associateId'], ENT_QUOTES); $locale = htmlspecialchars($options['locale'], ENT_QUOTES); $asins = array(); foreach ($options['asins'] as $asin) { $asins[] = htmlspecialchars($asin, ENT_QUOTES); } $imageSizes = array(); $imageSizeLarge = array(); foreach ($options['imageSizes'] as $imageSize) { $imageSizes[] = htmlspecialchars($imageSize, ENT_QUOTES); $imageSizeLarge[] = $imageSize == 'large' ? 'selected' : ''; } $locale_us = $locale == 'us' ? 'selected' : ''; $locale_uk = $locale == 'uk' ? 'selected' : ''; $locale_de = $locale == 'de' ? 'selected' : ''; $locale_jp = $locale == 'jp' ? 'selected' : ''; $locale_fr = $locale == 'fr' ? 'selected' : ''; $locale_ca = $locale == 'ca' ? 'selected' : ''; // Output the form content, using heredoc syntax for readability echo <<