如何在prestashop中的订单历史中显示产品图像

时间:2013-07-02 13:47:29

标签: prestashop

当用户点击订单详情链接时,我需要在订单详情页面中显示产品图片。

我在order-detail.tpl中编辑了以下代码,但它没有显示产品图片,只显示了一些虚拟图像

<td> 
<a href="{$link->getProductLink($product.product_id, $product.link_rewrite, $product.category, null, null, $product.id_shop, $product.id_product_attribute)|escape:'htmlall':'UTF-8'}">
<img src="{$link->getImageLink($product.link_rewrite, $product.id_image, 'small_default')}" alt="{$product.name|escape:'htmlall':'UTF-8'}" {if isset($smallSize)}width="{$smallSize.width}" height="{$smallSize.height}" {/if} /></a>

</td>

Screenshot

2 个答案:

答案 0 :(得分:1)

我想在PS 1.3版本中这样做,我也有问题:/当我显示{$ product.image | var_dump}变量时我得到NULL

函数getImageLink($ product.link_rewrite,$ product.id_image,'small_default')运行良好,但问题是从变量$ product.link_rewrite和$ product.id_image获取值,但遗憾的是我不知道如何

现在它们是空的,因此链接到图像是不正确的

答案 1 :(得分:0)

如果该页面可以查看$ product附带的变量。像这样。

    {$product|var_dump}

你会注意到$ product有一个数组值图像,它是一个对象

所以现在就去吧。

    {$product.image|var_dump}

您将查看所有这些值。

                    object(Image)#490 (26) {
  ["id"]=&gt;
  int(1)
  ["id_image"]=&gt;
  string(1) "1"
  ["id_product"]=&gt;
  string(1) "3"
  ["position"]=&gt;
  string(1) "1"
  ["cover"]=&gt;
  string(1) "1"
  ["image_format"]=&gt;
  string(3) "jpg"
  ["source_index"]=&gt;
  string(52) "/Applications/MAMP/htdocs/prestashop/img/p/index.php"
  ["folder":protected]=&gt;
  NULL
  ["existing_path":protected]=&gt;
  NULL
  ["id_lang":protected]=&gt;
  NULL
  ["id_shop":protected]=&gt;
  int(1)
  ["id_shop_list"]=&gt;
  NULL
  ["get_shop_from_context":protected]=&gt;
  bool(true)
  ["table":protected]=&gt;
  string(5) "image"
  ["identifier":protected]=&gt;
  string(8) "id_image"
  ["fieldsRequired":protected]=&gt;
  array(1) {
    [0]=&gt;
    string(10) "id_product"
  }
  ["fieldsSize":protected]=&gt;
  array(0) {
  }
  ["fieldsValidate":protected]=&gt;
  array(3) {
    ["id_product"]=&gt;
    string(12) "isUnsignedId"
    ["position"]=&gt;
    string(13) "isUnsignedInt"
    ["cover"]=&gt;
    string(6) "isBool"
  }
  ["fieldsRequiredLang":protected]=&gt;
  array(0) {
  }
  ["fieldsSizeLang":protected]=&gt;
  array(0) {
  }
  ["fieldsValidateLang":protected]=&gt;
  array(0) {
  }
  ["tables":protected]=&gt;
  array(0) {
  }
  ["webserviceParameters":protected]=&gt;
  array(0) {
  }
  ["image_dir":protected]=&gt;
  string(43) "/Applications/MAMP/htdocs/prestashop/img/p/"
  ["def":protected]=&gt;
  array(6) {
    ["table"]=&gt;
    string(5) "image"
    ["primary"]=&gt;
    string(8) "id_image"
    ["multilang"]=&gt;
    bool(true)
    ["fields"]=&gt;
    array(3) {
      ["id_product"]=&gt;
      array(3) {
        ["type"]=&gt;
        int(1)
        ["validate"]=&gt;
        string(12) "isUnsignedId"
        ["required"]=&gt;
        bool(true)
      }
      ["position"]=&gt;
      array(2) {
        ["type"]=&gt;
        int(1)
        ["validate"]=&gt;
        string(13) "isUnsignedInt"
      }
      ["cover"]=&gt;
      array(3) {
        ["type"]=&gt;
        int(2)
        ["validate"]=&gt;
        string(6) "isBool"
        ["shop"]=&gt;
        bool(true)
      }
    }
    ["classname"]=&gt;
    string(5) "Image"
    ["associations"]=&gt;
    array(1) {
      ["l"]=&gt;
      array(3) {
        ["type"]=&gt;
        int(2)
        ["field"]=&gt;
        string(8) "id_image"
        ["foreign_field"]=&gt;
        string(8) "id_image"
      }
    }
  }
  ["update_fields":protected]=&gt;
  NULL
}
                                                                                                                You will notice that there is not value of link_rewrite. So you need to pass that from the controller.