正如 MageMechanic.com 所说,
如果您使用的是 xsitemap 并且您有以下重写:
<catalog_resource_eav_mysql4>
<rewrite>
<product_attribute_backend_media>MageWorx_XSitemap_Model_Catalog_Resource_Eav_Mysql4_Product_Attribute_Backend_Media</product_attribute_backend_media>
</rewrite>
</catalog_resource_eav_mysql4>
进入 MageWorx_XSitemap_Model_Catalog_Resource_Eav_Mysql4_Product_Attribute_Backend_Media 类,更新 loadGalary 函数如下:
public function loadGallery($product, $object)
{
$eventObjectWrapper = new Varien_Object(
array(
'product' => $product,
'backend_attribute' => $object
)
);
Mage::dispatchEvent(
$this->_eventPrefix . '_load_gallery_before',
array('event_object_wrapper' => $eventObjectWrapper)
);
if ($eventObjectWrapper->hasProductIdsOverride()) {
$productIds = $eventObjectWrapper->getProductIdsOverride();
} else {
$productIds = array($product->getId());
}
$connection = Mage::getSingleton('core/resource')->getConnection('core_write');
$tablePrefix = (string) Mage::getConfig()->getTablePrefix();
$result = $connection->fetchAll("
SELECT `main`.`value_id`, `main`.`value` AS `file`, `main`.`entity_id` AS `product_id`, `value`.`label`, `value`.`position`,
`value`.`disabled`, `default_value`.`label` AS `label_default`, `default_value`.`position` AS `position_default`,
`default_value`.`disabled` AS `disabled_default`
FROM `" . $tablePrefix . "catalog_product_entity_media_gallery` AS `main`
LEFT JOIN `" . $this->getTable(self::GALLERY_VALUE_TABLE) . "` AS `value`
ON main.value_id=value.value_id
AND value.store_id=" . (int) $product->getStoreId() . "
LEFT JOIN `" . $this->getTable(self::GALLERY_VALUE_TABLE) . "` AS `default_value`
ON main.value_id=default_value.value_id AND default_value.store_id=0
WHERE (main.attribute_id = '" . $object->getAttribute()->getId() . "')
AND (main.entity_id in ('" . implode("','", $productIds). "'))
ORDER BY IF(value.position IS NULL, default_value.position, value.position) ASC");
$this->_removeDuplicates($result);
return $result;
}
这样你将保持从这个插件的好处,同时将获得默认的 magento 颜色swatcher :)
进行编码;)