如何在Magento中处理媒体/目录/产品/缓存的缓存

时间:2012-01-17 12:41:18

标签: image caching magento

我想知道如何处理媒体/目录/产品/缓存的缓存我不知道如何制作目录结构。 我的例子是

media\catalog\product\cache

  \1\small_image\120x120\9df78dab3d52sd08dse5fw8d27w36e95

      a\
      b\
      d\
      ...

我不明白如何取缓存中的数字1 接下来如何取哈希键9df78dab3d52sd08dse5fw8d27w36e95 并且多次代替higthxweith(目录)取numberx(目录) 我需要知道所有因为我想制作一个外部CDN并解放以在我的机器中调整图像大小。 THX

1 个答案:

答案 0 :(得分:5)

如果你想了解更多关于那个哈希键的信息,我相信它是在Mage_Catalog_Model_Product_Image类中创建的,在setBaseFile函数的底部,它基本上采用了图像的属性,将它们一起内爆并创建一个哈希。

    // add misk params as a hash
    $miscParams = array(
            ($this->_keepAspectRatio  ? '' : 'non') . 'proportional',
            ($this->_keepFrame        ? '' : 'no')  . 'frame',
            ($this->_keepTransparency ? '' : 'no')  . 'transparency',
            ($this->_constrainOnly ? 'do' : 'not')  . 'constrainonly',
            $this->_rgbToString($this->_backgroundColor),
            'angle' . $this->_angle,
            'quality' . $this->_quality
    );

    // if has watermark add watermark params to hash
    if ($this->getWatermarkFile()) {
        $miscParams[] = $this->getWatermarkFile();
        $miscParams[] = $this->getWatermarkImageOpacity();
        $miscParams[] = $this->getWatermarkPosition();
        $miscParams[] = $this->getWatermarkWidth();
        $miscParams[] = $this->getWatermarkHeigth();
    }

如果您需要自己生成哈希,可以使用相同的步骤。显然,HASH'ing是一个单向过程,因此不可能获取值并找出图像属性。