VirtueMart compliant/valide

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

  • VirtueMart compliant/valide

    Bonjour,

    Je me préoccupe actuellement de rendre mes pages générées par VirtueMart . Il semble d'ailleurs que la majeure partie des erreurs soit dûes à l'utilisation de '&' dans les adresses plutot que de la fameuse esperluette '&', comme signalé dans ce post(forum VirtueMart)

    Exemple:
    Code PHP:
    $this->url(SECUREURL "index.php?page=checkout.index&cartReset=N"
    , qui pour être valide devrait être
    Code PHP:
    $this->url(SECUREURL "index.php?page=checkout.index&cartReset=N"
    comme spécifié ici

    Ayant commencé à remplacer tous les & par des & dans le code php de VirtueMart, j'ai entre-temps découvert joomla! eCommerce Edition. Et ô surprise, alors qu'il ne devrait s'agir qu'un d'un package(càd sans modification du code VirtueMart), plus aucun problème de ce genre dans le validateur W3C!!!

    Je tente donc de comprendre, et compare à l'aide du célèbre WinMerge (découvert grâce à Escape74 ) le code d'un VirtueMart classique avec celui de la version eCommerce.

    Résultats des courses: Aucun changement majeur qui ne puisse etre responsable de cette validité soudaine!



    Je regrette mais j'aimerais bien comprendre comment avec le même code source, la version eCommerce est en gros 90% plus valide que la version classique de VirtueMart...

    une idée?...



    antoine
    Dernière édition par wouf à 28/05/2006, 22h47

  • #2
    Est ce que tu as proceder à la validation sur un meme template ?

    Commentaire


    • #3
      oui oui, avec rhuk_solarflare_ii

      Commentaire


      • #4
        Et les plugins ? (mambots)
        Question plus précise, qu'est ce que la version ecommerce à de plus ?

        Commentaire


        • #5
          Je viens de regarder en plugins, y a pas grand chose, et rien de different.

          Tu n'aurais pas un exemple concret à comparer, entre la version en demonstration sur le site virtuemart et le sample installer par defaut ?

          Commentaire


          • #6
            Je vient de comparer, en effet y a bizarrerie quelque part

            Commentaire


            • #7
              Tout est dans le fichier index.php à la racine

              Code PHP:
              // displays queries performed for page
                
              if ($mosConfig_debug) {
              !     echo 
              $database->_ticker ' queries executed';
              !     echo 
              '<pre>';
                     foreach (
              $database->_log as $k=>$sql) {
              !          echo 
              $k+"\n" $sql '<hr />';
                    }
                }
                
                
              doGzip();
              --- 
              241,297 ----
                if ( !
              file_exists'templates/'$cur_template .'/index.php' ) ) {
                        echo 
              _TEMPLATE_WARN $cur_template;
                } else {
              +         
              +         
              ///////////////////////
              +         // VIRTUEMART MOD
              +         ob_start();
              +         
              +         require_once( 
              'templates/'$cur_template .'/index.php' );
              +         echo 
              "<!-- ".date("r")." -->";
              +         
              +         
              // Catch the Site Output
              +         $my_content ob_get_contents();
              +         
              ob_end_clean();
              +         
              +         
              // XHTML compliance: Safely replace all occurences of & with &amp;
              +         $my_content preg_replace("/&(?!([a-zA-z0-9|#]+[;]))/msi","&amp;"$my_content);
              +         
              +         
              // Javascripts sometimes contain such logical operators: &&
              +         // we must re-convert them from &amp; to &, otherwise the Scripts and links in it don't work
              +         if (preg_match_all("'<script[^>]*?>(.*?)<\/script>'si"$my_content$scripts) > 0) {
              +           foreach( 
              $scripts as $script ) {
              +                 
              $my_content str_replace$scriptstr_replace"&amp;""&"$script ), $my_content );
              +           }
              +         }
              +         
              // Finally output the HTML String to the Browser
              +         echo $my_content;
              +         
              +         
              // END VIRTUEMART MOD
              +         ////////////////////////
              +         // Original Version follows:
              +         /*      
                        require_once( 'templates/'. $cur_template .'/index.php' );
                        echo "<!-- ".time()." -->";
              +         */
              +         
                }
                
              // display script runtime and no. of queries performed for page
                
              if ($mosConfig_debug) {
              !         list(
              $usec$sec) = explode(" "microtime()); 
              !         
              $joomla_stop = ((float)$usec + (float)$sec); 
              !         
              $runtime $joomla_stop $joomla_start;
              !         
              !         echo 
              $database->_ticker " queries executed. Script Runtime: <strong>$runtime Sec.</strong><br />
              ! <br />
              ! All the queries run on this pageload follow:"
              ;
              !         echo 
              '<div style="widht:auto; overflow:scroll;"><pre>';
              !         
              // Uncomment if you want to find queries which were run again and again
              !         asort($database->_log);
                        foreach (
              $database->_log as $k=>$sql) {
              !             echo 
              str_replace("\r"" "str_replace("\n"" "trim($sql))) . '<br />';
                        }
              +         echo 
              '</pre></div>';
                }
                
                
              doGzip(); 

              Commentaire


              • #8
                ouiiiiii, super joum!!!

                On peut dire que tu as mis le doigt d'ssus!

                C'est une bonne nouvelle en tout cas ça: ça veut dire qu'en remplaçant le fichier installdir/index.php du joomla original par celui de joomla!eCommerce Edition, on obtient un VirtueMart 90% plus valide!

                Je poste l'astuce tout de suite!

                Merci joum, très bonne nouvelle

                antoine

                Commentaire


                • #9
                  Bonjour,

                  Je cherche également à rendre mon site valide. Toutefois, le fichier de joomla! eCommerce Edition trouvé sur google (le lien ne fonctionne plus) que je télécharge n'est pas bon (je précise que je suis sur mac, peut etre dois je faire la manip sur pc mais je ne pense pas)
                  Est ce que l'astuce fonctionne toujours? j'ai essayé de rajouter le code
                  Code:
                  ///////////////////////
                  +         // VIRTUEMART MOD
                  +         ob_start();
                  +         
                  +         require_once( 'templates/'. $cur_template .'/index.php' );
                  +         echo "<!-- ".date("r")." -->";
                  +         
                  +         // Catch the Site Output
                  +         $my_content = ob_get_contents();
                  +         ob_end_clean();
                  +         
                  +         // XHTML compliance: Safely replace all occurences of & with &amp;
                  +         $my_content = preg_replace("/&(?!([a-zA-z0-9|#]+[;]))/msi","&amp;", $my_content);
                  +         
                  +         // Javascripts sometimes contain such logical operators: &&
                  +         // we must re-convert them from &amp; to &, otherwise the Scripts and links in it don't work
                  +         if (preg_match_all("'<script[^>]*?>(.*?)<\/script>'si", $my_content, $scripts) > 0) {
                  +           foreach( $scripts as $script ) {
                  +                 $my_content = str_replace( $script, str_replace( "&amp;", "&", $script ), $my_content );
                  +           }
                  +         }
                  +         // Finally output the HTML String to the Browser
                  +         echo $my_content;
                  +         
                  +         // END VIRTUEMART MOD
                  +         ////////////////////////
                  +         // Original Version follows:
                  +         /*      
                            require_once( 'templates/'. $cur_template .'/index.php' );
                            echo "<!-- ".time()." -->";
                  +         */
                  +         
                    }
                    
                  ! // display script runtime and no. of queries performed for page
                    if ($mosConfig_debug) {
                  !         list($usec, $sec) = explode(" ", microtime()); 
                  !         $joomla_stop = ((float)$usec + (float)$sec); 
                  !         $runtime = $joomla_stop - $joomla_start;
                  !         
                  !         echo $database->_ticker . " queries executed. Script Runtime: <strong>$runtime Sec.</strong><br />
                  ! <br />
                  ! All the queries run on this pageload follow:";
                  !         echo '<div style="widht:auto; overflow:scroll;"><pre>';
                  !         // Uncomment if you want to find queries which were run again and again
                  !         asort($database->_log);
                            foreach ($database->_log as $k=>$sql) {
                  !             echo str_replace("\r", " ", str_replace("\n", " ", trim($sql))) . '<br />';
                            }
                  +         echo '</pre></div>';
                    }
                  dans un fichier index.php à la racine mais ca ne marche pas.
                  Comment rajouter le fameux &amp; fans les fichiers de virtuemart?
                  La plupart du temps les liens sont générés par une fonction...
                  Merci beaucoup d'avance pour votre aide!!!!
                  Perrine

                  Commentaire


                  • #10
                    Génial ! J'avais installé la version Ecommerce aussi, mais j'imagine que la mise à jour vers 1.0.15 a supprimé cette modification. Merci joum

                    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
                    Travaille ...
                    X