creationsitemf Posted September 24 Share Posted September 24 Bonjour, j'ai un bug que je n'arrive pas à résoudre j'ai remplacé le bloc d'affichage des caractéristiques dans product-details.tpl en version 8. <section class="product-features"> <dl class="data-sheet"> {foreach from=$product.grouped_features item=feature} <dt class="name">{$feature.name}{$feature.id_feature}</dt> <dd class="value">{$feature.value|escape:'htmlall'|nl2br nofilter}</dd> {/foreach} </dl> </section> par ceci pour afficher une image de caractéristique : <section class="product-features"> <dl class="data-sheet"> {foreach from=$product.grouped_features item=feature} <dt class="name">{$feature.name}</dt> {assign var="icon" value="{$urls.img_ps_url}f/{$feature.id_feature}.jpg"} {if file_exists($icon)} <dd class="value"><img src="{$urls.img_ps_url}f/{$feature.id_feature}.jpg"/>{$feature.id_feature} {$feature.value|escape:'htmlall'|nl2br nofilter}</dd> {else} <dd class="value">{$feature.value|escape:'htmlall'|nl2br nofilter}</dd> {/if} {/foreach} </dl> </section> Je butte sur la fonction file_exists qui ne me donne pas l'image et ne fonctionne pas en version 8, avez-vous une idée, j'ai testé différentes méthodes mais je ne suis pas au point sur cette fonction. Merci Link to comment Share on other sites More sharing options...
TonFairePart Posted October 9 Share Posted October 9 Il semble que le problème puisse provenir d'une mauvaise utilisation des balises de Smarty ou d'une mauvaise gestion des données dans le code. Link to comment Share on other sites More sharing options...
Knowband Plugins Posted October 22 Share Posted October 22 Dans PrestaShop 8, l'utilisation de fonctions PHP comme file_exists directement dans les fichiers de template (.tpl) pose problème en raison de la séparation des préoccupations entre la logique (gérée par le contrôleur) et la présentation (gérée par le template). Smarty, le moteur de templating utilisé dans PrestaShop, ne prend pas en charge l'appel de fonctions PHP comme file_exists nativement dans les templates. Pour résoudre ce problème, vous pouvez déplacer la logique de vérification de l'existence de l'image de la fonctionnalité vers le contrôleur ou une méthode d'assistance, puis passer le résultat au template. Modifiez votre contrôleur de produit (ProductController.php) pour vérifier l'existence des fichiers d'image et passer les informations au template. $product = $this->context->controller->getProduct(); foreach ($product->grouped_features as &$feature) { $feature_image_path = _PS_IMG_DIR_ . 'f/' . $feature['id_feature'] . '.jpg'; $feature['has_image'] = file_exists($feature_image_path); } Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now