Questions sur le fonctionnement "Classe d'en-tête/titre" des modules

Réduire
Ce sujet est fermé.
X
X
 
  • Filtrer
  • Heure
  • Afficher
Tout effacer
nouveaux messages

  • [RÉGLÉ] Questions sur le fonctionnement "Classe d'en-tête/titre" des modules

    Bonjour,

    je n'arrive pas à comprendre comment fonctionne cet attribut "Classe d'en-tête/titre" dans J3.x.
    Je pensais que c'était comme pour les suffixe de classes de module mais qu'ils agissaient uniquement sur le titre (souvent en H3) du module en question mais quand je mets le nom d'une classe CSS existante dans cette zone de texte rien ne change et rien n'apparaît non plus dans le code de ma page.

    Un petit éclaircissement serait le bienvenu.

    Merci à vous,
    Bruov99

  • #2
    Re : Questions sur le fonctionnement "Classe d'en-tête/titre" des modules

    Bonjour Brunov99,

    Le rendu des modules dépend de leur style.

    L'assignation du style au module est défini :
    • Par défaut dans le template (habituellement dans index.php). Par exemple, <jdoc:include type="modules" name="position-8" style="xhtml" /> indiquera que les modules de la position "position-8" auront par défaut le style "xhtml".
    • Par paramétrage, pour chaque module dans Paramètres avancés >> Style du module. "Hérité" indique le style par défaut du template.

    Selon le style sélectionné, les paramètres du module pourront être utilisés ou non. Les styles des modules sont codés de base dans templates/system/html/modules.php et complétés par ceux des templates dans templates/nom_du_template/html/modules.php
    La classe en-tête/titre est utilisée dans le code du style "html5" mais pas dans la plupart des autres styles.

    En résumé, pour se servir du paramètre "Classe d'en-tête/titre", il faut que le "Style du module" sélectionné soit capable de l'utiliser. C'est le cas par exemple pour "html5".

    Amicalement,
    Rajoz

    Commentaire


    • #3
      Re : Questions sur le fonctionnement &quot;Classe d'en-tête/titre&quot; des modules

      Merci Rajoz,

      C'est clair sur ce point.

      Mais comment faire, alors que j'ai déjà un override de mon module, si je veux que tous les H3 soit par exemple en vert (d'où l'override) et que sur certains modules seulement, ces H3 soient en bleu. Pour les modules de type custom ça va, mais pour les autres ?

      Merci pour vos suggestions.
      Brunov99

      Commentaire


      • #4
        Re : Questions sur le fonctionnement &quot;Classe d'en-tête/titre&quot; des modules

        Bonjour Brunov99,

        Quelques questions pour être sur de comprendre le problème :
        • De quel template s'agit-il ?
        • Quel override a déjà été fait sur le module ?
        • De quel module s'agit-il ?
        • Quel est le style appliqué à ce module ?
        • De quels h3 s'agit-il (titre du module, tous ceux du module, etc.) ?
        • Quel est le critère qui fait la différence (utilisation, position, assignation de menu, etc.) entre un module avec h3 en vert et h3 en bleu ?
        • Un même module peut-il être une fois en vert et une autre fois en bleu en fonction du critère utilisé ou s'agit-il de modules différents ?

        Comme pour tout ce qui est visuel, un lien sur le site permettrait de voir le problème donc de répondre de façon plus adaptée.

        Amicalement,
        Rajoz

        Commentaire


        • #5
          Re : Questions sur le fonctionnement &quot;Classe d'en-tête/titre&quot; des modules

          Woouh Rajoz,
          ça en fait des questions...

          Je vais essayer d'être plus explicite. En liminaire je précise que le CSS m'est assez familier en revanche je ne suis pas toujours très à l'aise avec le PHP, même si j'arrive à faire quelques "bricoles".

          J'utilise un template commercial (jm_creatrix) basé sur le Framework Helix de JoomShaper.
          Ce template comprend des overrides et j'en ai fait d'autres (content, custom, user, article, contact...).
          Les modifications que je veux apporter sont ponctuelles et portent sur le titre (souvent H3 par défaut) de n'importe quel module. (donc sur le titre du module seulement, les titres des contenus je les gère en CSS).

          C'est pour cela que je pensais utiliser l'attribut "Classe d'en-tête/titre" de la même façon qu'on utilise "suffixe de classes" pour le module, imaginant que le nom que je saisirai dans la zone de texte serait ajouté comme classe CSS au titre seulement. Cette classe étant définie dans un fichier CSS je n'avais plus de problème pour gérer mes styles.
          Mais ça ne semble pas fonctionner comme cela, d'où la question dans le titre de ce post.

          Sur les modules de type "custom", la solution est facile car il suffit que je n'affiche pas le titre et j'en ajoute un dans le contenu avec sa classe CSS.

          Exemple, je veux que les titres de certains modules de ma page d'accueil soient en vert et d'autres en orange (je sais! mais le client et moi on n'a pas les mêmes goûts du tout). Donc j'aurais aimé pouvoir ajouter un nom de classe .vert ou .orange selon mes besoins (la logique serait sémantique et non structurelle, donc pas possible d'utiliser un outil du genre Advanced Module Manager) sachant que pour l'exemple la couleur par défaut est le gris. Donc des fois, le module peut être vert et des fois orange.

          Mais une idée me vient, peut-on faire plusieurs override d'un même élément ? Auquel cas, il suffirai de choisir type 1 ou type 2 ? Dans ce cas comment je fais...

          J'espère avoir été clair
          Site en cours de dev http://www.cbienici.net/isoris

          Merci encore,
          Brunov99

          Commentaire


          • #6
            Re : Questions sur le fonctionnement &quot;Classe d'en-tête/titre&quot; des modules

            Bonjour brunov99,

            C'est vrai que ça faisait beaucoup de questions
            mais c'était nécessaire pour essayer de comprendre en détail ton besoin.

            C'est pour cela que je pensais utiliser l'attribut "Classe d'en-tête/titre" de la même façon qu'on utilise "suffixe de classes" pour le module, imaginant que le nom que je saisirai dans la zone de texte serait ajouté comme classe CSS au titre seulement. Cette classe étant définie dans un fichier CSS je n'avais plus de problème pour gérer mes styles. Mais ça ne semble pas fonctionner comme cela, d'où la question dans le titre de ce post.
            Réponse : Comme je l'ai indiqué précédemment, l'attribut "Classe d'en-tête/titre" marche mais il dépend du style du module.

            Par exemple, pour un module publié en position-7 du template Protostar et dont l'attribut Classe d'en-tête/titre est couleur-titre, en fonction du choix fait pour le style du module on a les résultats suivants :
            1. Style du module = System/xhtml
              Résultat : <h3>Titre du module</h3>
            2. Style du module = System/html5
              Résultat : <h3 class="couleur-titre">Titre du module</h3>
            3. Style du module = Hérité (Protostar applique par défaut le style Well en position-7)
              Résultat : <h3 class="page-header">Titre du module</h3>

            La classe couleur-titre n'est appliquée que dans le cas 2 avec un style System/html5

            Si tu peux utiliser le style System/html5, le problème est résolu. Mais je pense que System/html5 va casser le style hérité de ton template. La solution est alors de modifier le code dans le fichier templates/jm_creatrix/html/modules.php

            On peut créer ou modifier les styles des modules, cela s'appelle Module Chrome, pour la documentation voir :
            Il faut juste un peu de PHP avec deux possibilités :
            • Soit créer des styles différents avec pour l'un le titre en h3 en orange, pour l'autre en vert, etc. Le choix de la couleur se fera alors par le paramètre "Style du module"
            • Soit créer ou modifier un seul style pour lui permettre d'utiliser le paramètre "Classe d'en-tête/titre". Le choix se fera alors en sélectionnant ce style dans "Style du module" et en choisissant la classe du titre en h3 dans "Classe d'en-tête/titre".

            Je n'ai pas accès au template JM Creatrix puisqu'il est payant. Je ne peux donc pas donner d'exemple précis du code correspondant au template.

            Pour l'exemple du style System/html5, le code se trouve dans templates/system/html/modules.php, regarde dans la fonction modChrome_html5 pour trouver à partir de la ligne 30 l'utilisation du paramètre 'header_class' qui correspond à "Classe d'en-tête/titre".

            Amicalement,
            Rajoz

            Commentaire


            • #7
              Re : Questions sur le fonctionnement &quot;Classe d'en-tête/titre&quot; des modules

              Bonsoir Rajoz,

              Supers explications. J'ai quasi tout compris.

              Ok, je vais aller faire un tour du côté de module.php de mon template et voir ce que je peux faire.

              Merci beaucoup.
              Brunov99

              Commentaire

              Annonce

              Réduire
              Aucune annonce pour le moment.

              Partenaire de l'association

              Réduire

              Hébergeur Web PlanetHoster
              Travaille ...
              X