我想知道是否有一些我可以运行的SQL命令,它将设置任何只有1个图像的产品来从图像库中“排除”该图像。添加以下内容会将所有排除设置为1(或者换句话说勾选“排除”图像框):
UPDATE catalog_product_entity_media_gallery_value
SET disabled = 1
但我只需要对包含1张图片的产品执行此操作,并将任何超过1张图片的产品“取消排除”(或“禁用= 0”)。
Magento版本是1.4.2.0。
干杯
更新:我发现以下内容正在做类似的事情,尽管我只想要只包含1张图片的产品:
- 将所有图像设置为已启用(“排除”取消选择)
update catalog_product_entity_media_gallery_value set disabled = 0;
- 将所有主要图像设置为已禁用(选择“排除”),以便它们不会显示在“更多视图”中
update catalog_product_entity_media_gallery_value set disabled=1 where value_id in (select value_id from catalog_product_entity_media_gallery where value in (select value
from catalog_product_entity_varchar where attribute_id=(select attribute_id from eav_attribute where attribute_code=’image’ and entity_type_id=4)))
答案 0 :(得分:3)
好的,这似乎可以解决问题:
UPDATE catalog_product_entity_media_gallery_value SET disabled = 0;
UPDATE catalog_product_entity_media_gallery_value AS mgv,
(SELECT entity_id, COUNT(*) as image_count, MAX(value_id) AS value_id
FROM catalog_product_entity_media_gallery AS mg
GROUP BY entity_id
HAVING image_count = 1) AS mg
SET mgv.disabled = 1
WHERE mgv.value_id = mg.value_id
答案 1 :(得分:2)
我建议您更改主题的template/catalog/product/view/media.phtml
文件,以便仅在显示多个图像时显示图库(我认为这是您要实现的目标? )。将以下行从0
更改为1
<?php if (count($this->getGalleryImages()) > 0): ?>
这样做的好处是,每次添加新产品时都不需要重新运行SQL。
HTH,
JD