我想覆盖“Script.php”文件中的“社区”块。
将第三方模块覆盖为http://connect20.magentocommerce.com/community/Anaraky_GDRT_1
Magento版本:1.7.0
这是社区模块文件树:
-app
- code
- community
- Anaraky
- Gdrt
- Block
- Script.php
- etc
- Config.xml
- Helper
- Data.php
- Module
- Adminhtml
- Observer.php
我想将Script.php文件覆盖到My Custom模块
这是我的自定义模块文件树:
- app
- code
- local
- Anarakyoverride
- Gdrtoverride
- Block
- Script.php
- etc
- config.xml
另外,我已添加My Custom(Anarakyoverride_Gdrtoverride)模块的代码config.xml文件,如下代码
<?xml version="1.0"?>
<config>
<modules>
<Anarakyoverride_Gdrtoverride>
<version>1.0.8</version>
</Anarakyoverride_Gdrtoverride>
</modules>
<global>
<blocks>
<gdrt>
<class>Anarakyoverride_Gdrtoverride_Block</class>
</gdrt>
</blocks>
</global>
</config>
任何人都可以帮助我并建议覆盖第三方模块吗?
模块的更多细节是http://connect20.magentocommerce.com/community/Anaraky_GDRT_1 自定义模块中安装的模块和覆盖script.php文件,即app / code / local / Anarakyoverride / Gdrtoverride / Block / Script.php
谢谢和问候, 维沙尔
答案 0 :(得分:2)
在XML中尝试以下代码
<global>
<modules>
<Anarakyoverride_Gdrtoverride>
<version>1.0.8</version>
</Anarakyoverride_Gdrtoverride>
</modules>
<blocks>
<gdrtoverride><class>Anarakyoverride_Gdrtoverride_Block</class></gdrtoverride>
<gdrt>
<rewrite>
<script>Anarakyoverride_Gdrtoverride_Block_Script</script>
</rewrite>
</gdrt>
</blocks>
/* Only if you want */
<models>
<gdrt>
<rewrite>
<state>Anarakyoverride_Gdrtoverride_Model_State</state>
</rewrite>
</gdrt>
</models>
/* Only if you want */
</global>
<frontend>
<layout>
<updates>
<gdrtoverride>
<file>gdrtoverride.xml</file>
</gdrtoverride>
</updates>
</layout>
</frontend>
</config>
或仅阻止XML的节点
<blocks>
<gdrtoverride>
<class>Anarakyoverride_Gdrtoverride_Block</class>
</gdrtoverride>
<gdrt>
<rewrite>
<script>Anarakyoverride_Gdrtoverride_Block_Script</script>
</rewrite>
</gdrt>
</blocks>
然后在你的script.php中
<?php
class Anarakyoverride_Gdrtoverride_Block_Script extends Anaraky_Gdrt_Block_Script
{
// create your method and write your code
}
此外,您需要将此确切配置复制到模块配置 - 指定您的块类名 - 并且(重要!)确保发生以下情况:
要在社区模块之后加载模块配置,您可以在 app / etc / modules /
中使用<depends>
标记
<depends>
<Community_Module /> <!-- e.g. -->
</depends>