我在產品頁面view.phtml
內部創建了一個自定義塊。該塊已成功創建,因爲我可以在打開路徑提示時看到該塊。起初,我只是用一些普通的HTML內容的模板類似下面:magento phtml內容不顯示在產品頁面view.phtml
<div>
this is the new block
</div>
但如果我更改模板PHTML內容,它返回我打電話非目標函數的消息。象下面這樣:
TEMPLATE
<?php $_helper = $this->helper('catalog/output'); ?>
<?php $_product = $this->getProduct(); ?>
<?php $productName = $_helper->productAttribute($_product, $_product->getName(), 'name'); ?>
<?php $productUrl = $_helper->productAttribute($_product, $_product->getProductUrl(), 'product_url'); ?>
<?php $productImage = $_product->getImageUrl() ?>
<div class="socialShare clearfix">
<ul>
<li><a class="fa fa-facebook" href="javascript:popWin('https://www.facebook.com/sharer/sharer.php?u=<?php echo urlencode($productUrl); ?>&t=<?php echo urlencode($productName); ?>', 'facebook', 'width=640,height=480,left=0,top=0,location=no,status=yes,scrollbars=yes,resizable=yes');" title="<?php echo $this->__('Share it') ?>"></a></li>
</ul>
</div>
ERROR MESSAGE
Fatal error: Call to a member function getName() on a non-object in /home/onebig/public_html/app/design/frontend/ma_hitstore/default/template/catalog/product/view/socialShare.phtml on line 3
的catalog.xml我有以下代碼
<catalog_product_view translate="label">
<reference name="content">
<block type="catalog/product_view" name="product.info" template="catalog/product/view.phtml">
<block type="core/template" name="product.info.socialShare" template="catalog/product/view/socialShare.phtml"/>
</reference>
</catalog_product_view>
view.phtml調用塊
<?php echo $this->getChildHtml('product.info.socialShare'); ?>
我測試如果我在view.phtml模板內容直接粘貼和它的作品。我猜如果我創建一個自定義塊,我必須重新定義所有這些php變量$productName
,$productUrl
,$productImage
某處?對不起,我是這個新手。非常感謝您的知識。
@DylanDaicySiao對不起,我不明白的問題。 '$ this-> getProduct()'不應該返回一個塊。它應該返回一個產品模型。 –
謝謝。我可以用type =「catalog/product_view」 –
做到這一點對不起,我對這一切真的很陌生,但我從你那裏學到了!我也嘗試從註冊表中獲取,它也起作用。 –