我想为产品创建一个弹出窗口,而不是指向另一个页面。我正在寻找有关基本上制作产品视图模板副本以根据我的需要进行修改而无需创建单独的模型和块的最佳方法的建议。我正在使用版本 1.3.2.2。让我知道是否有任何需要澄清的地方。
我意识到有模块可以做到这一点,但我想自己做。部分是为了学习。
我想为产品创建一个弹出窗口,而不是指向另一个页面。我正在寻找有关基本上制作产品视图模板副本以根据我的需要进行修改而无需创建单独的模型和块的最佳方法的建议。我正在使用版本 1.3.2.2。让我知道是否有任何需要澄清的地方。
我意识到有模块可以做到这一点,但我想自己做。部分是为了学习。
作为一般方法,您可以使用 Javascript 更改产品页面链接以在弹出窗口中打开(不清楚您是指 AJAX 层还是“真实”弹出窗口,许多用户的浏览器会阻止)。然后,修改布局 XML 文件以添加或删除您需要的任何块。
如果您想同时拥有普通页面和悬停的“图层”,则创建一个新控制器并让它从目录视图布局继承(IIRC,$this->loadLayout('catalog_product_view')
应该这样做)。然后,再次更改布局标签的布局,以根据需要添加和删除。
约瑟夫的回答对我来说不是很清楚,但这就是我所做的。我使用扩展 ProductController 的新控制器为弹出窗口创建了一个新模块。我制作了 viewAction 的副本,并在我的新控制器中将其重命名为 popupAction。
然后我复制了catalog.xml并根据我的模块重命名它。然后删除与产品视图页面无关的所有内容。我制作了视图模板的副本并将其设置为我的 xml 布局中的模板。然后我在 xml 布局或新视图模板中进行了必要的更改。
我无法$this->loadLayout('catalog_product_view')
为我工作。