我在magento log中收到此错误:
严格注意:非静态方法 不应该调用Mage_Catalog_Block_Product :: getPriceHtml() 静态地,假设$ this来自不兼容的上下文 /home/edistico/domains/fujitsu-skener.si/public_html/app/design/frontend/base/default/template/callforprice/callforprice_simple.phtml 在第23行
这是callforprice_simple.phtml:
<?php $_product = $this->getProduct() ?>
<?php
// RM: Dobimo attribut
$prodBuyType = Mage::getModel('catalog/product')->load($_product->getId())->getProductBuyType();
?>
<?php if ($_product->isAvailable()): ?>
<p class="availability in-stock"><?php echo $this->__('Availability:') ?> <span>
<?php echo $_product->getAttributeText('zaloga') ?></span></p>
<?php else: ?> <p class="availability out-of-stock">
<?php echo $this->__('Availability:') ?> <span><?php echo $this->__('Out of stock') ?></span></p><?php endif; ?>
<?php echo $this->getChildHtml('product_type_data_extra') ?>
<?php $model=Mage::getModel('callforprice/callforprice')->loadByProductId($_product->getId());
if ($prodBuyType != 1) {
if ($model->getId() && $model->getStatus()==1) {?>
<div class="call-for-price"><?php echo "<font size=3><strong>" .$this->__($model->getValue()). "</strong></font>";?></div>
<?php } else {
echo Mage_Catalog_Block_Product::getPriceHtml($_product);
}
} else {
echo Mage_Catalog_Block_Product::getPriceHtml($_product);
}
?>
这是课程:
<?php
/**
* Magento
*
* NOTICE OF LICENSE
*
* This source file is subject to the Open Software License (OSL 3.0)
* that is bundled with this package in the file LICENSE.txt.
* It is also available through the world-wide-web at this URL:
* http://opensource.org/licenses/osl-3.0.php
* If you did not receive a copy of the license and are unable to
* obtain it through the world-wide-web, please send an email
* to license@magentocommerce.com so we can send you a copy immediately.
*
* DISCLAIMER
*
* Do not edit or add to this file if you wish to upgrade Magento to newer
* versions in the future. If you wish to customize Magento for your
* needs please refer to http://www.magentocommerce.com for more information.
*
* @category Mage
* @package Mage_Catalog
* @copyright Copyright (c) 2012 Magento Inc. (http://www.magentocommerce.com)
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
*/
class Mage_Catalog_Block_Product extends Mage_Core_Block_Template
{
protected $_finalPrice = array();
public function getProduct()
{
if (!$this->getData('product') instanceof Mage_Catalog_Model_Product) {
if ($this->getData('product')->getProductId()) {
$productId = $this->getData('product')->getProductId();
}
if ($productId) {
$product = Mage::getModel('catalog/product')->load($productId);
if ($product) {
$this->setProduct($product);
}
}
}
return $this->getData('product');
}
public function getPrice()
{
return $this->getProduct()->getPrice();
}
public function getFinalPrice()
{
if (!isset($this->_finalPrice[$this->getProduct()->getId()])) {
$this->_finalPrice[$this->getProduct()->getId()] = $this->getProduct()->getFinalPrice();
}
return $this->_finalPrice[$this->getProduct()->getId()];
}
public function getPriceHtml($product)
{
$this->setTemplate('catalog/product/price.phtml');
$this->setProduct($product);
return $this->toHtml();
}
}
我可以请求帮助吗?
由于
答案 0 :(得分:0)
Mage_Catalog_Block_Product::getPriceHtml($_product);
您需要先创建一个类Mage_Catalog_Block_Product(using factory method get Model)
的实例,然后调用函数Model->getPriceHtml($_product);