Jump to content

3h du mat, je suis crevé..à l'aide : afficher le nom d'une catégorie à partir d'une variable


Recommended Posts

Bonsoir, bonjour :

Je travaille sur un module qui sera afficher en home :
Dans le backoffice du module, j'ai 2 champs dans lesquels on renseigne l'id d'une catégorie, par ex :

- Id cat1: 23
- Id cat2 : 28

Je souhaite donc afficher dans un bloc, le nom de la catégorie à partie de la variable Id cat1.

Une idée ?
merci

++

Link to comment
Share on other sites

Bonjour,

Pour cela, il va te falloir réaliser une requête sur la table Category_lang, 2 conditions : id_catagory et id_lang :

la requête :

"SELECT name FROM "._DB_PREFIX_."category_lang WHERE id_category=".$ton_id_category." AND id_lang=".$cookie->id_lang



le passage de variable au smarty :

$smarty->assign(array(categoryName=>$result['name']));



l'affichage dans le tpl :

{$categoryName}



tu passes ensuite le résultat de la requête au tpl à l'aide de smarty et tu l'affiches.....

Link to comment
Share on other sites

Hello Bvince,
merci pour ta réponse.
Mais je n'y arrive pas...
mon module est basé sur le module editorial : j'ai copié ce module.
Admettons que je veuille afficher le nom de la catégorie 6 dans le bloc edito, à quels endroits j'ajoute les différentes ligne de code ? dans le fichier tpl , php...?

++

Link to comment
Share on other sites

Hello,

J'ai ajouté ce bout de code dans le fichier edito.php :

function test()
       {
       global $smarty;
       $sql = "SELECT name FROM "._DB_PREFIX_."category_lang WHERE id_category=8 AND id_lang=".$cookie->id_lang;
       $smarty->assign(array(categoryName=>$result['name']));

       }



Puis dans edito.tpl : {$categoryName}

Link to comment
Share on other sites

Tu peux utiliser des fonctions existantes dans Prestashop :

$Category = new Category(intval($id_de_ta_cateogrie), intval($cookie->id_lang));
$CategoryName = $Category->name;



avec ça tu renvois dans $CategoryName le nom de la catégorie $id_de_ta_categorie...

Link to comment
Share on other sites

Heeuuuuu, bonjour,

je vient de relire le topic en entier et j'ai l'impression de lire un dialogue de sourds.

kalyrock demande un truc, Bvince répond et kalyrock ne comprend pas, rien de grave, mais ce qui m'intrigue c'est la finalité de ce module.

D'un côté on nous parle d'un bloc dans le premier post mais on diverge vers une copie de module editorial par la suite mais que va donc faire ce module. On attend, on attend et rien, on en apprend pas plus.

Je reste donc persuadé qu'un explication claire des attentes du module serait bien car franchement Bvince a tout expliqué.

Tu utilises une fonction existante pour récupérer le nom de la catégorie et tu l'assigne à ta variable smarty pour l'afficher dans le tpl. C'est pas plus compliquer que cela.

Pour tout ceux qui n'ont pas compris la phrase ci-dessus, et moi même il n'y a pas si longtemps je me serait compté parmi cette population, vous pouvez trouver beaucoup d'explications en français sur le site http://www.smarty.net/manual/fr/

Par contre, bien entendu cette petite boutade pour rappeler qu'il faut de temps en temps lever la tête du code et allez faire un tennis, footing, vélo, vaisselle, ou tout autre activité relaxante, afin de découvrir la solution toute bête que l'on a sous les yeux. L'informatique est un métier extraordinaire, mais qui fait parfois oublier la réalité. Alors à 3h du mat, tu vas te coucher la prochaine fois pour mieux recommencer le lendemain.

Link to comment
Share on other sites

En effet Jeckyl,
Un dialogue de sourd, car kayrock n'a à première vue pas beaucoup de connaissances en matières de codage, donc on rame, mais bon, il ne faut partir dans la modification de code si on ne sais pas passer une variable. Moi, je suis incapable de faire de la plomberie, à chacun son métier. Je trouve très dangereux de modifier une boutique sans connaissances, c'est tout de même un outils qui permet de vendre et de gérer une clientèle, la modification de celle-ci doit être laissée à des personnes en mesures de réaliser les modifications, ce n'est plus un mobylette qu'on modifie dans son garage quand on a 14 ans, là c'est une voiture, donc on ne change pas le carburateur et encore moins la culasse si on n'est pas du métier....

Link to comment
Share on other sites

Hello tout le monde,

Effectivement je ne suis pas de dev, mais rien de grave...
J'observe, je bidouille, je teste, j'apprends et je veux apprendre, mais comme tu le dis Media87 il faut aussi lever la tete du code.

Je vais essayer de décrire mon souhait :
Sur la page d'accueil je souhaite avoir 3 blocs dans mon div central.
Chaque bloc, met en avant 3 catégories : son nom, sa desc et une liste de ses sous cat. Je vous joins une image.

J'ai donc commencé par modifié le module édito pour ajouter dans le BO 3 champs.
Dans ces champs, on peut renseigner l'id de la catégorie que l'on souhaite mettre en avant. L'ajout de champs dans ce module ne me pose pas de pb.
Là où je bloque et ne comprends, c'est pour afficher dans chacun de mes blocs les info de ces catégories à partir de l'id renseigné dans les champs.

Je vais lire les différentes documentations et reviens vers vous.

Merci pour vos réponses !!
ps : je ne suis pas plombier

23975_BGil8sIYdZpbaOm4QsrU_t

Link to comment
Share on other sites

Kalyrock,
le mieux pour t'aider serait que tu fournisses ton ébauche de modification de code, de cette manière, je t'insère ce qu'il te manque...
PS : pour l'histoire du plombier, c'était un exemple car personne ne sait tout faire...

Link to comment
Share on other sites

Hello Vince,

J'ai ajouter un champ dans le module edito (edito.php) en copiant un champ existant, pas sur que le code soit très propre ou juste :

'.$this->l('Homecat1').'


                       <input type="text" name="body_home_cat_1" size="3" value="'.($xml ? stripslashes(htmlspecialchars($xml->body->home_cat_1)) : '').'" />


'.$this->l('Id cat 1').'



merci bien.

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...