我想请你帮我处理这个错误我要去马金托
致命错误:在第163行的/Applications/MAMP/htdocs/mysite/app/code/local/Mage/Catalog/Helper/Image.php中对非对象的成员函数getData()进行调用
我已经创建了一个CMS页面,并使用以下代码添加了一个template.phtml文件:{{block type="core/template" product_id="177" template="page/thumbnails.phtml"}}
模板文件使用产品id显示产品图像和缩略图。当我将其放在view.phtml中时,代码可以工作,但当我将其添加到CMS页面时,我会得到错误,我只是不知道为什么?
我真的很感谢你的帮助。。。
缩略图代码.phtml:
$_product = $this->getProduct();
$_helper = $this->helper('catalog/output');
$_gallery = $this->getGalleryImages();
$_resize = 265;
?>
.product-img-box .more-views li.slide-current a{ border:2px solid #aaa; }
.product-img-box .product-image-zoom img { cursor: pointer; }
#slide-loader{ visibility:hidden; position:absolute; top:auto; left:auto; right:2px; bottom:2px; width: 25px; height: 25px; }
$_img = '';
echo $_helper->productAttribute($_product, $_img, 'image')
?>
<?php echo $this->__('Click on above image to view full picture') ?>
<?php if (count($_gallery) > 0): ?>
function slide(url,num,gallery){
if (typeof slide.loading == 'undefined') slide.loading = false;
if(slide.loading) return false;
var loader = new Image();
$(loader).observe('load', function(){
$('slide-loader').setStyle({'visibility':'hidden'});
$$('div.more-views li').each(function(el,i){
(i==num) ? el.addClassName('slide-current') : el.removeClassName('slide-current');
});
var dummy = new Element('img', { src: url }).setOpacity(0);
new Insertion.After('image', dummy);
new Effect.Opacity(dummy, { duration:.5, from:0, to:1.0 });
new Effect.Opacity($('image'), { duration:.5, from:1.0, to:0,
afterFinish: function(){
$('image').writeAttribute('src',url).setOpacity(1).observe('click',function(e){
Event.stop(e);
popWin(gallery, 'gallery', 'width=300,height=300,left=50,top=50,location=no,status=yes,scrollbars=yes,resizable=yes');
return false;
})
dummy.remove();
slide.loading = false;
}
});
});
$('slide-loader').setStyle({'visibility':'visible'});
loader.src=url;
slide.loading = true;
return false;
});
最佳答案
当在view.phtml中使用此代码时,块类将不是核心/模板,因此诸如“$this->getImageLabel()”之类的引用将导致所描述的错误。
若要亲自查看此问题,请将其添加到view.phtml和thumbnails.phtml的顶部echo get_class($this);
然后可以更新内联静态块类型。在内存中,它可以是目录/产品,但是一旦完成了上面的建议,就可以很容易地解决这个问题。
{{block type="catalog/product" product_id="177" template="page/thumbnails.phtml"}}