我想要实现的目标:单击产品链接/图像(至少在某些区域)以打开包含完整产品信息的弹出窗口(基本上是产品视图页面的所有内容)。
到目前为止我所做/尝试过的事情:
- 创建了 ajax php 代码之外的所有东西(模块、链接、模板、重写)
- 创建了 ajax 控制器(可以通过类似于: 的链接访问
http://test.com/index.php/ajaxproductview/ajax/index/id/2
)。 - 遵循各种教程(如this或this)-帮助我走到了这一步。但我不想加载我的自定义块,我想要默认的产品视图块。
试图在 indexAction() 中添加一些代码。它到达那里,但代码失败。我没有收到任何错误/通知/报告,只是看起来像是杀死我的处理器的无限循环。
$body = $this ->getLayout() ->createBlock('product.info') // taken from catalog.xml ->toHtml(); $this->getResponse()->setBody($body);
所有其他页面都工作正常,这是一个新的 magento,只有磁电机和我的模块安装并激活。
我的 AJAX 函数只是获取这个 HTML 响应,将它放入一个 div 中,然后打开一个弹出窗口。
我的问题是(是) - 我如何设置产品 ID,因此该块知道要加载什么产品,以及如何正确加载该块。我也尝试过类似的东西:
谢谢你。
PS:我也试过这个:
$layout = $this->getLayout();
$update = $layout->getUpdate();
$update->load('catalog_product_view');
$layout->generateXml();
$layout->generateBlocks();
$output = $layout->getOutput(); // $output is an empty string