我正在运行1.3.2.1版本,但在我的客户端服务器上,他们有Magento 1.3.0所以我以前的代码显示我的本地副本的图像,
echo $this->helper('catalog/image')->init($_product)->resize(163, 100);
Run Code Online (Sandbox Code Playgroud)
,不适用于客户端的安装.
查看他们的Magento返回的结果,版本1.3.0实际上返回一个URL,虽然它指向皮肤的媒体文件夹.
有没有办法获得图像的绝对图像路径?
或者我应该在其他地方进行更改,告诉Magento媒体目录应该在根目录下吗?
我有一个Magento商店,有大约3,000种产品.几乎所有这些产品都附有单个图像.
出于某种原因,即使我将小图像和缩略图图像设置为与导入CSV文件中的基本图像相同,也只为每个产品设置基本图像.这意味着当您搜索产品时,您会获得一个占位符 - 但是一旦您进入产品页面,您将获得正确的图像.这可以通过进入产品管理页面并选择小图像和缩略图框来轻松解决.
问题是,对于3,000张图像,手动操作需要相当长的时间.我找到了一个SQL命令,它应该使所有基本,小图像和缩略图图像映射每个产品的第一个图像.因为我每个产品只有一个图像,所以这应该是完美的.但是,它没有做任何事情.它说0行改变了.
UPDATE catalog_product_entity_media_gallery AS mg,
catalog_product_entity_media_gallery_value AS mgv,
catalog_product_entity_varchar AS ev
SET ev.value = mg.value
WHERE mg.value_id = mgv.value_id
AND mg.entity_id = ev.entity_id
AND ev.attribute_id IN (70, 71, 72)
AND mgv.position = 1
Run Code Online (Sandbox Code Playgroud)
有谁知道为什么这不起作用?
谢谢,
丹尼
我有以下代码:
$cProduct = Mage::getModel("catalog/product");
foreach($products_id as $product_id) {
$product = $cProduct->load($product_id);
//$products_image[] = Mage::getBaseUrl(Mage_Core_Model_Store::URL_TYPE_MEDIA).str_replace(Mage::getBaseUrl('media'),"", $product);
//$products_image[] = $product->getMediaConfig()->getMediaUrl($_product->getData('image'));
$products_image[] = $product->getImageUrl(); //product's image url
}
Run Code Online (Sandbox Code Playgroud)
正如您所看到的,我已经尝试了几种方法来获取原始图像网址.目前我正在使用getImageUrl(),但它检索基本图像,这是一个裁剪版本.如何检索原始图像?
提前致谢.
编辑:严重出现没有它的功能,谷歌搜索几个小时(也在发布之前).所以我写了自己的功能.
function get_original_image_url($base_image_url) {
$exploded = explode("/", $base_image_url);
$image_name = $exploded[count($exploded) - 1];
$original_image_url = "http://yoursitehere.com/media/catalog/product/" . $image_name[0] . "/" .
$image_name[1] . "/" . $image_name;
return $original_image_url;
}
Run Code Online (Sandbox Code Playgroud)
我叫它:
$original = get_original_image_url($product->getImageUrl());
Run Code Online (Sandbox Code Playgroud)
适合我,虽然这不是一个很好的方式.