Déclinaisons virtuelles avec fichiers



  • Bonjour, PhenixSuite propose une bien intéressante fonctionnalité qui permet d'ajouter des fichiers aux déclinaisons de produits virtuels. Dans la table product_download, il y a un champ date_add que je pensais être la date du dernier ajout d'un fichier.Mais je viens de me rendre compte, en ayant enregistré un produit après un changement de prix, que le date_add de cette table a été modifié. Donc cela ne réflète pas la date de dernier ajout de fichier. Me trompe-je ?



  • Bonjour,
    Vous avez raison c'est dans le code historique. Le champ est mis à jour à chaque update du produit, je vais modifier cela pour la prochaine version ;)



  • ahhh ça, ce serait super ! vous avez une idée de quand cela pourrait être dispo ? En attendant, j'essaie de créer un module pour ajouter un champ date à remplir manuellement quand on envoie un fichier afin de l'afficher sur la fiche produit :-)



  • D'ici 15 jours environ.
    Le problème de cette classe/table c'est qu'elle n'avait pas de colonne date_upd et que Prestashop met systématiquement à jour cette table lors de l'enregistrement d'un produit virtuel.
    Le date_add était forcé dans le AdminProductController et dans l'ObjectModel.



  • Et bien voilà une excellente nouvelle ! Car je n'arrive pas à afficher mon champ date à remplir dans l'onglet Produit dématérialisé et ça m'énerve :-) Je vais attendre alors ! Mille mercis ! En tout cas je découvre Phénix et il me plaît vachement !



  • Au sujet des produits dématérialisés, quand je vois le nombre incalculable des fichiers dans le dossier Download pour seulement 740 produits, serait-ce parce que Prestashop recréait un nouveau filename à chaque import, ce qui donnait un nouveau nom au fichier uploadé et laissait l'ancien sur le serveur ? Si oui, quel est le fonctionnement de Phenix à ce niveau ?

    Merci d'avance



  • Effectivement ce répertoire n'est jamais nettoyé lorsqu'on remplace un fichier. (Il faudrait cliquer sur "Supprimer le fichier" avant)
    Je vais rajouter un contrôle lorsque le fichier chargé a un nom différent du précédent.

                    $original_file = $download->filename;
                    if($original_file != $virtual_product_filename
                        && file_exists(_PS_DOWNLOAD_DIR_.$download->filename)) {
                        unlink(_PS_DOWNLOAD_DIR_.basename($download->filename));
                    }
    

    Pour nettoyer votre répertoire il faut écrire un script qui va récupérer la liste des noms de fichiers dans le répertoire /download et s'ils ne sont pas en base de données, les effacer.


Se connecter pour répondre