Magento - команда SQL для установки «исключить» на изображениях продуктов - PullRequest
0 голосов
/ 27 февраля 2011

Мне интересно, есть ли какая-нибудь команда SQL, которую я могу запустить, которая установит для любого продукта только 1 изображение, чтобы «исключить» это изображение из галереи изображений. При добавлении следующего все исключения будет установлено на 1 (или помечается галочкой в ​​поле «исключить», другими словами):

UPDATE catalog_product_entity_media_gallery_value
SET disabled = 1

Но мне нужно сделать это только для продуктов с 1 изображением и оставить все продукты с более чем 1 изображением "не исключенными" (или "disabled = 0").

Версия Magento - 1.4.2.0.

Приветствия

ОБНОВЛЕНИЕ: Я обнаружил следующее, что делает нечто похожее, хотя я бы хотел исключить только продукты с одним изображением:

- установить все изображения как включенные («исключить» не выбрано)

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

Ответы [ 2 ]

3 голосов
/ 28 февраля 2011

ОК, похоже, это помогает:

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 
2 голосов
/ 28 февраля 2011

Вместо того, чтобы запускать это как SQL, я бы порекомендовал изменить файл template/catalog/product/view/media.phtml вашей темы, чтобы он отображал галерею только при наличии более одного изображения (я полагаю, это то, что вы пытаетесь достичь ??).Измените строку ниже с 0 на 1

<?php if (count($this->getGalleryImages()) > 0): ?>

Преимущество такого способа состоит в том, что вам не нужно будет перезапускать SQL каждый раз, когда вы добавляете новый продукт.

HTH,
JD

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...