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

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

  • fbambio
    a répondu
    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.

    Laisser un commentaire:


  • fbambio
    a répondu
    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 !!!

    Laisser un commentaire:


  • RobertG
    a répondu
    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.

    Laisser un commentaire:


  • fbambio
    a répondu
    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

    Laisser un commentaire:


  • RobertG
    a répondu
    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.

    Laisser un commentaire:


  • fbambio
    a répondu
    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.

    Laisser un commentaire:


  • fbambio
    a répondu
    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

    Laisser un commentaire:


  • woluweb
    a répondu
    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

    Laisser un commentaire:


  • RobertG
    a répondu
    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é.

    Laisser un commentaire:


  • woluweb
    a répondu
    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

    Laisser un commentaire:


  • RobertG
    a répondu
    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

    Laisser un commentaire:


  • cavo789
    a répondu
    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.

    Laisser un commentaire:


  • 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

Annonce

Réduire
Aucune annonce pour le moment.

Partenaire de l'association

Réduire

Hébergeur Web PlanetHoster
Travaille ...
X