Php 在主页Magento上显示最近单击/查看的产品数据

Php 在主页Magento上显示最近单击/查看的产品数据,php,magento,Php,Magento,在我的Magento主页中有两个自定义块。其中一个块显示所有产品。另一个块应该显示最近单击/查看的产品。 我已经为事件创建了观测者,以获取单击的产品数据。 如何使用observer提供的数据在主页的第二块中显示该产品的数据?我必须以某种方式从观察者那里传递数据 Observer.php <?php include 'C:\wamp64\www\magento1924\app\code\local\Company\Namespace\Block\Recommended.php'; clas

在我的Magento主页中有两个自定义块。其中一个块显示所有产品。另一个块应该显示最近单击/查看的产品。 我已经为事件创建了观测者,以获取单击的产品数据。 如何使用observer提供的数据在主页的第二块中显示该产品的数据?我必须以某种方式从观察者那里传递数据

Observer.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!";
}
}
?>

块文件推荐.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。向下滚动一点,您会注意到“布局更新”部分

一,。单击添加布局更新

二,。显示在->指定页面(您也可以选择任何其他选项)

  • 页面->(选择所需页面)

  • 块引用->(选择引用以显示)

  • 7-In小部件选项

    a。设置“要显示的产品数量”


    8-单击“保存”按钮并检查指定页面。如果没有看到任何内容,请不要忘记清除缓存。

    请按照以下步骤在主页上单击/查看最近的内容:

    1-单击CMS->Widgets

    2-单击“添加新小部件实例”

    3-选择类型->最近查看的产品

    4-选择设计包主题->您的主题

    5-单击“继续”按钮

    6-在前端属性中

    a。给出小部件实例标题

    b。分配给门店视图->所有门店视图

    c。向下滚动一点,您会注意到“布局更新”部分

    一,。单击添加布局更新

    二,。显示在->指定页面(您也可以选择任何其他选项)

  • 页面->(选择所需页面)

  • 块引用->(选择引用以显示)

  • 7-In小部件选项

    a。设置“要显示的产品数量”


    8-单击“保存”按钮并检查指定页面。如果看不到任何内容,请不要忘记清除缓存。

    到目前为止,您尝试了什么?请看一看我编辑的问题。到目前为止你试过什么?请看我编辑的问题。我想使用cookies也可以。我还尝试了这个Mage::register选项,但没有成功。所以最终我使用会话来存储值并在我的block类中访问它。但是谢谢你的回答。我想用饼干也行。我还尝试了这个Mage::register选项,但没有成功。所以最终我使用会话来存储值并在我的block类中访问它。但是谢谢你的回答。我必须用程序来做。我必须用程序来做。