在不加载产品的情况下调整产品图片大小

时间:2014-07-31 07:39:16

标签: php magento

关于我的magento主页的糟糕表现(在开始加载资产之前计算4秒)我通过删除我循环中的所有$ _product->加载来优化我的源代码以降低到1秒。 / p>

但我面临另一个问题,我无法以这种方式调用图片:

<img src="<?php echo $this->helper('catalog/image')->init($_product, 'image')->resize(135); ?>" 

所以,我开始调用缩略图

<?php echo Mage::getModel('catalog/product_media_config')->getMediaUrl($_product->getThumbnail()); ?>

但有几点令我烦恼,如果没有找到图片,第二个电话不会获得默认的占位符图片,而更大的问题是,所有magento的产品都只有一个大的res文件,如果我没有为每个产品上传缩略图,则会调用该文件(注意:我有1600多种产品,我希望避免为每个产品手动上传)

所以我有两个选择:让目录/图像助手在不加载产品的情况下工作,或者找到一种方法用高分辨率图片生成所有缩略图(我寻找扩展这样做,但我想我&#39 ;糟糕的googler)

编辑:这是收集电话

$selections_products = Mage::getModel('catalog/product')->getCollection()
->addAttributeToSelect(
    array(
      'name',
      'special_from_date',
      'special_to_date',
      'thumbnail',
      'image',
      'couleur',
      'special_price',
      'url_path',
      'price',
      'format',
      'selection_moment',
      'selection_rouge',
      'selection_blanc',
      'selection_cdc',
      'selection_champagne',
      'selection_exception'
    )
)
->addAttributeToFilter(array(array('attribute'=>'attribute_set_id', 'like' => '4')))
->addAttributeToFilter(
    array(
        array('attribute'=>'selection_moment', 'like' => '1'),
        array('attribute'=>'selection_rouge', 'like' => '1'),
        array('attribute'=>'selection_blanc', 'like' => '1'),
        array('attribute'=>'selection_cdc', 'like' => '1'),
        array('attribute'=>'selection_champagne', 'like' => '1'),
        array('attribute'=>'selection_exception', 'like' => '1')
    )
);
$selections_products->getSelect()->limit(32);

编辑2:关于集合的预告:

<?php $i = 0;
    foreach($selections_products_rouge as $_product): ?>
<?php if($i==0 || $i==4): ?>
<tr>
<?php endif; ?>
    <td>
        <div class="prod-resume">
            <div class="thumb-wrapper">
                <div class="thumb">
                    <div class="pic-holder">
                        <a href="<?php echo $_product->getProductUrl() ?>">
                            <img height="220" src="<?php echo Mage::getModel('catalog/product_media_config')->getMediaUrl($_product->getThumbnail()); ?>"/>
                        </a>
                    </div>
                </div>
            </div>
            <h3 class="title"><?php echo $_product->getName(); ?></h3>
            <div class="type">
            <?php 
            $cats = $_product->getCategoryIds();
            $j = 0;
            foreach ($cats as $category_id) {
                $_cat = Mage::getModel('catalog/category')->load($category_id);
                if($_cat->getLevel() != 2 && $j < 2 && $_cat->getName() != 'Default Category'){
                    echo '<span>'.$_cat->getName().'</span>';
                    $j++;
                }
            }
            $couleur = $_product->getResource()->getAttribute('couleur')->getFrontend()->getValue($_product);
            $format = $_product->getResource()->getAttribute('format')->getFrontend()->getValue($_product);
            echo '<span>'.$couleur.'</span>';
            echo '<span>'.$format.'</span>';
            ?>
            </div>
            <?php echo get_promo_stamp($_product); ?>
            <div class="bottom">
                <?php echo get_product_price_html($_product,$_taxHelper,$_coreHelper); ?>
                <div class="btns">
                    <a href="<?php echo $_product->getProductUrl() ?>" class="prod">Fiche produit</a>
                    <?php if($_product->isSaleable()): ?>
                    <a href="<?php echo $this->helper('checkout/cart')->getAddUrl($_product) ?>" class="basket">Ajouter au panier</a>
                    <?php endif; ?>
                </div>
            </div>
            <a href="<?php echo $_product->getProductUrl() ?>" class="preview btn-popin">Aperçu</a>
        </div>
    </td>
<?php if($i==3 || $i==7): ?>
</tr>
<?php endif; ?>
<?php $i++;endforeach; ?>

0 个答案:

没有答案