在做开发的时候我们有时候需要在后台添加产品分类,这样便于我们产品的管理和分类。在前端为了显示好看我们就可以使用我们上传的图片,显示前端。但是如何正确的获取分类的图片呢?
1.首先我们要获取当前的storeId
。
1 2 3 4 | //获取当前站点的storeId $storeId = Mage::app()->getStore()->getStoreId(); //设置当前的分类站点 $categoriesSub = Mage::getModel('catalog/category')->setStoreId( $storeId )->load($categoryId); |
2.获取分类的对象的图片。
1 2 | //获取分类的图片 $_imgUrl = $categoriesSub ->getImageUrl() |
3.模板phtml里面的代码。
1 2 3 4 5 | <?php if( $_imgUrl = $categoriesSub ->getImageUrl() ): ?> <div class="image"> <img src="<?php echo $_imgUrl; ?>" alt="<?php $this->escapeHtml( $categoriesSub ->getName()) ?>" /> </div> <?php endif; ?> |
注意:如果你在后台产品分类想上传SVG的图片格式,后台则不允许上传。这时解决办法如下。
Magento 1的修改方法:依次打开目录找到文件 magento1\app\code\core\Mage\Catalog\Model\Resource\Product\Attribute\Backend\image.php
1 2 3 4 5 6 7 | $uploader = new Mage_Core_Model_File_Uploader($this->getAttribute()->getName()); //添加svg扩展名即可 //$uploader->setAllowedExtensions(array('jpg', 'jpeg', 'gif', 'png')); //修改如下 $uploader->setAllowedExtensions(array('jpg', 'jpeg', 'gif', 'png','svg')); $uploader->setAllowRenameFiles(true); $uploader->setFilesDispersion(true); |
Magento 2的修改方法:依次打开目录找到文件 magento2\vendor\magento\module-catalog\Model\ResourceModel\Product\Attribute\Backend\Image.php
1 2 3 4 5 6 7 | /** @var $uploader \Magento\MediaStorage\Model\File\Uploader */ $uploader = $this->_fileUploaderFactory->create(['fileId' => $this->getAttribute()->getName()]); //$uploader->setAllowedExtensions(['jpg', 'jpeg', 'gif', 'png']); //上面的一句修改如下 $uploader->setAllowedExtensions(['jpg', 'jpeg', 'gif', 'png','svg']); $uploader->setAllowRenameFiles(true); $uploader->setFilesDispersion(true); |