magento accesing“;“发送朋友”;类别页面中的模块
我正在尝试将“发送给朋友”操作添加到分类页面 在产品视图中,我可以看到以下代码: “canEmailToFriend()):?>magento accesing“;“发送朋友”;类别页面中的模块,magento,Magento,我正在尝试将“发送给朋友”操作添加到分类页面 在产品视图中,我可以看到以下代码: “canEmailToFriend()):?> 如果我尝试将此代码添加到“list.phtml”(显示产品网格的位置)中,我会收到以下错误: 无效的方法Mage\u Catalog\u Block\u Product\u List::canEmailToFriend(数组 说这种方法在这种情况下不可用 我可以将“sendtofriend”模块的功能添加到我需要的任何页面中吗 提前感谢这是因为$This->can
如果我尝试将此代码添加到“list.phtml”(显示产品网格的位置)中,我会收到以下错误:
无效的方法Mage\u Catalog\u Block\u Product\u List::canEmailToFriend(数组
说这种方法在这种情况下不可用
我可以将“sendtofriend”模块的功能添加到我需要的任何页面中吗
提前感谢这是因为
$This->canEmailToFriend()
调用是属于产品页面的块方法,一个名为Mage\u Catalog\u block\u product\u View的类
。产品列表页面使用一个名为Mage\u Catalog\u block\u product\u List
的块类,该类不包含此代码
方法canEmailToFriend()
包含(如app/code/core/Mage/Catalog/Block/Product/View.php
中所定义)逻辑:
$sendToFriendModel = Mage::registry('send_to_friend_model');
return $sendToFriendModel && $sendToFriendModel->canEmailToFriend();
如果
$sendToFriendModel->canEmailToFriend()
,您可以直接将其嵌入模板中,然后调用帮助器输出链接,但实现这一点的最佳方法是将canEmailToFriend
功能移出到新的帮助器中,并从那里调用它。这是因为$this->canEmailToFriend()
调用是属于产品页面的块方法,一个名为Mage\u Catalog\u block\u product\u View
的类。产品列表页面使用一个名为Mage\u Catalog\u block\u product\u List的块类,该类不包含此代码
方法canEmailToFriend()
包含(如app/code/core/Mage/Catalog/Block/Product/View.php
中所定义)逻辑:
$sendToFriendModel = Mage::registry('send_to_friend_model');
return $sendToFriendModel && $sendToFriendModel->canEmailToFriend();
如果$sendToFriendModel->canEmailToFriend()
,您可以将其直接嵌入到模板中,然后调用帮助器输出链接,但实现这一点的最佳方法是将canEmailToFriend
功能移出到新的帮助器中,并从那里调用它。我认为Mage::registry('send_to_friend_model')
返回类Mage_Sendfriend_model_Sendfriend_Sendfriend
中的canEmailToFriend()
方法检查是否启用了“向朋友发送电子邮件”功能:
您可以在app/code/core/Mage/Sendfriend/Model/Sendfriend.php
中找到这两种方法:
/**
* Check if user is allowed to email product to a friend
*
* @return boolean
*/
public function canEmailToFriend()
{
return $this->_getHelper()->isEnabled();
}
/**
* Retrieve Data Helper
*
* @return Mage_Sendfriend_Helper_Data
*/
protected function _getHelper()
{
return Mage::helper('sendfriend');
}
因此,您可以在模板中检查自己,如下所示:
<?php if (Mage::helper('sendfriend')->isEnabled()) : ?>
<?php // Do stuff ?>
<?php endif ?>
我认为Mage::registry('send_-to_-friend_-model')
返回类Mage\u-Sendfriend_-model\u-Sendfriend
中的canEmailToFriend()
方法检查是否启用了“向朋友发送电子邮件”功能:
您可以在app/code/core/Mage/Sendfriend/Model/Sendfriend.php
中找到这两种方法:
/**
* Check if user is allowed to email product to a friend
*
* @return boolean
*/
public function canEmailToFriend()
{
return $this->_getHelper()->isEnabled();
}
/**
* Retrieve Data Helper
*
* @return Mage_Sendfriend_Helper_Data
*/
protected function _getHelper()
{
return Mage::helper('sendfriend');
}
因此,您可以在模板中检查自己,如下所示:
<?php if (Mage::helper('sendfriend')->isEnabled()) : ?>
<?php // Do stuff ?>
<?php endif ?>
我找到了另一种解决方案,只需加载sendfriend
模型即可
$sendToFriendModel = Mage::getModel('sendfriend/sendfriend');
然后使用
<?php if ( $sendToFriendModel->canEmailToFriend() ) : ?>
<p class="email-friend"><a href="<?php echo $this->helper('catalog/product')->getEmailToFriendUrl($_product) ?>"><span><span><?php echo $this->__('Email to a Friend') ?></span></span></a></p>
<?php endif;?>
来自的资源我创建了一个替代解决方案,只需加载sendfriend
模型即可
$sendToFriendModel = Mage::getModel('sendfriend/sendfriend');
然后使用
<?php if ( $sendToFriendModel->canEmailToFriend() ) : ?>
<p class="email-friend"><a href="<?php echo $this->helper('catalog/product')->getEmailToFriendUrl($_product) ?>"><span><span><?php echo $this->__('Email to a Friend') ?></span></span></a></p>
<?php endif;?>
资源来自它的作品!!谢谢:)它的作品!!谢谢:)