Comment attribuer le tag H1 aux titres des articles dans joomla 4 ?

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

  • [RÉGLÉ] Comment attribuer le tag H1 aux titres des articles dans joomla 4 ?

    Bonsoir à tous

    Je sollicite de l'aide pour passer les tag des titres de mes articles en H1. Je suis sur joomla 4 et j'utilise le framework astroïd.

    Les tag des titres de mes articles sont bizarrement en H2, pourtant il semble que sur joomla 4 les titres des articles sont nativement en H1. Y a-t-il un régler qui permet de réaliser cela sans tripatouillage de code ?

    Merci d'avance pour vos éventuelles réponses.

    Excellent week-end à tous.
    Dernière édition par fbambio à 26/11/2022, 23h41
    Z. François BAMBIO

  • #2
    Bonjour

    Il s'agit de votre template, c'est lui qui définit le niveau de titre à utiliser.

    Il faudrait du coup identifier le fichier utilisé par votre template et en faire une surcharge.
    fbambio aime ceci.
    Christophe (cavo789)
    Logiciel gratuit de scan antivirus : https://github.com/cavo789/aesecure_quickscan (plus de 45.000 virus détectés, 700.000 fichiers sur liste blanche)
    Mes logiciels OpenSource : https://www.avonture.be

    Commentaire


    • #3
      Bonjour,

      C'est bien une question de template : fichier html/com_content/article/default.php

      Par défaut, en affichage blog, les titres sont en h2. Lorsqu'un article est affiché depuis l'affichage blog par clic sur son titre, sous Cassiopeia (utilisant le code standard) il prend la balise h2 si le titre de la page est en h1, la balise h1 si le titre de la page est masqué.

      Il y a en effet dans le fichier standard, et pas dans la surcharge d'un Astroid One par exemple, une variable $htag qui est définie en h1 ou h2 selon que l'en-tête de page est ou non défini comme devant être affiché, et s'applique au titre de l'article. Dans ce template Astroid, le titre de l'article est toujours défini en h2
      fbambio aime ceci.
      "Patience et longueur de temps font plus que force ni que rage..." (La Fontaine : Le Lion et le Rat) - "Il n'y a pas de problèmes; il n'y a que des solutions" (André Gide).
      MoovJla et LazyDbBackup sur www.joomxtensions.com - FaQ sur www.fontanil.info - Site pro : www.robertg-conseil.fr chez PHPNET, sites perso chez PlanetHoster + sites gérés chez PHPNET, PlanetHoster, Ionos et OVH

      Commentaire


      • #4
        c'est pcq si on affiche le Titre de la page, celui-ci est en H1, d'où le fait que le titre des articles est en H2
        Présentations : slides.woluweb.be | Coordonnées complètes : www.woluweb.be

        Un message d’erreur sur votre site Joomla... ayez le reflexe de consulter la base de connaissance : https://kb.joomla.fr

        Ce forum, vous l'aimez ? Il vous a sauvé la vie ? Vous y apprenez régulièrement ? Alors adhérer à l'AFUJ, l'Association Francophone des Utilisateurs de Joomla : https://www.joomla.fr/association/adherer

        Commentaire


        • #5
          Oui et non Marc. Par défaut, Joomla! gère avec ce "$tag" la présence ou non du titre de la page pour passer le titre des articles en h1 s'il n'y a pas de titre de page, ce que ne font apparemment pas les templates Astroid.

          Dans le fichier standard :
          Code:
          $htag    = $this->params->get('show_page_heading') ? 'h2' : 'h1';
          et on le gère ici
          Code:
           <div class="page-header">
          <<?php echo $htag; ?> itemprop="headline">
          <?php echo $this->escape($this->item->title); ?>
          </<?php echo $htag; ?>>
          Alors que dans Astroid One et TP Sounds, probablement aussi le Templaza de François, le titre est systématiquement défini en h2 dans le même fichier, surchargé.
          "Patience et longueur de temps font plus que force ni que rage..." (La Fontaine : Le Lion et le Rat) - "Il n'y a pas de problèmes; il n'y a que des solutions" (André Gide).
          MoovJla et LazyDbBackup sur www.joomxtensions.com - FaQ sur www.fontanil.info - Site pro : www.robertg-conseil.fr chez PHPNET, sites perso chez PlanetHoster + sites gérés chez PHPNET, PlanetHoster, Ionos et OVH

          Commentaire


          • #6
            oui oui, j'étais bref mais je voulais bien dire "avec astroid" puisque c'est la question
            n'empêche, ce serait cool de remonter ceci sur le github d'astroid, surtout qu'on ne peut être que pour
            Présentations : slides.woluweb.be | Coordonnées complètes : www.woluweb.be

            Un message d’erreur sur votre site Joomla... ayez le reflexe de consulter la base de connaissance : https://kb.joomla.fr

            Ce forum, vous l'aimez ? Il vous a sauvé la vie ? Vous y apprenez régulièrement ? Alors adhérer à l'AFUJ, l'Association Francophone des Utilisateurs de Joomla : https://www.joomla.fr/association/adherer

            Commentaire


            • #7
              Envoyé par RobertG Voir le message
              Bonjour,

              C'est bien une question de template : fichier html/com_content/article/default.php

              Par défaut, en affichage blog, les titres sont en h2. Lorsqu'un article est affiché depuis l'affichage blog par clic sur son titre, sous Cassiopeia (utilisant le code standard) il prend la balise h2 si le titre de la page est en h1, la balise h1 si le titre de la page est masqué.

              Il y a en effet dans le fichier standard, et pas dans la surcharge d'un Astroid One par exemple, une variable $htag qui est définie en h1 ou h2 selon que l'en-tête de page est ou non défini comme devant être affiché, et s'applique au titre de l'article. Dans ce template Astroid, le titre de l'article est toujours défini en h2
              Bonsoir Gastaud et merci pour tes explications. Oui j'utilise en effet un template de templaza. J'ai bien retrouvé la ligne "$htag = $this->params->get('show_page_heading') ? 'h2' : 'h1';" dans le fichier de surchage. Je ne sais comment apporter la modification pour avoir les titres de mes articles en H1. As tu une idée ?

              Merci d'avance et bonne soirée
              Z. François BAMBIO

              Commentaire


              • #8
                Envoyé par cavo789 Voir le message
                Bonjour

                Il s'agit de votre template, c'est lui qui définit le niveau de titre à utiliser.

                Il faudrait du coup identifier le fichier utilisé par votre template et en faire une surcharge.
                Bonsoir. Bien merci pour tes réponses, complétées par Gastaud. J'ai retrouvé le fichier de recharge. il me reste à trouver comment on la modifie. Excellente soirée.
                Z. François BAMBIO

                Commentaire


                • #9
                  Bonjour,

                  Si le fichier de surcharge de ce template utilise bien cette variable, il va falloir chercher une autre cause, puisque le but de celle-ci est de passer en H1 les titres des articles lorsque le titre de la page n'est pas affichée.
                  "Patience et longueur de temps font plus que force ni que rage..." (La Fontaine : Le Lion et le Rat) - "Il n'y a pas de problèmes; il n'y a que des solutions" (André Gide).
                  MoovJla et LazyDbBackup sur www.joomxtensions.com - FaQ sur www.fontanil.info - Site pro : www.robertg-conseil.fr chez PHPNET, sites perso chez PlanetHoster + sites gérés chez PHPNET, PlanetHoster, Ionos et OVH

                  Commentaire


                  • #10
                    Envoyé par RobertG Voir le message
                    Bonjour,

                    Si le fichier de surcharge de ce template utilise bien cette variable, il va falloir chercher une autre cause, puisque le but de celle-ci est de passer en H1 les titres des articles lorsque le titre de la page n'est pas affichée.
                    Bonjour Gastaud

                    Je crois que c'est ce code qui fait cela :


                    <h2 itemprop="headline" class="uk-margin-remove">
                    <?php echo $this->escape($this->item->title); ?>
                    </h2>



                    Voici le contenu du fichier par défaut de la surchage :

                    <?php

                    /**
                    * @package Astroid Framework
                    * @author JoomDev https://www.joomdev.com
                    * Copyright Copyright (C) 2009 - 2020 JoomDev.
                    * @license https://www.gnu.org/licenses/gpl-2.0.html GNU/GPLv2 or Later
                    */
                    defined('_JEXEC') or die;

                    jimport('jollyany.framework.article');

                    use Joomla\CMS\Factory;
                    use Joomla\CMS\HTML\HTMLHelper;
                    use Joomla\CMS\Language\Associations;
                    use Joomla\CMS\Language\Text;
                    use Joomla\CMS\Layout\FileLayout;
                    use Joomla\CMS\Layout\LayoutHelper;
                    use Joomla\CMS\Router\Route;
                    use Joomla\CMS\Uri\Uri;
                    HTMLHelper::addIncludePath(JPATH_COMPONENT . '/helpers');

                    if (ASTROID_JOOMLA_VERSION > 3) {
                    \JLoader::registerAlias('ContentHelperRoute', 'Joomla\Component\Content\Site\Helper\RouteHelper' );
                    } else {
                    include_once(JPATH_COMPONENT . '/helpers/route.php');
                    }

                    if (ASTROID_JOOMLA_VERSION < 4) {
                    JHtml::_('behavior.caption');
                    }

                    // Astroid Article/Blog
                    $astroidArticle = new JollyanyFrameworkArticle($this->item, false, $this->print);

                    $template = Astroid\Framework::getTemplate();

                    // Create shortcuts to some parameters.
                    $params = $this->item->params;
                    $urls = json_decode($this->item->urls);
                    $canEdit = $params->get('access-edit');
                    $user = Factory::getUser();
                    $info = $params->get('info_block_position', 0);
                    $images = json_decode($this->item->images);

                    $url = Route::_(ContentHelperRoute::getArticleRoute($this->item->id . ':' . $this->item->alias, $this->item->catid, $this->item->language));
                    $root = Uri::base();
                    $root = new Uri($root);
                    $url = $root->getScheme() . '://' . $root->getHost() . $url;

                    // Check if associations are implemented. If they are, define the parameter.
                    $assocParam = (Associations::isEnabled() && $params->get('show_associations'));

                    $info_block_layout = ASTROID_JOOMLA_VERSION > 3 ? 'joomla.content.info_block' : 'joomla.content.info_block.block';

                    ?>
                    <meta itemprop="inLanguage" content="<?php echo ($this->item->language === '*') ? Factory::getConfig()->get('language') : $this->item->language; ?>" />
                    <div class="com-content-article item-page<?php echo $this->pageclass_sfx; ?>" itemscope itemtype="https://schema.org/Article">
                    <?php if ($this->params->get('show_page_heading')) : ?>
                    <div class="item-title">
                    <h1> <?php echo $this->escape($this->params->get('page_heading')); ?> </h1>
                    </div>
                    <?php
                    endif;
                    if (!empty($this->item->pagination) && $this->item->pagination && !$this->item->paginationposition && $this->item->paginationrelative) {
                    echo $this->item->pagination;
                    }
                    ?>

                    <?php // Todo Not that elegant would be nice to group the params
                    ?>
                    <?php $useDefList = ($params->get('show_modify_date') || $params->get('show_publish_date') || $params->get('show_create_date') || $params->get('show_hits') || $params->get('show_category') || $params->get('show_parent_category') || $params->get('show_author') || $assocParam || $template->params->get('astroid_readtime', 1));
                    ?>

                    <?php $astroidArticle->render('above-title'); ?>
                    <?php if ($canEdit) : ?>
                    <?php echo LayoutHelper::render('joomla.content.icons', array('params' => $params, 'item' => $this->item)); ?>
                    <?php endif; ?>
                    <?php if (($params->get('show_title') || $params->get('show_author'))) : ?>
                    <div class="item-title">
                    <?php if ($params->get('show_title')) : ?>
                    <h2 itemprop="headline" class="uk-margin-remove">
                    <?php echo $this->escape($this->item->title); ?>
                    </h2>
                    <?php endif; ?>
                    <?php if ($this->item->state == 0) : ?>
                    <span class="badge badge-warning"><?php echo Text::_('JUNPUBLISHED'); ?></span>
                    <?php endif; ?>
                    <?php if (strtotime($this->item->publish_up) > strtotime(Factory::getDate())) : ?>
                    <span class="badge badge-warning"><?php echo Text::_('JNOTPUBLISHEDYET'); ?></span>
                    <?php endif; ?>
                    <?php if (ASTROID_JOOMLA_VERSION == 3 && ((strtotime($this->item->publish_down) < strtotime(Factory::getDate())) && $this->item->publish_down != Factory::getDbo()->getNullDate())) : ?>
                    <span class="label label-warning"><?php echo JText::_('JEXPIRED'); ?></span>
                    <?php endif; ?>
                    <?php if (ASTROID_JOOMLA_VERSION == 4 && (!is_null($this->item->publish_down) && (strtotime($this->item->publish_down) < strtotime(Factory::getDate())))) : ?>
                    <span class="label label-warning"><?php echo JText::_('JEXPIRED'); ?></span>
                    <?php endif; ?>
                    </div>
                    <?php endif; ?>

                    <?php // Content is generated by content plugin event "onContentAfterTitle"
                    ?>
                    <?php echo $this->item->event->afterDisplayTitle; ?>

                    <?php if ($useDefList && ($info == 0 || $info == 2)) : ?>
                    <?php echo LayoutHelper::render($info_block_layout, array('item' => $this->item, 'params' => $params, 'astroidArticle' => $astroidArticle, 'position' => 'above')); ?>
                    <?php endif; ?>

                    <?php // Content is generated by content plugin event "onContentBeforeDisplay"
                    ?>
                    <?php echo $this->item->event->beforeDisplayContent; ?>

                    <?php if (isset($urls) && ((!empty($urls->urls_position) && ($urls->urls_position == '0')) || ($params->get('urls_position') == '0' && empty($urls->urls_position))) || (empty($urls->urls_position) && (!$params->get('urls_position')))) :
                    ?>
                    <?php echo $this->loadTemplate('links'); ?>
                    <?php endif; ?>
                    <?php if ($params->get('access-view')) : ?>
                    <?php
                    if (!empty($this->item->pagination) && $this->item->pagination && !$this->item->paginationposition && !$this->item->paginationrelative) :
                    echo $this->item->pagination;
                    endif;
                    ?>
                    <?php
                    if (isset($this->item->toc)) :
                    echo $this->item->toc;
                    endif;
                    ?>
                    <?php echo LayoutHelper::render('joomla.content.full_image', $this->item); ?>
                    <?php $astroidArticle->render('before-content'); ?>
                    <div itemprop="articleBody">
                    <?php echo $astroidArticle->renderArticleBody(); ?>
                    </div>
                    <?php $astroidArticle->render('after-content'); ?>

                    <?php if ($info == 1 || $info == 2) : ?>
                    <?php if ($useDefList) : ?>
                    <?php echo LayoutHelper::render($info_block_layout, array('item' => $this->item, 'params' => $params, 'astroidArticle' => $astroidArticle, 'position' => 'below')); ?>
                    <?php endif; ?>
                    <?php endif; ?>

                    <?php if ($params->get('show_tags', 1) && !empty($this->item->tags->itemTags)) : ?>
                    <?php $this->item->tagLayout = new FileLayout('joomla.content.tags'); ?>
                    <?php echo $this->item->tagLayout->render($this->item->tags->itemTags); ?>
                    <?php endif; ?>
                    <?php if (isset($urls) && ((!empty($urls->urls_position) && ($urls->urls_position == '1')) || ($params->get('urls_position') == '1'))) : ?>
                    <?php echo $this->loadTemplate('links'); ?>
                    <?php endif; ?>
                    <?php // Content is generated by content plugin event "onContentAfterDisplay"
                    ?>
                    <?php echo $this->item->event->afterDisplayContent; ?>
                    <?php
                    if (!empty($this->item->pagination) && $this->item->pagination && $this->item->paginationposition && !$this->item->paginationrelative) :
                    echo $this->item->pagination;
                    ?>
                    <?php endif; ?>
                    <?php // Optional teaser intro text for guests
                    ?>
                    <?php elseif ($params->get('show_noauth') == true && $user->get('guest')) : ?>
                    <?php echo LayoutHelper::render('joomla.content.intro_image', $this->item); ?>
                    <?php echo HTMLHelper::_('content.prepare', $this->item->introtext); ?>
                    <?php // Optional link to let them register to see the whole article.
                    ?>
                    <?php if ($params->get('show_readmore') && $this->item->fulltext != null) : ?>
                    <?php $menu = Factory::getApplication()->getMenu(); ?>
                    <?php $active = $menu->getActive(); ?>
                    <?php $itemId = $active->id; ?>
                    <?php $link = new Uri(Route::_('index.php?option=com_users&view=logi n&Itemid=' . $itemId, false)); ?>
                    <?php $link->setVar('return', base64_encode(ContentHelperRoute::getArticleRoute( $this->item->slug, $this->item->catid, $this->item->language))); ?>
                    <div class="readmore">
                    <a href="<?php echo $link; ?>" class="register">
                    <?php $attribs = json_decode($this->item->attribs); ?>
                    <?php
                    if ($attribs->alternative_readmore == null) :
                    echo Text::_('COM_CONTENT_REGISTER_TO_READ_MORE');
                    elseif ($readmore = $attribs->alternative_readmore) :
                    echo $readmore;
                    if ($params->get('show_readmore_title', 0) != 0) :
                    echo HTMLHelper::_('string.truncate', $this->item->title, $params->get('readmore_limit'));
                    endif;
                    elseif ($params->get('show_readmore_title', 0) == 0) :
                    echo Text::sprintf('COM_CONTENT_READ_MORE_TITLE');
                    else :
                    echo Text::_('COM_CONTENT_READ_MORE');
                    echo HTMLHelper::_('string.truncate', $this->item->title, $params->get('readmore_limit'));
                    endif;
                    ?>
                    </a>
                    </div>
                    <?php endif; ?>
                    <?php endif; ?>
                    <?php
                    if (!empty($this->item->pagination) && $this->item->pagination && $this->item->paginationposition && $this->item->paginationrelative) :
                    echo $this->item->pagination;
                    ?>
                    <?php endif; ?>
                    <?php $astroidArticle->renderSocialShare(); ?>
                    <?php $astroidArticle->renderAuthorInfo(); ?>
                    <?php $astroidArticle->renderComments(); ?>
                    <?php $astroidArticle->renderRelatedPosts(); ?>
                    </div>
                    Dernière édition par fbambio à 28/11/2022, 08h40
                    Z. François BAMBIO

                    Commentaire


                    • #11
                      C'est bien ça en effet, le template ne gère pas la présence ou l'absence du titre de page. Tu devrais poser la question à l'auteur du template, qui est aussi celui qui gère maintenant Astroid.
                      "Patience et longueur de temps font plus que force ni que rage..." (La Fontaine : Le Lion et le Rat) - "Il n'y a pas de problèmes; il n'y a que des solutions" (André Gide).
                      MoovJla et LazyDbBackup sur www.joomxtensions.com - FaQ sur www.fontanil.info - Site pro : www.robertg-conseil.fr chez PHPNET, sites perso chez PlanetHoster + sites gérés chez PHPNET, PlanetHoster, Ionos et OVH

                      Commentaire


                      • #12
                        Envoyé par RobertG Voir le message
                        C'est bien ça en effet, le template ne gère pas la présence ou l'absence du titre de page. Tu devrais poser la question à l'auteur du template, qui est aussi celui qui gère maintenant Astroid.
                        Bien compris Gaustaud. Merci pour ta contribution. Au cours de la journée, je vais apporter la modification et si ça ne change pas, je vais écrire sur le support de templaza pour voir sa réponse. Je te fais un retour sous peu. Encore merci !!!
                        Z. François BAMBIO

                        Commentaire


                        • #13
                          Envoyé par RobertG Voir le message
                          C'est bien ça en effet, le template ne gère pas la présence ou l'absence du titre de page. Tu devrais poser la question à l'auteur du template, qui est aussi celui qui gère maintenant Astroid.
                          Le problème est résolu. C'était effectivement ce code. J'ai remplacé h2 par h1 et tout est Ok. Mon seul véritable problème actuellement c'est le contenu dupliqué par www et non-www. Je ferme le présent poste pour respecter les règles. Je vais ouvrir un autre pour voir s'il ya des retours d'expériences qui vont m'aider.

                          Merci pour ta contribution. C'est Ok pour le tag H1

                          Excellent lundi à toi.
                          Z. François BAMBIO

                          Commentaire

                          Annonce

                          Réduire
                          1 sur 2 < >

                          C'est [Réglé] et on n'en parle plus ?

                          A quoi ça sert ?
                          La mention [Réglé] permet aux visiteurs d'identifier rapidement les messages qui ont trouvé une solution.

                          Merci donc d'utiliser cette fonctionnalité afin de faciliter la navigation et la recherche d'informations de tous sur le forum.

                          Si vous deviez oublier de porter cette mention, nous nous permettrons de le faire à votre place... mais seulement une fois
                          Comment ajouter la mention [Réglé] à votre discussion ?
                          1 - Aller sur votre discussion et éditer votre premier message :


                          2 - Cliquer sur la liste déroulante Préfixe.

                          3 - Choisir le préfixe [Réglé].


                          4 - Et voilà… votre discussion est désormais identifiée comme réglée.

                          2 sur 2 < >

                          Assistance au forum - Outil de publication d'infos de votre site

                          Compatibilité: PHP 4.1,PHP4, 5, 6DEV MySQL 3.2 - 5.5 MySQLi from 4.1 ( @ >=PHP 4.4.9)

                          Support Version de Joomla! : | J!3.0 | J!2.5.xx | J!1.7.xx | J!1.6.xx | J1.5.xx | J!1.0.xx |

                          Version française (FR) D'autres versions sont disponibles depuis la version originale de FPA

                          UTILISER À VOS PROPRES RISQUES :
                          L'exactitude et l'exhaustivité de ce script ainsi que la documentation ne sont pas garanties et aucune responsabilité ne sera acceptée pour tout dommage, questions ou confusion provoquée par l'utilisation de ce script.

                          Problèmes connus :
                          FPA n'est actuellement pas compatible avec des sites Joomla qui ont eu leur fichier configuration.php déplacé en dehors du répertoire public_html.

                          Installation :

                          1. Téléchargez l'archive souhaitée : http://afuj.github.io/FPA/

                          Archive zip : https://github.com/AFUJ/FPA/zipball/master

                          2. Décompressez le fichier de package téléchargé sur votre propre ordinateur (à l'aide de WinZip ou d'un outil de décompression natif).

                          3. Lisez le fichier LISEZMOI inclus pour toutes les notes de versions spécifiques.

                          4. LIRE le fichier de documentation inclus pour obtenir des instructions d'utilisation détaillées.

                          5. Téléchargez le script fpa-fr.php à la racine de votre site Joomla!. C'est l'endroit que vous avez installé Joomla et ce n'est pas la racine principale de votre serveur. Voir les exemples ci-dessous.

                          6. Exécutez le script via votre navigateur en tapant: http:// www. votresite .com/ fpa-fr.php
                          et remplacer www. votresite .com par votre nom de domaine


                          Exemples:
                          Joomla! est installé dans votre répertoire web et vous avez installé la version française du fichier FPA:
                          Télécharger le script fpa-fr.php dans: /public_html/
                          Pour executer le script: http://www..com/fpa-fr.php

                          Joomla! est installé dans un sous-répertoire nommé "cms" et vous avez installé la version française du fichier FPA:
                          Télécharger le script fpa-fr.php dans: /public_html/cms/
                          Pour executer le script: http://www..com/cms/fpa-fr.php

                          En raison de la nature très sensible de l'information affichée par le script FPA, il doit être retiré immédiatement du serveur après son utilisation.

                          Pour supprimer le script de votre site, utilisez le lien de script de suppression fourni en haut de la page du script. Si le lien de suppression échoue pour supprimer le script, utilisez votre programme FTP pour le supprimer manuellement ou changer le nom une fois que le script a généré les données du site et le message publié sur le forum. Si le script est toujours présent sur le site, il peut être utilisé pour recueillir suffisamment d'informations pour pirater votre site. Le retrait du script empêche des étrangers de l'utiliser pour jeter un oeil à la façon dont votre site est structuré et de détecter les défauts qui peuvent être utilisé à vos dépends.
                          Voir plus
                          Voir moins

                          Partenaire de l'association

                          Réduire

                          Hébergeur Web PlanetHoster
                          Travaille ...
                          X