message d'erreur sur l'affichage d'un article joomla

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

  • [Problème] message d'erreur sur l'affichage d'un article joomla

    Bonjour
    J'ai fais la maj d'un site vers joomla 5. je viens de m'apercevoir que le site affiche bien l'accueil, la page blog mais pas l'affichage d'un article joomla.
    J'ai surchargé un article mais pour vérifier que celà ne provient pas de mon code j'ai passé à "Choisir une mise en page​" dans l'onglet paramètre du menu

    J'ai le message
    Code HTML:
    Joomla\CMS\Event\Module\RenderModuleEvent:nSetAttributes(): Argument #1 ($value) must be of type array, Joomla\Registry\Registry given, called in /home/atmamzjw/public_html/libraries/src/Event/AbstractEvent.php on line 225​
    qui me demande de contacter l'admin; c'est moi ;-) mais je me demande, quand même, comment savoir l'origine du problème ?

    debug complet
    Code:
    ()    JROOT/libraries/src/Event/Module/RenderModuleEvent.php:84
    2    Joomla\CMS\Event\Module\RenderModuleEvent->onSetAttributes()    JROOT/libraries/src/Event/AbstractEvent.php:225
    3    Joomla\CMS\Event\AbstractEvent->setArgument()    JROOT/libraries/src/Event/AbstractEvent.php:115
    4    Joomla\CMS\Event\AbstractEvent->__construct()    JROOT/libraries/src/Event/AbstractImmutableEvent.php:51
    5    Joomla\CMS\Event\AbstractImmutableEvent->__construct()    JROOT/libraries/src/Event/Module/ModuleEvent.php:55
    6    Joomla\CMS\Event\Module\ModuleEvent->__construct()    JROOT/libraries/src/Event/Module/RenderModuleEvent.php:45
    7    Joomla\CMS\Event\Module\RenderModuleEvent->__construct()    JROOT/libraries/src/Helper/ModuleHelper.php:211
    8    Joomla\CMS\Helper\ModuleHelper::renderModule()    JROOT/libraries/src/Document/Renderer/Html/ModuleRenderer.php:99
    9    Joomla\CMS\Document\Renderer\Html\ModuleRenderer->render()    JROOT/templates/cassiopeia_cochanger/html/com_content/article/cochanger-organisations.php:187
    10    include()    JROOT/libraries/src/MVC/View/HtmlView.php:416
    11    Joomla\CMS\MVC\View\HtmlView->loadTemplate()    JROOT/libraries/src/MVC/View/HtmlView.php:204
    12    Joomla\CMS\MVC\View\HtmlView->display()    JROOT/components/com_content/src/View/Article/HtmlView.php:258
    13    Joomla\Component\Content\Site\View\Article\HtmlView->display()    JROOT/libraries/src/MVC/Controller/BaseController.php:697
    14    Joomla\CMS\MVC\Controller\BaseController->display()    JROOT/components/com_content/src/Controller/DisplayController.php:122
    15    Joomla\Component\Content\Site\Controller\DisplayController->display()    JROOT/libraries/src/MVC/Controller/BaseController.php:730
    16    Joomla\CMS\MVC\Controller\BaseController->execute()    JROOT/libraries/src/Dispatcher/ComponentDispatcher.php:143
    17    Joomla\CMS\Dispatcher\ComponentDispatcher->dispatch()    JROOT/components/com_content/src/Dispatcher/Dispatcher.php:56
    18    Joomla\Component\Content\Site\Dispatcher\Dispatcher->dispatch()    JROOT/libraries/src/Component/ComponentHelper.php:361
    19    Joomla\CMS\Component\ComponentHelper::renderComponent()    JROOT/libraries/src/Application/SiteApplication.php:218
    20    Joomla\CMS\Application\SiteApplication->dispatch()    JROOT/libraries/src/Application/SiteApplication.php:261
    21    Joomla\CMS\Application\SiteApplication->doExecute()    JROOT/libraries/src/Application/CMSApplication.php:306
    22    Joomla\CMS\Application\CMSApplication->execute()    JROOT/includes/app.php:58
    23    require_once()    JROOT/index.php:32​
    Faciliter l'adoption du meilleur du Libre auprès du grand public https://clibre.eu/ - Connaissez-vous des communicants ... pour promouvoir joomla ? https://forum.joomla.fr/forum/th%C3%...mouvoir-joomla

  • #2
    Bonjour
    Je donne le code de la surcharge car il m'indique une erreur sur la ligne 187 et cela enlève l'erreur si je commente cette partie de code.
    Je pense que cela provient de ma surcharge même si je suis étonné en ne l'affectant pas dans "Choisir une mise en page​" dans l'onglet paramètre du menu , mais bon !


    Code PHP:
    <?php // affichage du module articles similaires selon les tags
    /* $renderer = JFactory::getDocument()->loadRenderer('module');
    $modules = JModuleHelper::getModuleById('122');
    $moduleParams = array('style' => 'xhtml');
    echo $renderer->render($modules, $params, '');*/
    ?>
    J'ai un problème avec l'affichage de ce module. je l'ai désactivé mais cela ne change rien.
    Est-ce que cela s'écrit différement maintenant que le site est passé en joomla 5 ?

    Du coup j'en profite pour donner les grandes lignes de mon fichier surchargé pour savoir s'il y a d'autres ligens de codes à changer pour être 100% joomla 5 ?
    @+


    Code:
    <?php // **************** DEBUT MODIF HD 31/10/22 **************** ; ?>
    <div class="separateur">
    <?php // test afichage de la catégorie pour afficher contenu adapté
    $cat_id = $this->item->catid; // récupération du numéro de la catégorie
    if ($cat_id =="16") {echo "<h2 class='editeur-media-hors-web'> Editeur, Média [Hors web]" ." : " .$this->item->jcfields[61]->value ."</h2>";}
    elseif ($cat_id =="19") {echo "<h2 class='lieu-activites'> Lieu avec activités : " .$this->item->jcfields[57]->value ."</h2>";}
    elseif ($cat_id =="20") {echo "<h2 class='association-collectif'> Regroupement collectif, associatif</h2>";}
    elseif ($cat_id =="21") {echo "<h2 class='autour-de-film'> Autour de film : " .$this->item->jcfields[60]->value ."</h2>";}
    ?>
    </div>
    
    <div class="accroche"><h2><b><?php echo $this->item->jcfields[4]->value;// accroche ?></b></h2></div>
    
    <br /><div class="encadre"><div>
    <div><?php // Contenu is generated by content plugin event "onContentAfterTitle" ?>
    <?php echo $this->item->event->afterDisplayTitle; ?>
    <?php echo $this->item->text; ?>
    </div>
    
    ....
    
    <?php // COMMUNS ?>
    <?php if (!empty($this->item->jcfields[10]->value)): ; ?>
    <?php echo '<span>' .$this->item->jcfields[10]->value .'</span>';/* page acc principale média web ou organisations, url */ ?>
    <?php endif; ?>
    <?php if (!empty($this->item->jcfields[28]->value)): ; ?>
    <?php echo "<br />Autres sources d'informations :<br />" .$this->item->jcfields[28]->value ;/* liens web, subform */ ?>
    <?php endif; ?>
    <?php if (!empty($this->item->jcfields[55]->value)): ; ?>
    <?php echo "<br />" .$this->item->jcfields[55]->label .' : ' .'<span>' .$this->item->jcfields[55]->value .'</span>';/* forme juridique*, radio */ ?>
    <?php endif; ?>
    <?php if (!empty($this->item->jcfields[19]->value)): ; ?>
    <?php echo "<br />" .$this->item->jcfields[19]->label .' : ' .'<span>' .$this->item->jcfields[19]->value .'</span>';/* durée, acftime */ ?>
    <?php endif; ?>
    <?php if (!empty($this->item->jcfields[5]->value)): ; ?>
    <?php echo "<br />" .$this->item->jcfields[5]->label .' : ' .'<span>' .$this->item->jcfields[5]->value .'</span>';/* date créat. ress.,calendar */ ?>
    <?php endif; ?>
    <?php if (!empty($this->item->jcfields[6]->value)): ; ?>
    <?php echo "<br />" .$this->item->jcfields[6]->label .' : ' .'<span>' .$this->item->jcfields[6]->value .'</span>';/* type public, case */ ?>
    <?php endif; ?>
    <?php if (!empty($this->item->jcfields[16]->value)): ; ?>
    <?php echo "<br />" .$this->item->jcfields[16]->label .' : ' .'<span>' .$this->item->jcfields[16]->value .'</span>';/* infos droits */ ?>
    <?php endif; ?>
    <?php if (!empty($this->item->jcfields[18]->value)): ; ?>
    <?php echo "<br />" .$this->item->jcfields[18]->label .' : ' .'<span>' .$this->item->jcfields[18]->value .'</span>';/* genre ressource, case */ ?>
    <?php endif; ?>
    <?php if (!empty($this->item->jcfields[31]->value)): ; ?>
    <?php echo "<br />" .$this->item->jcfields[31]->label .' : ' .'<span>' .$this->item->jcfields[31]->value .'</span>';/* langue, case */ ?>
    <?php endif; ?>
    <?php if (!empty($this->item->jcfields[8]->value)): ; ?>
    <?php echo "<br />" .$this->item->jcfields[8]->value;/* commentaire, txt */ ?>
    <?php endif; ?>
    <?php if (!empty($this->item->jcfields[56]->value)): ; ?>
    <?php echo "<br />" .'<span>' .$this->item->jcfields[56]->value .'</span>';/* adresse, acfOSM */ ?>
    <?php endif; ?>
    </div></div>
    
    ...
    <br /><div class="encadre">
    <div>
    <div>
    <?php echo \JHtml::_('content.prepare', '{convertforms 6}'); ?>
    </div>
    </div>
    </div>
    
    <div><?php // affichage du module articles similaires selon les tags
    /* $renderer = JFactory::getDocument()->loadRenderer('module');
    $modules = JModuleHelper::getModuleById('122');
    $moduleParams = array('style' => 'xhtml');
    echo $renderer->render($modules, $params, '');*/
    ?></div>​
    Faciliter l'adoption du meilleur du Libre auprès du grand public https://clibre.eu/ - Connaissez-vous des communicants ... pour promouvoir joomla ? https://forum.joomla.fr/forum/th%C3%...mouvoir-joomla

    Commentaire


    • #3
      Bonjour,

      Si tu n'utilises pas le plugin de compatibilité, "JFactory" et autres "JModuleHelper", etc. doivent être remplacés et précédés (en début de fichier habituellement) de la ligne "use" correspondante.
      "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
        Bonjour
        J’utilise à priori j'utilise le plugin de compatibilité (Comportement - Compatibilité ascendante​ ?) car je suis passé par la version intermédiaire 4.4.
        Du coup si je comprends bien, je n'ai pas à modifier cet entête?
        ...
        mais probablement le bout de code que j'ai désactivé
        Faciliter l'adoption du meilleur du Libre auprès du grand public https://clibre.eu/ - Connaissez-vous des communicants ... pour promouvoir joomla ? https://forum.joomla.fr/forum/th%C3%...mouvoir-joomla

        Commentaire


        • #5
          Tu as parlé de tenter d'être 100% compatible J5. Pour ça il faut que tu remplaces "JFactory" et "JModuleHelper" par "Factory" et "ModuleHelper" après avoir ajouté les lignes "use" correspondantes.
          Mais si avec le plugin de compatibilité activé tu as une erreur sur cette partie de code, a priori l'erreur serait ailleurs dans ce code et cette modification ne devrait pas avoir d'impact.
          "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
            Re
            Pour l'instant je vais supprimer ces lignes de codes car cela plante le site et je vais chercher un module qui répond avec un cahier des charges plus étendues
            Bonjour J'utilise assez souvent le module &quot;tags similaire&quot;. Hors je viens de m'apercevoir que celui-ci prend en compte com_contact. Hors ce sont des fiches que je souhaite garder privé. Je pourrai rendre les fiches contacts privés, néanmoins je souhaite savoir si vous auriez une autre piste à recommander ? voir un


            En dehors de ce que tu m'a indiqué (mais puis je avoir la ligne complète?) à mettre au début,
            Si un dev' peut jeter un œil où d'autres lignes de code devraient être changées pour être 100% compatible joomla 5 ,je suis preneur pour refaire toutes mes surcharges qui sont très similaires
            Faciliter l'adoption du meilleur du Libre auprès du grand public https://clibre.eu/ - Connaissez-vous des communicants ... pour promouvoir joomla ? https://forum.joomla.fr/forum/th%C3%...mouvoir-joomla

            Commentaire


            • #7
              Pour cette question de code compatible J5, moi je suis pas un codeur donc je suis pas le mieux placé.
              Mais voici ce que j’ai vu passer :

              1.

              What Code Has Changed Between Joomla 4 and 5? We've had some questions recently about the new Backwards Compatibility plugin in Joomla 5. There's one key file that explains what this plugin does. It's also an incredibly useful guide for developers. Our team have been using this file to slowly update our code for native Joomla 5 support.
              https://github.com/joomla/joomla-cms...p/classmap.php

              2.

              Sur https://manual.joomla.org/migrations/44-50/ => voir le menu latéral gauche
              herve aime ceci.
              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


              • #8
                Dans le plugin de compatibilité (behaviour/compat/src/classmap) tu trouveras un classmap.php qui liste toutes les équivalences, par exemple
                JLoader::registerAlias('JModuleHelper', '\\Joomla\\CMS\\Helper\\ModuleHelper', '6.0');
                qui va te permettre de remplacer JModuleHelper par ModuleHelper après avoir ajouté la ligne
                use Joomla\CMS\Helper\ModuleHelper;
                Idem pour JFactory et autres J quelque chose.
                herve 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


                • #9
                  Bonjour
                  Vous n'êtes pas dev' mais bien plus compétent dans ce domaine pour moi!
                  Je n'avais pas programmé de mettre à jour ma surcharge pour être 100% compat. joomla 5 mais vu que vous répondez, je vais continuer, peut-être dans cat. dev' ?
                  Car j'ai quand même quelques soucis de compréhensions.
                  En me basant sur https://github.com/joomla/joomla-cms...p/classmap.php.
                  Si je comprends bien la méthodologie que dit Robert, il faudrait que :
                  1. use Joomla\CMS\Helper\ModuleHelper; // ajout entête
                  2. renommage JModuleHelper par ModuleHelper // remplacement
                  ... mais je ne vois pas JModuleHelper dans mon fichier de surcharge actuel !

                  Je me demande d'ailleurs s'il n'y aurait pas une autre méthode ? Je ne suis pas sûr d'avoir compris comment je dois mettre en oeuvre les "Substitutions de fichiers​" que je vois dans la page Systeme>template site ?
                  Mais peut-être faut-il que je crée une nouvelle surcharge sur un site joomla 5 par exemple ;
                  "‎/templates/cassiopeia_test/html/com_content/article/default.php" dans le template "cassiopeia_test".​
                  et là je copie/colle mon code pour avoir tout le fichier 100% joomla 5
                  PUIS ensuite je dois encore modifier ma surcharge (cf 1er post) pour modifier les anciens codes joomla 4 contenu dans ma partie
                  Faciliter l'adoption du meilleur du Libre auprès du grand public https://clibre.eu/ - Connaissez-vous des communicants ... pour promouvoir joomla ? https://forum.joomla.fr/forum/th%C3%...mouvoir-joomla

                  Commentaire


                  • #10
                    JModuleHelper est dans le code que tu as cité :
                    Code:
                    <div><?php // affichage du module articles similaires selon les tags
                    /* $renderer = JFactory::getDocument()->loadRenderer('module');
                    $modules = JModuleHelper::getModuleById('122');
                    $moduleParams = array('style' => 'xhtml');
                    echo $renderer->render($modules, $params, '');*/
                    ?></div>​​
                    Mais comme je l'ai dit, si ce code bloque malgré l'activation du plugin de compatibilité, l'erreur est peut-être ailleurs.
                    "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

                    Annonce

                    Réduire
                    Aucune annonce pour le moment.

                    Partenaire de l'association

                    Réduire

                    Hébergeur Web PlanetHoster
                    Travaille ...
                    X