devient CO2 planète ...

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

  • #31
    Re : objectifcarbone

    bonsoir
    j'avance, j'ai pas mal réécris des tmpl en html
    des Jrequest par c par là et aussi des factorisations dans mes /models pour les claculs
    par contre je n'arrive pas à faire passer cette fonction
    Code PHP:
      //load and push item basics parameters
        
    $params = & JComponentHelper::getParams'com_objectifcarbone' );

        foreach (
    $params->_registry['_default']['data'] as $key => $val) {
            
    $this->assignRef($key,    $val); 
    c sur cette partie que je dois coincer _registry['_default']['data'] .... à quoi correspond le default et le data ?
    ou alors il faut réécrire les nom des params ...
    mon livre de 916 pages est pauvres sur le sujet ... ou alors je cherche pas là ou il faut ...
    Lj
    Dernière édition par laurent00 à 15/11/2011, 22h03
    mon avatar : http://www.ingall-niger.org

    Commentaire


    • #32
      Re : objectifcarbone

      Bonsoir

      Plusieurs trucs me turlupine dans ton code : la non-optimisation de ta boucle et l'utilisation de _registry. Pourquoi ne pas utiliser, une fonction qui permettrait de récupérer tous les paramètres.

      Je n'ai pas vérifié mais est-ce que un getParams() ne pourrait pas convenir ?

      Note : généralement, une propriété dont le nom commence par un underscore comme _registry est souvent une propriété de type private et dont l'utilisation n'est pas prévue en dehors de la page où elle est déclarée. Joomla 1.5 accepte bien souvent ce type d'utilisation mais attention au portage à Joomla 1.7 qui pourrait ne plus l'accepter. Pour lire des variables d'une classe, idéalement, passer par un getter. getParams est en un.
      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


      • #33
        Re : objectifcarbone

        Code PHP:
        foreach ($params->_registry['_default']['data'] as $key => $val) { 
        - $params est un objet (en fait une instance de JParameter)
        - cet objet $params a une propriété '_registry' qui est un tableau
        - ce tableau '_registry' a une entrée _registry['_default'] qui est lui aussi un tableau
        - ce tableau _registry['_default'] a une entrée _registry['_default']['data'] qui est objet (stdClass)
        - cet objet _registry['_default']['data'] contient les paramètres sous la forme 'propriété' => 'valeur'

        Un var_dump sur $params te permettra de voir sa structure...
        Fly06_Fr (http://www.fly06.fr/)
        -------------------------------------------
        Classe MooTools pour Recherche Asynchrone (Ajax) : http://forum.joomla.fr/showthread.ph...one-%28Ajax%29

        Commentaire


        • #34
          Re : objectifcarbone

          Envoyé par cavo789 Voir le message
          Note : généralement, une propriété dont le nom commence par un underscore comme _registry est souvent une propriété de type private et dont l'utilisation n'est pas prévue en dehors de la page où elle est déclarée. Joomla 1.5 accepte bien souvent ce type d'utilisation mais attention au portage à Joomla 1.7 qui pourrait ne plus l'accepter. Pour lire des variables d'une classe, idéalement, passer par un getter. getParams est en un.
          C'est exact.

          L'accès est possible sous J1.5/PHP4 mais ce type de racourci n'est probablement pas portable sous J1.7/PHP5 car la propriété doit être privée.

          Mais bon, il s'agissait surtout de montrer à laurent comment factoriser du code en structurant ces données.

          En fait, sur ce point précis, il ne devrait pas passer ses paramètres un par un de la view vers le layout (comme il le fait actuellement) mais passer l'objet $params directement et utiliser le getter de JParameter pour récupérer ses paramètres individuels dans le layout (méthode classique Joomla)...
          Fly06_Fr (http://www.fly06.fr/)
          -------------------------------------------
          Classe MooTools pour Recherche Asynchrone (Ajax) : http://forum.joomla.fr/showthread.ph...one-%28Ajax%29

          Commentaire


          • #35
            Re : objectifcarbone

            Si cette programmation ne peut être évitée, il faudrait optimiser le début de la boucle car ici, on force PHP à faire un énorme détour avant d'atteindre "data" et ce détour est répété pour chaque valeur de ce tableau. Perte appréciable de vitesse.

            Code PHP:
            foreach ($params->_registry['_default']['data'] as $key => $val) { 
            devrait être écris comme, p.e., ceci :

            Code PHP:
            $data=& $params->_registry['_default']['data'];
            foreach (
            $data as $key => $val) { 
            (non testé)

            L'idée est de pointer immédiatement vers 'data' et d'utiliser le pointeur dans la boucle. Accès direct à l'information.

            Reste que accéder à _registry n'est probablement pas une bonne idée comme toi et moi le mentionnons ci-dessus.

            Happy coding day !
            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


            • #36
              Re : objectifcarbone

              Envoyé par cavo789 Voir le message
              Je n'ai pas vérifié mais est-ce que un getParams() ne pourrait pas convenir ?
              getParams() ne convient pas (sert à récupérer les paramètres depuis le fichier xml a priori).

              Par contre, la méthode toArray() de la classe JRegistry fait le job :

              Code PHP:
                  foreach ($params->toArray() as $key => $val) {
                      
              $this->assign($key$val);

              J'ai aussi remplacé assignRef par assign car sinon ça déconne du fait du passage par référence.

              Envoyé par cavo789 Voir le message
              Si cette programmation ne peut être évitée, il faudrait optimiser le début de la boucle car ici, on force PHP à faire un énorme détour avant d'atteindre "data" et ce détour est répété pour chaque valeur de ce tableau. Perte appréciable de vitesse.

              L'idée est de pointer immédiatement vers 'data' et d'utiliser le pointeur dans la boucle. Accès direct à l'information.
              Je doute que cette optimisation en soit vraiment une du fait que dans une boucle foreach php travaille sur une copie du tableau et non sur le tableau d'origine.
              Fly06_Fr (http://www.fly06.fr/)
              -------------------------------------------
              Classe MooTools pour Recherche Asynchrone (Ajax) : http://forum.joomla.fr/showthread.ph...one-%28Ajax%29

              Commentaire


              • #37
                Re : objectifcarbone

                bonsoir
                j'ai fait passer certains calculs avec cette méthode, en harmonisant le name de mes paramètre de calcul, cela fonctionne
                Code PHP:
                function getReskwh()
                    {
                    
                //appel des valeurs saisies
                    
                $dpe JRequest::getVar('dpe', array(0), 'post''array'); 
                    
                $surface JRequest::getInt('surface'0'POST'); 

                        
                // calcul du total
                        
                $total 0
                        foreach (
                $dpe as $key => $val) { 
                        
                $total += $val $this->params->get'kwh_' $key); 
                        } 

                        
                // Retour du total 
                        
                if ($surface 0)    { 
                            return 
                $total/$surface
                        }
                    } 
                par contre dans une autre vue je dois faire ce total plus les % de chaque valeurs issues du tableau croisé...
                et là je sais plus faire ...

                sinon pour le passage en gros de mes params il faut savoir que ceux-ci ne servent pas aux calculs mais seulement à définir les niveaux de l'échelle co2 ils sont dans le Config.xml en backend et une autre série de params est dans le default.xml de mon tmpl ...
                le code suivant ramène bien le tout et j'espère qu'il suivra en J!1.7 ...
                Code PHP:
                //load and push item basics parameters
                      
                $params = & JComponentHelper::getParams'com_objectifcarbone' );
                       foreach (
                $params->toArray() as $key => $val) { 
                        
                $this->assign($key$val); 
                    } 
                LJ
                Dernière édition par laurent00 à 18/11/2011, 23h09
                mon avatar : http://www.ingall-niger.org

                Commentaire


                • #38
                  Re : objectifcarbone

                  bonjour
                  je vous livre en version améliorée, mais il reste quand même du boulot dans la réécriture ...
                  j'ai ajouté une gestion du css en backend, des fonctions Cancel et Makedefault dans le JToolBar, la deuxième ne marche pas encore ...
                  LJ
                  mon avatar : http://www.ingall-niger.org

                  Commentaire


                  • #39
                    Re : objectifcarbone

                    bonsoir
                    avant de tester une évolution en J!1.7 je souhaiterais régler deux soucis
                    1. je ne comprends pas comment changer le logo Cliquez sur l'image pour l'afficher en taille normale

Nom : logo.png 
Affichages : 1 
Taille : 15,7 Ko 
ID : 1798217, apparemment il faut passer une class css !?
                    2. ma fonction remettre les params par défaut sur une vue ne marche pas, elle est écrite comme ceci

                    Code PHP:
                        function MakeDefault()
                        {
                        
                    $component =& JComponentHelper::getComponent('com_objectifcarbone');

                            
                    $t_component =& JTable::getInstance('component');
                           
                            
                    $t_component->load$component->id );
                            
                    $t_component->params='';       
                            
                            
                            
                    $redirectLink 'index.php?option=com_objectifcarbone' ;
                            
                    $this->setRedirect$redirectLink );
                            
                            if ( !
                    $t_component->store() ) {
                                
                                
                    JError::raiseWarning200JText::_('ERROR_CONFIG_RESTORED') );
                               
                                
                            } else {
                                
                                
                    $msg JText::_('CONFIG_RESTORED') ;
                                
                    $this->setRedirect$redirectLink $msg );
                            }

                        } 
                    merci LJ
                    mon avatar : http://www.ingall-niger.org

                    Commentaire


                    • #40
                      Re : objectifcarbone

                      bonjour
                      pour le 1 j'ai trouvé en faisant un dossier help avec un help.html ...

                      pour le 2 pas mieux

                      je tente une version sur J1.7 et me heurte à un soucis de réécriture du Config.xml et de la récup des groupe de params dans la vue

                      voici le config
                      Code PHP:
                      <form>
                       <
                      name>Objectif Carbone Config Form</name>
                       
                       <
                      fields name="params" group="labeldpe">
                        <
                      field name="labeldpe_b" type="text" size="3" default="51" label="B_LABELDPE" description="UNITE_DPE"  />
                        <
                      field name="labeldpe_c" type="text" size="3" default="91" label="C_LABELDPE" description="UNITE_DPE"  />
                        <
                      field name="labeldpe_d" type="text" size="3" default="151" label="D_LABELDPE" description="UNITE_DPE"  />
                        <
                      field name="labeldpe_e" type="text" size="3" default="231" label="E_LABELDPE" description="UNITE_DPE"  />
                        <
                      field name="labeldpe_f" type="text" size="3" default="331" label="F_LABELDPE" description="UNITE_DPE"  />
                        <
                      field name="labeldpe_g" type="text" size="3" default="450" label="G_LABELDPE" description="UNITE_DPE"  />
                       </
                      fields>
                      .... 
                      et l'appel du group das la vue

                      Code HTML:
                      <td width='20%' align="left" valign="top">
                        <fieldset><legend align="left"><?php echo JText::_('LABEL_ENERGY') ?></legend> 
                        <?php echo $this->form->render('labeldpe', 'labeldpe') ?>
                        </fieldset>
                      le groupe labeldpe n'est pas trouvé ...

                      merci LJ
                      mon avatar : http://www.ingall-niger.org

                      Commentaire


                      • #41
                        Re : devient CO2 planète ...

                        bonjour
                        je vous signale le changement de nom du composant objectif carbone en Co2 planète


                        LJ
                        mon avatar : http://www.ingall-niger.org

                        Commentaire


                        • #42
                          Re : objectifcarbone

                          Concernant l'ergonomie du formulaire, ça serait sympa de gérer les champs quantitatifs du formulaire avec un plugin MooTools comme celui-ci :

                          (ou l'équivalent pour MooTools 1.2 car celui-ci est compatible 1.3)
                          je voudrais bien tester la chose car effectivement cela serait plus sympa le Mootools
                          par contre mes calculs sont faits principalement dans un models.php le dernier calcul du % se faisant dans la vue default.php
                          est-ce que quelqu'un peut me rpéciser le principe de passage des variables et des calculs dans un formulaire dynamique, voici les histo que je souhaite rendre dynamique, ici ce sont des images mais je peux aussi construire des rectangle html ...


                          merci LJ
                          mon avatar : http://www.ingall-niger.org

                          Commentaire

                          Annonce

                          Réduire
                          Aucune annonce pour le moment.

                          Partenaire de l'association

                          Réduire

                          Hébergeur Web PlanetHoster
                          Travaille ...
                          X