Php 在主页Magento上显示最近单击/查看的产品数据
在我的Magento主页中有两个自定义块。其中一个块显示所有产品。另一个块应该显示最近单击/查看的产品。 我已经为事件创建了观测者,以获取单击的产品数据。 如何使用observer提供的数据在主页的第二块中显示该产品的数据?我必须以某种方式从观察者那里传递数据 Observer.phpPhp 在主页Magento上显示最近单击/查看的产品数据,php,magento,Php,Magento,在我的Magento主页中有两个自定义块。其中一个块显示所有产品。另一个块应该显示最近单击/查看的产品。 我已经为事件创建了观测者,以获取单击的产品数据。 如何使用observer提供的数据在主页的第二块中显示该产品的数据?我必须以某种方式从观察者那里传递数据 Observer.php <?php include 'C:\wamp64\www\magento1924\app\code\local\Company\Namespace\Block\Recommended.php'; clas
<?php
include 'C:\wamp64\www\magento1924\app\code\local\Company\Namespace\Block\Recommended.php';
class Company_Namespace_Model_Observer {
public function getProductData($observer) {
//Uncomment the line below to log what is contained here:
//Mage::log($observer);
$data = new Company_Namespace_Block_Recommended();
$product = $observer->getProduct();
$pId = $product->getId();
$pName = $product->getName();
//Mage::log($pId);
Mage::log($pName);
$data->recommended($pId, $pName);
}
}
?>
<?php
class Company_Namespace_Block_Recommended extends Mage_Core_Block_Template
{
public function recommended($pId, $pName){
echo $pId;
echo $pName;
echo "Test!";
}
}
?>
块文件推荐.php
<?php
include 'C:\wamp64\www\magento1924\app\code\local\Company\Namespace\Block\Recommended.php';
class Company_Namespace_Model_Observer {
public function getProductData($observer) {
//Uncomment the line below to log what is contained here:
//Mage::log($observer);
$data = new Company_Namespace_Block_Recommended();
$product = $observer->getProduct();
$pId = $product->getId();
$pName = $product->getName();
//Mage::log($pId);
Mage::log($pName);
$data->recommended($pId, $pName);
}
}
?>
<?php
class Company_Namespace_Block_Recommended extends Mage_Core_Block_Template
{
public function recommended($pId, $pName){
echo $pId;
echo $pName;
echo "Test!";
}
}
?>
推荐。phtml
<h1>Recently viewed</h1>
<?php
$this->recommended();
?>
最近查看
因此,我使用这个函数recommended()打印单击产品的数据。当我在主页中单击某个内容时,它会将我带到产品视图页面,在该页面中,我还可以看到(在上半部分)产品的名称和id以及“Test!”(这也在函数中得到了响应)。
我想要的是,因为我在主页(phtml文件)中调用了相同的函数recommended(),所以我应该看到产品id、名称以及“Test!”。问题是它只显示“Test!”。
我做错什么了吗 我会建议你使用cookies。一旦一个人点击了一个产品,将他们的ID保存在cookie中。在block类中,读取cookie值并获取产品集合,如下所示:
$productIds = array('384','385','385'); // Dummy ids, fetch them from cookies
$products = Mage::getModel('catalog/product')
->getCollection()
->addAttributeToSelect('*')
->addAttributeToFilter('status', 1)
->addAttributeToFilter('visibility', 4)
->addIdFilter($productIds);
;
我希望这能给你一个主意。我会建议你使用cookies。一旦一个人点击了一个产品,将他们的ID保存在cookie中。在block类中,读取cookie值并获取产品集合,如下所示:
$productIds = array('384','385','385'); // Dummy ids, fetch them from cookies
$products = Mage::getModel('catalog/product')
->getCollection()
->addAttributeToSelect('*')
->addAttributeToFilter('status', 1)
->addAttributeToFilter('visibility', 4)
->addIdFilter($productIds);
;
我希望这会给你一个想法。请按照以下步骤在主页上点击/查看: 1-单击CMS->Widgets 2-单击“添加新小部件实例” 3-选择类型->最近查看的产品 4-选择设计包主题->您的主题 5-单击“继续”按钮 6-在前端属性中 a。给出小部件实例标题 b。分配给门店视图->所有门店视图 c。向下滚动一点,您会注意到“布局更新”部分 一,。单击添加布局更新 二,。显示在->指定页面(您也可以选择任何其他选项)
8-单击“保存”按钮并检查指定页面。如果没有看到任何内容,请不要忘记清除缓存。请按照以下步骤在主页上单击/查看最近的内容: 1-单击CMS->Widgets 2-单击“添加新小部件实例” 3-选择类型->最近查看的产品 4-选择设计包主题->您的主题 5-单击“继续”按钮 6-在前端属性中 a。给出小部件实例标题 b。分配给门店视图->所有门店视图 c。向下滚动一点,您会注意到“布局更新”部分 一,。单击添加布局更新 二,。显示在->指定页面(您也可以选择任何其他选项)
8-单击“保存”按钮并检查指定页面。如果看不到任何内容,请不要忘记清除缓存。到目前为止,您尝试了什么?请看一看我编辑的问题。到目前为止你试过什么?请看我编辑的问题。我想使用cookies也可以。我还尝试了这个Mage::register选项,但没有成功。所以最终我使用会话来存储值并在我的block类中访问它。但是谢谢你的回答。我想用饼干也行。我还尝试了这个Mage::register选项,但没有成功。所以最终我使用会话来存储值并在我的block类中访问它。但是谢谢你的回答。我必须用程序来做。我必须用程序来做。