小编R T*_*R T的帖子

在magento事件观察器中以编程方式更新布局

我试图改变一个块的模板(view.phtml)( product.info)用于商品详细页,要做到这一点,我观察的事件(controller_action_layout_generate_blocks_before),它做必要的检查,我试图改变块的模板后, (product.info)以下方式:

$layout = $observer->getEvent()->getLayout();
$layout->getUpdate()->addUpdate('
        <reference name="product.info">
            <action method="setTemplate">
                <template>customlayout/product/view.phtml</template>
            </action>                                                          
        </reference>');
$layout->getUpdate()->load();
$layout->generateXml();
Run Code Online (Sandbox Code Playgroud)

如果我放"<remove name='product.info'/>",它将被删除,但当试图做上述,它不工作.
编辑:
要求是将模板(产品详细信息)动态切换到当前产品中的选定模板(在CustomModule中).

magento

9
推荐指数
3
解决办法
3万
查看次数

如何以编程方式比较magento版本?

我试图比较magento版本,所以我可以检查当前版本是否大于1.6使用代码,否则不.我可以通过使用获得magento版本Mage::getVersion()并返回1.7.0.2(一个字符串)但是如何比较它以便我的代码在安装到另一个版本低于此版本的magento时不会破坏页面?有没有比这更好的方法.解决方案必须来自magento.

magento

5
推荐指数
1
解决办法
2215
查看次数

使用magento事件观察器以编程方式更改存储视图

我正在抓住以下事件来做进一步的逻辑:

core_block_abstract_prepare_layout_before
Run Code Online (Sandbox Code Playgroud)

在Observer类我这样做:

Mage::app()->setCurrentStore($storeView);

Mage::run($storeCode, "store");

但这引发了一个例外:

Mage注册表项"application_params"已经存在

基本上我想要做的是"根据当前的IP更改语言(商店视图)",我试图通过magento自定义模块实现这一点.

我希望能够使用magento事件观察器以编程方式更改magento的默认存储视图?并且可以在不重定向到所选商店的情况下这样做,我的意思是在页面加载之前设置商店视图的值吗?

magento

3
推荐指数
1
解决办法
8576
查看次数

标签 统计

magento ×3