J'ai tenté de parcourir les produits, pour les mettre en cache via un script batch.
Le but est de réutiliser le mécanisme de cache en faisant abstraction de la complexité. Cela ressemblerait à quelque chose comme ça : (reste à vérifier que le mécanisme de mise en cache est déclenché)
| Code : |
#!/usr/bin/php
<?php
require_once './app/Mage.php';
Mage::app()->setCurrentStore(Mage_Core_Model_App::ADMIN_STORE_ID);
ini_set('display_errors', 1);
ob_implicit_flush(true);
umask(0);
$helper = Mage::helper('catalog/image');
$products = Mage::getModel('catalog/product')->getCollection();
$products->load();
$i = 0;
foreach ($products as $_product) {
#var_dump($_product->getData());
$helper->init($_product, 'thumbnail')->resize(50);
if ($i++ > 1000) {
break;
}
}
|
Le problème de l'approche pour un système générique c'est que la méthode resize() accepte des paramètres configurés dans les blocs de mise en page.
J'ai recensé les blocs suivants pour ma mise en page :
| Code : |
cd /var/www/magento/app/design/frontend/default/mondesign
grep -r "resize(" * > tmpfile
|
Donne les combinaisons suivantes :
'thumbnail' / resize(50)
'thumbnail' / resize(75)
'thumbnail' / resize(70, 70)
'thumbnail' / resize(75, 75)
'small_image' / resize(75)
'small_image' / resize(100, 100)
'small_image' / resize(113)
'small_image' / resize(113, 113)
'small_image' / resize(125)
'small_image' / resize(125, 125)
'small_image' / resize(135)
'small_image' / resize(170)
'image' / resize(300)