Jump to content
Sign in to follow this  
Daxey

Problème import -> php plante

Recommended Posts

Bonjour à tous,

J'ai un souci avec tous les imports, j'ai une page blanche (php qui plante).
par exemple au niveau de l'import des produits :

dans AdminImport.php
le problème arrive après :

array_walk($info, array('AdminImport', 'fillInfo'), $product);


au
if (isset($product->tax_rate))


php plante

Share this post


Link to post
Share on other sites

j'ai bien l'impression que je n'ai pas été clair :red:

Share this post


Link to post
Share on other sites

en effet. tu expliques partiellement.
n'oublies pas que nous ne mettons pas tous la main dans le code systématiquement.
expliques le contexte, ce que tu importes etc... merci.

Share this post


Link to post
Share on other sites

En fait, j'ai essayé plusieurs imports (produits, catégories ...), avec des fichiers différents et même un fichier d'exemple utilisé dans un totu.
Mais c'est la page blanche à chaque fois.

j'ai fait des sorties dans le code pour voir à quel niveau ça plante, et c'est après chaque array_walk(), comme dans l'exemple ci-dessus.
Une fois celui-ci passé le code bloque systématiquement lorsque l'on souhaite atteindre une variable de l'objet en question (pour l'exemple $product)

Share this post


Link to post
Share on other sites

effectivement, nous devrions rapprocher les 2 topics, je propose que l'on continue sur l'autre.

Share this post


Link to post
Share on other sites

Hello,

I translate my post for you !

I think I've found a workaround for the bug of array_walk function in some PHP 5.2 versions.
Open, with text editor, the file /prestashop/adm/tabs/AdminImport.php. Modify the 6 lines calling array_walk function for the imports category, product, customer, address, manufacturer and supplier like example below (for product)

array_walk($info, array('AdminImport', 'fillInfo'), $product);



Replace this line with the 3 following lines :

foreach ($info as $key => $value) {
   self::fillInfo($value, $key, $product);    
}



The array_walk function is also called for UTF-8 conversion. I don't use it, so I haven't modify it. Build a foreach instead array_walk in the same way.
I have run a successful test on a Debian 4.0 Etch PHP 5.2.0-8+etch13. Import works fine.
Outside the import script, array_walk is never called. So, no problem for the rest of the code.
Editing the AdminImport.php script, be carefull to save it with the right line return (LF for Linux).
I hope this could help you !

Regards

Share this post


Link to post
Share on other sites

Sorry for the english, but I haven't found any topic in the english section that covers this. I think I've been bitten by the same bug but changing all those array_walk() didn't make it go away.

Btw. Is there a bug filed for this? Searching for array_walk I couldn't find anything.

regards,

Share this post


Link to post
Share on other sites

It is not a bug in Prestashop, but a bug in some versions of PHP 5.2.0. So, there is no bug report about this issue in Prestashop bug tracker. If you aren't in this case, it isn't necessary to modify those lines in AdminImport.php.
Try to enable error display to see PHP error messages. Also, check your file .csv and data formats : numerics must be entered 10.00 and not 10,00.
Good heart !

Share this post


Link to post
Share on other sites

Je rencontre aussi ce probleme, notre version est la 5.2.0, j'ai remplacé les , pour des . dans mes prix et j'ai toujours une page blanche apres validation...

une idée ?

Romann

Share this post


Link to post
Share on other sites

Ok merci, j'ai fais les manips et ca fonctionne !

par contre je ne vois pas mes nouveaux produits dans la boutique... une autre manip a effectuer ?

Romann

Share this post


Link to post
Share on other sites

Traduit par Google:
Est-ce juste pour contourner 5.2.0 ou 5.2.6 pour ça aussi?

Share this post


Link to post
Share on other sites

@ Romann

Pour voir les nouveaux articles dans la page d'accueil de la boutique, il faut que ces articles soient dans la catégorie "Acceuil". Cette catégorie est créée par défaut à l'installation. Avant d'importer des produits, il vaut mieux bien réfléchir à l'organisation des catégories et renseigner le champ "catégories" avec les numéros d'id. Par exemple : 1, 6 pour mettre le produit à la fois dans les catégories 1 et 6. On n'a pas besoin par la suite à y revenir à la main.

@ Began

It seems array_walk is only bugged in PHP 5.2.0. not in earlier versions.

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this  

×
×
  • Create New...

Important Information

Cookies ensure the smooth running of our services. Using these, you accept the use of cookies. Learn More