Récemment
-
Edition en masse des déclinaisons
Nouvelles fonctionnalités3 -
Thème possible
Questions relatives à l'installation/upgrade2 -
erreurs cleaner
Discussion générale3 -
PaypalAPI erreur
PhenixSuite2 -
Problèmes de prix avec plusieurs devises et PayPal
PhenixSuite1 -
multiples déclinaisons sur produit [RÉSOLU]
Bugs & Améliorations22 -
Thème enfant
PhenixSuite3 -
ONePageCheckout
BUG connus4 -
Informations générales
PhenixSuite2 -
timepicker absent dans le BO
Bugs & Améliorations11 -
Installation Phenixsuite depuis 1.6.1.24
Questions relatives à l'installation/upgrade4 -
Passage au Webp qui n'a pas fonctionné
Bugs & Améliorations11 -
erreur 500 module paypal
Bugs & Améliorations8 -
probleme page de commande ONE PAGE
Bugs & Améliorations3 -
Traduction module Colissimo en admin
Bugs & Améliorations2 -
Erreur module block_cart en php8.2 mais pas en php7.4
Bugs & Améliorations14 -
Bug page de commande
Bugs & Améliorations4 -
Nouveautés possibles ?
Nouvelles fonctionnalités2 -
bug installation bdd
Questions relatives à l'installation/upgrade26 -
Configuration de wamp compatible presta.1.6.1.24 et PhenixSuite 1.6.2.25
Discussion générale61
Images sur les BL ne s'affichent pas
-
Bonjour,
petite questio, concernant l'affichage des images des produits sur les BL (pdf).J'ai fait un debug directement sur le fichier delivery-slip.product-tab.tpl de l'objet $order_detail dans la boucle. Et le champ 'image' est vide.
Est-ce qu'il faut générer les images d'une manière ou d'une autre? ou sur quelle image se repose le template ?
merci
-
C'est le champ 'image_tag' normalement.
Dans HTMLTemplateDeliverySlip.php si vous n'avez pas d'override:if(Configuration::get('PS_PDF_IMG_DELIVERY')) { foreach($order_details as &$order_detail) { if($order_detail['image'] != null) { $name = 'product_mini_'.(int)$order_detail['product_id'].'_' .(isset($order_detail['product_attribute_id']) ? (int)$order_detail['product_attribute_id'] : 0) .'_'.$this->context->shop->id.'.jpg'; $path = _PS_PROD_IMG_DIR_.$order_detail['image']->getExistingImgPath().'.jpg'; $order_detail['image_tag'] = ImageManager::thumbnail($path, $name, 250, 'jpg', false); if(file_exists(_PS_TMP_IMG_DIR_.$name)) { $order_detail['image_tag'] = preg_replace('/alt=""/', 'width="45" height="45"', $order_detail['image_tag'], 1); } } } unset($order_detail); }
-
le code est identique.
Du coup cela signifie que je n'ai peut-être pas de miniature ?
-
Du coup, vue que j'ai souvent des petits trucs qui déconnent ici et là, est-ce que ce serait pas mieux que je reparte d'une installation fraiche avec phenixSuite ?
Et ensuite, ré-importer les tables et images produits, etc....Et si oui, avez-vous une astuce pour faire ça au mieux? ou un module, etc...
merci d'avance.
-
Non, il faut trouver la cause.
La liste des produits est générée par Order::getProductsDetail() dans laquelle sont assignées les images avec la fonction Order::setProductImageInformations().
A voir si vous n'avez pas de surcharge (override) de la classe Order sur ces fonctions.
Car si aucune image n'est trouvée les miniatures ne peuvent pas être générées.protected function setProductImageInformations(&$product) { if(isset($product['product_attribute_id']) && $product['product_attribute_id']) { $id_image = Db::getInstance()->getValue(' SELECT `image_shop`.id_image FROM `'._DB_PREFIX_.'product_attribute_image` pai '.Shop::addSqlAssociation('image', 'pai', true).' INNER JOIN `'._DB_PREFIX_.'image` i ON(i.`id_image` = pai.`id_image`) WHERE pai.`id_product_attribute` = '.(int)$product['product_attribute_id']. ' ORDER by i.`position` ASC '); } if(!isset($id_image) || !$id_image) { $cover = Product::getCover($product['product_id']); if(isset($cover['id_image'])) $id_image = (int)$cover['id_image']; } $product['image'] = null; $product['image_size'] = null; if(isset($id_image)) { $product['image'] = new Image($id_image); } }
-
Si c'est bien la fonction qui se trouve dans le fichier classes/order/Order.php
il y a une petite différence au niveau de la liaison dans la requete :protected function setProductImageInformations(&$product)
{
if(isset($product['product_attribute_id']) && $product['product_attribute_id']) {
$id_image = Db::getInstance()->getValue('
SELECTimage_shop
.id_image
FROM'._DB_PREFIX_.'product_attribute_image
pai
'.Shop::addSqlAssociation('image', 'pai', true).'
LEFT JOIN'._DB_PREFIX_.'image
i
ON(i.id_image
= pai.id_image
)
WHERE pai.id_product_attribute
= '.(int)$product['product_attribute_id']. '
ORDER by i.position
ASC
');
}if(!isset($id_image) || !$id_image) { $cover = Product::getCover($product['product_id']); if(isset($cover['id_image'])) $id_image = (int)$cover['id_image']; } $product['image'] = null; $product['image_size'] = null; if(isset($id_image)) { $product['image'] = new Image($id_image); } }
Et si les overides sont forcément dans le dossier override à la racine.
La seule chose qui est présente pour le fichier override/classes/order/Order.php, c'est ça :class Order extends OrderCore
{
/*
* module: vosfacturesapp
* date: 2024-01-16 10:48:43
* version: 2.4.14
*/
public function setInvoice($use_existing_payment = false)
{
require_once(PS_MODULE_DIR.'vosfacturesapp/vosfacturesapp.php');
$module = new VosFacturesApp();
if ($module->sendInvoice($this->id, false, true)) {
parent::setInvoice($use_existing_payment);
}
}
}
-
Vous pouvez mettre le INNER (qui force à ne ramener QUE ce qui matche) pour tester.
Si toujours rien il faudra debuguer pas à pas pour trouver à quel endroit ça ne matche pas.
-
j'ai remis exactement comme l'exemple que vous m'avez envoyé, et ça ne change rien. les images ne s'affichent toujours pas.
-
Et en exécutant directement la requête en base de données (en remplaçant '.DB_PREFIX.' par votre préfixe) ?
-
@eolia a dit dans Images sur les BL ne s'affichent pas :
$product['product_attribute_id']
J'ai voulu essayer, mais du coup, je ne sais pas quoi mettre comme valeur pour $product['product_attribute_id'].
Ce champ n'existe pas dans la table product.
-
Pouvez-vous m'envoyer un accès ftp par mail à eolia@eoliashop.com ?
Ca ira plus vite ;)
-
Ok, trouvé et corrigé.
Il y avait un mélange entre les 2 variables de configuration d'affichage des images pour les factures et/ou bon de livraison.
Le correctif sera appliqué dans la 26 (fonctionnel chez vous en attendant).
-
super,
merci bcp