Jump to content
ramirez033

Afficher la category parent dans la page category

Recommended Posts

Bonjour,

 

Dans mon fichier category.tpl j'aimerais que le nom de la category parente soit affichée. J'ai déjà effectué ces modification :

 

-> dans CategoryController.php ajout de :

 

 

$parent = new Category($this->category->id_parent, intval($cookie->id_lang));

self::$smarty->assign('parent',$parent);

 

-> Puis dans category.tpl ajout de :

 

{$parent->name}

 

Cependant cela m'affiche "array", je ne sais pas quoi faire ensuite. Si vous connaissez la solution ou si vous avez une autre technique je suis preneur.

 

Merci

Share this post


Link to post
Share on other sites

Essaies plutôt ça: côté PHP (category controller dans la function process)

global $cookie;
$parent = new Category(Tools::getValue('id_category'), intval($cookie->id_lang));
 $sql=Db::getInstance()->getRow('select * from '._DB_PREFIX_.'category_lang where id_category='.$parent->id_parent);
 self::$smarty->assign('parent',$sql['name']);

 

Côté smarty:

{$parent}

 

Franck

Edited by franckm1000 (see edit history)

Share this post


Link to post
Share on other sites

Bonjour,

je suis aussi intéressé.

J'aimerai en tête de page juste après la balise body obtenir ID de la catégorie et iD du parent le plus haut si il existe.

 

Mon objectif est de configurer un fond de page lié à mes catégories niveau 1 (la plus haute).

 

J'ai regardé la solution de frankm1000, mais je ne trouve même pas dans CategoryController.php la function process.

Merci de votre aide.

Edited by dan3d (see edit history)

Share this post


Link to post
Share on other sites

Si tu veux l'id de la catégorie en cours et l'id parent pas besoin de changer le controller.

Dans category.tpl il te suffit de faire:

{$smarty.get.id_category} pour récupérer l'id de la catégorie en cours

{$category.id_parent} pour récupérer l'id de la cétagorie supérieure

Edited by franckm1000 (see edit history)

Share this post


Link to post
Share on other sites

Ben moi ça marche pas ! :(

 

j'ai essayé la solution proposée

 

mais {$category.id_parent} fait tout buger! la page s’arrête sur cette ligne.

 

Mon objectif est d'avoir en tête de page juste après body la valeur de la catégorie ouverte et la valeur de la catégorie parent la plus haute.

 

POur le moment j'avais déjà l'ID de la catégorie ouverte

 

Dans header.tpl

 

 

{$id_category} et {$category->id} >> ils m'affichent bien le numéro de la catégorie dans tout le catalogue.

Mais peut on avoir aussi le parent , et si il y a parent du parent l'afficher aussi.

 

ma version est la 1.5 de prestashop de base.

Share this post


Link to post
Share on other sites

Oui ! ça marche

 

Mais .... y a toujours un mais

 

moi j'aimerai remonter au plus haut dans les parents

 

exemple

Homme (cat3) > veste (cat25) > rouge(cat32)

 

si je suis sur veste ok, j'ai bien

"je suis dans la catégorie 25 et le parent est 3"

 

Mais si je suis dans veste rouge (rouge est une catégorie)

"je suis dans la catégorie 32 et le parent est 25"

 

Mais moi , j'aimerai savoir que je suis dans homme, la catégorie la plus haute.

 

Mon objectif est d'avoir une tête de page personnalisée.

 

On avance , on avance...

Share this post


Link to post
Share on other sites

Manifestement tu travailles avec la version 1.5 donc dans le fichier categorycontroller tu rajoutes la fonction suivante à la fin (avant la dernière } ):

public function process()
{
 global $cookie;
 $parent = new Category(Tools::getValue('id_category'), intval($cookie->id_lang));
 $listing=$parent->getParentsCategories($cookie->id_lang);
 foreach ($listing as $list)
  {
   if($list['level_depth']==2)
 {
  self::$smarty->assign('parent',$list['name']);
  break;
 }
  }
}

 

Sur category.tpl tu mets {$parent}

 

Normalement, ça doit toujours t'afficher la catégorie la plus haute juste avant l'accueil.

 

Maintenant je te laisse avancer tout seul parce que je pense t'avoir déjà beaucoup aidé...

  • Like 2

Share this post


Link to post
Share on other sites

Super!

 

Ceci marche parfaitement.

Merci de votre aide ;-)

Share this post


Link to post
Share on other sites
Manifestement tu travailles avec la version 1.5 donc dans le fichier categorycontroller tu rajoutes la fonction suivante à la fin (avant la dernière } ):
 public function process() { global $cookie; $parent = new Category(Tools::getValue('id_category'), intval($cookie->id_lang)); $listing=$parent->getParentsCategories($cookie->id_lang); foreach ($listing as $list) { if($list['level_depth']==2) { self::$smarty->assign('parent',$list['name']); break; } } } 

Sur category.tpl tu mets {$parent} Normalement, ça doit toujours t'afficher la catégorie la plus haute juste avant l'accueil. Maintenant je te laisse avancer tout seul parce que je pense t'avoir déjà beaucoup aidé...

 

Merci à vous je peux faire maintenant plusieurs couleurs de catégories sur un site d'un client merci encore.

Share this post


Link to post
Share on other sites

J'aurais une petite question du même genre.

Mais pour récupérer l'url de l'image de la catégorie parente la plus grande.

Et pouvoir récupérer ceci sur les page produits, c'est faisable?

Share this post


Link to post
Share on other sites

Un grand merci franckm1000 pour ta solution, ça m'a bien servi.

J'ai juste changé

self::$smarty->assign('parent',$list['name']);

par

self::$smarty->assign('parent',$list['id_category']);

Pour récupérer l'id parent avant l'accueil plutôt que le nom, plus évident à gérer pour moi.

Share this post


Link to post
Share on other sites

Merci !

 

 

Une question : Quelqu'un sait comment faire la même chose sur la page product ??

 

En d'autres termes comment faire ressortir le $parent dans le productController.php car $parent devient NULL quand j'entre sur la page du produit.

Edited by alexis baron (see edit history)

Share this post


Link to post
Share on other sites

Bonjour, 

De mon côté, j'aimerais récupérer le n°ID de la catégorie en cours pour m'en servir dans mon custom.js (version 1.7.6.2)

(J'ai un menu en accordéon, le but est lors d'un clic sur une catégorie que ça se déroule automatiquement pour afficher les sous catégories).
Voir mon post => 

Je cherche ou placer la ligne suivante

{assign  var=id_cat   value=Tools::getValue('id_category')} 

Visiblement à mettre dans le category.tpl ne fonctionne pas.

Qui le permet via le custum.js de dérouler le menu avec cette ligne => 

window.addEventListener("DOMContentLoaded", (event) => { document.getElementById("category-10").getElementsByClassName("toggle_submenu")[0].click() });

Est ce quelqu'un aurait une idée ? Je suis à deux doigts de réussir.

Share this post


Link to post
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...

Important Information

Cookies ensure the smooth running of our services. Using these, you accept the use of cookies. Learn More