2015-06-25 25 views
7

tôi đang cố gắng để có được URL hình ảnh cho sản phẩm prestashop tùy thuộc vào đó là ID tôi đang cố gắng mã này cho các phương pháp được cung cấp bởi prestashop, nhưng tôi nhận được gìPrestashop hình ảnh URL

<?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'); 

Khối quote

mã này không hoạt động Tôi đã cố gắng thêm các lớp bắt buộc nhưng chúng cũng tạo ra sự cố nếu tôi nhận xét hai dòng cuối cùng yêu cầu chính nó tạo ra lỗi mã làm việc khác của tôi mà tôi dự định xây dựng một tabl e của URL hình ảnh theo cách thủ công là wroking

<?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); 


} 

mã ở trên là giải pháp cuối cùng nhưng tôi không cố gắng viết URL hình ảnh sản phẩm theo cách thủ công!

+0

là câu hỏi của tôi không rõ ràng? –

Trả lời

14

Đây là mã được thử nghiệm, tôi đặt mã này trong test.php dưới thư mục gốc của cài đặt prestahsop của tôi và nó hoạt động tuyệt vời.

<?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; 

Từ mã của bạn, bạn nên biết rằng getImageLink không phải là chức năng tĩnh và khối sản phẩm $ đoạn đầu tiên của bạn không được khởi tạo với bất kỳ sản phẩm nào.

Đối với xác nhận tôi đã tải lên tập tin này trên máy chủ của tôi, bạn có thể kiểm tra xem nó ở đây: Click here

+0

cảm ơn, nó hoạt động tốt –

+0

tuyệt vời sau đó bạn nên chấp nhận nó như là câu trả lời tốt nhất và bỏ phiếu nó. –

+0

Tôi vẫn không thể upvote, cảm ơn –

0

này được một mã số, làm việc

$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";