php调用成员函数错误,php - 致命错误:在非对象中调用成员函数getData()

我想请你帮我处理这个错误我要去马金托

致命错误:在第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 = ''.$this->htmlEscape($this->getImageLabel()).'';

echo $_helper->productAttribute($_product, $_img, 'image')

?>

opc-ajax-loader.gif')%20?>

<?php echo $this->__('Click on above image to view full picture') ?>

<?php if (count($_gallery) > 0): ?>

<?php echo $this->__('More Views') ?>
  • <?php echo $this->htmlEscape($_image->getLabel()) ?>

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"}}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值