THELIA Forum

Welcome to the THELIA support and discusssion forum

Announcement

Rejoignez la communauté sur le Discord Thelia : https://discord.gg/YgwpYEE3y3

Offline

#1 Import de données via PHP

(10-06-2015 10:55:53)


Bonjour,

Je travaille actuellement sur un script de migration de données de templeet vers thelia 2.1.4 . J'ai pu importer les données des catégories et produits sans problème via les objets PHP de Thelia, cependant je sèche pour l'import des images des catégories et produits.
Voici mon code :

//Import d'une image de catégorie
$categoryImage = new CategoryImage();
$categoryImage->setCategory($categoryThelia);
$categoryImage->setTitle(formatStr($categoryI18nThelia->getTitle()));
$categoryImage->setPosition(1);
$file = $dirImportImages . $categorieTempleet["url_clean"] . $categorieTempleet["photo"];
$categoryImage->setFile($file);
$categoryImage->save();

//Import d'une image de produit
$productImage = new ProductImage();
$productImage->setProduct($productThelia);
$productImage->setTitle(formatStr($imageTempleet["intitule"]));
$productImage->setPosition($imageTempleet["position"]);
$file = $dirImportImages . $produitTempleet["url_clean"] . "produit/" . $produitTempleet["intitule_clean"] . "/" . $imageTempleet["fichier"];
$productImage->setFile($file);
$productImage->save();

J'ai donc un répertoire où je stocke les images des templeet dans le but de les attribuer aux images (/web/importImages/, soit la variable $dirImportImages). Mais clairement, cela ne fonctionne pas : les objets images semblent bien être insérés en base car j'ai le listing dans la fiche produit, mais les images ne s'affichent pas ("Image file not found" en visuel).

Help ?

Merci

Last edited by Micrasoft (10-06-2015 10:56:32)

Offline


setFile() prend en paramètre le seul nom du fichier, sans le chemin.

Les images des produits et catégories doivent être stockées dans local/media/images/product et local/media/images/category.

Tu peux t'inspirer de ce qui a été fait dans le module d'importation T1 -> T2 : https://github.com/thelia-modules/ImportT1

Je travaille actuellement sur un script de migration de données de templeet

C'est quoi "templeet" ?


OpenStudio Toulouse

Offline


Effectivement, cette classe va m'aider je pense : https://github.com/thelia-modules/Impor … Import.php

Templeet est un CMS assez vieux, plus du tout maintenu. L'architecture de la base de données est très simple et donc facile à appréhender.

Plus d'infos : http://templeet.org/index.html.fr

Merci smile

Offline


Pour ceux que ça pourrait intéresser, voici mon code modifié et fonctionnel :

use Symfony\Component\Filesystem\Filesystem;

$fs = new Filesystem();
//$dirSrcImportImages = le chemin du dossier temporaire où sont stockées les photos Templeet
$file = $dirSrcImportImages . $categorieTempleet["url_clean"] . $categorieTempleet["photo"];
//Copy du fichier image depuis dossier temporaire vers le répertoire final thelia
$fs->copy($file, $dirDestImportImagesCategory.$categoryThelia->getId()."-".$categorieTempleet["photo"], true);

$categoryImage = new CategoryImage();
$categoryImage->setCategory($categoryThelia);
$categoryImage->setTitle(formatStr($categoryI18nThelia->getTitle()));
$categoryImage->setPosition(1);
$categoryImage->setFile($categoryThelia->getId()."-".$categorieTempleet["photo"]);
$categoryImage->save();

Même principe pour les produits.

++

Offline


Bonjour,

Je tiens à préciser que je ne sais pas si je suis aux bons endroits mais j'aimerais savoir s'il était possible que vous donniez l'intégralité de votre code mais surtout où celui-ci se trouve. Je cherche à faire la même chose que vous mais j'ai beaucoup de mal à trouver le point d'entrée.

Vous parler de script mais dans mes recherches je ne trouve que l'ajout de modules ou de plugins.

De plus (comme je pense qu'il s'agit d'un plugin) je cherche le point d'entrée mais le répertoire indiquer par les tutoriels (client/plugins) est pour moi introuvable.

Encore excuser si je ne suis pas aux bons endroits.

Cordialement.
Pas: je n'ai pas trouvé comment envoyer des messages prive.

Offline


Pour Thelia 2, on parle de modules, et pas de plugin. La documentation de développement des modules est là : http://doc.thelia.net/en/documentation/ … index.html

Si tu cherches un exemple de module d'importation de données, en voilà un : https://github.com/thelia-modules/ImportT1


OpenStudio Toulouse