Jump to content

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

Link to comment
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)
Link to comment
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)
Link to comment
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.

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

Link to comment
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
Link to comment
Share on other sites

  • 3 weeks later...
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.

Link to comment
Share on other sites

  • 1 month later...
  • 2 months later...

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.

Link to comment
Share on other sites

  • 8 months later...
  • 3 years later...
  • 2 years later...

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.

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