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)
    Mon blog, on y parle Docker, PHP, WSL, Markdown et plein d'autres choses : https://www.avonture.be
    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)​

    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
                          Aucune annonce pour le moment.

                          Partenaire de l'association

                          Réduire

                          Hébergeur Web PlanetHoster
                          Travaille ...
                          X