Problème PHP 8 sur Joomla 3.10.11

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

  • [RÉGLÉ] Problème PHP 8 sur Joomla 3.10.11

    Bonjour
    Je suis en train de préparer la mise à jour mon site Joomla 3.10.11 et Virtuemart 4.0.12 qu'il fonctionne sur PHP 7.4 chez OVH. Quand j'ai activé PHP 8 dans mon hébergement OVH, je ne peux plus accéder les Catégories de Joomla.

    Il affiche erreur : Attempt to modify property "params" on null

    J'ai aussi le problème sur virtuemart 4, quand je clique sur le bouton Ajouter produit il y a un problème d'affichage (voir photo)
    Le même problème sur le bouton Ajouter une catégorie

    Merci votre aide
    Fichiers joints
    Dernière édition par tuaneric à 30/12/2022, 20h51
    Joomla 3.10.11 & Virtuemart 4.0.12 10777 - PHP 8.2 , Template Hera version 3.11

  • #2
    Bonjour,

    Essaie de savoir en activant le débogage et en mettant le rapport d'erreurs au maximum quelle(s) extension(s) sont en cause. Pour ça commence par revenir en PHP 7.4 et ouvre les pages qui te posent problème en version 8.
    Sur son site, Virtuemart annonce une compatibilité 8.1 et Joomla! 3.10.11 est compatible 8.0, sauf erreur de ma part.
    "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


    • #3
      Bonjour
      J'ai activé le débogage, il affiche erreur
      Call stack
      # Function Location
      1 () JROOT/templates/hera_j3_vm3/html/com_content/category/default_articles.php:15
      2 include() JROOT/libraries/src/MVC/View/HtmlView.php:701
      3 Joomla\CMS\MVC\View\HtmlView->loadTemplate() JROOT/layouts/joomla/content/category_default.php:79
      4 include() JROOT/libraries/src/Layout/FileLayout.php:125
      5 Joomla\CMS\Layout\FileLayout->render() JROOT/libraries/src/Layout/LayoutHelper.php:73
      6 Joomla\CMS\Layout\LayoutHelper::render() JROOT/templates/hera_j3_vm3/html/com_content/category/default.php:20
      7 include() JROOT/libraries/src/MVC/View/HtmlView.php:701
      8 Joomla\CMS\MVC\View\HtmlView->loadTemplate() JROOT/libraries/src/MVC/View/HtmlView.php:230
      9 Joomla\CMS\MVC\View\HtmlView->display() JROOT/libraries/src/MVC/View/CategoryView.php:245
      10 Joomla\CMS\MVC\View\CategoryView->display() JROOT/components/com_content/views/category/view.html.php:250
      11 ContentViewCategory->display() JROOT/libraries/src/MVC/Controller/BaseController.php:664
      12 Joomla\CMS\MVC\Controller\BaseController->display() JROOT/components/com_content/controller.php:118
      13 ContentController->display() JROOT/libraries/src/MVC/Controller/BaseController.php:702
      14 Joomla\CMS\MVC\Controller\BaseController->execute() JROOT/components/com_content/content.php:43
      15 require_once() JROOT/libraries/src/Component/ComponentHelper.php:402
      16 Joomla\CMS\Component\ComponentHelper::executeCompo nent() JROOT/libraries/src/Component/ComponentHelper.php:377
      17 Joomla\CMS\Component\ComponentHelper::renderCompon ent() JROOT/libraries/src/Application/SiteApplication.php:194
      18 Joomla\CMS\Application\SiteApplication->dispatch() JROOT/libraries/src/Application/SiteApplication.php:233
      19 Joomla\CMS\Application\SiteApplication->doExecute() JROOT/libraries/src/Application/CMSApplication.php:225
      20 Joomla\CMS\Application\CMSApplication->execute() JROOT/index.php:49
      C'est le problème de Template HERA, quand j'ai essayé changer la template beez3. Ma page catéogie affiche.

      Je dois cherchcer une template compatible avec PHP 8 ?

      Vous connaissez une template compatible avec PHP 8 de Joomla 3 & 4 avec Virtuemart 4 ?

      Merci
      Dernière édition par tuaneric à 27/12/2022, 17h42
      Joomla 3.10.11 & Virtuemart 4.0.12 10777 - PHP 8.2 , Template Hera version 3.11

      Commentaire


      • #4
        En effet, c'est ton template.
        A priori tous les templates compatibles J3 et J4 le seront avec VM 4.
        Les templates basés sur le Framework Astroid sont compatibles J3 et J4. Je n'ai pas d'expérience de ceux basés sur d'autres Frameworks qui le sont peut-être aussi maintenant.
        "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


        • #5
          Bonjour
          Quand j'ai activé PHP 8, j'ai 2 problèmes sur mon template Hera.


          Erreur sur la page index.php :

          Code:
          Call stack
          # Function Location
          1 () JROOT/templates/hera_j3_vm3/html/com_virtuemart/sublayouts/badges.php:9
          2 include() JROOT/components/com_virtuemart/helpers/shopfunctionsf.php:567
          3 shopFunctionsF::renderVmSubLayout() JROOT/templates/hera_j3_vm3/html/com_virtuemart/sublayouts/products.php:150
          4 include() JROOT/components/com_virtuemart/helpers/vmview.php:129
          5 VmView->renderVmSubLayout() JROOT/templates/hera_j3_vm3/html/com_virtuemart/virtuemart/default.php:42
          6 include() JROOT/libraries/src/MVC/View/HtmlView.php:701
          7 Joomla\CMS\MVC\View\HtmlView->loadTemplate() JROOT/components/com_virtuemart/helpers/vmview.php:81
          8 VmView->display() JROOT/components/com_virtuemart/views/virtuemart/view.html.php:210
          9 VirtueMartViewVirtueMart->display() JROOT/components/com_virtuemart/controllers/virtuemart.php:48
          10 VirtueMartControllerVirtuemart->display() JROOT/libraries/src/MVC/Controller/BaseController.php:702
          11 Joomla\CMS\MVC\Controller\BaseController->execute() JROOT/components/com_virtuemart/virtuemart.php:128
          12 require_once() JROOT/libraries/src/Component/ComponentHelper.php:402
          13 Joomla\CMS\Component\ComponentHelper::executeCompo nent() JROOT/libraries/src/Component/ComponentHelper.php:377
          14 Joomla\CMS\Component\ComponentHelper::renderCompon ent() JROOT/libraries/src/Application/SiteApplication.php:194
          15 Joomla\CMS\Application\SiteApplication->dispatch() JROOT/libraries/src/Application/SiteApplication.php:233
          16 Joomla\CMS\Application\SiteApplication->doExecute() JROOT/libraries/src/Application/CMSApplication.php:225
          17 Joomla\CMS\Application\CMSApplication->execute() JROOT/index.php:49

          Le code PHP de page badges.php

          Code:
          <?php defined('_JEXEC') or die('Restricted access');
          $product = $viewData['product'];
          // Horme 3.5.0
          $app = JFactory::getApplication('site');
          $template = $app->getTemplate(true);
          // Badge new
          $days = VmConfig::get('latest_products_days');
          $cdate = strtotime ($product->created_on) ;
          $ndate = strtotime ('now') - ($days * 86400); ?>
          
            <div class="badges text-left clearfix">
            <?php if ($template->params->get('badges')) { ?>
              <?php if ($cdate > $ndate): // Show Badge New ?>
                <span class="label label-success"><?php echo JText::_('TPL_VM_NEW') ?></span>
              <?php endif; ?>
          
              <?php if ($product->product_special): // Show Badge Featured ?>
                <span class="label label-primary"><?php echo JText::_('TPL_VM_FEATURED') ?></span>
              <?php endif; ?>
          
              <?php if ($product->prices['discountAmount'] != -0 && !$template->params->get('percentage')): // Show Badge on Sale ?>
                <span class="label label-danger"><?php echo JText::_('TPL_VM_ONSALE') ?></span>
              <?php endif; ?>
            <?php } ?>
            </div>
          Je vois la ligne 9:
          Code:
          $ndate = strtotime ('now') - ($days * 86400); ?>
          Lorsque j'ai supprimé le fichier badges.php, la page index.php fonctionne.

          J'ai autre problème sur la page des catégories, il affiche une erreur

          Code:
          Call stack
          # Function Location
          1 () JROOT/templates/hera_j3_vm3/html/com_content/category/default_articles.php:15
          2 include() JROOT/libraries/src/MVC/View/HtmlView.php:701
          3 Joomla\CMS\MVC\View\HtmlView->loadTemplate() JROOT/layouts/joomla/content/category_default.php:79
          4 include() JROOT/libraries/src/Layout/FileLayout.php:125
          5 Joomla\CMS\Layout\FileLayout->render() JROOT/libraries/src/Layout/LayoutHelper.php:73
          6 Joomla\CMS\Layout\LayoutHelper::render() JROOT/templates/hera_j3_vm3/html/com_content/category/default.php:20
          7 include() JROOT/libraries/src/MVC/View/HtmlView.php:701
          8 Joomla\CMS\MVC\View\HtmlView->loadTemplate() JROOT/libraries/src/MVC/View/HtmlView.php:230
          9 Joomla\CMS\MVC\View\HtmlView->display() JROOT/libraries/src/MVC/View/CategoryView.php:245
          10 Joomla\CMS\MVC\View\CategoryView->display() JROOT/components/com_content/views/category/view.html.php:250
          11 ContentViewCategory->display() JROOT/libraries/src/MVC/Controller/BaseController.php:664
          12 Joomla\CMS\MVC\Controller\BaseController->display() JROOT/components/com_content/controller.php:118
          13 ContentController->display() JROOT/libraries/src/MVC/Controller/BaseController.php:702
          14 Joomla\CMS\MVC\Controller\BaseController->execute() JROOT/components/com_content/content.php:43
          15 require_once() JROOT/libraries/src/Component/ComponentHelper.php:402
          16 Joomla\CMS\Component\ComponentHelper::executeCompo nent() JROOT/libraries/src/Component/ComponentHelper.php:377
          17 Joomla\CMS\Component\ComponentHelper::renderCompon ent() JROOT/libraries/src/Application/SiteApplication.php:194
          18 Joomla\CMS\Application\SiteApplication->dispatch() JROOT/libraries/src/Application/SiteApplication.php:233
          19 Joomla\CMS\Application\SiteApplication->doExecute() JROOT/libraries/src/Application/CMSApplication.php:225
          20 Joomla\CMS\Application\CMSApplication->execute() JROOT/index.php:49
          Fichier PHP : /templates/hera_j3_vm3/html/com_content/category/default_articles.php

          Code:
          <?php
          /**
           * @package     Joomla.Site
           * @subpackage  com_content
           *
           * @copyright   Copyright (C) 2005 - 2014 Open Source Matters, Inc. All rights reserved.
           * @license     GNU General Public License version 2 or later; see LICENSE.txt
           */
          
          defined('_JEXEC') or die;
          
          JHtml::addIncludePath(JPATH_COMPONENT . '/helpers/html');
          
          // Create some shortcuts.
          $params = &$this->item->params;
          $n = count($this->items);
          $listOrder = $this->escape($this->state->get('list.ordering'));
          $listDirn = $this->escape($this->state->get('list.direction'));
          
          // Check for at least one editable article
          $isEditable = false;
          
          if (!empty($this->items))
          {
          foreach ($this->items as $article)
          {
          if ($article->params->get('access-edit'))
          {
          $isEditable = true;
          break;
          }
          }
          }
          ?>

          Ligne 15 :
          Code:
          $params = &$this->item->params;
          je joins 2 fichiers

          Merci votre aide
          Fichiers joints
          Joomla 3.10.11 & Virtuemart 4.0.12 10777 - PHP 8.2 , Template Hera version 3.11

          Commentaire


          • #6
            Bonjour

            Sur le site Virtuemart.net, il m'a aidé régler mes problèmes de template Hera :

            Fichier PHP : /templates/hera_j3_vm3/html/com_content/category/default_articles.php

            La ligne $params = &$this->item->params;
            Supprimer & sur $this

            Fichier PHP: templates/hera_j3_vm3/html/com_virtuemart/sublayouts/badges.php

            Code:
            // Badge new
            $days = VmConfig::get('latest_products_days');
            $cdate = strtotime ($product->created_on) ;
            $ndate = strtotime ('now') - ($days * 86400); ?>
            Remplacer par

            Code:
            // Badge new
            $days = VmConfig::get('latest_products_days');
            if(empty($days)) { $days = 1;}
            $cdate = strtotime ($product->created_on) ;
            $ndate = strtotime ('now') - ((int)$days * 86400); ?>
            Bonne année
            Joomla 3.10.11 & Virtuemart 4.0.12 10777 - PHP 8.2 , Template Hera version 3.11

            Commentaire

            Annonce

            Réduire
            Aucune annonce pour le moment.

            Partenaire de l'association

            Réduire

            Hébergeur Web PlanetHoster
            Travaille ...
            X