我的主页上有一个产品列表,我很难在主页上的产品上显示可配置/颜色样本。我的目录列表上的可配置/颜色样本工作正常。我猜我只需要配置我的布局,但我不知道该怎么做。我使用的是RWD主题和Magento 1.9。
任何人,请帮助我。谢谢!
UPDATE !!
所以我发现了这个
<script type="text/javascript">
$j(document).on('product-media-loaded', function() {
ConfigurableMediaImages.init('<?php echo $this->getImageType(); ?>');
<?php foreach ($this->getProductImageFallbacks() as $imageFallback): ?>
ConfigurableMediaImages.setImageFallback(<?php echo $imageFallback['product']->getId(); ?>, $j.parseJSON('<?php echo $imageFallback['image_fallback']; ?>'));
<?php endforeach; ?>
$j(document).trigger('configurable-media-images-init', ConfigurableMediaImages);
});
</script>
&#13;
app / design / frontend中的
// default / configurableswatches / catalog / media / js.phtml
是问题的原因。
但在此之前,我将其粘贴到我的local.xml
中<cms_index_index translate="label">
<update handle="product_list"/>
<reference name="content">
<block type="configurableswatches/catalog_media_js_list" name="configurableswatches.media.js.list" />
</reference>
</cms_index_index>
然后我发现产品不会填充其小图像。 如果您注意到,上面的javascript中有一个for循环,但它不起作用,因为 getProductImageFallbacks()返回NULL。
这是我在CMS内容(主页)
上的内容{{block type="catalog/product_list" column_count="5" category_id="21" template="catalog/product/homepage-list.phtml"}}
在公共函数getProductImageFallbacks($ keepFrame = null) >中的app / code / local / Mage / ConfigurableSwatches / Block / Catalog / Media / Js / Abstract.php第69行
这个$products = $this->getProducts();
给了我NULL。这就是为什么它无法提供正确的图像后备。
仍在等待答案。请帮我。
答案 0 :(得分:0)
请尝试以下代码:
<?php
$categoryId = 3 //your category id's;
$collection = Mage::getSingleton('catalog/category')->load($categoryId)
->getProductCollection()->addAttributeToFilter('visibility', 4)
->addAttributeToSelect('*')->addAttributeToFilter('status',1);
foreach($collection as $pro):
$productAttributeOptions =
$pro->getTypeInstance(true)->getConfigurableAttributesAsArray($pro);
?>
<h3 class="product-name"><?php echo $pro->getName(); ?></h3>
<?php
//提供额外的块来挂起产品中的某些功能 列表
//将显示提供以此块为目标的UI元素的功能 直接位于产品名称下方
if ($this->getChild('name.after')) {
$_nameAfterChildren = $this->getChild('name.after')->getSortedChildren();
foreach ($_nameAfterChildren as $_nameAfterChildName) {
$_nameAfterChild =
$this->getChild('name.after')->getChild($_nameAfterChildName);
$_nameAfterChild->setProduct($_product);
echo $_nameAfterChild->toHtml();
}
}
?>
<?php endforeach; ?>
答案 1 :(得分:0)
要在功能产品列表中的主页上显示可配置样本,请按照以下步骤操作:
为自定义产品列表制作您自己的list.phtml文件 在list.phtml文件中,选择要显示可配置样本的位置,然后粘贴到代码下方:
$_nameAfterChild = $this->getLayout()->getBlock('product_list.swatches'); $_nameAfterChild->setProduct($_product); echo $_nameAfterChild->toHtml();使用以下代码将此文件包含在CMS的主页中:
{{block type="catalog/product_list" column_count="5" category_id="21" template="catalog/product/homepage-list.phtml"}}
在主题代码中的local.xml
文件中代码:
cms_index_index update handle="product_list"/ /cms_index_index