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

论坛 期权论坛 编程之家     
选择匿名的用户   2021-5-31 00:32   31   0

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

致命错误:在第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 人收藏
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

积分:3875789
帖子:775174
精华:0
期权论坛 期权论坛
发布
内容

下载期权论坛手机APP