Jump to content

Recommended Posts

Screenshot_7.thumb.png.f8e182e813dd99bfa816df492cc4344a.pngBonjour;

j'utilise prestashop la version 1.6.1

j'ai voulu ajouter un produit manuellement en utilisant les requêtes sql.

le produit s'ajoute avec succès  dans la page d'accueil mais l'image du produit s'affiche comme un point d'interrogation

je suis sur que le chemin de l'image est correcte

j'ai remarqué que si j’accède au back office et je clique sur modifier puis directement je clique sur enregistrer ;l'image s'affiche correctement dans la page d’accueil et le problème est résolu   .

je doute qu il ya une erreur au niveau d'une table dans la base de donnée prestashop

avez vous une idée ou bien la requête sql de la modification et le sauvegarde  d'un produit

Merci

Screenshot_9.png

Screenshot_7.png

Screenshot_8.png

Screenshot_4.png

Screenshot_6.png

 

Screenshot_7.thumb.png.f8e182e813dd99bfa816df492cc4344a.png

 

lorsuqe je clique sur modifier puis enregistrer l'image s'affiche correctement

Screenshot_8.thumb.png.50460e4bfa055dbd876349e633b2b014.png

Edited by smacss (see edit history)
Link to comment
Share on other sites

  On 3/31/2018 at 8:00 AM, doekia said:

Car ton SQL ne fait que nourrir la base de données. Il n'exécute pas le code de prestashop qui génère les miniatures, donc l'image miniature n'existe pas

Expand  

merci pour votre réponse ;donc il n'ya pas de solution par une requête!!

 

avez-vous une idée pour résoudre ce problème

 

MERCI

Link to comment
Share on other sites

  On 3/31/2018 at 5:33 PM, doekia said:

cliquer sur le bouton de régénération des miniatures (sans effacer).

Après il y a des solutions plus geek mais seulement si les trucs simple te rebuttent

Expand  

ya t il une requête sql pour la régénération des miniatures

 

car je souhaite ajouter un produit avec une image en un seul clic(un ensemble de requêtes sql)

Link to comment
Share on other sites

Le SQL ne sais pas exécuter du code, le sql manipule exclusivement les données de la base de données!

Autrement dit, cliquer sur un bouton c'est trop simple alors écris-toi un code php qui procède à l'insertion SQL et ensuite qui déclenche la regénération

  • Like 1
Link to comment
Share on other sites

Déjà le code php vu plus haut fait peur^^

- J'espère que ce fichier n'est bien sûr pas accessible de l'extérieur avec les mots de passe et accès bdd en clair

- Aucune données passée en GET n'est contrôlée (ni son existence, ni son format, ni rien)

- Pourquoi lancer 15 mysql_query quand toutes les requêtes peuvent être effectuées en même temps ?

 

Vous êtes déjà dans un fichier php, pourquoi ne pas utiliser les fonctions Presashop toutes faites pour générer vos formats d'images ?

  • Like 1
Link to comment
Share on other sites

je vous remercie pour votre réponse

 

pour le fichier php ci dessus ;c'est un fichier de test;je sais que je pourrais lancer toutes ces requêtes  ensemble;pour les autres données qui sont en clair :je travaille sur localhost donc pas de soucis;

 

je pense que je vais utiliser le bouton de régénération des miniatures a travers  le back office de prestashop car j'ai pas trouvé d'autre solution.

malheureusement cette phase est lente

 

Merci encore une fois

  On 4/1/2018 at 2:54 PM, Eolia said:

Déjà le code php vu plus haut fait peur^^

- J'espère que ce fichier n'est bien sûr pas accessible de l'extérieur avec les mots de passe et accès bdd en clair

- Aucune données passée en GET n'est contrôlée (ni son existence, ni son format, ni rien)

- Pourquoi lancer 15 mysql_query quand toutes les requêtes peuvent être effectuées en même temps ?

 

Vous êtes déjà dans un fichier php, pourquoi ne pas utiliser les fonctions Presashop toutes faites pour générer vos formats d'images ?

Expand  

 

Link to comment
Share on other sites

je ne sais pas ou je peux trouver ce code pour la génération des formats d'images

 

Avez vous une idée?

  On 4/1/2018 at 2:54 PM, Eolia said:

Vous êtes déjà dans un fichier php, pourquoi ne pas utiliser les fonctions Presashop toutes faites pour générer vos formats d'images ?

Expand  

 

Link to comment
Share on other sites

	private function copyImg($item, $className)
	{
		require_once('../../images.inc.php');
		$identifier = $this->supportedImports[strtolower($className)]['identifier'];
		$matchId = $this->getMatchId(strtolower($className));
		$matchIdLang = $this->getMatchIdLang();
		switch($className)
		{
			default:
			case 'Product':
				$path = _PS_PROD_IMG_DIR_;
			break;
			case 'Category':
				$path = _PS_CAT_IMG_DIR_;
			break;
			case 'Manufacturer':
				$path = _PS_MANU_IMG_DIR_;
			break;
			case 'Supplier':
				$path = _PS_SUPP_IMG_DIR_;
			break;
		}
		$cover = 1;
		if (array_key_exists($item[$identifier], $matchId))
			if(array_key_exists('images', $item) && !is_null($item['images']))
			foreach($item['images'] as $key => $image)
			{
				$tmpfile = tempnam(_PS_TMP_IMG_DIR_, 'import');
				if (@copy(str_replace(' ', '%20', $image), $tmpfile))
				{
					if ($className == 'Product')
					{
						$image = new Image();
						$image->id_product = (int)($matchId[$item[$identifier]]);
						$image->cover = $cover;
						$image->position = Image::getHighestPosition((int)$matchId[$item[$identifier]]) + 1;
						$legend = array();
						foreach($item['name'] as $key => $val)
							if (array_key_exists($key, $matchIdLang))
								$legend[$matchIdLang[$key]] = Tools::link_rewrite($val);
							else
								$legend[Configuration::get('PS_LANG_DEFAULT')] = Tools::link_rewrite($val);
						$image->legend = $legend;
						$image->add();
                        			$path = $image->getPathForCreation();
                        			ImageManager::resize($tmpfile, $path.'.jpg');
					}
					else
                    			{
                        			ImageManager::resize($tmpfile, $path.(int)$matchId[$item[$identifier]].'.jpg');
                    			}
				}
				else
					@unlink($tmpfile);
				@unlink($tmpfile);
				$cover = 0;
			}

	}

 

Link to comment
Share on other sites

  On 4/2/2018 at 6:47 AM, Eolia said:
	private function copyImg($item, $className)
	{
		require_once('../../images.inc.php');
		$identifier = $this->supportedImports[strtolower($className)]['identifier'];
		$matchId = $this->getMatchId(strtolower($className));
		$matchIdLang = $this->getMatchIdLang();
		switch($className)
		{
			default:
			case 'Product':
				$path = _PS_PROD_IMG_DIR_;
			break;
			case 'Category':
				$path = _PS_CAT_IMG_DIR_;
			break;
			case 'Manufacturer':
				$path = _PS_MANU_IMG_DIR_;
			break;
			case 'Supplier':
				$path = _PS_SUPP_IMG_DIR_;
			break;
		}
		$cover = 1;
		if (array_key_exists($item[$identifier], $matchId))
			if(array_key_exists('images', $item) && !is_null($item['images']))
			foreach($item['images'] as $key => $image)
			{
				$tmpfile = tempnam(_PS_TMP_IMG_DIR_, 'import');
				if (@copy(str_replace(' ', '%20', $image), $tmpfile))
				{
					if ($className == 'Product')
					{
						$image = new Image();
						$image->id_product = (int)($matchId[$item[$identifier]]);
						$image->cover = $cover;
						$image->position = Image::getHighestPosition((int)$matchId[$item[$identifier]]) + 1;
						$legend = array();
						foreach($item['name'] as $key => $val)
							if (array_key_exists($key, $matchIdLang))
								$legend[$matchIdLang[$key]] = Tools::link_rewrite($val);
							else
								$legend[Configuration::get('PS_LANG_DEFAULT')] = Tools::link_rewrite($val);
						$image->legend = $legend;
						$image->add();
                        			$path = $image->getPathForCreation();
                        			ImageManager::resize($tmpfile, $path.'.jpg');
					}
					else
                    			{
                        			ImageManager::resize($tmpfile, $path.(int)$matchId[$item[$identifier]].'.jpg');
                    			}
				}
				else
					@unlink($tmpfile);
				@unlink($tmpfile);
				$cover = 0;
			}

	}

 

Expand  

merci beaucoup mais comment je peux fonctionner et exploiter ce code

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...