Inserer un module entre le titre de la page et celui de l'article

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

  • Inserer un module entre le titre de la page et celui de l'article

    Salut

    J'aimerais insérer un module entre le titre de la page (le H1) et celui du l'article (le H2). Créer une position dans index.php je sais faire, mais je ne sais pas comment faire dans ce cas là.

    Joomla 3.9.16
    Protostar personnalisé 1.0
    Sur mon site www.nenex-ordinateur-libre.net : tutos sur des logiciels et services libres.

    Association Sorgin Informatique Libre ( www.sorgin-informatique-libre.org). Education populaire au numérique libre et au libre en général.

  • #2
    Bonjour,

    Cela doit pouvoir se faire en "surchargeant" (override) dans com_content, la vue article. voir https://kb.joomla.fr/procedures/real...-dans-template

    Si vous regardez dans l'index.php de protostar, vous avez des commandes du style <jdoc:include type="modules" name="position-0" style="none" /> qui vous permet d'intégrer une position (un module) n'importe où dans le template.

    En insérant ce type de ligne entre le h1 et le h2 (entre ligne 34 et 50 du fichier default.php du composant com_content), cela devrait le faire.

    Pascal

    If anything can go wrong, it will...If I can help, I will ..https://conseilgouz.com

    Commentaire


    • #3
      Je viens de faire quelques essais et je n'ai pas réussi à faire fonctionner le <jdoc:include...>

      Donc, je l'ai fait à partir du plugin loadmodule. Le code php à intégrer dans le fichier default.php est :
      Code PHP:
      $position 'position-0';
      $document JFactory::getDocument();
      $renderer $document->loadRenderer('module');
      $modules JModuleHelper::getModules($position);
      $mod_params = array('style' => $style);
      ob_start();
      foreach (
      $modules as $module)
      {
      echo 
      $renderer->render($module$mod_params);
      }
      echo 
      ob_get_clean(); 
      J'ai mis position-0, mais vous pouvez mettre la position de votre module.

      C'est à inclure entre le h1 et le h2 dans une balise <?php

      Pascal
      If anything can go wrong, it will...If I can help, I will ..https://conseilgouz.com

      Commentaire


      • #4
        Les jdoc:include ne fonctionnent que dans le fichier index.php.
        Le loadmodule est la seule solution pour le faire afficher dans une vue.
        Il faut publier le module dans une position du template qui n existe pas (sinon il sera en double sur la page), par exemple la position invisible.
        et ca c est le code que j'utilise :
        Code:
        < ?php
         jimport('joomla.application.module.helper');
        
        $modules = JModuleHelper::getModules('invisible');
        foreach ($modules as $module) {
        echo JModuleHelper::renderModule($module);
        }
        ? >
        $modules contient un tableau, d'ou le foreach obligatoire même s'il n y a qu un seul module

        @pmlecomte: a quoi sert le ob_start ?

        Commentaire


        • #5
          Désolé pour le retard de ma réponse mais je n'arrivais plus a me connecter. Merci pour vos réponses a vous deux. Pour le H1, après réflexion, je ne vais pas utiliser celui par défaut de Joomla (c'est a dire celui qu'il faut entrer dans un lien de menu) mais utiliser un module en ajoutant une position. Je trouve plus simple et rapide à gérer que d'aller dans chacun des liens de menu. Avec un module il suffit simplement de l'assigner à un menu. Je sais pas si je suis clair
          Sur mon site www.nenex-ordinateur-libre.net : tutos sur des logiciels et services libres.

          Association Sorgin Informatique Libre ( www.sorgin-informatique-libre.org). Education populaire au numérique libre et au libre en général.

          Commentaire

          Annonce

          Réduire
          Aucune annonce pour le moment.

          Partenaire de l'association

          Réduire

          Hébergeur Web PlanetHoster
          Travaille ...
          X