如果产品没有图像,请添加Magento Image Place Holder
-
12-12-2019 - |
题
我有点定制的magento图库,只有现在我发现了在产品不包含图像时没有显示图像。
如果产品没有图像,我如何调用Magento产品图像占位符??
我对magento相当新的,无法弄清楚...
我已将ProductRibbon插件添加到所有图像中,用于客户端,清楚地查看产品是新的还是不...
谢谢,
以下是代码:
<?php
$_product = $this->getProduct();
$_helper = $this->helper('catalog/output');
?>
<?php
if(Mage::getStoreConfig('productribbon/mconnectgeneral/module_enable_disable'))
{ ?>
<link type="text/css" rel="stylesheet" href="<?php echo $this->getSkinUrl('css/mconnect/productribbon/mconnectproductribbon.css');?>" />
<?php
//$_product = Mage::registry('current_product');
$productViewSku = $_product->getSku();
//var_dump($productViewSku);
//exit;
$NowView = time();
$CrntDate = date('Y-m-d', $NowView);
$currntDateintimeView = strtotime($CrntDate);
//get imagepath
$getnewproductsimagenameview = Mage::getStoreConfig('productribbon/mconnectnewproductarrival/new_products_ribbon');
$getbestproductsimagename = Mage::getStoreConfig('productribbon/mconnectbestproduct/best_products_ribbon');
$getsalesproductsimagename = Mage::getStoreConfig('productribbon/mconnectsalesproduct/sales_products_ribbon');
$getreviewproductsimagename = Mage::getStoreConfig('productribbon/mconnectreviewproduct/review_products_ribbon');
//get value yes/no for displayed ribbon
//$getconfigNewproductgeneral = Mage::getStoreConfig('productribbon/mconnectgeneral/display_product_label_on_view');
$getconfigNewproduct = Mage::getStoreConfig('productribbon/mconnectnewproductarrival/display_on_new_product_label_on_view');
$getconfigBestproduct = Mage::getStoreConfig('productribbon/mconnectbestproduct/display_on_best_product_label_on_view');
$getconfigSalesproduct = Mage::getStoreConfig('productribbon/mconnectsalesproduct/display_on_sales_product_label_on_view');
$getconfigReviewedproduct = Mage::getStoreConfig('productribbon/mconnectreviewproduct/display_on_sales_product_label_on_view');
//get days from admin
$adminDayFornewproduct = Mage::getStoreConfig('productribbon/mconnectnewproductarrival/number_for_display_ribbon_new');
$adminDayForBestproduct = Mage::getStoreConfig('productribbon/mconnectbestproduct/number_for_display_ribbon_best');
$adminDayForReviewproduct = Mage::getStoreConfig('productribbon/mconnectreviewproduct/number_for_display_ribbon_review');
//get style from admin for ribbon
$adminStyleNew = Mage::getStoreConfig('productribbon/mconnectnewproductarrival/style_for_logo_new_Ribbon_view');
$adminStyleBest = Mage::getStoreConfig('productribbon/mconnectbestproduct/style_for_best_Ribbon_view');
$adminStyleSales = Mage::getStoreConfig('productribbon/mconnectsalesproduct/style_for_sales_Ribbon_view');
$adminStyleReview = Mage::getStoreConfig('productribbon/mconnectreviewproduct/style_for_review_Ribbon_view');
//get enable/disable value from store config
$getnewproductsRibbon = Mage::getStoreConfig('productribbon/mconnectnewproductarrival/new_products_module_enable_disable');
$getbestproductsRibbon = Mage::getStoreConfig('productribbon/mconnectbestproduct/best_products_module_enable_disable');
$getsalesproductsRibbon = Mage::getStoreConfig('productribbon/mconnectsalesproduct/sales_products_module_enable_disable');
$getreviewproductsRibbon = Mage::getStoreConfig('productribbon/mconnectreviewproduct/review_products_module_enable_disable');
//set position of ribbon
$getpositionforNewproduct = Mage::getStoreConfig('productribbon/mconnectnewproductarrival/position_new_product');
$getpositionforBestproduct = Mage::getStoreConfig('productribbon/mconnectbestproduct/position_best_product');
$getpositionforSalesproduct = Mage::getStoreConfig('productribbon/mconnectsalesproduct/position_sales_product');
$getpositionforMostRiviewedproduct = Mage::getStoreConfig('productribbon/mconnectreviewproduct/position_reviewed_product');
?>
<?php
} ?>
<?php if ($_product->getImage() != 'no_selection' && $_product->getImage()){ ?>
<!-- Place somewhere in the <body> of your page -->
<div id="slider" class="flexslider">
<ul class="slides">
<?php foreach ($this->getGalleryImages() as $_image){ ?>
<li>
<?php if(Mage::getStoreConfig('productribbon/mconnectgeneral/module_enable_disable')){
//get model for new product
if($getnewproductsRibbon == 1 && $getconfigNewproduct ==1){
$NweProductClass = new Mconnect_Productribbon_Block_Productribbon();
$NweProductClass->MediaNewProduct($adminDayFornewproduct,$productViewSku,$currntDateintimeView,$getnewproductsimagenameview,$adminStyleNew,$getpositionforNewproduct);
}
//get model for best seller
if($getbestproductsRibbon == 1 && $getconfigBestproduct == 1){
$BestProductClass = new Mconnect_Productribbon_Block_Productribbon();
$BestProductClass->MediaBestProduct($productViewSku,$adminDayForBestproduct,$currntDateintimeView,$getbestproductsimagename,$adminStyleBest,$getpositionforBestproduct);
}
// special price products
$specialSpricelabel = $_product->getSpecialPrice();
if($getsalesproductsRibbon == 1 && $getconfigSalesproduct == 1){
$SalesProductClass = new Mconnect_Productribbon_Block_Productribbon();
$SalesProductClass->MediaSalesProduct($specialSpricelabel,$getsalesproductsimagename,$adminStyleSales,$getpositionforSalesproduct);
}
//review products
if($getreviewproductsRibbon == 1 && $getconfigReviewedproduct == 1){
$ReviewProductClass = new Mconnect_Productribbon_Block_Productribbon();
$ReviewProductClass->MediaReviewProduct($productViewSku,$adminDayForReviewproduct,$currntDateintimeView,$getreviewproductsimagename,$adminStyleReview,$getpositionforMostRiviewedproduct);
}
} ?>
<img src="<?php echo $this->helper('catalog/image')->init($this->getProduct(), 'image', $_image->getFile()); ?>" alt="<?php echo $this->htmlEscape($_image->getLabel()) ?>" />
</li>
<?php } ?>
</ul>
</div>
<?php if (count($this->getGalleryImages()) > 1) { ?>
<div id="carousel" class="flexslider">
<ul class="slides">
<?php foreach ($this->getGalleryImages() as $_image){ ?>
<li>
<img src="<?php echo $this->helper('catalog/image')->init($this->getProduct(), 'thumbnail', $_image->getFile())->resize(85); ?>" width="56" height="56" alt="<?php echo $this->htmlEscape($_image->getLabel()) ?>" />
</li>
<?php } ?>
<!-- items mirrored twice, total of 12 -->
</ul>
</div>
<?php } ?>
<script type="text/javascript">
jQuery(window).load(function() {
// The slider being synced must be initialized first
jQuery('#carousel').flexslider({
animation: "slide",
controlNav: false,
animationLoop: false,
slideshow: false,
itemWidth: 85,
itemMargin: 15,
asNavFor: '#slider',
mousewheel: true,
});
jQuery('#slider').flexslider({
animation: "slide",
controlNav: false,
animationLoop: false,
slideshow: false,
sync: "#carousel",
lightbox: true,
});
});
</script>
<?php } ?>
. 解决方案
使用产品图像占位符
Magento Go使用临时图像作为占位符,直到可用的永久产品图像。初始占位符图像是Magento Logo,您可以用自己设计的占位符图像替换。
.
Product Image Placeholders
上传产品图像占位符:
- 从管理面板,选择系统>配置..
- 在左侧的配置面板中,在目录下,选择 目录。
- 单击以展开产品图像占位符部分。
- 对于每个图像类型,单击浏览按钮以上传 占位符图片您要用于基础图像,小幅图像, 和缩略图图像。如果您愿意,您可以使用相同的图像 每种类型。
- 完成后,单击“保存配置”按钮。
系统>配置>目录:产品图像占位符
其他提示
嗨,您可以从Mage::getStoreConfig()
函数中获取放置持有者
基础图像: Mage::getStoreConfig("catalog/placeholder/image_placeholder");
small: Mage::getStoreConfig("catalog/placeholder/small_image_placeholder");
缩略图 Mage::getStoreConfig("catalog/placeholder/thumbnail_placeholder");
您需要在之前添加此URL上的目录图像路径
.
Mage::getSingleton('catalog/product_media_config')->getBaseMediaUrl(). '/placeholder/' .
获取小型步伐持有者图像尝试此
.Mage::getSingleton('catalog/product_media_config')->getBaseMediaUrl(). '/placeholder/' .Mage::getStoreConfig("catalog/placeholder/small_image_placeholder");