virtuemart page blanche sur la liste des catégories

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

  • virtuemart page blanche sur la liste des catégories

    Bonjour,

    J'ai installé J! 1.5.15 et VM 1.1.2 puis j'ai intégré les produits avec une moulinette maison, car CSVi ne fonctionnait pas. J'ai intégré 35000 produits et 22000 catégories, côté site tout fonctionne comme il faut, mais côté admin je rencontre quelques problèmes : la liste des produits s'affiche bien, le menu déroulant au dessus de la liste des produits avec toutes les catégories s'affiche, je peux ajouter / modifier des produits et les mettre dans des catégories, je peux ajouter des catégories, mais quand je veux afficher la liste des catégories, j'ai une page blanche. Je n'arrive pas à savoir d'où ça vient, si quelqu'un a une idée...

    Merci d'avance,
    mariek

    edit : une précision : si j'intègre 8000 catégories, tout roule, à 9000 ça ne marche plus
    Dernière édition par mariek à 01/02/2010, 16h11 Raison: précision

  • #2
    Après moult tâtonnements, il semblerait que, même si en théorie, joomla peut avoir autant de catégories que l'on souhaite, dans la pratique, passé 8000 catégories, le sql a des ratés et ne renvoie pas le résultat de la requête. J'aimerais bien avoir l'avis d'experts sur le sujet, ça me paraît quand même peu vraissemblable.
    La requête utilisée pour la liste des catégories est dans ps_product_category::getCategoryTreeArray et ressemble à :
    Code:
    SELECT category_id, category_description, category_name,category_child_id as cid, category_parent_id as pid,list_order, category_publish FROM #__{vm}_category, #__{vm}_category_xref
    La requête utilisée pour filtrer par catégorie dans la liste des produits est dans ps_product_category::list_tree et la requête utilisée est récursive (donc pas spécialement moins gourmande en ressources) :
    Code:
    $q = "SELECT category_id, category_child_id,category_name FROM #__{vm}_category,#__{vm}_category_xref ";
    $q .= "WHERE #__{vm}_category_xref.category_parent_id='$cid' ";
    $q .= "AND __{vm}_category.category_id=#__{vm}_category_xref.category_child_id ";
    $q .= "AND #__{vm}_category.vendor_id ='$ps_vendor_id' ";
    $q .= "ORDER BY #__{vm}_category.list_order, #__{vm}_category.category_name ASC";
    Merci pour vos avis.

    Commentaire


    • #3
      Essaye de faire tes requêtes sur phpmyadmin et regarde le résultat.

      En général vus qu'il n'y a pas de parasite tu verras mieux si c'est ta requête ou autre chose.
      Je pense que c'est le temps de réponses qui est trop long, mais en général tu as plutot un popup qui te demande d'enregistré la page php ans ce cas
      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


      • #4
        Merci pour ta réponse. Les requêtes s'exécutent très rapidement sous phpMyAdmin, c'est pour cela que je trouve ça super bizarre. Il arrive (sur un autre poste) que joomla me demande d'enregistrer la page.
        Dans ps_product_category::getCategoryTreeArray, juste après $db->query( $query );, je fais un echo '1'; puis un exit, et le echo ne s'affiche même pas. J'ai bien l'impression que J! a du mal à exécuter ma requête.

        Commentaire


        • #5
          Tu as fait un teste local ?
          Si ça marche en local c'est certainement du a une limite de ton serveur.
          Il faudrat dans ce cas que tu Passe sur un serveur dedié ou serveur privé virtuel ou une solution plus apte à négocier de tel requêtes.
          Je pense que c'est la fonction list_tree qui doit surcharger le serveur par manque de mémoire car elle est récursive.
          Bon aprés je n'ai pas autant de répertoire que toi, donc je peut pas faire de teste
          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


          • #6
            Je n'ai pas testé en local, mais je suis déjà sur un serveur dédié.
            Comme je le disais, ce n'est pas list_tree qui plante, contre toute attente puisque les fonctions récursives sont effectivement très gourmandes, et que je récupère 22000 catégories sur 3 niveaux. Non, c'est la fonction getCategoryTreeArray, qui, elle, n'est pas récursive.
            Bref, je vais voir ce que je peux faire niveau timeout.
            Merci pour ton aide.

            Commentaire


            • #7
              Un truc tout bête.
              Tu n'aurais pas injecté des caractéres incorrecte dans ta table de catégories ?

              J'ai un peu regardé les deux fonctions.list_tree ne retourne rien mais affiche tous de suite.
              Donc malgrés la récursivité, pas sur que elle est si gourmande.
              Par contre getCategoryTreeArray renvoie un array
              y a des valeurs que tu peut provisoirement supprimer pour voir comme
              $categories[$db->f("cid")]["category_description"] = $db->f("category_description");
              BOn je pense que tu oubliras pas de sauvegarder ton ficher ps_product_category.php avant modif
              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


              • #8
                Envoyé par electrocity Voir le message
                Un truc tout bête.
                Tu n'aurais pas injecté des caractéres incorrecte dans ta table de catégories ?
                oui, j'y ai pensé, alors j'ai fait un md5 des valeurs à insérer, mais même résultat, ça ne vient pas de là.

                Je vais essayer en supprimant quelques valeurs.

                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