我要实现的目标:单击产品链接/图像(至少在某些区域)以打开一个弹出窗口,其中包含完整的产品信息(基本上是产品查看页面的所有内容)。
到目前为止,我做了/尝试过的是:
http://test.com/index.php/ajaxproductview/ajax/index/id/2
)。$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
产品控制器使用助手来设置活动产品。您应该能够在控制器中执行相同的操作!
在进行布局之前,请尝试以下操作:
$productId = (int) $this->getRequest()->getParam('id');
Mage::helper('catalog/product')->initProduct($productId, $this);
要注意的另一件事:如果添加诸如product.info块之类的块。如果在其模板文件中调用它们,则需要其他子块。
使用自定义布局xml文件将是最简单的。然后,您可以为操作句柄添加特定的布局(您的操作句柄由模块中的etc /
config.xml文件中的routers节点组成<frontend><routers>
,例如<Yourmodule>
node,请确保将其小写!然后用下划线添加控制器名称和操作名称,在您的情况下为index_index),如下所示:
<yourmodule_index_index>
<remove name="right"/>
<remove name="left"/>
<block type="catalog/product_view" name="root" output="toHtml" template="catalog/product/view.phtml">
<!-- Add all the child blocks you need -->
</block>
</yourmodule_index_index>
这使view.phtml成为使用其toHtml方法呈现自身的根块。因此,在您的控制器操作中,您需要做的就是上面的两行,然后:
$this->loadLayout();
$this->renderLayout();
问题内容: 我有以下代码: 尽管它可以完成预期的工作,但却大大减慢了页面加载时间。是否可以仅加载可配置产品并删除“可配置”检查?该商店有12000种产品,其中大约700种是可配置的,其余的是儿童简单产品。 我发现以下代码返回了所有可配置产品。我只需要当前类别中的产品: 问题答案: 问题在于它已经被加载- 产品的数据已经从数据库中检索到。仅使用当前类别的产品集合也不足够,这将忽略“图层”(属性过滤器
本文向大家介绍magento 产品集-LIKE查询,包括了magento 产品集-LIKE查询的使用技巧和注意事项,需要的朋友参考一下 示例
我有一个问题与Magento(CE1.9.0.1)和缺货产品显示在类别页面。配置看起来很好,我已经刷新了缓存,索引也是最新的。有一个配置,其中有一个简单的产品分配。可配置产品设置为管理库存,简单产品也设置为管理库存,数量为0,缺货。我有同样的设置在另一个Magento网站,当一个简单的产品被设置为0和缺货,可配置的产品将成为缺货,并不显示在类别上。 null null 简单产品(截图) 所有内容都
本文向大家介绍magento 通过SKU获取产品,包括了magento 通过SKU获取产品的使用技巧和注意事项,需要的朋友参考一下 示例
问题内容: 我正在尝试按照此处的帖子进行操作,这可能是错误的,以了解有关MVC中部分视图加载的更多信息。我知道MVC的基础知识,但是想在开始使用MVC之前做更多的ajax工作。 目标是使局部视图加载在div中。 它只是将部分视图作为整个页面加载,而不是在Div内部加载。 代码如下: 控制器: 主视图(索引):(我也尝试了“ mainDiv”而不带井号,但不确定哪个是正确的) 局部视图1(Page1
我在任何地方都没看到有人问过这个问题,所以下面是: 我在我的Magento商店里有几个属性,但是为了让用户从过于杂乱的页面中解脱出来,我用标签把产品页面上不同类型的信息分开。第一个选项卡显示产品描述,它目前是一组HTML,基本上是通过显示易于理解的图标来镜像属性,图标下有属性值,第二个选项卡显示更深入的信息,属性是从DB调用的。 现在,当编辑或添加产品时,我基本上必须添加两次属性:一次作为实际的产