Jump to content

Variable ou syntaxe permettant de récupérer une catégorie seulement (Top Menu)


Recommended Posts

Bonjour à toutes et à tous,

 

merci à ceux pouvant me venir en aide sur ce petit problème (contourné manuellement en attendant)

 

J'ai un Superfish Top Menu horizontal (modifié par le thème) qui me permet d'afficher comme premier intitulé du menu : mon accueil

puis mes différentes catégories sélectionnées dans le BO du module Superfish Top Menu,

puis en exergue, un intitulé "Contact" qui a pour lien : la page contact de presta.

 

 

J'aurai souhaité garder tous les intitulés à gauche de ce Top Menu, tels qu'ils sont. C'est à dire :

 

Accueil | Catégorie 1 | Cat 2 | Cat X...

 

 

Et modifier uniquement le menu "contact" (qui lui se trouve tout à droite) par une de mes catégories.

 

Le BO du module ne me permet en rien de modifier ce menu "contact".

 

Je suis donc allé dans le template du module et ai trouvé l'extrait de code suivant :

 

[...]

<li class="level0 first homelink">

        <a href="{$base_uri}"><span>{l s='Home' mod='psmodblocktopmenu'}</span></a>
    </li>

     {$MENU}  
     
     <li class="level-top custommenuitem"><a href="{$link->getPageLink(contact, true)}" title="{l s='Contact us' mod='psmodblocktopmenu'}"><span>{l s='Contact us' mod='psmodblocktopmenu'}</span></a></li>

    </ul>

[...]

 

Donc manuellement en attendant, j'ai remplacer la liste "contact" par celle de ma catégorie et de ses sous-catégories.

Mais forcément, lors que je vais ajouter, modifier, ou supprimer ces mêmes sous-catégories, elles ne seront pas prises en compte directement dans le Top Menu, il faudra que j'édite le code du template à chaque fois. Pas pratique.

 

En gros j'ai besoin d'extraire une catégorie seulement de la variable {$MENU} que je n'ai pas réussis à décortiquer.

 

Je me doute juste que cette variable/syntaxe, permet juste d'inclure en liste (<ul> et <li>), mes différentes catégorie et sous-catégories.

 

Comment en sélectionner une seule en connaissant son URL réécrite ou son ID pour l'afficher à la place du menu "contact" ?

 

Y'aurait-il quelque chose à remplacer dans la syntaxe suivante pour se faire :

" $link->getPageLink(contact, true)} "

 

 

Merci d'avance à ceux qui pourront se pencher sur ce petit problème.

 

Cordialement,

Esteban.

Edited by libertysmoke (see edit history)
Link to comment
Share on other sites

Bonjour,

 

J'ai du mal à comprendre ce que vous voulez faire au final.

Pour moi il suffit de supprimer le dernier <li> au il y a initialement l'onglet contact et ensuite il suffit de paramétrer le menu dans l'administration pour faire en sorte que votre catégorie voulue soit positionnée en dernière position.

 

Si c'est du côté de la mise en forme que vous souhaitez quelque chose de particulier, il faudra juste ajouter du CSS sur cet onglet précis.

 

Avec un lien vers le site on serait plus efficace pour vous aider ;)

Link to comment
Share on other sites

Bonsoir Julien64,

 

Merci de vous pencher sur mon problème.

 

Je n'ai pas mis de lien pour ne pas faire de la pub, mais autrement pour voir le menu fonctionnel manuellement, prenez mon pseudo et rajoutez .fr :)

 

En gros mon soucis, n'est pas tant la mise en forme (css) ou l'animation de mon menu (via javascript ou jquery, je ne sais plus sur le moment), mais uniquement de pouvoir appeler, dans mon cas, la catégorie "eliquides" et "déstockage".

En gros, lorsque c'était contact, j'avais uniquement ce code :

<li class="level-top custommenuitem"><a href="{$link->getPageLink(contact, true)}" title="{l s='Contact us' mod='psmodblocktopmenu'}"><span>{l s='Contact us' mod='psmodblocktopmenu'}</span></a></li>

 

 

Maintenant, ne voulant pas de "contact", mais de "déstockage", je ne sais pas comment l'appeler.
Déstockage est une catégorie de ma boutique avec des sous-catégories. Contrairement à "Contact" qui est plus une page CMS avec formulaire, et sans sous-catégorie.

 

Donc pour pallier à mon problème manuellement, j'ai bêtement recopier en <li> le nom de ma catégorie "Déstokage" et toutes ses sous-catégories.

Par contre si je supprimer une sous-catégorie dans le BO presta ou que j'en rajoute une, je suis obligé d'aller faire manuellement la modif aussi sur mon template du menu.

Ce n'est pas évident d'être clair, j'en conviens. Mais merci de vous intéresser à mon cas.

 

Je pense que la solution ne dois pas être très compliqué, mais demande à connaitre certaines variables ou syntaxes de Presta.

 

Ici j'ai donc besoin non pas d'appeler tout mon menu, avec toutes mes catégories donc, avec {$MENU}

 

Mais uniquement de savoir comment récupérer une seule catégorie (avec son ID donc).

 

Merci !

 

Link to comment
Share on other sites

Ou je ne comprends toujours pas ou alors vous ne m'avez pas compris ;)
 

Je pense qu'il suffit que vous enleviez ce que vous avez rajouté "en dur" dans les fichiers du menu et que vous rajoutiez simplement les onglets "eliquides" et "destockage" via l'administration du menu, comme vous l'avez fait pour les catégories "bases" ou arômes" par exemple.

En faisant cette manip' ce n'est pas ce que vous souhaitez?

Link to comment
Share on other sites

Alors oui, effectivement c'est ce que j'avais au départ. Mais dans ce cas on a bien tous les menus à gauche.

 

Il aurait fallu que je puisse décortiquer  {$MENU}  qui contient mon menu personnalisé dans l'admin du module menu, pour pouvoir changer les styles selon mes catégories.

Link to comment
Share on other sites

Ok donc on est bien face à un problème de mise en page plus qu'autre chose...

 

Ce que je vous conseille c'est de paramétrer le menu comme au départ et dans les fichiers du module, au niveau de la boucle qui génère les <li> vous leur affectez à chacun un id avec l'index de la boucle: quelque chose du style: id="menu-principal-1"

Le "1" étant ici obtenu avec l'index de la boucle foreach.

 

J'ai du mal à être clair donc n'hésitez pas à mettre l'extrait de code qui génère le menu ici, je vous expliquerai quoi placer et ou.

 

Une fois cela fait vous pourrez cibler chaque item du menu et donc mettre en forme indépendamment chacun d'eux ;)

Link to comment
Share on other sites

Julien64,

 

Déjà merci, sincérement, de prendre sur ton temps pour essayer de solutionner mon problème.

 

Autrement, voici le code du TPL du module (aucun autre fichier avec ce module):
 

</div>
</div>
</div>

</div>
<div class="clear"></div>   

</div>      
</div>
</div>
</div>

<!-- /MODULE Block cart -->
<div class="container">
    <div class="mobile-menu-toggle" style="display: none;">{l s='Menu' mod='psmodblocktopmenu'} <img src="{$img_dir}toggle.png"></div>
    <div class="box mobile-menu" style="display: none;">
        <div class="box-content">
            <div class="box-category">
                <ul>
                <li>
                <a href="{$base_uri}">{l s='Home' mod='psmodblocktopmenu'}</a>
                </li>
                {if $MobileMENU !=''}
                    {$MobileMENU}  
                {/if}
                </ul>
            </div>
        </div>
    </div>
    <div id="notification"></div>
</div>
                
                
                
                
 <div class="nav-container">
    <div class="right-bg">
    {if $MENU != ''}
    <ul id="nav">

    

    <li class="level0 first homelink">

        <a href="{$base_uri}"><span>{l s='Home' mod='psmodblocktopmenu'}</span></a>
    </li>

     {$MENU}  
     
    <li class="level-top block_li parent li-custom-block">
        {$dedalx.perfec_header_menu_customhtml|html_entity_decode}
    </li>
     <li class="level-top custommenuitem"><a href="{$link->getPageLink(contact, true)}" title="{l s='Contact us' mod='psmodblocktopmenu'}"><span>{l s='Contact us' mod='psmodblocktopmenu'}</span></a></li>

    </ul>
    {/if}
      
    </div>
</div>                
                       

<!-- Menu -->


<script type="text/javascript">

            $(document).ready(function() {
      
                // Image animation
                $(".fade-image, .box-category .menuopen, .box-category .menuclose").live({
                    mouseenter:
                        function()
                    {
                        $(this).stop().fadeTo(300, 0.6);
                    },
                    mouseleave:
                        function()
                    {
                        $(this).stop().fadeTo(300, 1);
                    }
                }
            );
      
                $(".box-category div.menuopen").live('click', function(event) {
    
                    event.preventDefault();
        
                    $('.box-category a + ul').slideUp();
                    $('+ a + ul', this).slideDown();
        
                    $('.box-category ul li div.menuclose').removeClass("menuclose").addClass("menuopen");
                    $(this).removeClass("menuopen").addClass("menuclose");
        
                    $('.box-category ul li a.active').removeClass("active");
                    $('+ a', this).addClass("active");
                });
       
                var mobilemenuOpened = false;
       
                $(".mobile-menu-toggle").live('click', function(event) {

                    if(mobilemenuOpened == false)
                    {
                        $(".mobile-menu").slideDown();
          
                        mobilemenuOpened = true;
                    }
                    else
                    {
                        $(".mobile-menu").slideUp();
          
                        mobilemenuOpened = false;
                    }
                });

   
            });

            </script>
Edited by libertysmoke (see edit history)
Link to comment
Share on other sites

ah autant pour moi ! J'ai vérifié ce matin, en réalité le TPL c'était dans le dossier du module de mon thème, et j'ai oublié de vérifier dans celui de la racine du site.

 

Donc j'ai bien trouvé le fichier .php du module MENU.

 

bon j'avoue, il est bien complet rempli ! :)

 

Je vais donc le déchiffrer un peu, si j'ai un soucis je me permettrai de revenir l'expliquer ici, si au contraire je trouve réponse à mon problème je viendrai poster la solution !

 

Merci encore Julien !

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