Jump to content

Afficher champ "Emplacement (entrepôt)" dans product-list.tpl


Recommended Posts

Bonjour à tous,

 

Je cherche simplement à afficher le contenu de l'emplacement (entrepôt) d'un produit sur product-list. Par exemple, renseigner "Offre spéciale" et l'afficher à coté du titre du produit dans la catégorie, impossible..

 

Afin de voir s'il apparaissait quelque chose, j'ai simplement essayé de rajouter dans le fichier product-list.tpl :

 

{if $product.location}<p>{$product.location}</p>{/if}

 

Rien n'y fait.

 

Une âme charitable peut-elle me venir en aide ??? ^^

 

Merci d'avance !

Link to comment
Share on other sites

Bonjour, dans le fichier php qui appel product-list.tpl il faut que tu aille ajouter une entré au $smarty, un truc du genre

$smarty->assign(array('Nom Voulu en TPL' => $variable,'location' => $product->location));

 

par exemple dans cette exemple, il faudrait juste indiquer {$location}

 

De toute façon en ouvrant le php en question, le smarty sera déjà là tu aura juste a ajouter ton entré

Link to comment
Share on other sites

Merci beaucoup de ta réponse Raph59 !

 

Quand tu dis "Nom Voulu en TPL" ? Qu'entends-tu par là ?

 

Dans mon cas concret, j'ai déjà des entrées comme celle-ci dans le CategoryController.php à la ligne

 public function productListAssign() 

 

Est-ce cette ligne qui appele Product-list ?

 

Je dois donc y ajouter ensuite :

 $smarty->assign(array('$location' => $variable,'location' => $product.location)); 

?

 

 

Merci d'avance de ta réponse Raph59 :)

 

----------------------------------------------------------------------------------------------------------------------------------

 

EDIT 1 : J'ai ajouté le code conseillé, ça ne fonctionne pas.

 

J'ai ajouté directement dans le product-list.tpl :

 {if $product.location}<p class="infos_speciale">{$product.location}</p>{/if} 

 

Ca fonctionne pour les produits affichés lorsque je fais une recherche de produit sur la boutique, mais dans la liste des produits de la catégorie, ça ne s'affiche pas.

 

Une idée ??

Edited by presta'luv (see edit history)
Link to comment
Share on other sites

Est-ce cette ligne qui appele Product-list ?

Aucune ligne n'est appelée pour product-list.tpl. Le fichier CategoryController.php envoie des variables dans category.tpl. Mais product-list est un fichier particulier que l'on peut utiliser en envoyant une variable dedans. Par exemple, depuis category.tpl:

{include file="$tpl_dir./product-list.tpl" products=$products}

On envoie la variable $products de category.tpl dans product-list.tpl.

 

Mais je ne vois pas où est le problème pour afficher l'entrepôt, il n'y a aucun besoin d'envoyer des infos par smarty.

 

La variable $products est issue donc du CategoryController.php. Cette variable est crée grâce à la méthode getProducts() de la classe Category.php et cette méthode appelle TOUS les champs de la table product y compris bien sûr location.

 

L'appel {$product.location} doit fonctionner (je l'ai testé).

 

La seule contrainte étant bien sûr que cette variable soit appelée ENTRE

{foreach from=$products item=product name=products}
...
{/foreach}

 

Car la variable $product n'existe pas réellement dans product-list.tpl, la variable c'est le tableau $products et le foreach permet de lister chaque ligne de cette variable via $product.

Edited by franckm1000 (see edit history)
Link to comment
Share on other sites

Merci franckm1000 de ta réponse.

 

J'ai ajouté la variable directement dans le product-list.tpl entre {foreach} {/foreach}

 {if $product.location}<p class="infos_speciale">{$product.location}</p>{/if} 

 

Ca fonctionne pour les produits affichés lorsque je fais une recherche de produit sur la boutique, mais dans la liste des produits de la catégorie, ça ne s'affiche pas.

 

Une idée ??

Link to comment
Share on other sites

Mets {debug} dans ton fichier product-list.tpl et ouvres une catégorie.

 

Une fenêtre pop-up doit s'afficher avec la liste de toutes la variables. Fait une recherche dans cette fenêtre (CTRL+F) pour rechercher 'location'.

Location doit apparaître plusieurs fois dans la variable $products.

 

Quelle version de prestashop tu utilises ?

 

Ca doit fonctionner (je viens de tester). Soit tu as changé des trucs dans le Controller ?

Link to comment
Share on other sites

Non mais tu fais une confusion entre product et productS.

 

La variable $product n'existe pas. Elle existe uniquement par rapport au foreach et à l'item. La variable c'est from et c'est $products.

{foreach from=$products item=product name=products}

 

Donc sur ton debug, tu as bien une variable $products et celle-ci n'inclue pas location dedans ?

 

Répète: QUELLE VERSION DE PRESTASHOP ?

 

Tu n'as pas ajouté ce code:

$smarty->assign(array('$location' => $variable,'location' => $product.location));

Quelque part ?

Edited by franckm1000 (see edit history)
Link to comment
Share on other sites

Autant pour moi j'ai oublié le "S" à $products dans ma réponse. C'est correctement orthographié dans mes tpl.

J'ai essayé avec {debug}, et je confirme, la variable 'location' n'est présente que dans $scenes et non pas dans $products.

 

Je répète également : (Version 1.4.7.0 de Prestashop) ^^

 

Pour le code que tu me donnes, dans quel fichier dois-je l'ajouter ? CategoryController.php ? Après la ligne

 public function productListAssign() 

?

 

Merci à toi.

Link to comment
Share on other sites

Non il ne faut l'ajouter nulle part ce code. Il ne sert à rien et est erroné. Côté PHP $product.location n'existe pas.

 

Alors dans le fichier scenes.tpl, après:

{foreach from=$scene->products key='product_key' item='product'}
  {assign var=imageIds value=`$product.id_product`-`$product.id_image`}

 

Ajoutes $product.location

 

Quel est le résultat ?

Link to comment
Share on other sites

Merci de ta réponse.

 

J'ai procédé comme tu me l'a demandé, le champ Emplacement ne s'affiche toujours pas dans la liste de produits de la catégorie.

 

EDIT 1 : J'ai donc ce code dans scenes.tpl

 {assign var=imageIds value="`$product.id_product`-`$product.id_image`-`$product.location`"} 

 

Et même avec le {debug} je n'ai toujours pas de 'location' dans $products mais ils ne sont que dans $scenes.

 

EDIT 2 : Le champ "Emplacement" s'affiche dans les résultats d'une recherche de produits (qui n'as pas de scènes) mais ne s'affiche pas dans la catégorie elle-même..

 

Cela viendrait-il des scènes ?

Edited by presta'luv (see edit history)
Link to comment
Share on other sites

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 account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...