Non sens dans code ?

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

  • Non sens dans code ?

    Bonjour,
    fichier
    administrator\components\com_contact\models\fields \modal\contacts.php
    administrator\components\com_content\models\fields \modal\article.php
    dans fonction getInput

    Code PHP:
    $script = array();
            
    $script[] = '    function jSelectChart_'.$this->id.'(id, name, object) {';
            
    $script[] = '        document.id("'.$this->id.'_id").value = id;';
            
    $script[] = '        document.id("'.$this->id.'_name").value = name;';
            
    $script[] = '        SqueezeBox.close();';
            
    $script[] = '    }';

            
    // Add the script to the document head.
            
    JFactory::getDocument()->addScriptDeclaration(implode("\n"$script)); 
    Pourquoi pas ?

    Code PHP:
    $script '    function jSelectChart_'.$this->id.'(id, name, object) {'."\n"
              
    .'          document.id("'.$this->id.'_id").value = id;'."\n"
              
    .'        document.id("'.$this->id.'_name").value = name;'."\n"
              
    .'        SqueezeBox.close();'."\n"
              
    .'    }';

            
    // Add the script to the document head.
            
    JFactory::getDocument()->addScriptDeclaration$script ); 
    ou encore mieux
    Code PHP:
    $script '
    function jSelectChart_'
    .$this->id.'(id, name, object) {
        document.id("'
    .$this->id.'_id").value = id;
        document.id("'
    .$this->id.'_name").value = name;
        SqueezeBox.close();
        }'
    ;

            
    // Add the script to the document head.
            
    JFactory::getDocument()->addScriptDeclaration$script ); 
    Cela évite de creer un tableau, passer les string dans le tableau et de régénérer le script avec un implode.
    Je comprendrais si il y a des conditions etc. Mais là je séche

    P.S: j'ai pas contrôlé la syntaxe du code
    Dernière édition par electrocity à 16/09/2011, 15h57
    http://www.st42.fr : Astuce et téléchargement d’extension Joomla! et virtuemart
    http://shop.st42.fr Catalogue extentions gratuit et Pro pour Virtuemart et Joomla

  • #2
    Re : Non sens dans code ?

    A la première lecture, le code original va générer plusieurs lignes de codes JS dans le fichier. Je parle de ligne au sens commun : une ligne suivi d'un carriage return.

    Le deuxième code est identique sauf que c'est une "grosse" chaîne de caractères. Le résultat serait le même. Note : évite de mixer ' et ". Ici, vu que tu utilises \n, choisis "

    Le troisième code : un seul bloc sera généré; pas de passage à la ligne.

    Sauf erreur de lecture de ma part...
    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 : Non sens dans code ?

      Bonjour,
      il n'y a pas de différence fondamentale à part que je pense que la première forme est plus lisible et plus maintenable.

      Ça serait plus flagrant sur un script plus gros ou si sa construction contenait des conditions : codage uniforme (y compris sur la première ligne), donc facilité d'insérer ou déplacer des lignes, "\n" ajouté en une fois sans polluer visuellement le code, etc.
      Ça me semble une norme de codage intéressante (pour une générer une requète idem).

      Bien sûr, quand il s'agit d'un script de 3 ligne, le gain n'est pas évident...
      Schtroumpfe toi le Schtroumpf t'aidera.
      Je ne schtroumpfe pas aux demandes de schtroumpf par MP.

      Commentaire


      • #4
        Re : Non sens dans code ?

        D'accord avec vous si cela est toujours pareil.
        J'ai noté des script écrit comme ceci et d'autres non.

        Pour ma part je n'utilise pas de Array et pourtant mes code vont à la ligne sans ajouter des \n.

        exemple d'un copié collé d"un rendu html de mes codes

        Code HTML:
        		jQuery(document).ready( function() {
        			jQuery( "#product_available_date_text" ).datepicker({
        			changeMonth: true,
        			changeYear: true,
        			dateFormat:"dd/mm/y",
        			altField:"#product_available_date",
        			altFormat: "yy-mm-dd"
        			});
        
        		});
        Et c'est formaté comme le dernier exemple.
        Et c'est sur que sur un utilisateur, un array cela ne changera rien.
        mais si tous les lignes de joomla sont passées en array pour les remettre en string après x 1000 utilisateurs. Cela fera bien une différence.
        De plus niveau lisibilité , je ne vois pas ce que cela apporte ?
        Le implode ne rajoute pas de /n a la fin donc la dernière ligne n'a jamais de retour chariot.
        Et je vois pas ce qui est maintenable dans le code 1? C'est du javascript on peut mettre un // devant la ligne comme en php. ( cela se discute avec une requête SQL)

        Cordialement,
        Patrick
        Dernière édition par electrocity à 17/09/2011, 02h01
        http://www.st42.fr : Astuce et téléchargement d’extension Joomla! et virtuemart
        http://shop.st42.fr Catalogue extentions gratuit et Pro pour Virtuemart et Joomla

        Commentaire

        Annonce

        Réduire
        Aucune annonce pour le moment.

        Partenaire de l'association

        Réduire

        Hébergeur Web PlanetHoster
        Travaille ...
        X