Jump to content
Sign in to follow this  
dark-spider

[Régler]Plusieurs Catégories "parent"

Recommended Posts

Bonjours a vous Prestashopiennes, Prestashopiens !

 

J'aurais besoin de votre aide si vous le voulez bien,

Je suis webdesigner intégrateurs et surtout habituer a la simplicité de Joomla.

 

On ne m'a dis que du bien de Prestashop mais pour le moment je trouve sa un peu galère :)

Peut-être un manque de module natif ?Bref pour le moment je galère rien qu'avec un menu horizontal, j'ai installer un module pour le faire et je galère a le modifier grâce au css, mais là n'est pas ma détresse ^.^

 

Mon problèmes c'est les catégories dans la colonne de gauche qui est l'équivalent du catalogue.

 

Dans la logique, il me faudrait proposer plusieurs catalogues, ou plusieurs catégories.

 

J'explique :

Dans mon Magasin il y aura par exemple dans mon menu vertical :

Bouton A / Bouton B / Bouton C / Bouton D

 

Au survole de ces boutons, on y vois par exemple

>Bouton A

+ BA - Exemple 1

+ BA - Exemple 2

+ BA - Exemple 3

> Bouton B

+ BB - Exemple 1

+ BB - Exemple 2

+ BB - Exemple 3

 

Mon But c'est que lorsqu'on clic sur "+ BB - Exemple 2" il y est un block a gauche avec comme titre : Bouton A et en dessous tout les exemples (le "+ BB - Exemple 2" ayant un état active pour montrer qu'on est dessus )

 

Voilà ca fais déjà quelques jours que je fais des recherche sur cela mais sans succès.

Commençant Prestashop je travail donc sur la dernières version disponible, ou une 1.3.2.3

 

Es-ce possible ou bien il faut ajouter un module pour faire sa ? ou modifier le code ? Je suis ouvert au pistes :)

 

Merci pour votre aides

 

Note : j'espère avoir poster au bon endroit ;)

 

EDIT DU 07/01/2012

_________________________________________________________

 

La solution trouver : prendre le pack de marty >>>> sur ce poste <<<<<

 

Chaque sous-catégories apparait alors séparément (par contre, fonctionne pas avec la surcharge, il faut donc remplacer le dossier "blockcategories" qui est dans racine/modules pas celui dans racine/theme/ton_theme/modules.

 

Pour injecter du css.. toujours utile =)

On modifie ce même fichier, pour ajouté ce code qui suit dans la page 'category-tree-branch.tpl" premiere ligne remplacez là par :

<li class="item {if $last == 'true'}last {/if}{if $node.id == $currentCategoryId}selected {/if}{if $node.children|@count > 0}hasSubMenu {foreach from=$node.children item=child name=categoryTreeBranch}{if $child.id == $currentCategoryId}cat-parent{/if}{/foreach}{/if}">

Ca permet d'ajouté des classe css, et surtout une class "hassubmenu"

Utilise pour les sous menu de 3ieme niveau :]

 

Voilà, marty l'a a la base fait pour PS 1.3, mais il fonctionne sur 1.4..

 

Note: je remerci encore marty et peha pour la solution combiné

Share this post


Link to post
Share on other sites

Salut,

 

ce que tu décris est relativement natif dans prestashop.

 

par défaut, quand tu cliques sur une sous-catégorie, dans les bloc des catégories, à gauche, prestashop ajoute une classe open à la catégorie principale qui contient la sous catégorie en question et selected au lien de la sous-catégorie dans laquelle tu es

les autres catégories principales portent la class closed

 

il ne te reste plus qu'à jouer avec les css pour masquer les catégories qui ne sont pas open (leurs filles comprises) si tu ne veux pas les voir et mettre en valeur la sous catégorie dans laquelle on se trouve avec les css

 

have swing

Share this post


Link to post
Share on other sites

Bonjour et merci pour la réponse.

 

Le problème c'est qu'ils garde toujours le même titre "CATÉGORIES" alors que je préfèrerais un élément de mon menu et pour reprendre l'exemple : "Bouton B"

Suivis des liens des sous-catégories de cette catégories principal dont un qui aura l'état active.

Mon but étant d'afficher dans le block Gauche des éléments simplifier du coup au lieu d'avoir :

> CATEGORIES

>> Bouton A

>>> BA Exemple 1

>>> BA Exemple 2

>> Bouton B

>>> BB Exemple 1

>>> BB Exemple 2

 

Nous aurons finalement que :

 

> Bouton B (titre du block, qui remplace donc CATÉGORIES)

>> BB - Exemple 1 (lien avec l'ajout auto d'une class "selected")

>> BB - Exemple 2

>> BB - Exemple 3

 

Voilà, j'espère avoir été plus clair dans mes explications.

 

merci.

Share this post


Link to post
Share on other sites

hello,

 

ah oki, alors ça, c'est tout bête, tope le template blockcategories.tpl du module... blockcategories :) et commente ou supprime la partie titre (il est dans un h4)

 

pour le reste tu peux styler ce qui suis à ta guise (les éléments qui s'emboîtent récursivement son dans category_trebranch.tpl)

 

have swing

Share this post


Link to post
Share on other sites

Merci encore pour ta réponse.

 

Pour ce qui est de supprimer le cotenue du h4, ce n'est pas necessaire je peu les faire disparaitre a ma guise si je le souhaite grâce au css. Par contre je ne pense toujours pas avoir été compris lol

 

Encore un exemple pour le fun :)

Pour le moment j'ai :

Catégories

>iPods

--Sous-catégories 1

--Sous-catégories 2

--Sous-catégories 3

>accessoires

>Laptops

 

Le titre h4 limite je peut le cacher, ce qui fait qu'il me reste :

 

>iPods

--Sous-catégories 1

--Sous-catégories 2

--Sous-catégories 3

>accesoires

>Laptops

 

Maintenant, comment faire pour n'afficher uniquement par exemple :

 

>iPods

--Sous-catégories 1

--Sous-catégories 2

--Sous-catégories 3

et cacher Accesoires et Laptops car je ne suis sur aucune de ces pages (non active)

 

Pour le moment la seul idée théorique que j'ai eu, est de reprendre le module menu (fais a la base pour être horizontal), l'adapter pour qu'il soit a la vertical (facile) puis de le dupliquer pour mes divers menu, et enfin les afficher seulement selon les pages... es-que je suis un bon raisonnement ? Car je n'ai pas encore explorer la piste des pages visible ou non.

 

Si vous avez des solution plus simple ca serrais cool ^.^

 

EDIT : J'ai ajouté 2 images de ce que je recherche faire, merci

post-313317-0-36374100-1325540992_thumb.jpg

post-313317-0-69448900-1325540999_thumb.jpg

Share this post


Link to post
Share on other sites

hello, si, si, je t'ai bien compris, c'est pour ça qu'au début je parlais des class open et selected que prestashop utilise pour son tree menu

 

en fait, perso, je ferais ça en ajoutant un peu de js à la feuille tontheme/js/tools/treeManagement.js, celle qu'itilise prestashop pour gérer ce menu de catégorie

 

have swing

Share this post


Link to post
Share on other sites

Hello virtualgadjo,

 

merci de ta réponse, en parcourant le forum j'ai réussi a trouver une alternative : ajouté une class css sur ce poste : http://www.prestasho...eau-uniquement/

 

J'ai aussi modifier le block categorie pour viré le h4. Ca devrais faire mon affaire !

Ensuite je cache uniquement tout sauf ce qui a la class selected grâce au css, bon j'aurai aimer le faire d'une autre manière mais ce n'est pas grave.

 

Merci, je vous tiens au jus ;)

Share this post


Link to post
Share on other sites

Bon je reviens, ca ne marche pas :(

La catégorie parent perd ces class au 3ieme niveau, ce qui serrais bien c'est que peu import le niveau d'imbrication du menu, le parent est une classe genre class="selected parencactive"

Voici ce que j'avais mis et tester aujourd'hui (je n'avais pas essayer avant..)

<li class="item {if $last == 'true'}last {/if}{if $node.id == $currentCategoryId}selected {/if}{if $node.children|@count > 0}hasSubMenu {foreach from=$node.children item=child name=categoryTreeBranch}{if $child.id == $currentCategoryId}cat-parent{/if}{/foreach}{/if}">

Share this post


Link to post
Share on other sites

3ieme post je sais , je sais !!

 

Donc, j'ai édité mon poste plus tot dans la journée (enfin, en fin de journée même lol)

 

J'ai trouver une solution qui me satisfait !

Seul hic c'est que lorsqu'on est dans un produit, le menu disparait !!

J'ai penser que c'été parcequ'on pouvais avoir des produits dans plusieurs catégories, mais pourtant dans mon fil d'ariane, c'est bon (je ne met pas mes produits dans plusieurs catégories)

 

 

Si quelqu'un a une idée ... ca serrais super !

 

merciii d'avance

Share this post


Link to post
Share on other sites

hello,

 

en réfléchissant à ton truc, en fait, le plus simple me paraît être de modifier légèrement le système de templatage du block catégories

actuellement il y a le template blockcategory et le template category-tree-branch, celui ci s'auto appelle récursivement pour former le tree menu

 

l'astuce la plus simple à mon avis est de dupliquer le categorie-tree-branch, l'appeler, disons, recur-tree-branch, à l'intérieur de catégorie tree-branch, la première fois qu'il s'appelle récursivement, appeler recur-tree-branch à la place et faire que l'appel récursif à l'intéreur de recur-tree-branch se fasse vers lui-même

 

une fois ça en place ça te permet de jouer un peu dans catégoriy-tree-branch sans impacter les niveaux inférieurs

- si ta catégorie est la catégorie sélectionnée, tu l'affiche, ça en gros tu as déjà la logique dans le template category-tree-branch là

{if isset($currentCategoryId) && ($node.id == $currentCategoryId)}class="selected"{/if}

il reste à chercher dans la portion de tableau multidimensionnel qui suit si une des filles de la category, en clair, un des sous nodes est la currentcategory et, si ni la catégory elle-même, ni une de ses filles n'est la currentCategory mettre un style="display: none" dans la li et hop le tour est joué

 

pour ça, perso, histoire de ne pas avoir à te lancer dans des foreach récursif, je commencerais par aplatir le tableau $node.children avant de faire un seul foreach

 

tu vas me dire, oui, mais smarty n'a pas de fonction pour aplatir un tableau (php non plus d'ailleurs), yes mais rien de plus simple, fais la fonction ou prends celle que tu trouves dans le manuel php, genre

<?php
function array_flatten($array) {
 if (!is_array($array)) {
   return FALSE;
 }
 $result = array();
 foreach ($array as $key => $value) {
   if (is_array($value)) {
  $result = array_merge($result, array_flatten($value));
   }
   else {
  $result[$key] = $value;
   }
 }
 return $result;
}
?>

et ajoute-là à smarty en lui donnant le nom que tu veux (array_flatten n'est pas mal, clair en tout cas) et le tour est joué

 

have swing

Share this post


Link to post
Share on other sites

Je vais surtout te dire "mince, pourquoi je suis nulle en php au point de ne pouvoir faire ces manip"

je vais voir si je connais pas quelqu'un de plus compétant (que moi) pour mettre ce que tu dis en place ou essayer moi même (mais je crois que ca va pas le faire lol)

 

merci

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
Sign in to follow this  

×
×
  • Create New...

Important Information

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