:bug: Je signale un bug :bug:
Version Akeneo : CE 4.0.31
Lors du téléchargement d'un pdf à partir de la page d'enrichissement du produit, il accède à l'URL ci-dessous et affiche une erreur : http://<pimhost>/enrich/product/1018/download-pdf?dataLocale=en_US&dataScope=ecommerce
Impossible to invoke a method ("__toString") on a string variable ("Some value")
in vendor/akeneo/pim-community-dev/src/Akeneo/Pim/Enrichment/Bundle/Resources/views/Product/renderPdf.html.twig (line 118)
Cela arrive parce que pour pim_catalog_simpleselect
et pim_catalog_multiselect
type content
est déjà converti en chaîne dans cette ligne 114 :
{% set content = optionLabels[attribute.code] %}
Un autre problème connexe sur la même page est à la ligne 110 :
Pour le type pim_catalog_image
, le content
est une instance de Akeneo\Pim\Enrichment\Component\Product\Value\MediaValue
qui a la propriété data
mais pas la propriété media
. Mais cette ligne utilise content.media
provoquant une erreur.
Le diff suivant pourrait résoudre le problème pour le moment
diff --git a/src/Akeneo/Pim/Enrichment/Bundle/Resources/views/Product/renderPdf.html.twig b/src/Akeneo/Pim/Enrichment/Bundle/Resources/views/Product/renderPdf.html.twig
index 3730bea3c2b..7576ad0ef82 100644
--- a/src/Akeneo/Pim/Enrichment/Bundle/Resources/views/Product/renderPdf.html.twig
+++ b/src/Akeneo/Pim/Enrichment/Bundle/Resources/views/Product/renderPdf.html.twig
@@ -107,11 +107,12 @@
{% set content = product.getValue(attribute.code, locale_attribute, channel_attribute) %}
{% set manualHeight = true %}
- {% if 'pim_catalog_image' == attribute.type and content.media is not null %}
- {% set content = content.media.originalFilename %}
+ {% if 'pim_catalog_image' == attribute.type and content.data is not null %}
+ {% set content = content.data.originalFilename %}
{% set manualHeight = false %}
{% elseif ('pim_catalog_simpleselect' == attribute.type or 'pim_catalog_multiselect' == attribute.type) and attribute.code in optionLabels|keys %}
{% set content = optionLabels[attribute.code] %}
+ {% set manualHeight = false %}
{% endif %}
{% if content != null and manualHeight == true %}
Bonjour @adhocore ,
Merci d'avoir ouvert ce sujet avec une description aussi précise.
concernant votre premier problème avec __toString
, une solution rapide devrait bientôt être fusionnée en 4.0.x : https://github.com/akeneo/pim-community-dev/pull/12430
Pour le second numéro, je vais essayer de prendre le temps de me pencher dessus au plus vite.
Bonjour,
avez-vous des nouvelles du second numéro ?
Merci beaucoup 🙏
Le correctif pourrait être d'utiliser la fonction twig définie sur l'attribut media comme ceci :
{% if 'pim_catalog_image' == attribute.type and content.media is defined and content.media is not null %}
Désolé de ne pas avoir répondu plus tôt.
J'ai examiné la question et ouvert un PR à ce sujet : https://github.com/akeneo/pim-community-dev/pull/12496
Devrait être bientôt fusionné dans 4.0.x.
Merci beaucoup 👍 💪
n'hésitez pas à fermer ce problème si nous avons une nouvelle version d'akeneo avec les correctifs, merci
Commentaire le plus utile
Désolé de ne pas avoir répondu plus tôt.
J'ai examiné la question et ouvert un PR à ce sujet : https://github.com/akeneo/pim-community-dev/pull/12496
Devrait être bientôt fusionné dans 4.0.x.