Dans la fiche produit, les caractéristiques sont stockées dans un tableau. Pour afficher une seule caractéristique, il n’est pas possible d’accéder directement à une caractéristique avec son id. Heureusement, Emmanuel a toujours un override sous la main pour répondre à ce besoin.
Dans la fonction initContent de l’override du product controller, créons un nouveau tableau
/* Feature array by id */ $features = $this->product->getFrontFeatures($this->context->language->id); foreach ($features as $key=>$value) { $features_by_key[$value['id_feature']]['name'] = $value['name']; $features_by_key[$value['id_feature']]['value'] = $value['value']; }
puis on l’assigne :
$this->context->smarty->assign(array( 'stock_management' => Configuration::get('PS_STOCK_MANAGEMENT'), 'customizationFields' => ($this->product->customizable) ? $this->product->getCustomizationFields($this->context->language->id) : false, 'accessories' => $this->product->getAccessories($this->context->language->id), 'return_link' => $return_link, 'product' => $this->product, 'product_manufacturer' => $product_manufacturer, 'token' => Tools::getToken(false), 'features' => $features, 'features_by_key' => $features_by_key,
Dans le product.tpl, pour afficher la caractéristque avec l’id 3 :
{if isset($features_by_key.3.value) & $features_by_key.3.value} {$features_by_key.3.name} : {$features_by_key.3.value} {/if}
Vous pouvez télécharger l’override ici et le placer dans /override/controllers/front/ de votre boutique Prestashop