Jump to content

afficher une valeur d'un champs avec smarty


Recommended Posts

{$variable} ?

c'est a dire?

 

suite à un autre topic sur la creation d'un nouveau champs dans la table "product" , je cherche deseperemment a ffaicher ce nouveau champs

ça marche dans certain tpl mais pas dans d'autre , je cherche donc une maniere universelle d'affichuer le champs "monchamps" de la table "product "

 

faut il creer une requete quelque part ?

Link to comment
Share on other sites

Je peux pas m'empêcher de répondre, c'est plus fort que moi... :rolleyes:

 

Suivant la page où tu veux l'afficher. Par exemple pour product.tpl ce sera controller/productController.php. Pour category.tpl ou product-list.tpl issu de category.tpl ce sera controller/CategoryController.php etc...

 

Si tu es sur 1.4 tu ajoutes après le code suivant:

public function displayContent()
{

 

Si tu es sur 1.5 tu ajoutes après le code suivant:

public function initContent()
{

 

Tu ajoutes donc:

global $smarty;
$mes_produits=Db::getInstance()->ExecuteS("select * from "._DB_PREFIX_."product");
$smarty->assign('mes_produits',$mes_produits);

 

Et côté TPL le code suivant:

{foreach from=$mes_produits item=$mon_produit}
{$mon_produit.mon_champs}
{/foreach}

 

A noter que sur prestashop 1.5 niveau PHP ce serait plus clean de faire:

$mes_produits=Db::getInstance()->ExecuteS("select * from "._DB_PREFIX_."product");
$this->context->smarty->assign('mes_produits',$mes_produits);

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

merci pour les infos !!! je vais essayer tous cela de suite !! ...

.........

mais j'ai beau exécuter les recommandations mais ça ne fonctionne pas , je n'ai rien qui s'affiche

....

alors je vais faire mon tetu mais je ne vois pas pourquoi ça fonctionne sur product.tpl sans rien modifier

et sur product_list .tpl , il fait faire des modifs

je me base tous simplement sur le champs on_sale qui est identique

si tel est le cas de modifier dans CategoryController.php , ça voudrait dire que le chamsp on_sale s'y trouverait egalement

 

j'essaye de trouver comment on fait pour afficher le champs "on_sale"

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

j'ai peut etre un debut de reponse:

 

j'ai fait un debug {$product|print_r}

 

 

et voila ce qui s'affiche,

au debut j'ai bien on_sale =1 et a la fin j'ai egalement onsale=0 et monchamps =0 alors celui çi est bien a 1 dans ma base:

 

 

Array ( [id_product] => 25 [on_sale] => 1 [out_of_stock] => 2 [available_for_order] => 1 [quantity] => 0
[minimal_quantity] => 1 [id_category_default] => 1 [customizable] => 0 [show_price] => 1 [weight] => 0
[ean13] => [available_later] => message hors stock [description_short] =>description courte [link_rewrite] => refg
[name] => essai [id_image] => 25-588 [legend] => refg [manufacturer_name] => fabricant1 [condition] => new
[id_manufacturer] => 373 [new] => 0 [allow_oosp] => 0 ......
....
[on_sale] => 0 [monchamps] => 0 [id_lang] => 2 [description] =>description_longue
[description_short] =>description courte [link_rewrite] => produit-2 [meta_description] => [meta_keywords] => [meta_title] => [name] => produit 2
[available_now] => [available_later] => [id_image] => 589 [legend] => produit 2 [rate] => 19.600 [category_default] => Accueil [pack_quantity] => 1 ) ) [nopackprice] => 119.6 ) 1

 

 

 

 

alors que je debug ma page product j'obtiens :

Product Object ( [tax_name] => deprecated [tax_rate] => 0 [id_tax_rules_group] => 1 [id_manufacturer] => 373 [id_supplier] => 0 ....... [on_sale] => 1 [online_only] => 1 [monchamps] => 1 ...

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

en regardant le debug , ca veut dire aussi que monchamps est bien la mais il n'interprete pas la valeur

 

 

sur la page product, il n'y a qu'un seul produit affichés,

 

sur la page product-list en général il y a plusieurs produits affichés, d'où le [on_sale] => 1 suivi de [on_sale] => 0

 

 

je ne comprend pas ce que tu veux dire

Link to comment
Share on other sites

Dans tous les cas, la méthode que je t'ai donné fonctionne crois-moi je l'ai déjà utilisé un paquet de fois et elle devrait te donner ce que tu cherches...

 

Le problème est que tu mélanges un peut tout avec les variables objet type $product de la page produit et la "pseudo-variable" $product de product-list.tpl qui un item de la variable $productS.

Link to comment
Share on other sites

1- comme le dit franck, tu mélange un peu tout

2- tu ne précise pas ce que veux... un exemple dans ton message http://www.prestashop.com/forums/index.php?/topic/208975-afficher-une-valeur-dun-champs-avec-smarty/page__view__findpost__p__1033771 tu mets le résultat pour une page product et product-list, mais quel est le problème ? il y en a un qui est "mauvais" ?

Link to comment
Share on other sites

je veux afficher "promo" sur ma fiche produit et dans mes catégories

comme "solde"

c'est pour cela que j'ai creer une nouvelle case a cocher "promo" pour que quand je fais des promos , j'affiche un petit logo PROMO et quand je fais des soldes j'affiche "SOLDE"

 

dans ma page produit , cela s'affiche bien mais pas dans mes categorie , seul solde s'affiche

 

 

il ya plein d'autre exemple ou l'on pourrait ajouter des case a cocher

 

ex: la gestion des nouveaux produit par defaut n'est pas adaptés pour moi , c'est gerer par date alors que quand on ajoute un produit , ça ne veut pas dire que ce produit est nouveau alors qu'une case a cocher dans chaque produit permettrait d'afficher un logo "nouveau"

 

1 case a cocher pour afficher un logo "bonne affaire " ect ect ....

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

alors je viens de verifier une chose

j'ai fait un debug sur {$mes_produits|print_r}

 

et voila le resultat du 1er produit:

Array ( [id_product] => 25 [on_sale] => 1 [out_of_stock] => 2 [available_for_order] => 1 [quantity] => 0 [minimal_quantity] => 1 [id_category_default] => 1 [customizable] => 0 [show_price] => 1 [weight] => 0 [ean13] => [available_later] => message hors stock [description_short] =>description courte
[link_rewrite] => ref [name] => essai [id_image] => 25-588 [legend] => refg [manufacturer_name] => marque [condition] => new [id_manufacturer] => 373 [new] => 0 [allow_oosp] => 0 [id_product_attribute] => 0 [category] => home [link] => [attribute_price] => 0 [price_tax_exc] => 200 [price] => 239.2 [price_without_reduction] => 239.2 [reduction] => 0 [specific_prices] => [features] => Array ( [0] => Array ( [name] => Forme [value] => base mustang [id_feature] => 19 ) [1] => Array ( [name] => Forme [value] => bass mustang [id_feature] => 11 ) ) [attachments] => Array ( ) [pack] => [packItems] => Array ( ) [nopackprice] => 0 )

 

 

par contre , jj'ai un autre produit avec un pack! et la le debug m'affiche la meme chose que ci dessus + le debug du pack!! avec mon champs

 

 

 

 

 

pour ce qui concerne ta question :je l'ai mis dans categorycontroller et dans productcontroller et sur ps1.4

 

 

 

je desepere pas , on va y arriver !!

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

question peut etre deja repondu mais je la pose quand meme :

 

a quel endroit , va t'on chercher les champs de la base de données de la table product ?

si l'on suit le processus , on va bien voir la ou ca coince? non

 

 

car lorsque l'on regarde le debug de {$product|print_r} ,il n'affiche que des chamsp bien particulier car meme

le online_only ne s'affiche pas

 

et je viens de me rendre compte que lorsque je coche cette case "exclu web " , ca ne sa'ffice pas ...

c'est bizarre ..............

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

nouveau rebondissement !!!

 

lorsque je fais une recherche du produit en question (par les 1ere lettres)

ça marche !!!

j'ai bien une liste de produit commençant par les même lettres avec les nouveau champs

 

j'ai donc regardé le tpl search.tpl , il fait appel au product_list

 

donc se differencie entre le searchcontroller et le categorycontroller

Edited by ultraxa (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...