在Magento中,您可以从另一个模块(最常见的是Magento Adminhtml模块)中覆盖一个块(或帮助器或模型等).现在我遇到的问题是我想要覆盖已经被其他扩展覆盖的块.有没有办法告诉magento忽略<rewrite>其他一些模块配置中的<remove>标签,类似于布局更新中的标签?
以下是其他扩展的配置:
<blocks>
<adminhtml>
<rewrite>
<catalog_product_grid>Symmetrics_DeliveryTime_Block_Adminhtml_Catalog_Product_Grid</catalog_product_grid>
</rewrite>
</adminhtml>
</blocks>
Run Code Online (Sandbox Code Playgroud)
这是我的扩展的配置:
<blocks>
<adminhtml>
<rewrite>
<catalog_product_grid>Namespace_MyModule_Block_Adminhtml_Catalog_Product_Grid</catalog_product_grid>
</rewrite>
</adminhtml>
</blocks>
Run Code Online (Sandbox Code Playgroud)
我将块的功能集成Symmetrics_DeliveryTime到我自己的块中,现在我希望magento忽略来自该模块的块覆盖.
是否有任何magento方法可以做到这一点,或者是注释配置的唯一方法(这是我现在所做的),包括以后更新该模块时的所有麻烦?
我使用Magento块缓存作为顶部导航块.问题是块必须为skin目录中的文件生成一些不能放入css文件的URL,因为文件名取决于类别模型数据.
现在,当我使用安全连接(https://)打开magento时,导航块从缓存中获取并发送到浏览器,但是使用http:// urls会在大多数浏览器中发出关于页面上不安全元素的警告.
我希望有安全和不安全连接的分离缓存.导航块扩展了类Mage_Catalog_Block_Navigation,因此具有以下缓存配置:
$this->addData(array(
'cache_lifetime' => false,
'cache_tags' => array(Mage_Catalog_Model_Category::CACHE_TAG, Mage_Core_Model_Store_Group::CACHE_TAG),
));
Run Code Online (Sandbox Code Playgroud)