Jump to content

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
Link to comment
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)

Link to comment
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

Link to comment
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,

Link to comment
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 !

Link to comment
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.

Link to comment
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
×
×
  • Create New...