gestion des paramètres dans un composant

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

  • [RÉGLÉ] gestion des paramètres dans un composant

    bonjour
    je relance un post car j'ai l'impression qu'une discussion engagée avec 'cedxx' a disparu depuis le plantage des serveurs ...

    - dans un composant que je bricole je souhaite y inclure des paramètres d'affichage qui seront dans un config.xml donc accessible à chaque création de menu, mais je ne comprend pas comment appeler ces paramètres dans ma view frontend !?.

    - j'ai aussi d'autres paramètres qui sont des valeurs de coefficient qui doivent s'appliquer tout le temps et qui seront gérés dans une vue en backend, ced m'avait dit de les intégrer dans une table sql, est-ce une bonne idée et si oui comment les appeler dans ma vue frontend ...

    merci LJ
    Dernière édition par laurent00 à 21/11/2011, 21h05
    mon avatar : http://www.ingall-niger.org

  • #2
    Re : gestion des paramètres dans un composant

    Bonjour

    La lecture des paramètres d'une vue est expliquée ici : http://docs.joomla.org/Component_parameters

    Tes coefficients; sont-ils appelés à être modifiés ou s'agit-il de constantes qui ne varieront que lorsque tu feras une mise-à-jour du composant ? Dans le premier cas, tu peux envisager une table et donc tu y auras accès après une lecture du record dans la table.

    Dans le second cas, cela pourrait être un fichier que tu nommerais p.e. constants.php où tu aurais des déclarations de constantes Declare('_constant', 'valeur'); et tu inclus ce fichier avec un require_once.
    Christophe (cavo789)
    Mon blog, on y parle Docker, PHP, WSL, Markdown et plein d'autres choses : https://www.avonture.be
    Logiciel gratuit de scan antivirus : https://github.com/cavo789/aesecure_quickscan (plus de 45.000 virus détectés, 700.000 fichiers sur liste blanche)​

    Commentaire


    • #3
      Re : gestion des paramètres dans un composant

      On peut dire aussi que Joomla gére de façon native tous les paramètres du config.xml qui se retrouvent dans le champs params du Composant(#__components). De cette façon, même si le Comp évolue (avec plus de paramètres), les paramètres suivent.
      Il faut juste ajouter un controller config.php avec une fonction save et une vue pour le formulaire ...

      C'est au choix ...
      Developper of JBreeding Manager: http://www.jbreeding.fr/
      J-cook Referral : Service Générateur d'Extensions pour Joomla

      Commentaire


      • #4
        Re : gestion des paramètres dans un composant

        Perso, j'ai abandonné depuis deux ans config.xml : si tu désinstalles le composant, tu perds tout. Je préfère stocker mes paramètres dans une table de mon composant (jos_allevents_settings) et ne pas supprimer la table lors de la désinstallation. Là, je suis sûr de retrouver les paramètres si l'utilisateur croit qu'il faut déinstaller un composant avant d'installer une mise-à-jour.
        Christophe (cavo789)
        Mon blog, on y parle Docker, PHP, WSL, Markdown et plein d'autres choses : https://www.avonture.be
        Logiciel gratuit de scan antivirus : https://github.com/cavo789/aesecure_quickscan (plus de 45.000 virus détectés, 700.000 fichiers sur liste blanche)​

        Commentaire


        • #5
          Re : gestion des paramètres dans un composant

          Complètement d'accord. dans le mien ça me suffit pour le moment. c'est sur que ça reset les valeurs par défaut à chaque upgrade du composant ...
          Developper of JBreeding Manager: http://www.jbreeding.fr/
          J-cook Referral : Service Générateur d'Extensions pour Joomla

          Commentaire


          • #6
            Re : gestion des paramètres dans un composant

            Note : tu peux faire un package au format "upgrade"; il ne faut pas alors désinstaller. Mais un grand nombre d'utilisateurs font un uninstall, ils ne savent pas qu'on peut réinstaller "par-dessus".
            Christophe (cavo789)
            Mon blog, on y parle Docker, PHP, WSL, Markdown et plein d'autres choses : https://www.avonture.be
            Logiciel gratuit de scan antivirus : https://github.com/cavo789/aesecure_quickscan (plus de 45.000 virus détectés, 700.000 fichiers sur liste blanche)​

            Commentaire


            • #7
              Re : gestion des paramètres dans un composant

              merci pour ces infos je crois que j'ai de quoi gratter ..
              LJ
              mon avatar : http://www.ingall-niger.org

              Commentaire


              • #8
                Re : gestion des paramètres dans un composant

                Envoyé par cavo789 Voir le message
                Note : tu peux faire un package au format "upgrade"; il ne faut pas alors désinstaller. Mais un grand nombre d'utilisateurs font un uninstall, ils ne savent pas qu'on peut réinstaller "par-dessus".
                Je comprends que si on ne met pas de uninstall.php, JInstaller ne supprime rien et install par dessus. (se résume en fait à un Upgrade des nouveaux fichiers du composant).
                A quoi sert "Upgrade" dans le xml ?
                Je me suis rendu compte que l'installer supprime tous les fichiers du composant et redéploie tout.
                Code PHP:
                <install type="component" version="1.5.0" method="upgrade"
                Et sans uninstall.php, l'utilisateur ne peut plus désinstaller le composant par le backend.

                Je pensais que "Upgrade" fesait un Upgrade justement. et que Uninstall était pour la désintallation ...
                Developper of JBreeding Manager: http://www.jbreeding.fr/
                J-cook Referral : Service Générateur d'Extensions pour Joomla

                Commentaire


                • #9
                  Re : gestion des paramètres dans un composant

                  Si tu ne mets pas upgrade dans ton fichier xml, l'installation ne fonctionne pas. Joomla dira que le dossier de ton composant / module existe déjà et ne voudra pas faire l'installation. Ce qui me semble pertinent.

                  Pour uninstall.php, cela m'étonne mais je ne saurais pas infirmer / confirmer : le uninstall permet d'inscrire du code qui sera exécuté lors de la désinstallation, est-ce que si tu ne mets rien, est-ce que les tables restent; je ne sais plus.
                  Christophe (cavo789)
                  Mon blog, on y parle Docker, PHP, WSL, Markdown et plein d'autres choses : https://www.avonture.be
                  Logiciel gratuit de scan antivirus : https://github.com/cavo789/aesecure_quickscan (plus de 45.000 virus détectés, 700.000 fichiers sur liste blanche)​

                  Commentaire


                  • #10
                    Re : gestion des paramètres dans un composant

                    En resongeant à la question : la question n'était pas là en fait

                    La désinstallation du composant va supprimer son entrée dans la table jos_component or c'est là que Joomla va stocker les paramètres du composant; paramètres qui ont été définis dans le fichier config.xml.

                    Les tables du composant ne seront pas supprimées; c'est bien exact mais l'utilisateur va perdre ses paramètres dans tous les cas ==> c'est pour cette raison qu'il y a deux ans j'ai abandonné config.xml et que j'ai créé ma table jos_xxx_settings et que j'ai donc développé un écran backend de gestion des paramètres. Il faut juste s'assurer que le champs ID soit toujours mis à 1; dans tous les cas, ceci afin de n'avoir qu'un et un seul record dans la table.
                    Christophe (cavo789)
                    Mon blog, on y parle Docker, PHP, WSL, Markdown et plein d'autres choses : https://www.avonture.be
                    Logiciel gratuit de scan antivirus : https://github.com/cavo789/aesecure_quickscan (plus de 45.000 virus détectés, 700.000 fichiers sur liste blanche)​

                    Commentaire


                    • #11
                      Re : gestion des paramètres dans un composant

                      Envoyé par liubov Voir le message
                      On peut dire aussi que Joomla gére de façon native tous les paramètres du config.xml qui se retrouvent dans le champs params du Composant(#__components). De cette façon, même si le Comp évolue (avec plus de paramètres), les paramètres suivent.
                      Il faut juste ajouter un controller config.php avec une fonction save et une vue pour le formulaire ...

                      C'est au choix ...
                      donc je m'essaie au config.xml, j'ai ajouter le controller mais dans le default.php de ma vue comment est-ce que j'appelle tel ou tel paramètre ?
                      ensuite avec le doc j'ai pas tout compris de la cascade pour appeler les param en frontend ...
                      LJ
                      mon avatar : http://www.ingall-niger.org

                      Commentaire


                      • #12
                        Re : gestion des paramètres dans un composant

                        coté view.html.php :
                        Code PHP:
                        class jbreedmViewConfig extends JView
                        {
                            var 
                        $form null;
                            var 
                        $ini '';
                         
                            function 
                        display$tpl null )
                         { 
                             
                        // Create the form
                          
                        $this->form =& Comjbreedm::getParams();
                          
                        $this->form->loadSetupFileJPATH_COMPONENT.DS.'models'.DS.'Config.xml' );
                         
                             
                        JHTML::_('behavior.tooltip');
                             
                        JToolBarHelper::titleJText::_'CONFIG_VIEW' ), 'config.png' );
                             
                        JToolBarHelper::save();
                             
                        JToolBarHelper::makeDefault();
                         
                         
                             
                        parent::display($tpl);
                         }
                         

                        Developper of JBreeding Manager: http://www.jbreeding.fr/
                        J-cook Referral : Service Générateur d'Extensions pour Joomla

                        Commentaire


                        • #13
                          Re : gestion des paramètres dans un composant

                          En entrée, j'ai une classe avec des fonction Utiles ...
                          jbreedm.class.php

                          Code PHP:
                          <?php
                          class Comjbreedm
                          {
                           function &
                          getParams()
                              {
                            static 
                          $instance;
                           
                            if ( !
                          is_object($instance) ) {
                           
                                
                          $instance =& JComponentHelper::getParams('com_jbreedm');
                           
                          ...
                           
                            }
                          Developper of JBreeding Manager: http://www.jbreeding.fr/
                          J-cook Referral : Service Générateur d'Extensions pour Joomla

                          Commentaire


                          • #14
                            Re : gestion des paramètres dans un composant

                            Dans Model : Config.xml ...
                            Code PHP:
                            <?xml version="1.0" encoding="utf-8"?>
                            <form>
                             <name>JBM Config Form</name>
                             <params group="etalons">
                              <param name="etalons_columns" type="text" size="1" default="4" label="NUMBERS_COLUMN" description=""  />
                              <param name="etalons_margin_px" type="text" size="1" default="2" label="BORDER_MARGIN" description=""  />
                              <param name="etalons_height" type="text" size="3" default="200" label="PICTS_HEIGHT" description=""  />
                              <param name="etalons_logo" type="radio" default="yes" label="SELECT_LOGO">
                               <option value="yes">Yes</option>
                               <option value="no">No</option>
                              </param>
                              <param name="etalons_text" type="text" size="30" default="Les Etalons" label="TITRE" description="ETALONS_TEXT_OU_LOGO"  />
                             </params>
                            ...
                            Developper of JBreeding Manager: http://www.jbreeding.fr/
                            J-cook Referral : Service Générateur d'Extensions pour Joomla

                            Commentaire


                            • #15
                              Re : gestion des paramètres dans un composant

                              Dans Default.php
                              Code PHP:
                              <form action="index.php?option=com_jbreedm&controller=config" method="post" name="adminForm" id="adminForm">
                              <table cellspacing="0" cellpadding="0" border="0" width="100%" >
                                <tbody>
                               <tr>
                                <td valign="top" width="50%" style="padding-right:10px;">
                                
                                 <fieldset><legend><?php echo JText::_('ETALONS_PAGE'?></legend> 
                                     <?php echo $this->form->render('etalons''etalons'?>&nbsp;&nbsp;<i
                                 </fieldset>
                               
                                 <fieldset><legend><?php echo JText::_('LICES_PAGE'?></legend> 
                                     <?php echo $this->form->render('lices''lices'?>
                                 </fieldset>
                               
                                 <fieldset><legend><?php echo JText::_('PUPPIES_PAGE'?></legend> 
                                     <?php echo $this->form->render('puppies''puppies'?>
                                 </fieldset>
                                 
                                 <fieldset><legend><?php echo JText::_('ANCESTERS_PAGES'?></legend> 
                                     <?php echo $this->form->render('ancesters''ancesters'?>
                                 </fieldset>
                                </td>
                              ...
                              Developper of JBreeding Manager: http://www.jbreeding.fr/
                              J-cook Referral : Service Générateur d'Extensions pour Joomla

                              Commentaire

                              Annonce

                              Réduire
                              Aucune annonce pour le moment.

                              Partenaire de l'association

                              Réduire

                              Hébergeur Web PlanetHoster
                              Travaille ...
                              X