Я создаю пользовательский блок внутри страницы продукта view.phtml
. Блок успешно создан, потому что я вижу блок, когда включаю подсказку пути. Сначала я был просто используя некоторые простой контент HTML для шаблона то, как показано ниже:magento phtml content не отображается на странице продукта view.phtml
<div>
this is the new block
</div>
Но если изменить шаблон PHTML контента, он возвращает сообщение, которое я называю функцию не-объект. как показано ниже:
ОБРАЗЕЦ
<?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>
ОШИБКА СООБЩЕНИЕ
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" –
жаль, что я действительно новичок в этом, но я узнал от вас! Я также попробовал выборку из реестра, он тоже работает. –