如何在magento中使用php文件覆盖社区阻止模块 [英] How to override community block module with php file in magento
问题描述
我想覆盖"Script.php"文件中的社区"块.
I would like to override a "community" Block within "Script.php" file.
将第三方模块替换为 http://connect20.magentocommerce.com/community/Anaraky_GDRT_1
Magento版本:1.7.0
Magento version : 1.7.0
这是社区模块文件树:
-app
- code
- community
- Anaraky
- Gdrt
- Block
- Script.php
- etc
- Config.xml
- Helper
- Data.php
- Module
- Adminhtml
- Observer.php
我想将Script.php文件覆盖到我的自定义"模块中
I want to override Script.php file to My Custom module
这是我的自定义模块文件树:
Here's my custom module file tree :
- app
- code
- local
- Anarakyoverride
- Gdrtoverride
- Block
- Script.php
- etc
- config.xml
此外,我还添加了我的自定义"(Anarakyoverride_Gdrtoverride)模块的代码config.xml文件,如下代码
Also, I have add code config.xml file of My Custom (Anarakyoverride_Gdrtoverride) module as following code
<?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>
任何人都可以帮助我并建议重写第三方模块吗?
Can any one help me and suggest to override third party module?
有关该模块的更多详细信息,请参见 http://connect20.magentocommerce.com/community/Anaraky_GDRT_1 安装的模块并在您的自定义模块中覆盖script.php文件,即app/code/local/Anarakyoverride/Gdrtoverride/Block/Script.php
More detail of module is http://connect20.magentocommerce.com/community/Anaraky_GDRT_1 Installed module and override script.php file in your custom module i.e app/code/local/Anarakyoverride/Gdrtoverride/Block/Script.php
感谢和问候, 维沙尔
推荐答案
在XML中尝试以下代码
Try below code in your 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中
then in your script.php
<?php
class Anarakyoverride_Gdrtoverride_Block_Script extends Anaraky_Gdrt_Block_Script
{
// create your method and write your code
}
此外,您需要将此精确配置复制到模块配置-指定块类名-并且(重要!)确保发生以下情况:
Also you need to copy this exact configuration to your module config - specifying your block classname - and (important!) make sure that the following occur:
- 您的配置在社区模块的加载后加载 配置
- 您的课程是从社区模块的课程扩展的.
- Your configuration is loaded after the community module's configuration
- Your class extends from the community module's class.
要在社区模块之后加载模块配置,可以在 app/etc/modules/
To load your module configuration after the community module, you can make use of <depends>
tag in your app/etc/modules/
<depends>
<Community_Module /> <!-- e.g. -->
</depends>
这篇关于如何在magento中使用php文件覆盖社区阻止模块的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!