Prestashop:在产品页面上选择组合时忽略封面图片

Prestashop: Ignore cover image when choosing combination on product page

提问人:Nedudgi 提问时间:11/9/2023 更新时间:11/10/2023 访问量:21

问:

我卖T恤。产品是颜色和尺寸的组合。

我在后台中将多张图片分配给某个组合,并选择了一张作为封面图片:enter image description here

封面图像显示在产品缩略图上(预期行为)

封面图像也显示在详细的产品视图中(也是预期行为)。

但是,在产品页面上,我希望在选择新组合(尺寸或颜色)时不要优先考虑封面图片。enter image description here enter image description here

当用户选择新的组合时,应显示第一个不是封面图像的图像,封面图像仍保留为查看放大打印的选项。

我对 Web 开发的知识有限。我什至不知道要开始研究哪个 .php 或 .js 文件。

版本 1.7.8.8,默认主题。

JavaScript PHP 模板 Prestashop Smarty

评论

0赞 Nedudgi 11/10/2023
显然,再次上传封面图片,将其分配给所需的组合,以及从相同的组合中取消分配封面图片将导致所需的功能。

答:

0赞 Nedudgi 11/10/2023 #1

src\Adapter\Presenter\Product\ProductLazyArray 中标记的“COMMENT THE FOLLOWING LINE LIKE THIS”下面的行注释.php也可以解决问题。在版本 1.7.7.8 中,它是第 669 行。

下面是上下文的周围代码:

private function fillImages(array $product, Language $language): void
    {
        // Get all product images, including potential cover
        $productImages = $this->imageRetriever->getAllProductImages(
            $product,
            $language
        );

        // Get filtered product images matching the specified id_product_attribute
        $this->product['images'] = $this->filterImagesForCombination($productImages, $product['id_product_attribute']);

        // Get default image for selected combination (used for product page, cart details, ...)
        $this->product['default_image'] = reset($this->product['images']);
        foreach ($this->product['images'] as $image) {
            // If one of the image is a cover it is used as such
            if (isset($image['cover']) && null !== $image['cover']) {
                //COMMENT THE FOLLOWING LINE LIKE THIS
                //$this->product['default_image'] = $image;

                break;
            }
        }