Loops Prestashop-产品图片不显示在具有友好URL的类别循环中

Loops Prestashop-产品图片不显示在具有友好URL的类别循环中,loops,prestashop,Loops,Prestashop,打开友好URL后,我的产品图像不会显示在类别中。如果我关掉它,它们会再次出现 我试过: 在后台重新生成图片 关闭缓存 当我在打开frienly URL的情况下检查代码时,图像链接以一种奇怪的格式显示: Prestashop 1.6 编辑: 问题似乎来自我在自定义类别TPL中查询产品的方式。我手动查询子类别中的产品(我不是一次显示该类别的所有产品),如下所示: {foreach from=$subcategories item=subcategory} {if $subcategory

打开友好URL后,我的产品图像不会显示在类别中。如果我关掉它,它们会再次出现

我试过:

  • 在后台重新生成图片
  • 关闭缓存
当我在打开frienly URL的情况下检查代码时,图像链接以一种奇怪的格式显示:

Prestashop 1.6

编辑:

问题似乎来自我在自定义类别TPL中查询产品的方式。我手动查询子类别中的产品(我不是一次显示该类别的所有产品),如下所示:

{foreach from=$subcategories item=subcategory}
    {if $subcategory.id_category == 64659}

        {assign var="subcategory_id" value=$subcategory.id_category}
        {assign var="subcategory_object" value=$subcategories_objects.$subcategory_id}
        {include file="./product-list.tpl" products=$subcategory_object->getProducts('1','1','100','price','asc')}

    {/if}
 {/foreach}
使用以下行查询产品时,图像显示正常:

{include file="./product-list.tpl" products=$products}
在product-list.tpl中,这是获取图像的行:

src="{$link->getImageLink($product.link_rewrite, $product.id_image, 'home_default')|escape:'html':'UTF-8'}"

谢谢。

默认情况下,只能在
$subcategories
变量中获得子类别数组;因此,除非您拥有子类别对象,否则获取该子类别的产品将永远无法工作

首先,您需要获取sub-category对象,为此,您需要通过对category类进行覆盖来覆盖
classes/category.php
文件中的默认函数
getSubCategories

按照下面提到的步骤(1-2)创建覆盖类并修改步骤(3)中提到的模板中的代码

1) 在路径
override\classes
上创建文件
Category.php
,并在其中添加以下代码。 这将覆盖默认函数以获取类别

<?php
/**
 * @override classes/Category.php
 * 
 */
class Category extends CategoryCore
{
    /**
     * @override
     * Return current category childs
     *
     * @param int $id_lang Language ID
     * @param bool $active return only active categories
     * @return array Categories
     */
    public function getSubCategories($id_lang, $active = true)
    {
        $result = parent::getSubCategories($id_lang, $active);
        foreach ($result as &$row) {
            // Preapre object of sub category here
            $row['object'] = new Category($row['id_category'], $id_lang);
        }
        return $result;
    }
}

希望这对您有用。

在“首选项”->“管理面板中的图像”中是否有类似“移动图像”的选项?我看不到任何类似的选项,没有。当我重新生成缩略图时,有一个选项“保留以前的图像”,但我尝试了使用和不使用,它都无法修复。您能够在产品列表中的“管理面板”中看到图像吗?是的,它们显示得非常完美。这些图片的url是什么?
{foreach from=$subcategories item=subcategory}
    {if $subcategory.id_category == 64659}
        {include file="./product-list.tpl" products=$subcategory.object->getProducts('1','1','100','price','asc')}
    {/if}
{/foreach}