Migrationd'un module vers j4

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

  • [Problème] Migrationd'un module vers j4

    hello j'aurais besoins d'aide pour adapter mon module d'administration pour j4, j'avance doucement en essayant de comprendre les name space ...
    mais je galere
    dans ma fonction j'ai
    Code PHP:
    public static function getIconFromPlugins(Registry $paramsCMSApplication $application null)
        {
            
    $key     = (string) $params;
            
    $context = (string) $params->get('context''mod_quickicon');
            
    PluginHelper::importPlugin('quickicon');
                
    $arrays = (array) $application->triggerEvent(
                    
    'onGetIcons',
                    new 
    QuickIconsEvent('onGetIcons', ['context' => $context])
                );
                foreach (
    $arrays as $response)
                {
                    if (!\
    is_array($response))
                    {
                        continue;
                    }
                    foreach (
    $response as $icon)
                    {
                        
    $default = array(
                            
    'link'    => null,
                            
    'image'   => null,
                            
    'text'    => null,
                            
    'name'    => null,
                            
    'linkadd' => null,
                            
    'access'  => true,
                            
    'class'   => null,
                            
    'group'   => 'MOD_QUICKICON',
                        );
                        
    $icon array_merge($default$icon);
                        if (!\
    is_null($icon['link']) && !\is_null($icon['text']))
                        {
                            
    self::$buttons[$key][] = $icon;
                        }
                    }
                }
            return 
    self::$buttons[$key];
        } 
    dans module
    Code PHP:
    $systme_buttons   modDashboardHelper::getIconFromPlugins($params); 
    et dans le template j'ai
    Code PHP:
    <?php foreach ($systme_buttons as $sys_buttons) :?>
                <?php //echo '<pre>' ,print_r($sys_buttons),'</pre>';?>
                <?php foreach ($sys_buttons as $sys_button) :?>
                <li id="<?php echo $sys_button['id']; ?>" class="list-group-item">
                    <a href="<?php echo $sys_button['link']; ?>">
                        <span class="<?php echo $sys_button['icon_class']; ?>" aria-hidden="true"></span> <span
                            class="j-links-link"><?php echo $sys_button['text']; ?></span>
                    </a>
                    <span class="divider">|</span>
                </li>
                <?php endforeach; ?>
    j'ai essayer de m'inspiré du module quick icon de la j4 mais pense manquer des subtilités
    et les erreurs
    Code PHP:
     Call to a member function triggerEvent() on null                             Call stack                               #             Function             Location                               1             ()             JROOT\administrator\modules\mod_dashboard\helper.p hp:148                               2             modDashboardHelper::getIconFromPlugins()             JROOT\administrator\modules\mod_dashboard\mod_dash board.php:31                               3             include()             JROOT\libraries\src\Dispatcher\ModuleDispatcher.ph p:54                               4             Joomla\CMS\Dispatcher\ModuleDispatcher::Joomla\CMS \Dispatcher\{closure}()             JROOT\libraries\src\Dispatcher\ModuleDispatcher.ph p:57                               5             Joomla\CMS\Dispatcher\ModuleDispatcher->dispatch()             JROOT\libraries\src\Helper\ModuleHelper.php:293                               6             Joomla\CMS\Helper\ModuleHelper::renderRawModule()             JROOT\libraries\src\Helper\ModuleHelper.php:166                               7             Joomla\CMS\Helper\ModuleHelper::renderModule()             JROOT\administrator\components\com_cpanel\tmpl\cpa nel\default.php:62                               8             include()             JROOT\libraries\src\MVC\View\HtmlView.php:428                               9             Joomla\CMS\MVC\View\HtmlView->loadTemplate()             JROOT\libraries\src\MVC\View\HtmlView.php:218                               10             Joomla\CMS\MVC\View\HtmlView->display()             JROOT\administrator\components\com_cpanel\src\View \Cpanel\HtmlView.php:155                               11             Joomla\Component\Cpanel\Administrator\View\Cpanel\ HtmlView->display()             JROOT\libraries\src\MVC\Controller\BaseController. php:691                               12             Joomla\CMS\MVC\Controller\BaseController->display()             JROOT\administrator\components\com_cpanel\src\Cont roller\DisplayController.php:54                               13             Joomla\Component\Cpanel\Administrator\Controller\D isplayController->display()             JROOT\libraries\src\MVC\Controller\BaseController. php:729                               14             Joomla\CMS\MVC\Controller\BaseController->execute()             JROOT\libraries\src\Dispatcher\ComponentDispatcher .php:146                               15             Joomla\CMS\Dispatcher\ComponentDispatcher->dispatch()             JROOT\libraries\src\Component\ComponentHelper.php: 389                               16             Joomla\CMS\Component\ComponentHelper::renderCompon ent()             JROOT\libraries\src\Application\AdministratorAppli cation.php:136                               17             Joomla\CMS\Application\AdministratorApplication->dispatch()             JROOT\libraries\src\Application\AdministratorAppli cation.php:179                               18             Joomla\CMS\Application\AdministratorApplication->doExecute()             JROOT\libraries\src\Application\CMSApplication.php :231                               19             Joomla\CMS\Application\CMSApplication->execute()             JROOT\administrator\includes\app.php:63                               20             require_once()             JROOT\administrator\index.php:36 
    des idées ?
    Merci
    Société : http://www.com3elles.com
    Bénévole : http://www.flexicontent.org

  • #2
    Bonjour Yves,

    $application dans l'appel de ta fonction est vide.

    Essaie d'ajouter Factory::getApplication() soit dans ta fonction soit dans l'appel de la fonction :

    Code PHP:
    $systme_buttons   modDashboardHelper::getIconFromPlugins($params,Factory::getApplication()); 

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

    Commentaire


    • #3
      Hello,

      Je plussoie sur la remarque de Pascal ...
      et je dirais meme : Pourquoi as-tu besoin de pousser le CMSapplication en parametre de ta fonction ?

      Si pas besoin, alors appelle ta fonction comme tu le fais deja :

      Code PHP:
      $systme_buttons   modDashboardHelper::getIconFromPlugins($params); 

      Puis modifie ta fonction dans le helper (ajoute les 2 lignes avec le commentaire //MODIF ) :
      Code PHP:
      <?php
      defined
      ('_JEXEC') or die;

      use 
      Joomla\CMS\Factory//MODIF : ajoute le use de la classe Factory

      ...

      public static function 
      getIconFromPlugins(Registry $params)
          {
              
      $key     = (string) $params;
              
      $context = (string) $params->get('context''mod_quickicon');
              
      $application Factory::getApplication(); //MODIF : recupere ton application courante
              
      PluginHelper::importPlugin('quickicon');
                  
      $arrays = (array) $application->triggerEvent(...
      ...
      Garstud Workshop - Concepteur, Développeur et Formateur Joomla - http://www.garstud.com
      « Ce n’est pas parce que les choses sont difficiles que nous n’osons pas,
      c’est parce que nous n’osons pas qu’elles sont difficiles. »
      - Sénèque

      Commentaire


      • #4
        ok je vais essayer d'avancer et pousser une pre-version sur github pour que vous voyez mieux le code
        Merci
        Société : http://www.com3elles.com
        Bénévole : http://www.flexicontent.org

        Commentaire


        • #5
          bon j'avance doucement, pour les quick icones j'ai plus d'erreur mais pas de contenu je vais avancé ....
          Par contre les repetable field vont disparaitre pour les subfield mais la migration ne semble pas ce faire ...
          vous avez des retours ?
          Société : http://www.com3elles.com
          Bénévole : http://www.flexicontent.org

          Commentaire


          • #6
            salut y.berges
            J'ai justement vu passer un tweet au sujet de la migration custom fields => subfields, où il y a un bug et on on demandait des testeurs...
            Présentations : slides.woluweb.be | Coordonnées complètes : www.woluweb.be

            Le prochain JoomlaDay FR présentiel aura lieu à Bruxelles (date à préciser suite aux reports "COVID-19"). Évènement à ne pas rater ! Pour patienter, nous organisons des joomladays virtuels. Plus d'infos sur https://www.joomladay.fr

            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 woluweb Voir le message
              salut y.berges
              J'ai justement vu passer un tweet au sujet de la migration custom fields => subfields, où il y a un bug et on on demandait des testeurs...
              tu parles de [j4] repetable / subfield migration and ux problem : https://github.com/joomla/joomla-cms/issues/30614
              ou [4.0] Repeatable Custom field : https://github.com/joomla/joomla-cms/issues/30556 ?

              Il semble qu'il y ait effectivement un problème sur l''outil de migration : [4.0] Repeatable Custom field : https://github.com/joomla/joomla-cms/pull/28319
              Dernière édition par pmleconte à 11/09/2020, 15h40
              woluweb aime ceci.
              If anything can go wrong, it will...
              If I can help, I will ..https://conseilgouz.com

              Commentaire


              • #8
                yes ca va etre sympa a migré !!!
                Société : http://www.com3elles.com
                Bénévole : http://www.flexicontent.org

                Commentaire


                • #9
                  Bon j'avance j'avance .... maintenant je me retrouve un soucis de jquery ...
                  Code:
                  $iconlist = ' <button id="'. $this->id .'-wrapper" class="btn btn-secondary"/></button>';
                                         $iconlist .="
                                         <script>
                                         (function ($) {
                                         $('#". $this->id ."-wrapper').iconpicker({
                                         align: 'left',
                                         arrowClass: 'btn-success',
                                         arrowPrevIconClass: 'fa fa-arrow-left',
                                         arrowNextIconClass: 'fa fa-arrow-right',
                                         cols: 5,
                                         rows:5,
                                         footer: true,
                                         header: true,
                                         iconset: 'fontawesome',
                                         labelHeader: '" . JText::sprintf( 'MOD_DASHBOARD_ICONLINK_PAGESINDEX', '{0}', '{1}' ) . "',
                                         labelFooter: '" . JText::sprintf( 'MOD_DASHBOARD_ICONLINK_ICONSINDEX', '{0}', '{1}', '{2}' ) . "',
                                         placement: 'bottom',
                                         search: true,
                                         searchText: '". JText::_('MOD_DASHBOARD_ICONLINK_SEARCHTEXT') . "',
                                         selectedClass: 'btn-primary',
                                         unselectedClass: 'btn-default',
                                         iconClass: 'fontawesome',
                                         iconClassFix: 'fa fa-',
                                         icon:'" . $this->value . "'
                                         });
                                         var myfield = $('#" . $this->id . "-wrapper'),
                                         input = $('input', myfield);
                                         input.attr({'id': '" . $this->id . "', 'name': '" . $this->name . "'});
                                         input.val('" . $this->value . "');
                                         })(jQuery);
                                         </script>
                                        <script>
                                        (function ($) {
                                        $(document).on('subform-row-add', function(event, row){
                                                        $(row).prev().find('button.hasPicker').iconpicker( );
                                                        $(row).find('button.hasPicker').iconpicker();
                                            })
                                        })(jQuery);
                                        </script>
                                         ";
                  Me renvoi
                  Code:
                  Uncaught ReferenceError: jQuery is not defined
                  alors qu'en j3 ca roule ....
                  je n'arrive pas a savoir si jquery a etais enlever de l'admin ou pas ... moi je vois des ref dans le code ...
                  Merci pour vos retours
                  Société : http://www.com3elles.com
                  Bénévole : http://www.flexicontent.org

                  Commentaire


                  • #10
                    Bonjour Yves,

                    On avait remarqué il y a quelques temps l'absence du chargement de jQuery dans Joomla 4 : https://forum.joomla.fr/forum/joomla...se-charge-plus

                    Ton message arrive car tu appelles jQuery sans être sûr s'il a été chargé précédemment.

                    Essaie d'ajouter une commande JHTML::_('jquery.framework'); pour forcer le chargement avant la création de ton script.

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

                    Commentaire


                    • #11
                      hello moi c'est yannick lol
                      je l'ai mis meme message d'erreur
                      Société : http://www.com3elles.com
                      Bénévole : http://www.flexicontent.org

                      Commentaire


                      • #12
                        Envoyé par y.berges Voir le message
                        hello moi c'est yannick lol
                        Je sais, mais, les doigts tapent trop vite ....en plus, je suis sur un problème avec un client flexicontent et ton nom/prénom y apparaissent...
                        Dernière édition par pmleconte à 17/09/2020, 14h32
                        If anything can go wrong, it will...
                        If I can help, I will ..https://conseilgouz.com

                        Commentaire


                        • #13
                          tu n'hésites pas si tu as des questions flexi c'est avec plaisir
                          Société : http://www.com3elles.com
                          Bénévole : http://www.flexicontent.org

                          Commentaire


                          • #14
                            Oh passage qqun a compris la différence entre les repetable de j3 et les subform de j4 garstud pmleconte
                            La v2 du module d'admin compatble avec j4 est en place ici
                            https://github.com/micker/mod_dashboard/tree/v2
                            pour ceux qui peuvent aider ... ?
                            il me reste a refaire mon iconpicker (un champ joomla qui permet de choisir un icon font avec moteur de recherche) et remettre les quickicon ...
                            sinon tout le reste fonctionne
                            Société : http://www.com3elles.com
                            Bénévole : http://www.flexicontent.org

                            Commentaire


                            • #15
                              je pense que ton souci vient du fait que jQuery est maintenant chargé en fin de page. Il faut que ton script soit chargé APRES jQuery, donc en fin de page. Vérifie ce point
                              Vive Joomla! http://www.joomlack.fr Tutoriels et extensions pour Joomla!. Livre création de template Joomla de plus de 200 pages.
                              http://www.template-creator.com Outil de création de templates
                              Module Maximenu CK - Megamenu, multicolonnes, chargement de module, description de lien, deroulement animé - Compatible Virtuemart, Hikashop

                              Commentaire

                              Annonce

                              Réduire
                              1 sur 2 < >

                              C'est [Réglé] et on n'en parle plus ?

                              A quoi ça sert ?
                              La mention [Réglé] permet aux visiteurs d'identifier rapidement les messages qui ont trouvé une solution.

                              Merci donc d'utiliser cette fonctionnalité afin de faciliter la navigation et la recherche d'informations de tous sur le forum.

                              Si vous deviez oublier de porter cette mention, nous nous permettrons de le faire à votre place... mais seulement une fois
                              Comment ajouter la mention [Réglé] à votre discussion ?
                              1 - Aller sur votre discussion et éditer votre premier message :


                              2 - Cliquer sur la liste déroulante Préfixe.

                              3 - Choisir le préfixe [Réglé].


                              4 - Et voilà… votre discussion est désormais identifiée comme réglée.

                              2 sur 2 < >

                              Assistance au forum - Outil de publication d'infos de votre site

                              Compatibilité: PHP 4.1,PHP4, 5, 6DEV MySQL 3.2 - 5.5 MySQLi from 4.1 ( @ >=PHP 4.4.9)

                              Support Version de Joomla! : | J!3.0 | J!2.5.xx | J!1.7.xx | J!1.6.xx | J1.5.xx | J!1.0.xx |

                              Version française (FR) D'autres versions sont disponibles depuis la version originale de FPA

                              UTILISER À VOS PROPRES RISQUES :
                              L'exactitude et l'exhaustivité de ce script ainsi que la documentation ne sont pas garanties et aucune responsabilité ne sera acceptée pour tout dommage, questions ou confusion provoquée par l'utilisation de ce script.

                              Problèmes connus :
                              FPA n'est actuellement pas compatible avec des sites Joomla qui ont eu leur fichier configuration.php déplacé en dehors du répertoire public_html.

                              Installation :

                              1. Téléchargez l'archive souhaitée : http://afuj.github.io/FPA/

                              Archive zip : https://github.com/AFUJ/FPA/zipball/master

                              2. Décompressez le fichier de package téléchargé sur votre propre ordinateur (à l'aide de WinZip ou d'un outil de décompression natif).

                              3. Lisez le fichier LISEZMOI inclus pour toutes les notes de versions spécifiques.

                              4. LIRE le fichier de documentation inclus pour obtenir des instructions d'utilisation détaillées.

                              5. Téléchargez le script fpa-fr.php à la racine de votre site Joomla!. C'est l'endroit que vous avez installé Joomla et ce n'est pas la racine principale de votre serveur. Voir les exemples ci-dessous.

                              6. Exécutez le script via votre navigateur en tapant: http:// www. votresite .com/ fpa-fr.php
                              et remplacer www. votresite .com par votre nom de domaine


                              Exemples:
                              Joomla! est installé dans votre répertoire web et vous avez installé la version française du fichier FPA:
                              Télécharger le script fpa-fr.php dans: /public_html/
                              Pour executer le script: http://www..com/fpa-fr.php

                              Joomla! est installé dans un sous-répertoire nommé "cms" et vous avez installé la version française du fichier FPA:
                              Télécharger le script fpa-fr.php dans: /public_html/cms/
                              Pour executer le script: http://www..com/cms/fpa-fr.php

                              En raison de la nature très sensible de l'information affichée par le script FPA, il doit être retiré immédiatement du serveur après son utilisation.

                              Pour supprimer le script de votre site, utilisez le lien de script de suppression fourni en haut de la page du script. Si le lien de suppression échoue pour supprimer le script, utilisez votre programme FTP pour le supprimer manuellement ou changer le nom une fois que le script a généré les données du site et le message publié sur le forum. Si le script est toujours présent sur le site, il peut être utilisé pour recueillir suffisamment d'informations pour pirater votre site. Le retrait du script empêche des étrangers de l'utiliser pour jeter un oeil à la façon dont votre site est structuré et de détecter les défauts qui peuvent être utilisé à vos dépends.
                              Voir plus
                              Voir moins

                              Partenaire de l'association

                              Réduire

                              Hébergeur Web PlanetHoster
                              Travaille ...
                              X