关于我的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; ?>