Jump to content

[Oops Sujet à déplacer ?] Catégorie active dans une fiche produit pour le module Block Topmenu


Recommended Posts

Bonjour

J'utilise le module Topmenu de Julien Breux, merci à lui.

Je n'ai que des catégories de premier niveau. Lorsqu'on est dans une catégorie, le code

$selected = (((int)Tools::getValue('id_category') == $id_category)) ? ' class="sfHoverForce"' : '';

permet d'appliquer le style adéquat au <li> (au <a> pour moi j'ai un peu modifié) afin de mettre en évidence la catégorie active.

Comment faire en sorte que, étant dans une fiche produit, la catégorie à laquelle appartient le produit soit "activée" ?

Je ne sais pas comment récupérer le id_categoy_current à partir de blocktopmenu.php, cela me donne juste 0 ?

 

Liens (NSFW les amis) :

page catégorie, catégorie active tout est super

page produit, pas de catégorie active... comment faire ?

 

Le code entier :

 private function getCategory($id_category, $id_lang)
 {
global $page_name;
$categorie = new Category($id_category, $id_lang);
if(is_null($categorie->id))
  return;
$selected = (((int)Tools::getValue('id_category') == $id_category)) ? ' class="sfHoverForce"' : '';

$this->_menu .= '<li>';
if(count(explode('.', $categorie->name)) > 1)
  $name = str_replace('.', '', strstr($categorie->name, '.'));
else
  $name = $categorie->name;
$this->_menu .= '<a href="'.$categorie->getLink().'" '.$selected.'>'.$name.'</a>';
$childrens = Category::getChildren($id_category, $id_lang);
if(count($childrens))
{
  $this->_menu .= '<ul>';
  foreach($childrens as $children)
	$this->getCategory($children['id_category'], $id_lang);
  $this->_menu .= '</ul>';
}
$this->_menu .= '</li>';
 }

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