1

我有一家出售眼镜、服装等的 magento 商店。问题是我希望我的眼镜有 300 像素 X 100 像素的缩略图,而衣服的缩略图是 300 像素 X 300 像素。

我可以想到一些我可能会采取的不同路线,但我不确定每条路线对我商店的可升级性的影响。(目前使用 Magento 1.4.2,因为我对 1.5.x 还没有信心)

路线 1) 为产品添加额外的图像尺寸

所以这条路线我会以某种方式在管理区域为我的产品添加一个额外的图像,每个产品都会有一个眼镜尺寸的拇指和一个服装尺寸的拇指。

路线 2) 根据属性集更改缩略图大小

我会在图像大小调整脚本中添加某种案例语句,以根据产品使用的属性集更改缩略图的大小。

如果有人对如何实现这一点有任何其他想法,将不胜感激!

4

1 回答 1

2

为每种产品(眼镜和衣服)使用不同的属性集对于这类商店来说是一个非常好的主意。但是,您也可以尝试使用提及产品类型的单独属性(在glasses&之间clothing)。

关于图像调整大小,我找到了一个非常易于使用的脚本,其代码如下:-

public function resizeImage($imageName, $width=NULL, $height=NULL, $imagePath=NULL) {
    $imagePath = str_replace("/", DS, $imagePath);
    $imagePathFull = Mage::getBaseDir('media') . DS . $imagePath . DS . $imageName;

    if ($width == NULL && $height == NULL) {
        $width = 100;
        $height = 100;
    }
    $resizePath = $width . 'x' . $height;
    $resizePathFull = Mage::getBaseDir('media') . DS . $imagePath . DS . $resizePath . DS . $imageName;

    if (file_exists($imagePathFull) && !file_exists($resizePathFull)) {
        $imageObj = new Varien_Image($imagePathFull);
        $imageObj->constrainOnly(TRUE);
        $imageObj->keepAspectRatio(TRUE);
        $imageObj->resize($width, $height);
        $imageObj->save($resizePathFull);
    }

    $imagePath = str_replace(DS, "/", $imagePath);
    return Mage::getBaseUrl("media") . $imagePath . "/" . $resizePath . "/" . $imageName;
}

您肯定需要对要提供的不同维度进行一些调整,但它仍然是一段非常好的代码(可在此处获得),它多次拯救了我的背部。

希望能帮助到你。

于 2011-03-04T14:18:56.873 回答