Remplacement du tag de titre des modules : ne marche pas

Réduire
X
 
  • Filtrer
  • Heure
  • Afficher
Tout effacer
nouveaux messages

  • Remplacement du tag de titre des modules : ne marche pas

    Bonjour,

    Dans Joomla 3 il y a une option intéressante dans l'option "paramètres avancés" des modules : "
    Tag d'en-tête/titre". Quand je change l'option par défaut <h3> par <p>, il me met toujours un <h3> et ce, quelque-soit le module.

    Je suis sur une 3.3.1 mais ça le fait aussi avec les anciennes version. Comment résoudre ce problème ? C'est important pour le référencement car un titre de module en h3 n'est pas forcément utile/pertinent.

  • #2
    Re : Remplacement du tag de titre des modules : ne marche pas

    Bonne question que je me posais aussi,
    je vais suivre cet échange ;-)
    Solidaire avec les dinosaures

    Commentaire


    • #3
      Re : Remplacement du tag de titre des modules : ne marche pas

      Bonjour makina-galaxy,

      Le style des module (qui gère entre autres la balise du titre) est sélectionné dans les paramètres avancés du module par Style du module.

      Par défaut c'est "Hérité" qui indique qu'il faut utiliser le style par défaut défini par le template pour la position du module.

      Si le style défini par le template utilisé ne sait pas gérer la balise d'en-tête/titre il est possible d'utiliser le style d'un autre template. La liste déroulante du paramètre Style du module affiche les différents templates et les styles qu'ils définissent.

      Un style de module qui sait gérer le tag d'en-tête/titre c'est html5 (de System).

      Cette méthode remplace le style du template par le style html5. Cela peut être gênant si ce style html5 ne correspond pas à celui général du template (couleurs, polices, bordures, etc.). Dans ce cas, la solution c'est de modifier le fichier templates/nomdutemplate/html/modules.php du template utilisé pour qu'il gère la balise du titre.

      Amicalement,
      Rajoz

      Commentaire


      • #4
        Re : Remplacement du tag de titre des modules : ne marche pas

        Merci pour ces explications, j'y vois déjà un peu plus clair !

        J'ai modifié le fichier templates/nomdutemplate/html/modules.php en remplaçant le h3 par une div, ça ne marche pas

        J'ai testé avec le style HTML5. Ça marche mais ça ne me convient pas : on ne peut pas choisir de remplacer le h3 par une div et on ne peut pas mettre de class sur l'élément (dans le cas d'un <p> s'il y en a plusieurs dans le module on peut cibler le 1er <p> du module en css mais je préfère éviter ça par sécurité).

        Merci

        Commentaire


        • #5
          Re : Remplacement du tag de titre des modules : ne marche pas

          Bonjour makina-galaxy,

          J'ai modifié le fichier templates/nomdutemplate/html/modules.php en remplaçant le h3 par une div, ça ne marche pas
          Sans connaître ni le template, ni la position du module, ni le style du module, ni la modification qui a été faite, ni ce qui ne marche pas et en plus sans avoir de boule de cristal, je ne vois pas comment je pourrais aider.
          De plus quand il s'agit d'un problème d'affichage, un lien sur le site serait utile.

          J'ai testé avec le style HTML5. Ça marche mais ça ne me convient pas : on ne peut pas choisir de remplacer le h3 par une div ...
          Les paramètres standards des modules ne permettent pas de choisir une balise div mais seulement h1 à h6 et p. Si une balise div est indispensable, il faut modifier le fichier modules.php du template (la modification du core de Joomla! n'est pas recommandée).

          ... et on ne peut pas mettre de class sur l'élément (dans le cas d'un <p> s'il y en a plusieurs dans le module on peut cibler le 1er <p> du module en css mais je préfère éviter ça par sécurité).
          Le style html5 sait gérer une classe sur la balise du titre par le paramètre Classe d'en-tête/titre.

          Amicalement,
          Rajoz

          Commentaire


          • #6
            Re : Remplacement du tag de titre des modules : ne marche pas

            Envoyé par Rajoz Voir le message
            Bonjour makina-galaxy,


            Sans connaître ni le template, ni la position du module, ni le style du module, ni la modification qui a été faite, ni ce qui ne marche pas et en plus sans avoir de boule de cristal, je ne vois pas comment je pourrais aider.
            De plus quand il s'agit d'un problème d'affichage, un lien sur le site serait utile.


            Les paramètres standards des modules ne permettent pas de choisir une balise div mais seulement h1 à h6 et p. Si une balise div est indispensable, il faut modifier le fichier modules.php du template (la modification du core de Joomla! n'est pas recommandée).


            Le style html5 sait gérer une classe sur la balise du titre par le paramètre Classe d'en-tête/titre.

            Amicalement,
            Rajoz
            +1 j irais meme plus loin en disant que ces paramètres sont utilisables avec beez 3 ou protostar, mais pas avec les autres.. car les autres templates ne reconnaisent pas les styles standard.

            Pour les integrer dans d autres templates, il faut copier le contenu du dossier html/modules.php de beez 3 ou protostar dans le fichier modules.php du template.

            Commentaire


            • #7
              Re : Remplacement du tag de titre des modules : ne marche pas

              Envoyé par lefabdu51 Voir le message
              +1 j irais meme plus loin en disant que ces paramètres sont utilisables avec beez 3 ou protostar, mais pas avec les autres.. car les autres templates ne reconnaisent pas les styles standard.

              Pour les integrer dans d autres templates, il faut copier le contenu du dossier html/modules.php de beez 3 ou protostar dans le fichier modules.php du template.
              Bonjour lefabdu51,

              Merci pour le +1, mais je ne suis pas d'accord avec le "je dirais même plus ..." (comme disent les Dupond-Dupont).

              1) Le style de module "html5" peut être utilisé avec tous les templates pour gérer les paramètres avancés des modules, pas seulement avec Beez3 ou Protostar.

              2) La copie des fichier html/modules.php de Beez3 ou Protostar ne marche pas parce que les styles qu'ils définissent ne gèrent pas les paramètres avancés des modules.

              Quand les styles de module de son template ne gèrent pas les paramètres avancés, il faut modifier le html/modules.php du template en prenant exemple sur le code du style html5 (dans templates/system/html/modules.php).

              Par exemple, le style well de Protostar ne gère pas le Tag d'en-tête/titre car il est codé "en dur" à h3. Je veux pouvoir utiliser une autre balise (h1 à h6 ou p) pour le titre du module mais garder le style well comme dans la colonne de droite de Protostar dans la démo de J!.

              Le code initial de well est :
              Code PHP:
              function modChrome_well($module, &$params, &$attribs){
                  if (
              $module->content)
                  {
                      echo 
              "<div class=\"well " htmlspecialchars($params->get('moduleclass_sfx')) . "\">";
                      if (
              $module->showtitle)
                      {
                          echo 
              "<h3 class=\"page-header\">" $module->title "</h3>";
                      }
                      echo 
              $module->content;
                      echo 
              "</div>";
                  }

              Le code pour le style well en y ayant ajouté la gestion de la balise du titre ($headerTag) :
              Code PHP:
              function modChrome_well($module, &$params, &$attribs){
                  
              $headerTag htmlspecialchars($params->get('header_tag''h3'));
                  if (
              $module->content)
                  {
                      echo 
              "<div class=\"well " htmlspecialchars($params->get('moduleclass_sfx')) . "\">";
                      if (
              $module->showtitle)
                      {
                          echo 
              "<" $headerTag " class=\"page-header\">" $module->title "</" $headerTag ">";
                      }
                      echo 
              $module->content;
                      echo 
              "</div>";
                  }

              Avec cette modification on peut choisir un titre de module en h1-h6 ou p avec le style well de Protostar.

              On peut faire de même pour tous les paramètres avancés et tous les styles de module.

              Amicalement,
              Rajoz

              Commentaire


              • #8
                Re : Remplacement du tag de titre des modules : ne marche pas

                gantry , JA et consort integrent leur propres methode de gestion des titres des modules.
                Je n en ais pas vu un qui utilise les paramètres avancés d un module pour gérer les styles modchrome....

                Commentaire


                • #9
                  Re : Remplacement du tag de titre des modules : ne marche pas

                  Envoyé par lefabdu51 Voir le message
                  gantry , JA et consort integrent leur propres methode de gestion des titres des modules.
                  Je n en ais pas vu un qui utilise les paramètres avancés d un module pour gérer les styles modchrome....
                  Bonjour lefabdu51,

                  Le template de base de Gantry définit dans html/modules.php les styles modChromes suivants : submenu, basic, standard et menu. Aucun de ces modChromes n'utilise les paramètres avancés mais on peut les modifier ou ajouter de nouveaux modChromes comme indiqué dans la documentation de Gantry : http://www.gantry-framework.org/docu...dule_chrome.md

                  Pour JA, le template Purity III définit dans html/modules.php les styles chrome suivants : T3Xhtml, FeatureRow, t3tabs, t3slider, t3modal et popover. Les styles T3Xhtml et FeatureRow utilisent les paramètres avancés des modules via $params-->get() comme indiqué dans leur code :
                  Code PHP:
                  $badge          preg_match ('/badge/'$params->get('moduleclass_sfx'))? '<span class="badge">&nbsp;</span>' '';
                  $moduleTag      htmlspecialchars($params->get('module_tag''div'));
                  $headerTag      htmlspecialchars($params->get('header_tag''h3'));
                  $headerClass    $params->get('header_class');
                  $bootstrapSize  $params->get('bootstrap_size');
                  $moduleClass    = !empty($bootstrapSize) ? ' col-sm-' . (int) $bootstrapSize '' '';
                  $moduleClassSfx htmlspecialchars($params->get('moduleclass_sfx')); 
                  Ne prends pas ma réponse comme une volonté de polémique. J'ai simplement souhaité dire que les paramètres avancés des modules peuvent être utilisés via les modChromes et que je suis prêt à aider (si je le peux) ceux qui demanderaient de l'aide à ce sujet.

                  Amicalement,
                  Rajoz

                  Commentaire


                  • #10
                    Re : Remplacement du tag de titre des modules : ne marche pas

                    Ne prends pas ma réponse comme une volonté de polémique.
                    bah il n y en a pas....
                    je n ais pas dit que c etait impossible a faire...

                    gantry ne les utilise pas, JA c est un coup oui et un coup non, donc rien de standard.

                    De plus en regardant ton code, on s apercoit que JA utilise bootstrap 3.... encore moins standard..

                    C'est le propre des frameworks de reinventer la roue.

                    S ils pouvait tous les utiliser cela simplifierais bien les choses.. Mais chaque dev voit midi à sa porte..

                    Le style de module "html5" peut être utilisé avec tous les templates pour gérer les paramètres avancés des modules, pas seulement avec Beez3 ou Protostar.
                    ce n est pas le style du template beez ou protostar qui est utilisé.
                    Mais le style modchrome par defaut qui est dans le fichier /templates/system/html/modules.php

                    Cest la ou le template vas chercher si le style n apparait pas dans le fichier /html/modules.php du template.
                    C est pour ca que ce style modchrome peut etre utilisé par touts les templates.... ainsi que touts les autres styles qu il contient.
                    Dernière édition par lefabdu51 à 29/07/2014, 20h43

                    Commentaire

                    Annonce

                    Réduire
                    Aucune annonce pour le moment.

                    Partenaire de l'association

                    Réduire

                    Hébergeur Web PlanetHoster
                    Travaille ...
                    X