';
// Query Amazon for item information
$amzItems = amzLookup(implode(',',$asins), $associateId, $locale);
$amzItemData = array();
foreach ($amzItems->ItemLookupResponse->Items->children() as $amzItem) {
if (is_object($amzItem->ASIN)) {
$amzItemData[$amzItem->ASIN->CDATA()] = $amzItem;
}
}
$itemCount = 0;
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 = '';
if (is_object($amzItem->ItemAttributes->ProductGroup) && $amzItem->ItemAttributes->ProductGroup->CDATA() == 'Book' && is_object($amzItem->ItemAttributes->Author)) {
$itemAuthor = $amzItem->ItemAttributes->Author->CDATA();
}
$imgWidth = '';
$imgHeight = '';
$imgSource = '';
if (is_object($amzItem->SmallImage) && $imageSizes[$itemCount] == 'small') {
$imgWidth = $amzItem->SmallImage->Width->CDATA();
$imgHeight = $amzItem->SmallImage->Height->CDATA();
$imgSource = $amzItem->SmallImage->URL->CDATA();
} else if (is_object($amzItem->MediumImage)) {
$imgWidth = $amzItem->MediumImage->Width->CDATA();
$imgHeight = $amzItem->MediumImage->Height->CDATA();
$imgSource = $amzItem->MediumImage->URL->CDATA();
}
// Two purposes: Avoids blank templates and updates legacy versions
if (empty($itemTemplates[$itemCount])) {
$itemTemplates[$itemCount] = AMZSHCS_DEFAULT_TEMPLATE;
}
$itemOutput = $itemTemplates[$itemCount];
$itemOutput = str_replace('[image]', '

', $itemOutput);
$itemOutput = str_replace('[url]', $itemURL, $itemOutput);
$itemOutput = str_replace('[title]', $itemTitle, $itemOutput);
$itemOutput = str_replace('[author]', $itemAuthor, $itemOutput);
// Output the widget content
echo $itemOutput;
$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(),
'templates'=> 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'][] = trim(strip_tags(stripslashes($asin)));
}
$options['imageSizes'] = array();
foreach ($_POST['amzshcs-imageSize'] as $imageSize) {
if (!empty($imageSize))
$options['imageSizes'][] = strip_tags(stripslashes($imageSize));
}
$options['templates'] = array();
foreach ($_POST['amzshcs-template'] as $itemTemplate) {
if (!empty($itemTemplate)) {
$options['templates'][] = stripslashes($itemTemplate);
} else {
$options['templates'][] = stripslashes(AMZSHCS_DEFAULT_TEMPLATE);
}
}
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' : '';
}
$itemTemplates = array();
if (count($options['templates']) > 0) {
foreach ($options['templates'] as $itemTemplate) {
$itemTemplates[] = htmlspecialchars($itemTemplate, ENT_QUOTES);
}
} else {
$itemTemplates = array_fill(0, 10, htmlspecialchars(AMZSHCS_DEFAULT_TEMPLATE, ENT_QUOTES));
}
$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 <<