[plugin] catégories mères/filles (suite d'un précédent sujet)

2

Réponses

  • Les commentaires : la ligne 54 , tu peut retirer la ligne entière, ça ne sert à rien :)


    Cordialement,
    gcyrillus

    Mon site PluXml: https://re7net.com | Plugins: https://ressources.pluxopolis.net/banque-plugins/index.php?all_versions | demos sur free http://gcyrillus.free.fr/new | Thèmes: tester et télécharger @ https://pluxthemes.com
    Indiquez [RESOLU] dans le titre de votre question une fois le soucis réglè, Merci

  • cpalocpalo Member
    février 2022 modifié

    Sinon je viens de voir dans ton autre post que tu venais de regarder le plugin plxMySubCategories
    Si tu veux le voir en action ( c'est lui que j'utilisais jusqu'à maintenant) http://creer-son-theme.plugeek.fr/.
    Je vais tester ta modif

  • cpalocpalo Member
    février 2022 modifié

    Avec la modif ça fonctionne presque bien.
    Je viens de remettre une demo https://plusimplexml.fr/

    • Le menu déroulant dans le menu : OK
    • L'affichage des catégories dans la sidebar : pas OK car les catégories enfants ne sont pas sous la catégorie mère
    • si la catégorie enfant est vide, affichage de la liste des catégorie différente
    • et surtout provoque un bug avec l'affichage des archives lorsqu'on clique sur le menu/lien archives
    Notice: Undefined index: ../../plugins/plxMyAllArchive/static in /web5/cahue/www/pluSimpleXml/core/lib/class.plx.show.php(345) : eval()'d code on line 86
    

    Alors que ce bug n'apparait pas lorsque le plugin categories n'est pas installé ( cf http://creer-son-theme.plugeek.fr/

  • février 2022 modifié

    Bizarre,

    • sur mobile http://creer ... me donne l'erreur
    • en https pas d'erreurs.

    Alors que ce bug n'apparait pas lorsque le plugin categories n'est pas installé

    et vice versa . ligne345 est un hook que de nombreux plugins utilisent. Il y a peut-être concurrence. voir si en modifiant l'ordre des plugins a une incidence positive. plx_gc_categorie remplace totalement la fonction native de pluxml avec un return true en fin d'injection du code / hook. *bug similaire déjà évoqué où ce plugin n'est pas filtré/vue . Déjà dans une todolist ;) extrait // TODO : TEST loop sur plugins et hook plxShowStaticListEnd si injection dans le menu statique

    Une catégorie vide ne devrait pas s'afficher. Même sans plugin, , pluxml ne le fait pas.Une mauvaise manip ?
    As tu bien refais une sauvegarde de tes catégories après réactivation du plugin pour remettre à jour categories.xml ?

    L'affichage des catégories dans la sidebar : pas OK car les catégories enfants ne sont pas sous la catégorie mère

    l'affichage se fait en fonction de l'ordre des catégories dans l'admin , c'est une fonction de pluxml que je n'ai pas touché

    Le menu déroulant dans le menu : OK

    en fait sur mobile en portrait, on ne voit pas si il s'ouvre ou pas, mode paysage on le voit s'ouvrir (la je n'ai pas mis de CSS en plus. à voir si c'est la difference de class saticVScategorie ou aussi avec les groupes statiques

    Je regarde tout ça demain ;) il me faut faire une install avec une config qui ressemble à la tienne.

    edit

    Les défauts : message erreur et affichage du sous menu en mode mobile n'apparaissent plus depuis mon téléphone. As tu désactivé un plugin ou fait autre chose ?


    le but de ce plugin est de cloisonner différents type de contenus de façon a ne pouvoir mettre en ligne différent type ou sujet de contenus sans qu'ils se polluent mutuellement. Mon cas : un peu de recette de cuisine et un peu de css , peu de gens sont fans des deux et encore moins en même temps. de fait, si tu entre sur le site coté cuisine, le cote dev ne t'est pas imposé, si tu tombes sur mon site parce-que tu as trouvé un article sur pluxml(3eme mother cat) , tu ne verras que des catégories soeurs et liens vers les derniers articles attachée à la même catégorie mère, tu découvres les autres catégories mère si tu est curieux et continu à naviguer au travers du site.
    ce qui donne par exemple à mon usage personnel:


    la pour le coup un menu déroulant ...

    et le fil d'arianne pour fignoler l'idée d'une sous catégorie

    Je ne suis pas encore convaincue de l'ajout en liste déroulante (mode groupe statique) mais je ne reviendrais pas dessus, c'est une option facilement paramétrable et qui peut suffire en mode full-page.
    Je m'interroge encore s'il il faut réellement voir pour une config menus déroulants en sidebar.

    Je n'ai pas creuser du coté de l'affichage tri en mode archives.


    Cordialement,
    gcyrillus

    Mon site PluXml: https://re7net.com | Plugins: https://ressources.pluxopolis.net/banque-plugins/index.php?all_versions | demos sur free http://gcyrillus.free.fr/new | Thèmes: tester et télécharger @ https://pluxthemes.com
    Indiquez [RESOLU] dans le titre de votre question une fois le soucis réglè, Merci

  • cpalocpalo Member
    février 2022 modifié

    Merci pour toutes ces explications.. je comprends mieux ta démarche.
    De toute façon super travail!
    Il reste dans les plugins que je vais utiliser...exactement de quelle manière, je pense que cela dépendra des sites.
    Pour les bugs, je testerai tes remarques.
    Une catégorie vide ne devrait pas s'afficher. Même sans plugin, , pluxml ne le fait pas.Une mauvaise manip ?
    Si c'est une option que PluXml permet de cocher dans les paramètres/options d'affichage.
    Bonne fin de soirée
    Cordialement

  • Bonjour,
    je te remercie beaucoup pour le temps que tu as consacré à tester le plugin , ainsi que de m'avoir rappeler le besoin de tester un peu plus précisément le mode en cours lorsqu'un autre plugin squatte le mode statique. Je vais ajouter une petite moulinette pour mettre à jour la variable $modeFound en espérant que chacun de ces potentiels plugins utiliseront la même variable pour les débusquer (getParam('url')).

    Une catégorie vide ne devrait pas s'afficher. Même sans plugin, , pluxml ne le fait pas.Une mauvaise manip ?

    Si c'est une option que PluXml permet de cocher dans les paramètres/options d'affichage.

    Oui c'est vrai, je n'y ai pas prêter attention car je n'en ai pas compris l'utilité. (à part à des fins de test en prod ? )

    Bonne journée/W-E


    Cordialement,
    gcyrillus

    Mon site PluXml: https://re7net.com | Plugins: https://ressources.pluxopolis.net/banque-plugins/index.php?all_versions | demos sur free http://gcyrillus.free.fr/new | Thèmes: tester et télécharger @ https://pluxthemes.com
    Indiquez [RESOLU] dans le titre de votre question une fois le soucis réglè, Merci

  • @cpalo, voici une dernière mise à jour qui devrait rendre compatible ce plugin avec des plugins affichant une page en front (mode static)
    Dans ce cas, il n'y a pas de tentative de tri sur les catégorie/tags et derniers articles à afficher.

    Voici le code de la MAJ, ou patch, fait sur le test du mode d'affichage en cours.


    #on recherche le mode dans lequel nous sommes $modeFound='tags';// valeur par défaut arbitraire if($this->plxMotor->mode =='home') {$modeFound='home';}//test optionnel #on recherche si c'est un mode géneré par un plugin foreach($this->plxMotor->plxPlugins->aPlugins as $plugtofind => $arr){ if($this->plxMotor->plxPlugins->aPlugins[$plugtofind]->getParam('url') != null && $this->plxMotor->mode == $this->plxMotor->plxPlugins->aPlugins[$plugtofind]->getParam('url') ) {$modeFound = $this->plxMotor->plxPlugins->aPlugins[$plugtofind]->getParam('url');} if( $this->plxMotor->mode == $plugtofind ) {$modeFound = $plugtofind;} } #on verifie que : ce n'est pas un mode preview ou celui d'un plugin et qu'il ya des catégories sœurs , si conditions validées on peut alimenter le tableau $cat_to_set[] if((!isset($_GET['preview'])) && ($keySearchCount === 1 ) && ($this->plxMotor->mode !==$modeFound )) { if ($this->plxMotor->aCats[$this->plxMotor->cible]['articles'] > 0) { $sister= $this->plxMotor->aCats[ $keySearch[0]]['daughterOf']; $cat_to_set[]=$sister; } } else { $keySearch[]=$mother_Set; }


    Cordialement,
    gcyrillus

    Mon site PluXml: https://re7net.com | Plugins: https://ressources.pluxopolis.net/banque-plugins/index.php?all_versions | demos sur free http://gcyrillus.free.fr/new | Thèmes: tester et télécharger @ https://pluxthemes.com
    Indiquez [RESOLU] dans le titre de votre question une fois le soucis réglè, Merci

  • cpalocpalo Member
    février 2022 modifié

    Bonjour
    C'est OK ( cf https://plusimplexml.fr).
    Il faut penser dans l'administration à "ranger" les catégories filles (5,6,7) sous leur mère(3) si l'on veut qu'elles apparaissent dans cet ordre dans la sidebar.
    Juste un petit bug (et j'ai bien vérifié dans la configuration des catégories) , lorsqu'on clique sur les catégories 1et 4 ou sur les catégories 2 et 9, cela ne provoque pas le même affichage dans la sidebar.
    Je te souhaite un bon we.

  • février 2022 modifié

    bonjour,

    Juste un petit bug (et j'ai bien vérifié dans la configuration des catégories) , lorsqu'on clique sur les catégories 1et 4 ou sur les catégories 2 et 9, cela ne provoque pas le même affichage dans la sidebar.

    En effet, dans un cas, tu navigues dans une catégorie mère(ou fille) et un tri est effectué,
    dans l'autre, tu navigues dans une catégorie, ni mère, ni fille (orpheline) et donc il n'y a pas de tri d'effectué car il n'y a pas de catégorie mère disponible comme référence pour effectué un tri et cloissoner la navigation.
    Ce n'est pas un bug, on rebascule dans l'affichage classique de PluXml comme pour les pages home/preview/statiques ... c'est exactement ce que je voulais que le plugin fasse.

    encore merci de tes retours ;)


    Cordialement,
    gcyrillus

    Mon site PluXml: https://re7net.com | Plugins: https://ressources.pluxopolis.net/banque-plugins/index.php?all_versions | demos sur free http://gcyrillus.free.fr/new | Thèmes: tester et télécharger @ https://pluxthemes.com
    Indiquez [RESOLU] dans le titre de votre question une fois le soucis réglè, Merci

  • mars 2022 modifié

    Bonjour, suite aux différentes remarques de @cpalo , j'ai effectué quelques modifications.

    • On peut choisir d'afficher en permanence toutes les catégories dans la sidebar (tri sur dernier articles toujours fait sur la catégorie parente en cours) Dans ce cas, chaque catégorie mère est divisée en liste indépendantes, au lieu d'une seule.
    • On peut aussi rattaché une catégorie à une catégorie sœur ( plus seulement à une catégorie mère ) , ce qui simule un 3eme niveau dans la hiérarchie des catégories. Ce qui fait : mère>fille>demie-sœur
    • feuille de style site.css modifié avec en commentaire des style pour tester un mode menu déroulant.

    Cette version modifiée provisoire et en test se trouve sur cette branche : https://github.com/gcyrillus/plx-gc-categories/tree/dev-3-niveaux


    Cordialement,
    gcyrillus

    Mon site PluXml: https://re7net.com | Plugins: https://ressources.pluxopolis.net/banque-plugins/index.php?all_versions | demos sur free http://gcyrillus.free.fr/new | Thèmes: tester et télécharger @ https://pluxthemes.com
    Indiquez [RESOLU] dans le titre de votre question une fois le soucis réglè, Merci

  • cpalocpalo Member

    Bonsoir,
    Je teste ceci et te ferait un retour.
    A-priori un souci avec les catégories qui sont vides.
    Dans ce cas, chaque catégorie mère est divisée en liste indépendantes, au lieu d'une seule. Peux-tu préciser?
    Cordialement

  • En effet , je continue à totalement ignoré cette option, ->plus de message d'erreur en principe sur la mise à jour du fichier categories.php

    Pour le liste, dans le thème par défaut, la liste de lien est généré dans une liste(ul). sitôt qu'une nouvelle catégorie mère est trouvé, cette liste est refermée et ré ouverte </ul> /n <ul> . Ce qui donne une liste par catégories mère (et associées qui suivent derrière uniquement), dans aside. Toujours en suivant l'ordre de rangement dans l'admin.
    Cela n'est pas une option perenne car si l'on construit notre liste à partir d'un nav , ol , ou autre balise ou d'un $format sans li, on se retrouve avec des </ul><ul> qui n'ont rien à faire là. (faudrait au moins que je teste la présence d'un li dans $format et à défaut peut-être injecter un hr avec une class ou carrément remplacer cette affichage par celui du menu principal moins les pages statiques).

    cdt


    Cordialement,
    gcyrillus

    Mon site PluXml: https://re7net.com | Plugins: https://ressources.pluxopolis.net/banque-plugins/index.php?all_versions | demos sur free http://gcyrillus.free.fr/new | Thèmes: tester et télécharger @ https://pluxthemes.com
    Indiquez [RESOLU] dans le titre de votre question une fois le soucis réglè, Merci

  • mars 2022 modifié

    Suite à la réflexion du post précédent, Je viens de modifier le hook plxShowStaticListEnd() de façon à utiliser $plxShow->staticList() dans la sidebar et y afficher uniquement les catégories en groupe déroulants.au lieu de <?php $plxShow->catList(); ?>

    de cette façon en insérant le mot clé #no_static

            <ul class=" menu cat-list unstyled-list">            
                <?php $plxShow->staticList('','<li class="#static_class #static_status" id="#static_id"><a href="#static_url" title="#static_name">#static_name</a>#no_static</li>'); ?>
            </ul>
    
    

    Il faut alors au minimum cette base CSS pour repasser ce menu en colonne

    .menu.cat-list  li {
      display:block;
    }
    .menu.cat-list ul {
      position:static;
    }
    

    repo provisoire https://github.com/gcyrillus/plx-gc-categories/tree/dev-3-niveaux


    Cordialement,
    gcyrillus

    Mon site PluXml: https://re7net.com | Plugins: https://ressources.pluxopolis.net/banque-plugins/index.php?all_versions | demos sur free http://gcyrillus.free.fr/new | Thèmes: tester et télécharger @ https://pluxthemes.com
    Indiquez [RESOLU] dans le titre de votre question une fois le soucis réglè, Merci

  • cpalocpalo Member
    novembre 2022 modifié

    Bonjour,
    je réinstalle un PluXml "tout neuf"..
    Lorsque je suis sur la page d'accueil (mode-home), si je clique sur le lien de l'article pour le lire en entier,
    affichage de messages d'rreurs pour toutes les catégories vides:
    Et ce que je choisisse ou non dans les parametres d'afficher les categories sans articles.
    Warning: Undefined array key "0001" in F:\htdocs\dvpts-PluXml-5.8.9\pluTheme\core\lib\class.plx.show.php(345) : eval()'d code on line 91

    Warning: Trying to access array offset on value of type null in F:\htdocs\dvpts-PluXml-5.8.9\pluTheme\core\lib\class.plx.show.php(345) : eval()'d code on line 91

    Warning: Undefined array key 0 in F:\htdocs\dvpts-PluXml-5.8.9\pluTheme\core\lib\class.plx.show.php(1029) : eval()'d code on line 22

    Warning: Undefined array key "" in F:\htdocs\dvpts-PluXml-5.8.9\pluTheme\core\lib\class.plx.show.php(1029) : eval()'d code on line 22

    Warning: Trying to access array offset on value of type null in F:\htdocs\dvpts-PluXml-5.8.9\pluTheme\core\lib\class.plx.show.php(1029) : eval()'d code on line 22

  • Bonjour @cpalo, je regarde ça dans la journée. je t'envoie aussi un mp.

    s'agit-il de la branche master ?
    quelle version de PHP ?

    Cdt


    Cordialement,
    gcyrillus

    Mon site PluXml: https://re7net.com | Plugins: https://ressources.pluxopolis.net/banque-plugins/index.php?all_versions | demos sur free http://gcyrillus.free.fr/new | Thèmes: tester et télécharger @ https://pluxthemes.com
    Indiquez [RESOLU] dans le titre de votre question une fois le soucis réglè, Merci

  • Il n'y a pas d'urgence.
    pluxml 5.8.9 branche master
    php 8.1.6

  • @cpalo Okay, sauf que je n'arrive pas à reproduire les bugs . As tu d'autres plugins installés?


    Cordialement,
    gcyrillus

    Mon site PluXml: https://re7net.com | Plugins: https://ressources.pluxopolis.net/banque-plugins/index.php?all_versions | demos sur free http://gcyrillus.free.fr/new | Thèmes: tester et télécharger @ https://pluxthemes.com
    Indiquez [RESOLU] dans le titre de votre question une fois le soucis réglè, Merci

  • Ce plugin est intéressant, il pourrait être intégré à PluXml de base ?

  • bonjour @kroc , je suis flatté qu'il t’intéresse,
    cependant ...

    • il ne semble pas évident à appréhender et à mettre en œuvre à ce que j'en comprend . Étant celui qui l'a fait, tout me semble bien sur logique et ne manquant pas de fonctionnalité ou des modes de configuration différents. Un besoin de retours, critiques se fait encore bien sentir en fait :)
    • je ne suis pas développeur et le code à surement besoin d'être repris de façon à le simplifier et le pérennisé.J'ai commencé à le coder sans trop savoir dans quoi je m’embarquai, si c’était à refaire, je jetterait probablement un œil à d'autre CMS pour voir comment ils font et m'inspirer de leurs codes et méthodes.
    • PluXml est appelé à évolué assez rapidement. Je regarde les MAJ et attend la version 6.0 pour mieux l'intégrer, je relis aussi le code du plugin de temps en temps en espérant avoir un regard neuf à chaque fois. Sans compétence professionnelle en prog, je ne suis pas réellement capable de juger de la qualité du code.
    • Enfin, le plugin ne créer pas réellement un système de catégorie à plusieurs niveaux, ce ne sont que des "filtres", une apparence. Cela permet aussi de le désactiver sans perdre de catégories.

    Sinon, oui , des catégories sur plusieurs niveau peuvent manquer à PluXml lorsque celui commence à bien grossir et que tag et archives ne suffisent plus.

    Perso, je suis parti dans la création de ce plugin pour faire côtoyer deux types de contenus sur un seul site (quelques recettes de cuisines et quelques trucs sur CSS principalement) de façon à les scinder l'un et l'autre au cours de la navigation dans les articles et catégories, cachant ainsi tout les contenus rattachés à une autre catégories principale. C’était pour moi le premier besoin, ce fonctionnement semble déroutant pour d'autre qui ne s'attendent pas à cette caractéristique (peut-être devrais je inclure/exclure ce comportement dans la config?). Ce plugin n'a pas de limite en nombre de catégories principales et filles, sauf la limite de 999 catégories de Pluxml.

    Cdt,
    GC


    Cordialement,
    gcyrillus

    Mon site PluXml: https://re7net.com | Plugins: https://ressources.pluxopolis.net/banque-plugins/index.php?all_versions | demos sur free http://gcyrillus.free.fr/new | Thèmes: tester et télécharger @ https://pluxthemes.com
    Indiquez [RESOLU] dans le titre de votre question une fois le soucis réglè, Merci

  • Oui, l'aspect "hierarchie" peut-être bien utile, pour faire cohabiter des contenus différent (des sortes de sous-sites) ou plus simplement pour mieux ordonner son contenu. J'ai souvent été confronté à cette difficulté, que j'ai contourné en bidouillant dans le thème avec des "IF" et des "ELSE" :)

  • Bonjour,
    Pour finaliser mon theme, je travaille à nouveau sur l'affichage des catégories dans la sidebar où je souhaite l'utilisation de menu déroulant pour les catégories-mères.
    Et j'utilise aussi site.css dans data/configuration car je fais usage du pluginCss() dans le head.
    J'avoue que je me suis mélangé un peu entre les deux versions.
    https://github.com/gcyrillus/plx-gc-categories/tree/dev-3-niveaux.
    Alors je veux bien un coup de pouce pour redemarrer du bon pied.
    Merci

  • décembre 2022 modifié

    Bonjour, il va falloir que je me remette dedans.

    Pour le moment cette version peut mettre en sous menu (déroulant avec CSS du thème)à partir des catégories mères de premier niveau uniquement. Ce menu squattent l'affichage du menu des pages statique et utilise la catégorie mère comme un groupe en calant toutes ses filles et petites filles dans une sous liste. Elles s'affichent à partir de <?php $plxShow->staticList($plxShow->getLang('HOME'),'<li class="#static_class #static_status" id="#static_id"><a href="#static_url" title="#static_name">#static_name</a></li>'); ?> que l'on trouve plutôt dans la barre de navigation. Pour les afficher avec les pages statiques et beneficier du menu avec une sous liste, il faut dans la page configuration à Afficher au menu les catégories mère et en sous menus les catégories filles. Choisir oui (en effet pas suffisamment clair de quel menu il s'agit).

    La seconde option Afficher dans la sidebar les autres catégories. et en cliquant oui, va au cours de la navigation dans les pages catégories et articles cacher dans la sidebar toutes les catégories qui ne sont pas relier à la categorie mère de l'article ou catégorie à l'affichage (le site est donc scindé au cours de la navigation), en choissisant non, toutes les catégories s'affichent . Notes que toutes les catégories s'affichent dans les pages home, statiques, tags, archives.

    Dans la sidebar, il n'y a pas de liste/sous liste de généré, on en avait parlé il me semble mais je ne suis pas revenu dessus, depuis mars ou avril je crois.

    Le plugin n'a en principe aucun impacte sur le sitemap et les fils RSS ne devraient pas être concernés non plus.

    Si tu avais un croquis d'exemple sur ton nombre de catégorie et structure

    • mère

      • fille
      • fille mère
        • petite fille
        • petite fille
    • mère

      • fille
      • fille
    • mère

      • fille mère
        • petite fille
        • petite fille

      etc... afin que je puisse faire quelques tests
      les décalages sont géré via CSS pour le premier et deuxième niveau, pour le troisième, ce sont deux espaces insécables qui sont insérés.

    tes articles peuvent-ils être reliées à une seule ou plusieurs filles ?

    Cdt

    p.s. pour un système de listes à afficher depuis $plxShow->catList(); je n'ai pas encore creuser voir si c’était faisable et sans créer de nouveaux hook.


    Cordialement,
    gcyrillus

    Mon site PluXml: https://re7net.com | Plugins: https://ressources.pluxopolis.net/banque-plugins/index.php?all_versions | demos sur free http://gcyrillus.free.fr/new | Thèmes: tester et télécharger @ https://pluxthemes.com
    Indiquez [RESOLU] dans le titre de votre question une fois le soucis réglè, Merci

  • décembre 2022 modifié

    re en attendant:
    En fait si , j'avais commencer un truc que tu avais déjà tester.
    J'ai fait une toute petite modif sur le plugin dev-3-niveaux et avec ses styles de bases, tu devrais avoir un semi déroulant (sinon il y avait déjà une autre approche en commentaire dans les styles) :

    .cat-list > [data-mother="1"]:first-child ~li {
      display:none;
    }
    .cat-list:hover > [data-mother="1"]:first-child ~li {
      display:list-item;
    }
    

    Maj faite sur https://github.com/gcyrillus/plx-gc-categories/tree/dev-3-niveaux (categorie.php ligne 355 exclusion de la page home non justifié, et fichier site.css)

    edit, cela reste toujours dans la problématique où si l'on veut construire ces listes de liens avec autre chose qu'un ul, on se retrouve quand même avec des lis en sortie. L'alternative que je te propose aussi créer une liste par catégorie mères et enfin, l'affichage suit l'ordre indiqué dans l'admin(comportement natif)


    Cordialement,
    gcyrillus

    Mon site PluXml: https://re7net.com | Plugins: https://ressources.pluxopolis.net/banque-plugins/index.php?all_versions | demos sur free http://gcyrillus.free.fr/new | Thèmes: tester et télécharger @ https://pluxthemes.com
    Indiquez [RESOLU] dans le titre de votre question une fois le soucis réglè, Merci

  • Je vais re-tester tout ça.
    Ci-dessous un code que j'utilisais en 2015 avec la version 5.4 de PluXml. Il faut que je recherche car il me semble que j'avais réussi à faire un menu deroulant

     <nav role="navigation" aria-label="secondary navigation" id="category-details" class="widget">
    
                <h3 class="widget-title">
                    <?php $plxShow->lang('CATEGORIES'); ?>
                </h3>
    
                <ul>   
                    <?php
                    $menu = array('002','003','004','005','006','007','008','009'); // lister ici les catégories à afficher.
                    foreach($menu as $cat) {
                        $plxShow->catList('','<li id="menu_#cat_id" class="#cat_status catTitle">',$cat);
                        echo "\n";
                        $plxShow->catList('','<span style="font-weight:bold"><a href="#cat_url" title="#cat_name">#cat_name</a></span>',$cat); //affiche le lien vers la catégorie
                        echo "\n";                
                            echo "<ul>\n";
                                $nb_item = 4; // nombre d'articles maxi affichés dans le menu
                                $plxShow->lastArtList('<li class="#art_status"><a href="#art_url" title="#art_title">#art_title</a></li>',$nb_item, $cat);
                                $nb_ArtCat = $plxShow->plxMotor->nbArticles('(?:[0-9]|home|,)*(?:'.$cat.')(?:[0-9]|home|,)*', '[0-9]{3}', '', 'before'); 
                                if($nb_item<$nb_ArtCat){ // si le nombre d'articles de la catégorie est supérieur à $nb_item, on affiche un lien "Voir tous les articles"
                                $plxShow->catList('','<li id="menu_#cat_id"><a href="#cat_url" title="Voir tous les articles de la cat&eacute;gorie #cat_name">Voir tous les articles</a><sup>(#art_nb)</sup></li>',$cat);
                                }else{}
                        echo "\n";
                            echo "</ul>\n";                    
                        echo "</li>\n";
                    }
                    ?> 
                </ul>
    
            </nav>
    
    

    Et j'utilisais aussi ce menu pour y inserer une catégorie avec un menu dropdown ( astuce de Stéphane)

    <ul>
        <?php $plxShow->staticList($plxShow->getLang('HOME'),'<li id="#static_id"><a href="#static_url" class="#static_status" title="#static_name">#static_name</a></li>'); ?>
        <?php
        $idCat = '001';
        if(isset($plxMotor->aCats[$idCat])) {
            if($plxMotor->aCats[$idCat]['menu']=='oui' AND $plxMotor->aCats[$idCat]['active']) {
                $id = 'cat-'.intval($idCat);
                $url = $plxMotor->urlRewrite('?categorie'.intval($idCat).'/'.$plxMotor->aCats[$idCat]['url']);
                $name = plxUtils::strCheck($plxMotor->aCats[$idCat]['name']);
                $active = ($plxShow->catId()==intval($idCat)?'active':'noactive');
                echo '<li id="'.$id.'"><a class="'.$active.'" title="'.$name.'" href="https://domaine.fr/'.$url.'">'.$name.'</a></li>';
            }
        }
        ?>
        <?php $plxShow->pageBlog('<li id="#page_id"><a class="#page_status" href="#page_url" title="#page_name">#page_name</li>'); ?>
    </ul>
    
    
  • tes articles peuvent-ils être reliées à une seule ou plusieurs filles ?

    Oui éventuellement

    L'alternative que je te propose aussi créer une liste par catégorie mères et enfin, l'affichage suit l'ordre indiqué dans l'admin(comportement natif)

    C'est également dans cette direction que je penchais

  • cpalocpalo Member
    décembre 2022 modifié

    Si tu avais un croquis d'exemple sur ton nombre de catégorie et structure

    category-1
    category-2
    category-8
    category-9
    category-3 - mère
        category-5 - fille
        category-6 - fille
        category-7 - fille
    category-4
    category-10 - mère
        category-11 - fille
        category-12 - fille
        category-13 - fille
    
  • Entre deux moments de vie

    Si tu veut un juste un script à insérer dans ton thème je peux te faire ça dès que j'ai un moment à y consacrer.
    Cdt


    Cordialement,
    gcyrillus

    Mon site PluXml: https://re7net.com | Plugins: https://ressources.pluxopolis.net/banque-plugins/index.php?all_versions | demos sur free http://gcyrillus.free.fr/new | Thèmes: tester et télécharger @ https://pluxthemes.com
    Indiquez [RESOLU] dans le titre de votre question une fois le soucis réglè, Merci

  • cpalocpalo Member
    décembre 2022 modifié

    Bonsoir,
    J'ai bien avancé. et bien clarifier ce que je voulais.
    En fait j'ai besoin de menus dropdown sur les catégories , quelles soient "mother" ou "daughter".
    Et pour cela effectivement, je crée un menu catégories qui permet d'avoir

    • un dropdown pour cacher/afficher les catégories "daughter"
    • dropdown pour afficher/cacher éventuellement des article sdans une ou plusieurs catégories ( et c'es tle script ci-dessous que j'ai auparavant utilisé).

    Donc ton plugin m'aide à organiser et visualiser les catégories dans l'administration, et donc d'avoir automatiquement les catégories daughter.
    Et avec les styles data-mother et data-daughter je devrai pouvoir les styliser.

    Ci-dessous le squelette de mon widget-catégories

    <nav class="block-widget widget-categories">
    
                        <h3 class="widget-title">Catégories</h3>
    
                        <ul class="menu">
    
                            <li id="cat-001" class="menu-item has-children">
                                <a class="menu-link" href="... path-to .../category-1" title="Catégorie-1">Catégorie-1</a> (2)
                                <ul class="sub-menu list-posts">
                                    <li id="post-051"class="menu-item"><a class="" href="... path-to.../post-051" title="">Post Title</a></li>
                                    <li id="post-052"class="menu-item"><a class="" href="... path-to.../post-052" title="">Post Title</a></li>
                                </ul>
                            </li>                       
                            <li id="cat-002" class="menu-item"><a class="" href="... path-to.../category-2" title="Catégorie-2">Category-2</a> (5)</li>
                            <li id="cat-008" class="menu-item"><a class="" href="... path-to.../category-8" title="Catégorie-8">Category-8</a> (4)</li>
                            <li id="cat-009" class="menu-item"><a class="" href="... path-to.../category-9" title="Catégorie-9">Category-9</a> (2)</li>
                            <li id="cat-003" class="menu-item has-children mother">
                                <a class="" href="... path-to.../category-3" title="Catégorie-3">Category-3 - mère (14)<span class="dropdown-icon"></span></a>
                                <ul class="sub-menu list-categories daughter">
                                    <li id="cat-005" class="menu-item"><a class="" href="... path-to.../category-5" title="Catégorie-5">Category-5 - fille</a> (7)</li>
                                    <li id="cat-006" class="menu-item"><a class="" href="... path-to.../category-6" title="Catégorie-6">Category-6 - fille</a> (5)</li>
                                    <li id="cat-007" class="menu-item"><a class="" href="... path-to.../category-7" title="Catégorie-7">Category-7 - fille</a> (2)</li>
                                </ul>
                            </li>
                            <li id="cat-004" class="menu-item"><a class="" href="... path-to.../category-4" title="Catégorie-4">Category-4</a> (2)</li>
                            <li id="cat-010" class="menu-item has-children mother">
                                <a class="" href=".../category-10" title="Catégorie-10">Category-10 - mère (9)<span class="dropdown-icon"></span></a>
                                <ul class="sub-menu list-categories daughter">
                                    <li id="cat-011" class="menu-item"><a class="" href="... path-to.../category-11" title="Catégorie-11">Category-11 - fille</a> (2)</li>
                                    <li id="cat-012" class="menu-item"><a class="" href="... path-to../category-12" title="Catégorie-12">Category-12 - fille</a> (3)</li>
                                    <li id="cat-013" class="menu-item"><a class="" href="... path-to../category-13" title="Catégorie-13">Category-13 - fille</a> (4)</li>
                                </ul>
                            </li>   
                        </ul>
    
                    </nav>
    
  • Bonjour,@Cpalo

    voici un premier script qui devrait te monter une structure imbriquée à 3 niveaux

    <h3>
                <?php $plxShow->lang('CATEGORIES'); ?>
            </h3>   
    
            <?php
            if (class_exists('categories')) {
            $lvl1='ul';
            $lvl2='ul';
            $lvl3='ul';
            $title='span';
            $kid='li';
            $mark= 'mark';
                foreach($plxShow->plxMotor->aCats as $k => $ar) {
                    // on recherche les catégories qui ne sont ni fille ni mére
                    if($ar['mother'] =='0' && $ar['daughterOf'] =='000' && $ar['active'] =='1') {
                        $menuCat[$k] =$k;   
                    }
                    // on recherche les catégories uniquement mére
                    if($ar['mother'] =='1' && $ar['active'] =='1') {
                        $menuCat[$k]=$k;
                    }
                    // on recherche les catégories qui  sont  fille et mére
                    if($ar['mother'] =='0' && $ar['daughterOf'] !='000' && $ar['active'] =='1' ) {
                        $bothCat[$ar['daughterOf']][]=array($k=>$k);
                    }
                    // on recherche les catégories qui  sont  fille 
                    if($ar['mother'] =='0' && $ar['daughterOf'] !='000' && $ar['active'] =='1' ) {
                        // fille de 3eme niveau
                        if ($plxShow->plxMotor->aCats[$ar['daughterOf']]['daughterOf'] !='000') {
                        $subsubCat[$ar['daughterOf']][]=$k;
                        }
                        else {
                        // fille de second niveau
                        $subCat[$ar['daughterOf']][]=$k;
                        }
                    }
                }
    
                if($menuCat) {// on a un premier niveau, let's go
                echo '<'.$lvl1.' class="cat-list unstyled-list plx-cat">'.PHP_EOL;
                foreach($menuCat as $order => $category ) {
                    echo '<'.$kid.'>'.PHP_EOL ;                     
                    $plxShow->catList('','<a id="#cat_id" class="#cat_status" data-mother="#cat_mother" data-daughter="#data_daughter"  a href="#cat_url" title="#cat_name">#cat_name</a> '.PHP_EOL, $category);    
                    if (array_key_exists($category,$subCat)) {
                    echo "<$mark></$mark>";
                        echo '<'.$lvl2.' class="cat-list unstyled-list">'.PHP_EOL;
                            foreach($subCat[$category] as $k => $v ){
                            echo '<'.$kid.'>'.PHP_EOL ; 
                            $plxShow->catList('','<a id="#cat_id" class="#cat_status" data-mother="#cat_mother" data-daughter="#data_daughter"  a href="#cat_url" title="#cat_name">#cat_name</a>'.PHP_EOL, $v);
                                if (array_key_exists($v,$subsubCat)) {
                                echo "<$mark></$mark>";
                                    echo '<'.$lvl3.' class="cat-list unstyled-list">';  
                                    foreach($subsubCat[$v] as $ksub => $vsub ){
                                            $plxShow->catList('','<'.$kid.'><a id="#cat_id" class="#cat_status" data-mother="#cat_mother" data-daughter="#data_daughter"  a href="#cat_url" title="#cat_name">#cat_name</a></'.$kid.'>'.PHP_EOL, $vsub);
                                    }
                                    echo "</$lvl3>".PHP_EOL;
                                }
                            echo '</'.$kid.'>'.PHP_EOL ;    
                            }
                        echo "</$lvl2>".PHP_EOL;
                        }
                    echo '</'.$kid.'>'.PHP_EOL;
                    }
                echo "</$lvl1>".PHP_EOL;
                }
            }
                else { // pas de plugin categories activé on repasse en affichage natif
                ?>
                    <ul class="cat-list unstyled-list">
                    <?php
            $plxShow->catList('','<li id="#cat_id" class="#cat_status" data-mother="#cat_mother" data-daughter="#data_daughter"><a href="#cat_url" title="#cat_name">#cat_name</a> <span> (#art_nb)</span></li>'); 
            ?>
                    </ul>
                    <?php
            }
            ?>
    

    avec en CSS de test

    mark {
      display: inline-block;
      background: none;
      float: left;
      rotate: -90deg;
      translate: -100%
    
    }
    mark:before {
      content: '\2b9f';
    }
    .plx-cat ul {
      display: none
    }
    .plx-cat:hover  li:hover > ul {
      display:block
    }
    
    

    Tu peut en principe modifier ta structure sans forcément en passer par des uls / li et désactivé le plugin sans te trouver face à des messages d'erreurs
    A tester car juste fais sur une petite install (version 3 niveaux) sans avoir chasser/creuser pour les bogues.

    Par contre , il n'y a pas de liste d'article rattaché a montrer comme ton exemple. Mais un if dans la boucle pour matcher une catégories ne devrait pas être problématique.

    J'espere que cela te semblera plus flexible.

    cdt


    Cordialement,
    gcyrillus

    Mon site PluXml: https://re7net.com | Plugins: https://ressources.pluxopolis.net/banque-plugins/index.php?all_versions | demos sur free http://gcyrillus.free.fr/new | Thèmes: tester et télécharger @ https://pluxthemes.com
    Indiquez [RESOLU] dans le titre de votre question une fois le soucis réglè, Merci

  • Bonsoir,
    Merci pour ce travail .
    Alors premiers retours...
    L'affichage des catégories se fait par leur numéro de categories au lieu de l'organisation dan s l'admin, donc ne respecte par les sous-categories.
    Si plugin activé et qu'on clique sur une categorie, affiche la categorie mais ne permet pas de revenir au menu.
    Si plugin desactivé, on peut bien passer d'une catégorie à l'autre.
    Dans les deux cas, les articles des catégories sont affichées mais pas de dropdown pour les masquer.
    Et le but était aussi d'avoir un drodown sur la catégorie mère.
    Je cherche juste un niveau mere /fille
    et le second niveau ce sont juste les liens des articles dans une catégorie fille.
    Je termine mes menus et je mettrai un exemple en ligne.

Connectez-vous ou Inscrivez-vous pour répondre.