web-dev-qa-db-fra.com

URL de l'image Prestashop

J'essaie d'obtenir une URL d'image pour le produit prestashop en fonction de son ID. J'essaie ce code pour les méthodes fournies par prestashop, mais je n'ai rien 

<?php

//require('config/settings.inc.php');
//require('classes/Image.php');
require('classes/Link.php');
$ItemID=$_GET["catID"];
$db=mysql_connect(constant('_DB_SERVER_'),constant('_DB_USER_'), constant


$image = Image::getCover($ItemID);
$imagePath = Link::getImageLink($product->link_rewrite, $image['id_image'], 'home_default');

ce code ne fonctionne pas, j'ai essayé d'ajouter les classes requises mais elles posent également un problème. De plus, si j'ai commenté les deux dernières lignes, l'exigence génère elle-même une erreur. Mon autre code de travail que je prévois de créer manuellement une table d'images URL fonctionne 

<?php
require('config/settings.inc.php');
$ItemID=$_GET["catID"];
$db=mysql_connect(constant('_DB_SERVER_'),constant('_DB_USER_'), constant

('_DB_PASSWD_')) or die('Could not connect');
mysql_select_db(constant('_DB_USER_'), $db) or die('');
 if (is_numeric($ItemID)) {
$result = mysql_query("SELECT name,date_add,price , IFNULL(imageURL,'') as imageURL 

FROM product inner join product_lang on product_lang.id_product=product.id_product 

left join app_product_image on product.id_product=app_product_image.id_product where 

id_lang=1 and product.id_product='$ItemID'") or die('Could not query');
$json = array();
    if(mysql_num_rows($result)){
           // $row=mysql_fetch_assoc($result);
        while($row=mysql_fetch_row($result)){
            //  cast results to specific data types

            //$test_data[]=$row;
                $json['name']=$row[0];
                $json['date']=$row[1];
                $json['price']=$row[2];
                $json['imgURL']=$row[3];

        }
       // $json['products']=$test_data;
    }
   echo json_encode($json);
    mysql_close($db);


 }

le code ci-dessus est la dernière solution mais j'essaie de ne pas écrire manuellement les URLs de l'image du produit!

7
Karam Abo Ghalieh

Voici le code testé, j'ai mis ce code dans test.php sous le répertoire racine de mon installation prestahsop et cela fonctionne à merveille.

<?php
require_once dirname(__FILE__).'/config/config.inc.php';
require_once dirname(__FILE__).'/init.php';
$id_product = 1;//set your product ID here
$image = Image::getCover($id_product);
$product = new Product($id_product, false, Context::getContext()->language->id);
$link = new Link;//because getImageLInk is not static function
$imagePath = $link->getImageLink($product->link_rewrite, $image['id_image'], 'home_default');
echo $imagePath;

Dans votre code, vous devez savoir que getImageLink n’est pas une fonction statique et que votre premier bloc d’extrait de code $ product n’est initialisé avec aucun produit.

Pour confirmer que j'ai téléchargé ce fichier sur mon serveur, vous pouvez le vérifier ici: Cliquez ici

17
Vipul Hadiya

Ceci est un autre code qui fonctionne

$link = new Link();
$product_url = $link->getProductLink((int)id_product);
$image = Product::getCover((int)id_product);
$image = new Image($image['id_image']);
$product_photo = _PS_BASE_URL_._THEME_PROD_DIR_.$image->getExistingImgPath().".jpg";
0
manuman94
 <?php
    require_once dirname(__FILE__).'/config/config.inc.php';
    require_once dirname(__FILE__).'/init.php';
    $id_product = 1;//set your product ID here
    $image = Image::getCover($id_product);
    $product = new Product($id_product, false, Context::getContext()->language->id);
    $link = new Link;//because getImageLInk is not static function
    $imagePath = $link->getImageLink($product->link_rewrite[Context::getContext()->language->id], $image['id_image'], 'home_default');
    echo $imagePath;
0
Jerome Aldigier