2

私は問題で立ち往生しています。画像のアップロードに別のサーバーを使用しています。最初にこの問題について詳しく説明します。

メディアフォルダから手動で画像を削除すると、プレースホルダー画像が表示されるようになりました。

最初は

カタログ/製品/キャッシュ/1/ image / 9df78eab33525d08d6e5fb8d27136e95 / c / o / controlbar-white-small.jpg

画像を手動で削除した後

カタログ/製品/キャッシュ/1/ image / 9df78eab33525d08d6e5fb8d27136e95 / images / catalog / product / placeholder / image.jpg

私の要件は、データベース内の画像パスがまだ存在するため、削除前と同じ画像URLをストアがフェッチする必要があることです。

助けてください。

4

2 に答える 2

0

問題を解決しました。私は解決策について言及しています。

OnePica_ImageCDN-1.0.9 \ OnePica \ ImageCdn \ Model \ Adapter\Amazons3.phpに移動します

これを交換してください

パブリック関数getUrl($ filename)

{{

    $type = Mage::app()->getStore()->isCurrentlySecure() ? 'url_base_secure' : 'url_base';

    $base_url = Mage::getStoreConfig('imagecdn/amazons3/' . $type);

    $filename = $base_url . $this->getRelative($filename);

    return str_replace('\\', '/', $filename);

}

パブリック関数getUrl($ filename)

{{

 $type = Mage::app()->getStore()->isCurrentlySecure() ? 'url_base_secure' : 'url_base';

 $base_url = Mage::getStoreConfig('imagecdn/amazons3/' . $type);


    $product = Mage::registry('current_product');

    $productId = $product->getId();

    $resource = Mage::getSingleton('core/resource')->getConnection('core_write');

    $imageName = $resource->fetchOne("select value from catalog_product_entity_varchar where attribute_id=86 && entity_id = ".$productId);

    $filename = $base_url . $this->getRelative($filename);

    $filename = substr($filename, 0, -22);

    $filename = $filename.$imageName;

    return str_replace('\\', '/', $filename);
} 
于 2012-12-05T05:51:38.223 に答える
0

これはコアマゼントの動作であり、画像のない製品では壊れた画像ではなくプレースホルダーが表示されるため、app / code / core / Mage / Catalog / Model / Product/Imageでコア画像/ヘルパーに多くの変更を加えない限り.php他の唯一の方法は、プレースホルダーを変更することです。

プレースホルダーの画像を変更することを考えたことはありますか?

管理者では、[システム]>[構成]>[カタログ]>[製品イメージプレースホルダー]で、新しいファイルをアップロードできます。

core_config_dataテーブル

于 2012-12-03T11:02:33.103 に答える